| .. | .. |
|---|
| 67 | 67 | u32 number; |
|---|
| 68 | 68 | u8 is_a_board; |
|---|
| 69 | 69 | u8 state; |
|---|
| 70 | + u8 attention_save; |
|---|
| 70 | 71 | u8 presence_save; |
|---|
| 72 | + u8 latch_save; |
|---|
| 71 | 73 | u8 pwr_save; |
|---|
| 72 | 74 | struct controller *ctrl; |
|---|
| 73 | 75 | const struct hpc_ops *hpc_ops; |
|---|
| 74 | | - struct hotplug_slot *hotplug_slot; |
|---|
| 76 | + struct hotplug_slot hotplug_slot; |
|---|
| 75 | 77 | struct list_head slot_list; |
|---|
| 76 | 78 | struct delayed_work work; /* work for button event */ |
|---|
| 77 | 79 | struct mutex lock; |
|---|
| .. | .. |
|---|
| 162 | 164 | u8 shpchp_handle_presence_change(u8 hp_slot, struct controller *ctrl); |
|---|
| 163 | 165 | u8 shpchp_handle_power_fault(u8 hp_slot, struct controller *ctrl); |
|---|
| 164 | 166 | int shpchp_configure_device(struct slot *p_slot); |
|---|
| 165 | | -int shpchp_unconfigure_device(struct slot *p_slot); |
|---|
| 167 | +void shpchp_unconfigure_device(struct slot *p_slot); |
|---|
| 166 | 168 | void cleanup_slots(struct controller *ctrl); |
|---|
| 167 | 169 | void shpchp_queue_pushbutton_work(struct work_struct *work); |
|---|
| 168 | 170 | int shpc_init(struct controller *ctrl, struct pci_dev *pdev); |
|---|
| 169 | 171 | |
|---|
| 170 | 172 | static inline const char *slot_name(struct slot *slot) |
|---|
| 171 | 173 | { |
|---|
| 172 | | - return hotplug_slot_name(slot->hotplug_slot); |
|---|
| 174 | + return hotplug_slot_name(&slot->hotplug_slot); |
|---|
| 173 | 175 | } |
|---|
| 174 | 176 | |
|---|
| 175 | 177 | struct ctrl_reg { |
|---|
| .. | .. |
|---|
| 207 | 209 | |
|---|
| 208 | 210 | static inline struct slot *get_slot(struct hotplug_slot *hotplug_slot) |
|---|
| 209 | 211 | { |
|---|
| 210 | | - return hotplug_slot->private; |
|---|
| 212 | + return container_of(hotplug_slot, struct slot, hotplug_slot); |
|---|
| 211 | 213 | } |
|---|
| 212 | 214 | |
|---|
| 213 | 215 | static inline struct slot *shpchp_find_slot(struct controller *ctrl, u8 device) |
|---|