Skip to content

Commit

Permalink
ACPIPHP: use ACPI dock driver
Browse files Browse the repository at this point in the history
Modify the acpiphp driver to use the ACPI dock driver for dock
notifications.  Only load the acpiphp driver if we find we have pci dock
devices.

Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Kristen Accardi authored and Len Brown committed Jun 28, 2006
1 parent a5e1b94 commit 4e8662b
Show file tree
Hide file tree
Showing 5 changed files with 87 additions and 519 deletions.
3 changes: 1 addition & 2 deletions drivers/pci/hotplug/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,7 @@ ibmphp-objs := ibmphp_core.o \
ibmphp_hpc.o

acpiphp-objs := acpiphp_core.o \
acpiphp_glue.o \
acpiphp_dock.o
acpiphp_glue.o

rpaphp-objs := rpaphp_core.o \
rpaphp_pci.o \
Expand Down
35 changes: 1 addition & 34 deletions drivers/pci/hotplug/acpiphp.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ struct acpiphp_func {

struct list_head sibling;
struct pci_dev *pci_dev;

struct notifier_block nb;
acpi_handle handle;

u8 function; /* pci function# */
Expand All @@ -151,24 +151,6 @@ struct acpiphp_attention_info
};


struct dependent_device {
struct list_head device_list;
struct list_head pci_list;
acpi_handle handle;
struct acpiphp_func *func;
};


struct acpiphp_dock_station {
acpi_handle handle;
u32 last_dock_time;
u32 flags;
struct acpiphp_func *dock_bridge;
struct list_head dependent_devices;
struct list_head pci_dependent_devices;
};


/* PCI bus bridge HID */
#define ACPI_PCI_HOST_HID "PNP0A03"

Expand Down Expand Up @@ -207,11 +189,6 @@ struct acpiphp_dock_station {
#define FUNC_HAS_PS2 (0x00000040)
#define FUNC_HAS_PS3 (0x00000080)
#define FUNC_HAS_DCK (0x00000100)
#define FUNC_IS_DD (0x00000200)

/* dock station flags */
#define DOCK_DOCKING (0x00000001)
#define DOCK_HAS_BRIDGE (0x00000002)

/* function prototypes */

Expand All @@ -236,16 +213,6 @@ extern u8 acpiphp_get_latch_status (struct acpiphp_slot *slot);
extern u8 acpiphp_get_adapter_status (struct acpiphp_slot *slot);
extern u32 acpiphp_get_address (struct acpiphp_slot *slot);

/* acpiphp_dock.c */
extern int find_dock_station(void);
extern void remove_dock_station(void);
extern void add_dependent_device(struct dependent_device *new_dd);
extern void add_pci_dependent_device(struct dependent_device *new_dd);
extern struct dependent_device *get_dependent_device(acpi_handle handle);
extern int is_dependent_device(acpi_handle handle);
extern int detect_dependent_devices(acpi_handle *bridge_handle);
extern struct dependent_device *alloc_dependent_device(acpi_handle handle);

/* variables */
extern int acpiphp_debug;

Expand Down
19 changes: 1 addition & 18 deletions drivers/pci/hotplug/acpiphp_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -416,36 +416,19 @@ void acpiphp_unregister_hotplug_slot(struct acpiphp_slot *acpiphp_slot)

static int __init acpiphp_init(void)
{
int retval;
int docking_station;

info(DRIVER_DESC " version: " DRIVER_VERSION "\n");

acpiphp_debug = debug;

docking_station = find_dock_station();

/* read all the ACPI info from the system */
retval = init_acpi();

/* if we have found a docking station, we should
* go ahead and load even if init_acpi has found
* no slots. This handles the case when the _DCK
* method not defined under the actual dock bridge
*/
if (docking_station)
return 0;
else
return retval;
return init_acpi();
}


static void __exit acpiphp_exit(void)
{
/* deallocate internal data structures etc. */
acpiphp_glue_exit();

remove_dock_station();
}

module_init(acpiphp_init);
Expand Down
Loading

0 comments on commit 4e8662b

Please sign in to comment.