[SCSI] ufs: Add support for sending NOP OUT UPIU
authorSujit Reddy Thumma <sthumma@codeaurora.org>
Mon, 29 Jul 2013 19:05:57 +0000 (00:35 +0530)
committerJames Bottomley <JBottomley@Parallels.com>
Mon, 26 Aug 2013 08:50:39 +0000 (12:50 +0400)
commit5a0b0cb9bee767ef10ff9ce2fb4141af06416288
tree42d6f09b2c724885e2b6ada7778789548fb9ae6f
parent5f09e1f310a57fd500d6a05e3e108c432691e2dc
[SCSI] ufs: Add support for sending NOP OUT UPIU

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 <sthumma@codeaurora.org>
Signed-off-by: Dolev Raviv <draviv@codeaurora.org>
Signed-off-by: Santosh Y <santoshsy@gmail.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/ufs/ufs.h
drivers/scsi/ufs/ufshcd.c
drivers/scsi/ufs/ufshcd.h