- 09 11月, 2016 6 次提交
-
-
由 Dov Levenglick 提交于
In case the power configuration fails, skip further processing of the probing function and return immediately. This has 2 reasons: 1. Don't allow the UFS to continue running in PWM 2. Avoid multiple calls to pm_runtime_put_sync() when not in error handling or power management contexts Signed-off-by: NDov Levenglick <dovl@codeaurora.org> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Gilad Broner 提交于
During runtime resume operation, clock scaling may get indirectly resumed via call to ufshcd_set_dev_pwr_mode(): Start/Stop Unit command times out and SCSI error handling ultimately calls the host reset handler to recover, during which clock scaling is resumed. Error case exit path of runtime resume will disable clocks. As clock scaling was already resumed, it will get scheduled later on and try to access UFS registers while clocks are disabled, resulting in unclocked register access. Signed-off-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Gilad Broner 提交于
According to UFS device specification, sense data can be only 18 bytes long, this change makes the changes accordingly. Signed-off-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Gilad Broner 提交于
Add a write memory barrier to make sure descriptors prepared are actually written to memory before ringing the doorbell. We have also added the write memory barrier after ringing the doorbell register so that controller sees the new request immediately. Signed-off-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
In this change there are a few fixes of possible NULL pointer access and possible access to index that exceeds array boundaries. Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Subhash Jadavani 提交于
Vendor specific setup_clocks callback may require the clocks managed by ufshcd driver to be ON. So if the vendor specific setup_clocks callback is called while the required clocks are turned off, it could result into unclocked register access. To prevent possible unclock register access, this change adds one more argument to setup_clocks callback to let it know whether it is called pre/post the clock changes by core driver. Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Reviewed-by: NKiwoong Kim <kwmad.kim@samsung.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 30 9月, 2016 3 次提交
-
-
由 Joao Pinto 提交于
Currently if we have PCI and UFSHCD configured in the kernel, both SCSI_UFS_DWC_TC_PCI and SCSI_UFSHCD_PCI show up, which is not correct. This patch changes the UFS Kconfig to assure hierarchy between the 2 options. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Wei Yongjun 提交于
Fix to return a negative error code from the error handling case instead of 0, as done elsewhere in this function. Signed-off-by: NWei Yongjun <weiyongjun1@huawei.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Reviewed-by: NKiwoong Kim <kwmad.kim@samsung.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Zang Leigang 提交于
Some devices have problems handling a Query UPIU with Data Segment set. Only set it for WRITE DESCRIPTOR commands. [mkp: updated patch description] Signed-off-by: NZang Leigang <zangleigang@hisilicon.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Reviewed-by: NKiwoong Kim <kwmad.kim@samsung.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 28 9月, 2016 1 次提交
-
-
由 Kyuho Choi 提交于
This patch enable no vccq quirk for SKHynix devices. SKHynix ufs device don't need vccq vrail for device operation. Signed-off-by: NKyuho Choi <kyuho.choi@sk.com> Reviewed-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 22 9月, 2016 1 次提交
-
-
由 Kiwoong Kim 提交于
When any UFS host controller receives a TM(Task Management) response from a UFS device, UFS driver has been recognize like receiving a message of "Task Management Function Complete"(00h) in all cases, so far. That means there is no pending task for a tag of the TM request sent before in the UFS device. That's because the byte offset 6 in TM response which has been used to get a TM service response so far represents just whether or not a TM transmission passes. Regarding UFS spec, the correct byte offset to get TM service response is 15, not 6. I tested that UFS driver responds properly for the TM response from a UFS device with an reference board with exynos8890, as follow: No pending task -> Task Management Function Complete (00h) Pending task -> Task Management Function Succeeded (08h) [mkp: applied by hand] Signed-off-by: NKiwoong Kim <kwmad.kim@samsung.com> Signed-off-by: NHeonGwang Chu <hg.chu@samsung.com> Tested-by: N: Kiwoong Kim <kwmad.kim@samsung.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 09 9月, 2016 1 次提交
-
-
由 Kiwoong Kim 提交于
I modified a string as described in UFS spec as follow: umpcrs -> upmcrs. [mkp: applied by hand] Signed-off-by: NKiwoong Kim <kwmad.kim@samsung.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 04 9月, 2016 1 次提交
-
-
由 Baoyou Xie 提交于
We get 2 warnings when build kernel with W=1: drivers/scsi/ufs/tc-dwc-g210.c:261:5: warning: no previous prototype for 'tc_dwc_g210_config_40_bit' [-Wmissing-prototypes] drivers/scsi/ufs/tc-dwc-g210.c:293:5: warning: no previous prototype for 'tc_dwc_g210_config_20_bit' [-Wmissing-prototypes] In fact, these functions are declared in ufs/tc-dwc-g210.h, so this patch add missing header dependencies Signed-off-by: NBaoyou Xie <baoyou.xie@linaro.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 16 7月, 2016 2 次提交
-
-
由 Tiezhu Yang 提交于
When buff_ascii kmalloc failed, there is no need to call kfree, it should return -ENOMEM directly, this patch fixes it. Signed-off-by: NTiezhu Yang <kernelpatch@126.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Manjunath M B 提交于
The code was checking on PA_CONNECTEDRXLANES and PA_CONNECTEDTXLANES attributes to program the Lane#1 attributes. The correct attributes are PA_AVAILRXDATALANES and PA_AVAILTXDATALANES respectively. Signed-off-by: NManjunath M B <manjumb@synopsys.com> Tested-by: NJoao Pinto <jpinto@synopsys.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 13 7月, 2016 9 次提交
-
-
由 Joao Pinto 提交于
This patch adds license info to the tc-dwc-g210 and ufshcd-dwc files in order for them to have access to some ufshcd symbols when all are built as modules. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
This patch adds a glue pci driver for the Synopsys G210 Test Chip. [mkp: Fixed Kconfig depends and module name] Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Reviewed-by: NHannes Reinicke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
This patch adds a glue platform driver for the Synopsys G210 Test Chip. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Reviewed-by: NHannes Reinicke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
This patch adds support for Synopsys G210 Test Chip. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Reviewed-by: NHannes Reinicke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
This patch has the goal to add support for DesignWare UFS Controller specific operations. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Reviewed-by: NHannes Reinicke <hare@suse.de> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
Add link status to ufshci. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Acked-by: NTomas Winkler <tomas.winkler@intel.com> Reviewed-by: NHannes Reinecke <hare@suse.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
Add unipro attributes. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Acked-by: NTomas Winkler <tomas.winkler@intel.com> Reviewed-by: NHannes Reinecke <hare@suse.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
Add UFS 2.0 support to the UFS core driver. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Acked-by: NArnd Bergmann <arnd@arndb.de> Acked-by: NTomas Winkler <tomas.winkler@intel.com> Reviewed-by: NHannes Reinecke <hare@suse.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Joao Pinto 提交于
Fixed typo in ufshcd-pltfrm. Signed-off-by: NJoao Pinto <jpinto@synopsys.com> Acked-by: NArnd Bergmann <arnd@arndb.de> Acked-by: NTomas Winkler <tomas.winkler@intel.com> Reviewed-by: NHannes Reinecke <hare@suse.com> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 19 3月, 2016 1 次提交
-
-
由 Arnd Bergmann 提交于
A recent change to ufshcd introduced a call to utf16s_to_utf8s, a function that is provided by the NLS module, so we get a link error when that is not present: drivers/scsi/built-in.o: In function `ufshcd_read_string_desc': :(.text+0x124d0): undefined reference to `utf16s_to_utf8s' This adds a Kconfig 'select' statement to avoid the build error. Signed-off-by: NArnd Bergmann <arnd@arndb.de> Fixes: b573d484 ("scsi: ufs: add support to read device and string descriptors") Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
- 15 3月, 2016 15 次提交
-
-
由 Yaniv Gardi 提交于
This change adds printouts of testbus and debug registers. Reviewed-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
This change enables the device ref clock before changing to HS mode and disables it if entered to PWM mode. Reviewed-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Some UFS devices (and may be host) have issues if LCC is enabled. So we are setting PA_Local_TX_LCC_Enable to 0 before link startup which will make sure that both host and device TX LCC are disabled once link startup is completed. Reviewed-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
We put the UFS device in sleep state & UFS link in hibern8 state during runtime suspend. After this we put all the UFS rails in low power modes immediately but it seems some devices may still draw more than sleep current from UFS rails (especially from VCCQ rail) at-least for 500us. To avoid this situation, this change adds 2ms delay before putting these UFS rails in LPM mode. Reviewed-by: NGilad Broner <gbroner@codeaurora.org> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Currently when we try to put the link in off/disabled state during suspend, it seems link is not being kept in low power mode. This patch fixes the issue by putting the link in hibern8 first (so device also puts the link in low power mode) and then stop the host controller. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Optimal values of local UniPro parameters like PA_Hibern8Time & PA_TActivate can help reduce the hibern8 exit latency. If both host and device supports UniPro ver1.6 or later, these parameters will be automatically tuned during link startup itself. But if either host or device doesn't support UniPro ver 1.6 or later, we have to manually tune them. But to keep manual tuning logic simple, we will only do manual tuning if local unipro version doesn't support ver1.6 or later. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
We are seeing that some devices are raising the urgent bkops exception events even when BKOPS status doesn't indicate performace impacted or critical. Handle these device by determining their urgent bkops status at runtime. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Query commands have 100ms timeout and it may timeout if they are issued in parallel to ongoing read/write SCSI commands, this change adds the retry (max: 10) in case command timeouts. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Some vendor's UFS device sends back to back NACs for the DL data frames causing the host controller to raise the DFES error status. Sometimes such UFS devices send back to back NAC without waiting for new retransmitted DL frame from the host and in such cases it might be possible the Host UniPro goes into bad state without raising the DFES error interrupt. If this happens then all the pending commands would timeout only after respective SW command (which is generally too large). This change workarounds such device behaviour like this: - As soon as SW sees the DL NAC error, it would schedule the error handler - Error handler would sleep for 50ms to see if there any fatal errors raised by UFS controller. - If there are fatal errors then SW does normal error recovery. - If there are no fatal errors then SW sends the NOP command to device to check if link is alive. - If NOP command times out, SW does normal error recovery - If NOP command succeed, skip the error handling. If DL NAC error is seen multiple times with some vendor's UFS devices then enable this quirk to initiate quick error recovery and also silence related error logs to reduce spamming of kernel logs. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
UFS driver's error handler forcefully tries to clear all the pending requests. For each pending request in the queue, it waits 1 sec for it to get cleared. If we have multiple requests in the queue then it's possible that we might end up waiting for those many seconds before resetting the host. But note that resetting host would any way clear all the pending requests from the hardware. Hence this change skips the forceful clear of the pending requests if we are anyway going to reset the host (for fatal errors). Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Some UFS devices don't require VCCQ rail for device operations hence this change adds support to recognize such devices and remove vote for the unused VCCQ rail. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NSubhash Jadavani <subhashj@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Currently we use the host quirks mechanism in order to handle both device and host controller quirks. In order to support various of UFS devices we should separate handling the device quirks from the host controller's. Reviewed-by: NGilad Broner <gbroner@codeaurora.org> Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NRaviv Shvili <rshvili@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
This change adds support to read device descriptor and string descriptor from a UFS device Reviewed-by: NGilad Broner <gbroner@codeaurora.org> Reviewed-by: NHannes Reinecke <hare@suse.com> Signed-off-by: NRaviv Shvili <rshvili@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
Sometimes due to hw issues it takes some time to the host controller register to update. In order to verify the register has updated, a polling is done until its value is set. In addition the functions ufshcd_hba_stop() and ufshcd_wait_for_register() was updated with an additional input parameter, indicating the timeout between reads will be done by sleeping or spinning the cpu. Reviewed-by: NHannes Reinecke <hare@suse.com> Signed-off-by: NRaviv Shvili <rshvili@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-
由 Yaniv Gardi 提交于
A race condition exists between request requeueing and scsi layer error handling: When UFS driver queuecommand returns a busy status for a request, it will be requeued and its tag will be freed and set to -1. At the same time it is possible that the request will timeout and scsi layer will start error handling for it. The scsi layer reuses the request and its tag to send error related commands to the device, however its tag is no longer valid. As this request was never really sent to the device, there is no point to start error handling with the device. Implement the scsi error handling timeout callback and bypass SCSI error handling for request that were not actually sent to the device. For such requests simply reset the block layer timer. Otherwise, let SCSI layer perform the usual error handling. Reviewed-by: NHannes Reinecke <hare@suse.de> Signed-off-by: NGilad Broner <gbroner@codeaurora.org> Signed-off-by: NYaniv Gardi <ygardi@codeaurora.org> Signed-off-by: NMartin K. Petersen <martin.petersen@oracle.com>
-