summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2016-02-02 17:11:46 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:26:07 -0700
commit7a20ab7dd530b4fa9658674b6dd69cf77244252e (patch)
tree2639b3f3087fafea1c11cca87c44bd6bbe2ebd2b /include/linux
parenteb5d03ccb23f1a9cf68c231bf25a7e28d6049dea (diff)
scsi: ufs: increase the scsi query response timeout
It is found thats UFS device may take longer than 100ms to respond to query requests and in this case we might run into following scenario: 1. UFS host SW sends a query request to UFS device to read an attribute value. SW uses tag #31 for this purpose. 2. UFS host SW waits for 100ms to get the query response (and doorbell to be cleared by UFS host HW). 3. UFS device doesn't respond back within 100ms hence UFS host SW times out waiting for the query response. 4. UFS host SW clears the tag#31 from UTRLCLR register. 5. UFS host SW waits until UFS host HW to clear tag#31 from the doorbell register. 6. UFS host SW retries the same query request on same tag#31 (sends a query request to device to read an attribute value). 7. UFS host HW gets the query response from the device but this was intended as a query response for the 1st query request sent (step-1). 8. Now UFS device sends another query response to host (for query request sent @step-6). Now there are 2 issues that could happen with above scenario: 1. UFS device should have actually responded back with only one query response but it is found that device may respond back with 2 query responses. 2. If UFS device responds back with 2 resposes on same tag, host HW/SW behaviour isn't predictable. To avoid running into above scenario, we would basically allow device to take longer (upto 1.5 seconds) for query response. CRs-Fixed: 966573 Change-Id: I9885cac614eff011b617064edcd31d0e8daddd45 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions