aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion/mptbase.h
diff options
context:
space:
mode:
authorMoore, Eric <Eric.Moore@lsil.com>2006-03-14 11:14:24 -0500
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-03-14 15:35:17 -0500
commite6b2d76a49f0ee48527691867d8af2b8f9c10452 (patch)
tree8f35dda5dcf65ccc740761c96924111baf0a8644 /drivers/message/fusion/mptbase.h
parentf44e5461d919a344d44f7ca4f06cf8d169da8454 (diff)
[SCSI] fusion - expander hotplug suport in mptsas module
This adds support for hot adding and removing expanders, and its associated attached devices. When there is a change in topology, the fusion firmware sends the MPI_EVENT_SAS_DISCOVERY event to the driver. The driver will read firmware config pages to determine what changes took place, and refresh drivers view of the world stored in ioc->sas_topology. Here is the details of the action the driver does: (1) Expander Added : The mptsas_discovery_work workqueue is called. Config pages read, and ioc->sas_topology is refreshed. The sas_phy_add() is called for each phy of the expander. The expanders attached devices are added via sas_rphy_add(). Added end devices are handled within the MPT_ADD_DEVICE logic in mptsas_hotplug_work workqueue. (2) Expander Delete : The sas_rphy_delete() will be called for the top most compenent of the parent that the expander is attached to. The sas_rphy_delete call will delete all the children phys, rphys, and end devices. This is handled from mptsas_discovery_work workqueue. Signed-off-by: Eric Moore <Eric.Moore@lsil.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
-rw-r--r--drivers/message/fusion/mptbase.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h
index 9b58234add36..892af47cb91c 100644
--- a/drivers/message/fusion/mptbase.h
+++ b/drivers/message/fusion/mptbase.h
@@ -619,6 +619,10 @@ typedef struct _MPT_ADAPTER
619 struct net_device *netdev; 619 struct net_device *netdev;
620 struct list_head sas_topology; 620 struct list_head sas_topology;
621 struct mutex sas_topology_mutex; 621 struct mutex sas_topology_mutex;
622 struct mutex sas_discovery_mutex;
623 u8 sas_discovery_runtime;
624 u8 sas_discovery_ignore_events;
625 int sas_index; /* index refrencing */
622 MPT_SAS_MGMT sas_mgmt; 626 MPT_SAS_MGMT sas_mgmt;
623 int num_ports; 627 int num_ports;
624 struct work_struct mptscsih_persistTask; 628 struct work_struct mptscsih_persistTask;