]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: pm80xx: Fix drives missing during rmmod/insmod loop
authorAjish Koshy <ajish.koshy@microchip.com>
Wed, 5 May 2021 12:01:03 +0000 (17:31 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 15 May 2021 22:07:43 +0000 (18:07 -0400)
commit31fd4e51cef422cab7b1cc520ea522ce5bbc2c78
tree00442ccf5fa5973c83518578d096ca5d7cb7eb16
parent7f46af16bfebe2b637037f2d42744abfff1262c5
scsi: pm80xx: Fix drives missing during rmmod/insmod loop

When driver is loaded after rmmod some drives are not showing up during
discovery.

SATA drives are directly attached to the controller connected phys.  During
device discovery, the IDENTIFY command (qc timeout (cmd 0xec)) is timing out
during revalidation. This will trigger abort from host side and controller
successfully aborts the command and returns success. Post this successful
abort response ATA library decides to mark the disk as NODEV.

To overcome this, inside pm8001_scan_start() after phy_start() call, add get
start response and wait for few milliseconds to trigger next phy start.
This millisecond delay will give sufficient time for the controller state
machine to accept next phy start.

Link: https://lore.kernel.org/r/20210505120103.24497-1-ajish.koshy@microchip.com
Signed-off-by: Ajish Koshy <ajish.koshy@microchip.com>
Signed-off-by: Viswas G <viswas.g@microchip.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/pm8001/pm8001_hwi.c
drivers/scsi/pm8001/pm8001_init.c
drivers/scsi/pm8001/pm8001_sas.c
drivers/scsi/pm8001/pm80xx_hwi.c