linux/drivers/message/fusion
Kashyap, Desai cc7e9f5f99 [SCSI] mptfusion: Added code for occationally SATA hotplug failure.
Issue: SATA hotplug does not work sometimes.
At the time of ADD device/ADD phys disk, drive may fail to add SATA device
due to temporary SAS Address for SATA device generated by firmware. Final
SAS address for SATA driver will be generated only after disk spinup is
done. This may take some times for slow spining SATA drives.

At phy link up driver gets attached device sas address and stores into
phyinfo. At the time of ADD event driver will read sas device page0 using
channel and FW ID provided in ADD Device event. Here in case of SATA drives,
driver will see miss match in phyinfo->sas_address and latest sas address
read from SAS DEVICE PAGE0 and eventually device won't be added to OS.

Fix:
When Driver read SAS DEVICE PAGE0, it can identify Device type looking at
device_info. If device is SATA drive and sas address mismatch happens,
Driver will do same stuffs which happened at the time of LINK UP to get
correct piece of information from Pages. ( Find parent device and refresh
parent device phys either HBA refresh/Exp refresh)

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2010-07-27 12:02:35 -05:00
..
lsi trivial: Miscellaneous documentation typo fixes 2009-06-12 18:01:47 +02:00
Kconfig [SCSI] mpt fusion: Kconfig cleanup 2007-10-12 14:48:53 -04:00
Makefile [SCSI] mpt fusion: logging support in Kconfig, Makefile, mptbase.h and addition of mptdebug.h 2007-07-28 11:25:35 -04:00
mptbase.c [SCSI] mptfusion: Set fw_events_off to 1 at driver load time. 2010-07-27 12:02:27 -05:00
mptbase.h [SCSI] mptfusion: schedule_target_reset from all Reset context 2010-07-27 12:02:34 -05:00
mptctl.c [SCSI] mptfusion: schedule_target_reset from all Reset context 2010-07-27 12:02:34 -05:00
mptctl.h [SCSI] mpt fusion : Updated copyright statment with 2008 included 2008-06-05 09:27:17 -05:00
mptdebug.h [SCSI] mpt fusion: Fixing 1078 data corruption issue for 36GB memory region 2009-06-09 17:21:31 -05:00
mptfc.c [SCSI] mptfusion: sanity check for vdevice pointer is added 2010-04-11 09:24:10 -05:00
mptlan.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mptlan.h mptlan: Kill directly reference of netdev->priv 2008-12-03 21:13:37 -08:00
mptsas.c [SCSI] mptfusion: Added code for occationally SATA hotplug failure. 2010-07-27 12:02:35 -05:00
mptsas.h [SCSI] mptfusion: Added sanity to check B_T mapping for device before adding to OS 2010-07-27 12:02:32 -05:00
mptscsih.c [SCSI] mptfusion: schedule_target_reset from all Reset context 2010-07-27 12:02:34 -05:00
mptscsih.h [SCSI] modify change_queue_depth to take in reason why it is being called 2009-12-04 12:00:41 -06:00
mptspi.c [SCSI] mptfusion: Setting period,offset and width for SPI driver 2010-04-11 09:24:09 -05:00