- 28 5月, 2014 5 次提交
-
-
由 Sujit Reddy Thumma 提交于
As of now SCSI initiated error handling is broken because, the reset APIs don't try to bring back the device initialized and ready for further transfers. In case of timeouts, the scsi error handler takes care of handling aborts and resets. Improve the error handling in such scenario by resetting the device and host and re-initializing them in proper manner. Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Reviewed-by: NYaniv Gardi <ygardi@codeaurora.org> Tested-by: NDolev Raviv <draviv@codeaurora.org> Acked-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
由 Sujit Reddy Thumma 提交于
There is a possible race condition in the hardware when the abort command is issued to terminate the ongoing SCSI command as described below: - A bit in the door-bell register is set in the controller for a new SCSI command. - In some rare situations, before controller get a chance to issue the command to the device, the software issued an abort command. - If the device recieves abort command first then it returns success because the command itself is not present. - Now if the controller commits the command to device it will be processed. - Software thinks that command is aborted and proceed while still the device is processing it. - The software, controller and device may go out of sync because of this race condition. To avoid this, query task presence in the device before sending abort task command so that after the abort operation, the command is guaranteed to be non-existent in both controller and the device. Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Reviewed-by: NYaniv Gardi <ygardi@codeaurora.org> Tested-by: NDolev Raviv <draviv@codeaurora.org> Acked-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
由 Sujit Reddy Thumma 提交于
Currently, sending Task Management (TM) command to the card might be broken in some scenarios as listed below: Problem: If there are more than 8 TM commands the implementation returns error to the caller. Fix: Wait for one of the slots to be emptied and send the command. Problem: Sometimes it is necessary for the caller to know the TM service response code to determine the task status. Fix: Propogate the service response to the caller. Problem: If the TM command times out no proper error recovery is implemented. Fix: Clear the command in the controller door-bell register, so that further commands for the same slot don't fail. Problem: While preparing the TM command descriptor, the task tag used should be unique across SCSI/NOP/QUERY/TM commands and not the task tag of the command which the TM command is trying to manage. Fix: Use a unique task tag instead of task tag of SCSI command. Problem: Since the TM command involves H/W communication, abruptly ending the request on kill interrupt signal might cause h/w malfunction. Fix: Wait for hardware completion interrupt with TASK_UNINTERRUPTIBLE set. Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Reviewed-by: NYaniv Gardi <ygardi@codeaurora.org> Tested-by: NDolev Raviv <draviv@codeaurora.org> Acked-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
由 Sujit Reddy Thumma 提交于
Make undeclared functions static and declare exported symbols to suppress warnings from sparse tool. Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Acked-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
由 Sujit Reddy Thumma 提交于
Fix many warnings with incorrect endian assumptions which makes the code unportable to new architectures. The UFS specification defines the byte order as big-endian for UPIU structure and little-endian for the host controller transfer/task management descriptors. Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Acked-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NChristoph Hellwig <hch@lst.de>
-
- 07 9月, 2013 5 次提交
-
-
由 Seungwon Jeon 提交于
UIC attributes can be set with using DME_SET command for power mode change. For configuration the link capability attributes are used, which is updated after successful link startup. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
Setting PA_PWRMode using DME_SET triggers the power mode change. And then the result will be given by the HCS.UPMCRS. This operation should be done atomically. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
Implements to support GET and SET operations of the DME. These operations are used to configure the behavior of the UNIPRO. Along with basic operation, {Peer/AttrSetType} can be mixed. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
IACTH(Interrupt aggregation counter threshold) value is allowed up to 0x1F and current setting value is the maximum. This value is related with NUTRS(max:0x20) of HCI's capability. Considering HCI controller doesn't support the maximum, IACTH setting should be adjusted with possible value. For that, existing 'ufshcd_config_int_aggr' is split into two part [reset, configure]. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
Unlike 'GOOD' and 'CHECK CONDITION', other status values in Response UPIU may or may not contain sense data. That is returning sense data isn't obvious. So, in this case the Data Segment Length field should be checked. If a non-zero value, it means that UPIU has Sense Data in the Data Segment area. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 26 8月, 2013 5 次提交
-
-
由 Akinobu Mita 提交于
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: NAkinobu Mita <mita@fixstars.com> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sujit Reddy Thumma 提交于
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: NSujit Reddy Thumma <sthumma@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sujit Reddy Thumma 提交于
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: NSujit Reddy Thumma <sthumma@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Dolev Raviv 提交于
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: NDolev Raviv <draviv@codeaurora.org> Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sujit Reddy Thumma 提交于
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: NSujit Reddy Thumma <sthumma@codeaurora.org> Signed-off-by: NDolev Raviv <draviv@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 29 6月, 2013 7 次提交
-
-
由 Akinobu Mita 提交于
In UIC error interrupt handling, it checks if UIC data link layer error code indicates PA_INIT_ERROR in order to determine whether a fatal error handling is needed or not. But the code tries to read UIC data link layer error code from wrong REG_UIC_ERROR_CODE_PHY_ADAPTER_LAYER, it should be REG_UIC_ERROR_CODE_DATA_LINK_LAYER. Signed-off-by: NAkinobu Mita <mita@fixstars.com> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
This patch replaces normal calls for resource allocation with devm_*() derivative functions. It makes resource freeing simpler. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Sujit Reddy Thumma 提交于
The response UPIU length should be in DWORD and not in bytes. Signed-off-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
Link start-up requires long time with multiphase handshakes between UFS host and device. This affects driver's probe time. This patch let link start-up run asynchronously. Link start-up will be executed at the end of prove separately. Along with this change, the following is worked. Defined completion time of uic command to avoid a permanent wait. Added mutex to guarantee of uic command at a time. Adapted some sequence of controller initialization after link statup according to HCI standard. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Signed-off-by: NSujit Reddy Thumma <sthumma@codeaurora.org> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
There is no need to check the version to clear the interrupt status. And the order is changed prior to actual handling. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
It makes interrupt setting more flexible especially for disabling. And wrong bit mask is fixed for ver 1.0. [17:16] is added for mask. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Seungwon Jeon 提交于
Simplify operations with hiding mmio_base. Signed-off-by: NSeungwon Jeon <tgih.jun@samsung.com> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 03 5月, 2013 1 次提交
-
-
由 Vinayak Holikatti 提交于
This patch corrects the expected data transfer size of the command UPIU. The current implementation of cmd->transfersize is wrong as it probably equal to sector size. With this implementation the transfer size is updated correctly Reported-by: NKOBAYASHI Yoshitake <yoshitake.kobayashi@toshiba.co.jp> Reviewed-by: NArnd Bergmann <arnd@arndb.de> Reviewed-by: NNamjae Jeon <linkinjeon@gmail.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NSantosh Yaraganavi <santoshsy@gmail.com> Signed-off-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 26 2月, 2013 2 次提交
-
-
由 Vinayak Holikatti 提交于
This patch separates PCI code from ufshcd.c and makes it as a core driver module and adds a new file ufshcd-pci.c as PCI glue driver. [jejb: strip __devinit and devexit_p()] Reviewed-by: NArnd Bergmann <arnd@arndb.de> Reviewed-by: NNamjae Jeon <linkinjeon@gmail.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NSantosh Yaraganavi <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Vinayak Holikatti 提交于
This patch segregates the PCI specific code in ufshcd.c to make it ready for splitting into core ufs driver and PCI glue driver. Also copyright header modification to remove extra warranty disclaim. Reviewed-by: NArnd Bergmann <arnd@arndb.de> Reviewed-by: NNamjae Jeon <linkinjeon@gmail.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Tested-by: NMaya Erez <merez@codeaurora.org> Signed-off-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NSantosh Yaraganavi <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 04 1月, 2013 1 次提交
-
-
由 Greg Kroah-Hartman 提交于
CONFIG_HOTPLUG is going away as an option. As a result, the __dev* markings need to be removed. This change removes the use of __devinit, __devexit_p, __devinitdata, __devinitconst, and __devexit from these drivers. Based on patches originally written by Bill Pemberton, but redone by me in order to handle some of the coding style issues better, by hand. Cc: Bill Pemberton <wfp5p@virginia.edu> Cc: Adam Radford <linuxraid@lsi.com> Cc: "James E.J. Bottomley" <JBottomley@parallels.com> Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
-
- 20 7月, 2012 3 次提交
-
-
由 Namjae Jeon 提交于
Currently the UFS host driver has returned incorrect values for SUCCESS and FAILED. Fix it to return the correct value to the upper layer. Signed-off-by: NNamjae Jeon <linkinjeon@gmail.com> Acked-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NVenkatraman S <svenkatr@ti.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Venkatraman S 提交于
Otherwise it counter intuitively returns 0 if device is present. Signed-off-by: NVenkatraman S <svenkatr@ti.com> Reviewed-by: NNamjae Jeon <linkinjeon@gmail.com> Acked-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Venkatraman S 提交于
Use macro module_pci_driver and get rid of boilerplate code. No functional changes. Signed-off-by: NVenkatraman S <svenkatr@ti.com> Acked-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 23 5月, 2012 1 次提交
-
-
由 Namjae Jeon 提交于
Avoid dereferencing a NULL pointer if scsi_host_alloc is failed. Signed-off-by: NNamjae Jeon <linkinjeon@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 10 5月, 2012 2 次提交
-
-
由 Santosh Yaraganavi 提交于
UTP Transfer request list base registers UTRLBA and UTRLBAU must be assigned, lower-32 and upper-32 bits of UTRLD list physical base addresses respectively. Currently UTRLBAU is being assigned lower-32 bits of UTRLD physical base address. This will cause an issue with controllers that can support 64-bit addressing. This patch correctly assigns upper-32 bits of UTRLD physical base address to UTRLBAU. Reported-by: NRene De Jong <rene.dejong@arm.com> Signed-off-by: NSantosh Yaraganavi <santoshsy@gmail.com> Reviewed-by: NVinayak Holikatti <vinholikatti@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
由 Venkatraman S 提交于
While interpreting the result of UTP task completion status, by using boolean &&, the evaluation would fail when the UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED was received. Either UPIU_TASK_MANAGEMENT_FUNC_COMPL or UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED should be considered as a success result. Reported-by: NJoe Perches <joe@perches.com> Signed-off-by: NVenkatraman S <svenkatr@ti.com> Reviewed-by: NNamjae Jeon <linkinjeon@gmail.com> Acked-by: NSantosh Y <santoshsy@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-
- 27 3月, 2012 1 次提交
-
-
由 Santosh Yaraganavi 提交于
This patch adds support for Universal Flash Storage(UFS) host controllers. The UFS host controller driver includes host controller initialization method. The Initialization process involves following steps: - Initiate UFS Host Controller initialization process by writing to Host controller enable register - Configure UFS Host controller registers with host memory space datastructure offsets. - Unipro link startup procedure - Check for connected device - Configure UFS host controller to process requests - Enable required interrupts - Configure interrupt aggregation [jejb: fix warnings in 32 bit compile] Signed-off-by: NSantosh Yaraganavi <santoshsy@gmail.com> Signed-off-by: NVinayak Holikatti <vinholikatti@gmail.com> Reviewed-by: NArnd Bergmann <arnd@linaro.org> Reviewed-by: NVishak G <vishak.g@samsung.com> Reviewed-by: NGirish K S <girish.shivananjappa@linaro.org> Reviewed-by: NNamjae Jeon <linkinjeon@gmail.com> Signed-off-by: NJames Bottomley <JBottomley@Parallels.com>
-