aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi
AgeCommit message (Collapse)AuthorFilesLines
2013-09-03[SCSI] qla2xxx: Perform warm reset every 2 minutes if firmware load fails ↵Armen Baloyan1-0/+8
for ISPFX00. Signed-off-by: Armen Baloyan <[email protected]> Acked-by: Srinivasa Rao <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla2xxx: Set factory reset recovery timeout to 10 min. for ISPFX00.Armen Baloyan2-0/+4
Signed-off-by: Armen Baloyan <[email protected]> Acked-by: Srinivasa Rao <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla2xxx: Correct multiqueue offset calculations.Andrew Vasquez4-24/+18
Signed-off-by: Andrew Vasquez <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla2xxx: Fix incorrect test after list_for_each_entry() exits.Joe Carnuccio1-1/+4
list_for_each_entry() never leaves the iterator pointing to null. Signed-off-by: Joe Carnuccio <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla2xxx: Add support for ISP8044.Atul Deshmukh18-158/+4849
[jejb: checkpatch fixes] Signed-off-by: Atul Deshmukh <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla2xxx: Print some variables to hexadecimal string via %*phN formatOleksandr Khoshaba8-181/+58
The patch changes a specifier used to output some variables. Instead of using stack for each byte the '%*ph[CN]' allows to take a one pointer and prints entire buffer as a hexadecimal string with the separator ':' or ''. Signed-off-by: Oleksandr Khoshaba <[email protected]> Signed-off-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt3sas: Remove phys on topology changeJan Vesely1-1/+4
Signed-off-by: Jan Vesely <[email protected]> Acked-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: Remove phys on topology change.Jan Vesely1-1/+4
Signed-off-by: Jan Vesely <[email protected]> Acked-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] bfa: firmware update to 3.2.1.1Rasesh Mody1-3/+3
This patch updates the firmware to address the thermal notification issue Signed-off-by: Rasesh Mody <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] esas2r: ATTO Technology ExpressSAS 6G SAS/SATA RAID Adapter DriverBradley Grove18-0/+15662
This is a new driver for ATTO Technology's ExpressSAS series of hardware RAID adapters. It supports the following adapters: - ExpressSAS R60F - ExpressSAS R680 - ExpressSAS R608 - ExpressSAS R644 Signed-off-by: Bradley Grove <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] eata_pio: off by one in eata_pio_detect()Dan Carpenter1-1/+1
Smatch complains that the reg_IRQ[] array only has MAXIRQ (16) elements so we are one space beyond the end of the array here. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Update driver version to 5.04.00-k1Vikas Chaudhary1-1/+1
Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Return error if minidump data collection failsVikas Chaudhary1-0/+1
Return error from function qla4_8xxx_collect_md_data() if minidump data collection fails. Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Fix the minidump data collection check in for loopSantosh Vernekar1-5/+3
Signed-off-by: Santosh Vernekar <[email protected]> Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Add pex-dma support for capturing minidumpSantosh Vernekar4-3/+263
Add pex-dma support for ISP8324 and ISP8042 to improve the minidump capture time. Signed-off-by: Santosh Vernekar <[email protected]> Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt3sas: Added a driver module parameter max_msix_vectorsSreekanth Reddy1-0/+14
Added a driver module parameter max_msix_vectors. Using this module parameter the maximum number of MSI-X vectors could be set. The number of MSI-X vectors used would be the minimum of MSI-X vectors supported by the HBA, the number of CPU cores and the value set to max_msix_vectors module parameter. The default value of this module parameter is set to 8. The default value of this parameter is set to 8 inorder to reduce the amount of memory required for Reply Descriptor Post queue. This is because with the higher MSI-X vectors, some times kernel is not able to allocate the requested amount of memory and crash is observed. To overcome this problem, the default value is set to 8. Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Update driver version to 5.04.00-k0Vikas Chaudhary1-1/+1
Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Update Copyright headerVikas Chaudhary18-18/+18
Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Implementation of ACB configuration during Loopback for ISP8042Nilesh Javali6-9/+203
While loopback diagnostic is in progress, disable the ACB which resets all the active connections to target. Disable ACB would filter out all the DHCP multicast and broadcast packets which otherwise cause the diagnostic test to take longer time to complete or failures in some other cases. Signed-off-by: Nilesh Javali <[email protected]> Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] qla4xxx: Added support for ISP8042Vikas Chaudhary9-79/+100
Signed-off-by: Vikas Chaudhary <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: Bump driver version to v16.100.00.00Sreekanth Reddy1-2/+2
Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: Fix for kernel panic when driver loads with HBA connected to ↵Sreekanth Reddy1-0/+14
non LUN 0 configured expander With some enclosures when LUN 0 is not created but LUN 1 or LUN X is created then SCSI scan procedure calls target_alloc, slave_alloc call back functions for LUN 0 and slave_destory() for same LUN 0. In these kind of cases within slave_destroy, pointer to scsi_target in _sas_device structure is set to NULL, following which when slave_alloc for LUN 1 is called then starget would not be set properly for this LUN. So, scsi_target pointer pointing to NULL value would lead to a crash later in the discovery procedure. To solve this issue set the sas_device's scsi_target pointer to scsi_device's scsi_target if it is NULL earlier in slave_alloc callback function. Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: when Async scanning is enabled then while scanning, devices ↵Sreekanth Reddy1-10/+13
are removed but their transport layer entries are not removed When Async scanning mode is enabled and device scanning is in progress then devices should not be removed. But in actuality, devices are removed but their transport layer entries are not removed. This causes error to add the same device to the transport layer after host reset or diagnostic reset. So, in this patch, modified the code in such a way that device is not removed when Async scanning mode is enabled and device scanning is in progress. Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: Infinite loop can occur if ↵Sreekanth Reddy1-12/+4
MPI2_IOCSTATUS_CONFIG_INVALID_PAGE is not returned Infinite loop can occur if IOCStatus is not equal to MPI2_IOCSTATUS_CONFIG_INVALID_PAGE value in the while loops in functions _scsih_search_responding_sas_devices, _scsih_search_responding_raid_devices and _scsih_search_responding_expanders So, Instead of checking for MPI2_IOCSTATUS_CONFIG_INVALID_PAGE value, in this patch code is modified to check for IOCStatus not equals to MPI2_IOCSTATUS_SUCCESS to break the while loop. Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: The copyright in driver sources is updated for the year 2013Sreekanth Reddy8-8/+8
The copyright in driver sources is updated for the year 2013. Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: MPI2 Rev X (2.00.16) specificationsSreekanth Reddy8-11/+18
Change set in MPI2 Rev x specification and 2.00.26 header files 1. Added two new AbortType values for TargetModeAbort Request: one to abort all IOs from a single initiator and other to abort only Command IUs. 2. Added Use Slot Information during Port Enable Event Reply flag to the Flags field of Manufacturing Page 7. 3. Added OEM Identifier to BiosOptions bits of BIOS Page 1. Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: Change in MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED ↵Sreekanth Reddy1-4/+1
notification methodology The intent of this patch is to perform a graceful shutdown of target drives even if volume doesn't exits. Changes done in this patch 1. Removed the check for the presence of volumes before sending down MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED. Therefore, this RAID action would be sent if the card is IR Firmware. 2. The MPI2_RAID_ACTION_SYSTEM_SHUTDOWN_INITIATED is sent even when the system undergoes suspend (in addition to remove/shutdown which was already present) Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-09-03[SCSI] mpt2sas: Null pointer deference possibility in ↵Sreekanth Reddy4-23/+25
mpt2sas_ctl_event_callback function Added a check to identify if mpi_reply is NULL in mpt2sas_ctl_event_callback() and return without proceeding if it is the case. Also modified the following functions to return void instead of 0 or 1 as returning those values from events perspective doesn't make sense. * _base_async_event() * mpt2sas_ctl_event_callback() * mpt2sas_scsih_event_callback() Signed-off-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] hpsa: fix warning with smp_processor_id() in preemptibleJohn Kacur1-1/+1
section Signed-off-by: John Kacur <[email protected]> On a 3.6-rt (real-time patch) kernel we are seeing the following BUG However, it appears to be relevant for non-realtime (mainline) as well. [ 49.688847] hpsa 0000:03:00.0: hpsa0: <0x323a> at IRQ 67 using DAC [ 49.749928] scsi0 : hpsa [ 49.784437] BUG: using smp_processor_id() in preemptible [00000000 00000000] code: kworker/u:0/6 [ 49.784465] caller is enqueue_cmd_and_start_io+0x5a/0x100 [hpsa] [ 49.784468] Pid: 6, comm: kworker/u:0 Not tainted 3.6.11.5-rt37.52.el6rt.x86_64.debug #1 [ 49.784471] Call Trace: [ 49.784512] [<ffffffff812abe83>] debug_smp_processor_id+0x123/0x150 [ 49.784520] [<ffffffffa009043a>] enqueue_cmd_and_start_io+0x5a/0x100 [hpsa] [ 49.784529] [<ffffffffa00905cb>] hpsa_scsi_do_simple_cmd_core+0xeb/0x110 [hpsa] [ 49.784537] [<ffffffff812b09c8>] ? swiotlb_dma_mapping_error+0x18/0x30 [ 49.784544] [<ffffffff812b09c8>] ? swiotlb_dma_mapping_error+0x18/0x30 [ 49.784553] [<ffffffffa0090701>] hpsa_scsi_do_simple_cmd_with_retry+0x91/0x280 [hpsa] [ 49.784562] [<ffffffffa0093558>] hpsa_scsi_do_report_luns.clone.2+0xd8/0x130 [hpsa] [ 49.784571] [<ffffffffa00935ea>] hpsa_gather_lun_info.clone.3+0x3a/0x1a0 [hpsa] [ 49.784580] [<ffffffffa00963df>] hpsa_update_scsi_devices+0x11f/0x4f0 [hpsa] [ 49.784592] [<ffffffff81592019>] ? sub_preempt_count+0xa9/0xe0 [ 49.784601] [<ffffffffa00968ad>] hpsa_scan_start+0xfd/0x150 [hpsa] [ 49.784613] [<ffffffff8158cba8>] ? rt_spin_lock_slowunlock+0x78/0x90 [ 49.784626] [<ffffffff813b04d7>] do_scsi_scan_host+0x37/0xa0 [ 49.784632] [<ffffffff813b05da>] do_scan_async+0x1a/0x30 [ 49.784643] [<ffffffff8107c4ab>] async_run_entry_fn+0x9b/0x1d0 [ 49.784655] [<ffffffff8106ae92>] process_one_work+0x1f2/0x620 [ 49.784661] [<ffffffff8106ae20>] ? process_one_work+0x180/0x620 [ 49.784668] [<ffffffff8106d4fe>] ? worker_thread+0x5e/0x3a0 [ 49.784674] [<ffffffff8107c410>] ? async_schedule+0x20/0x20 [ 49.784681] [<ffffffff8106d5d3>] worker_thread+0x133/0x3a0 [ 49.784688] [<ffffffff8106d4a0>] ? manage_workers+0x190/0x190 [ 49.784696] [<ffffffff81073236>] kthread+0xa6/0xb0 [ 49.784707] [<ffffffff815970a4>] kernel_thread_helper+0x4/0x10 [ 49.784715] [<ffffffff81082a7c>] ? finish_task_switch+0x8c/0x110 [ 49.784721] [<ffffffff8158e44b>] ? _raw_spin_unlock_irq+0x3b/0x70 [ 49.784727] [<ffffffff8158e85d>] ? retint_restore_args+0xe/0xe [ 49.784734] [<ffffffff81073190>] ? kthreadd+0x1e0/0x1e0 [ 49.784739] [<ffffffff815970a0>] ? gs_change+0xb/0xb ------------------- This is caused by enqueue_cmd_and_start_io()-> set_performant_mode()-> smp_processor_id() Which if you have debugging enabled calls debug_processor_id() and triggers the warning. The code here is c->Header.ReplyQueue = smp_processor_id() % h->nreply_queues; Since it is not critical that the code complete on the same processor, but the cpu is a hint used in generating the ReplyQueue and will still work if the cpu migrates or is preempted, it is safe to use the raw_smp_processor_id() to surpress the false positve warning. Signed-off-by: John Kacur <[email protected]> Acked-by: Stephen Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] IB/iser: Add Discovery supportOr Gerlitz1-0/+5
To run discovery over iSER we need to advertize the CAP_TEXT_NEGO capability towards user space. Also need to make sure the login RX buffer is posted when SendTargets TEXT PDUs are sent. For that end, we use a setting of the ISCSI_PARAM_DISCOVERY_SESS iscsi param as an indication that this is discovery session. Signed-off-by: Or Gerlitz <[email protected]> Reviewed-by: Mike Christie <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] pm8001: clean up unnecessary MSI/MSI-X capability findYijing Wang1-1/+1
PCI core will initialize device MSI/MSI-X capability in pci_msi_init_pci_dev(). So device driver should use pci_dev->msi_cap/msix_cap to determine whether the device support MSI/MSI-X instead of using pci_find_capability(pci_dev, PCI_CAP_ID_MSI/MSIX). Access to PCIe device config space again will consume more time. Signed-off-by: Yijing Wang <[email protected]> Acked-by: lindar_liu <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] pm80xx: Fix for 32 bit compilation warningAnand Kumar Santhanam1-1/+2
Signed-off-by: [email protected] Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] mpt3sas: fix cleanup on controller resource mapping failureJoe Lawrence2-10/+18
If mpt3sas_base_map_resources takes an early error path then its counterpart, mpt3sas_base_free_resources needs to be careful about cleaning up: 1 - _base_mask_interrupts and _base_make_ioc_ready require memory mapped I/O registers, make sure that this is true. 2 - _base_free_irq iterates over the adapter's reply_queue_list, so move this list head initialization out of _base_enable_msix to _scsih_probe so this will always be safe. 3 - check that the controller PCI device and its BARs have been enabled before disabling them. Signed-off-by: Joe Lawrence <[email protected]> Acked-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] mpt2sas: fix cleanup on controller resource mapping failureJoe Lawrence2-10/+18
If mpt2sas_base_map_resources takes an early error path then its counterpart, mpt2sas_base_free_resources needs to be careful about cleaning up: 1 - _base_mask_interrupts and _base_make_ioc_ready require memory mapped I/O registers, make sure that this is true. 2 - _base_free_irq iterates over the adapter's reply_queue_list, so move this list head initialization out of _base_enable_msix to _scsih_probe so this will always be safe. 3 - check that the controller PCI device and its BARs have been enabled before disabling them. Signed-off-by: Joe Lawrence <[email protected]> Acked-by: Sreekanth Reddy <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] Generate uevents on certain unit attention codesEwan D. Milne3-21/+115
Generate a uevent when the following Unit Attention ASC/ASCQ codes are received: 2A/01 MODE PARAMETERS CHANGED 2A/09 CAPACITY DATA HAS CHANGED 38/07 THIN PROVISIONING SOFT THRESHOLD REACHED 3F/03 INQUIRY DATA HAS CHANGED 3F/0E REPORTED LUNS DATA HAS CHANGED Log kernel messages when the following Unit Attention ASC/ASCQ codes are received that are not as specific as those above: 2A/xx PARAMETERS CHANGED 3F/xx TARGET OPERATING CONDITIONS HAVE CHANGED Added logic to set expecting_lun_change for other LUNs on the target after REPORTED LUNS DATA HAS CHANGED is received, so that duplicate uevents are not generated, and clear expecting_lun_change when a REPORT LUNS command completes, in accordance with the SPC-3 specification regarding reporting of the 3F 0E ASC/ASCQ UA. [jejb: remove SPC3 test in scsi_report_lun_change and some docbook fixes and unused variable fix, both reported by Fengguang Wu] Signed-off-by: Ewan D. Milne <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] pm80xx: fix Adaptec 71605H hangHans Verkuil2-4/+4
The IO command size is 128 bytes for these new controllers as opposed to 64 for the old 8001 controller. The Adaptec out-of-tree driver did this correctly. After comparing the two this turned out to be the crucial difference. So don't hardcode the IO command size, instead use pm8001_ha->iomb_size as that is the correct value for both old and new controllers. Signed-off-by: Hans Verkuil <[email protected]> Acked-by: Anand Kumar Santhanam <[email protected]> Acked-by: Jack Wang <[email protected]> Cc: [email protected] # for v3.10 and up Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] lpfc: Removed obsolete fcp_eq_count and fcp_wq_count driver attributesJames Smart3-32/+0
Signed-off-by: James Smart <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ipr: Add sereral new CCIN definitions for new adapters support[email protected]2-0/+21
Add the appropriate definitions and table entries for new adapter support. Signed-off-by: Wen Xiong <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] hpsa: remove unneeded variableTomas Henzl2-4/+0
Signed-off-by: Tomas Henzl <[email protected]> Acked-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] hpsa: fix a race in cmd_free/scsi_doneTomas Henzl1-2/+2
When the driver calls scsi_done and after that frees it's internal preallocated memory it can happen that a new job is enqueud before the memory is freed. The allocation fails and the message "cmd_alloc returned NULL" is shown. Patch below fixes it by moving cmd->scsi_done after cmd_free. Signed-off-by: Tomas Henzl <[email protected]> Acked-by: Stephen M. Cameron <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] isci: Fix a infinite loop.Xinghai Yu1-1/+1
It seems the "phy_index++;" have been placed in wrong place, without it the while circle up will do a infinite loop. Signed-off-by: Xinghai Yu <[email protected]> Acked-by: Lukasz Dorau <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: don't check resource with devm_ioremap_resourceWolfram Sang1-6/+0
devm_ioremap_resource does sanity checks on the given resource. No need to duplicate this in the driver. Signed-off-by: Wolfram Sang <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufshcd-pltfrm: remove redundant dev_err call in ufshcd_pltfrm_probe()Wei Yongjun1-1/+0
There is a error message within devm_ioremap_resource already, so remove the dev_err call to avoid redundant error message. Signed-off-by: Wei Yongjun <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: don't stop controller before scsi_remove_host()Akinobu Mita1-1/+1
scsi_remove_host() sends SYNCHRONIZE CACHE commands for write cache enabled scsi disk devices. So stopping controller working shouldn't be done before scsi_remove_host(). Signed-off-by: Akinobu Mita <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: don't disable_irq() if the IRQ can be shared among devicesAkinobu Mita2-4/+0
When removing the UFS driver, disable_irq() is called and the IRQ is not enabled again. Unfortunately, the IRQ is requested with IRQF_SHARED and it can be shared among several devices. So disabling the IRQ in this way is just breaking other devices which are sharing the IRQ. Signed-off-by: Akinobu Mita <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufshcd-pci: release ioremapped region during removing driverAkinobu Mita1-28/+9
Before commit 2953f850c3b80bdca004967c83733365d8aa0aa2 ("[SCSI] ufs: use devres functions for ufshcd"), UFSHCI register was ioremapped by each glue-driver (ufshcd-pltfrm and ufshcd-pci) during probing and it was iounmapped by core-driver during removing driver. The commit converted ufshcd-pltfrm to use devres functions, but it didn't convert ufshcd-pci. Therefore, the change causes ufshcd-pci driver not to iounmap UFSHCI register region during removing driver. This fixes it by converting ufshcd-pci to use devres functions. Signed-off-by: Akinobu Mita <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: Add runtime PM support for UFS host controller driverSujit Reddy Thumma3-7/+113
Add runtime PM helpers to suspend/resume UFS controller at runtime. Enable runtime PM by default for pci and platform drivers as the initialized hardware can suspend if it is not used after bootup. Signed-off-by: Sujit Reddy Thumma <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: Add support for host assisted background operationsSujit Reddy Thumma3-0/+376
Background operations in the UFS device can be disabled by the host to reduce the response latency of transfer requests. Add support for enabling/disabling the background operations during runtime suspend/resume of the device. If the device is in critical need of BKOPS it will raise an URGENT_BKOPS exception which should be handled by the host to make sure the device performs as expected. During bootup, the BKOPS is enabled in the device by default. The disable of BKOPS is supported only when the driver supports runtime suspend/resume operations as the runtime PM framework provides a way to determine the device idleness and hence BKOPS can be managed effectively. During runtime resume the BKOPS is disabled to reduce latency and during runtime suspend the BKOPS is enabled to allow device to carry out idle time BKOPS. In some cases where the BKOPS is disabled during runtime resume and due to continuous data transfers the runtime suspend is not triggered, the BKOPS is enabled when the device raises a level-2 exception (outstanding operations - performance impact). Signed-off-by: Sujit Reddy Thumma <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: Set fDeviceInit flag to initiate device initializationDolev Raviv4-11/+345
Allow UFS device to complete its initialization and accept SCSI commands by setting fDeviceInit flag. The device may take time for this operation and hence the host should poll until fDeviceInit flag is toggled to zero. This step is mandated by UFS device specification for device initialization completion. Signed-off-by: Dolev Raviv <[email protected]> Signed-off-by: Sujit Reddy Thumma <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>
2013-08-26[SCSI] ufs: Add support for sending NOP OUT UPIUSujit Reddy Thumma3-115/+539
As part of device initialization sequence, sending NOP OUT UPIU and waiting for NOP IN UPIU response is mandatory. This confirms that the device UFS Transport (UTP) layer is functional and the host can configure the device with further commands. Add support for sending NOP OUT UPIU to check the device connection path and test whether the UTP layer on the device side is functional during initialization. A tag is acquired from the SCSI tag map space in order to send the device management command. When the tag is acquired by internal command the scsi command is rejected with host busy flag in order to requeue the request. To avoid frequent collisions between internal commands and scsi commands the device management command tag is allocated in the opposite direction w.r.t block layer tag allocation. Signed-off-by: Sujit Reddy Thumma <[email protected]> Signed-off-by: Dolev Raviv <[email protected]> Signed-off-by: Santosh Y <[email protected]> Signed-off-by: James Bottomley <[email protected]>