linux-arm-msm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Dolev Raviv <draviv@codeaurora.org>
To: James.Bottomley@HansenPartnership.com, hch@infradead.org
Cc: linux-scsi@vger.kernel.org, linux-scsi-owner@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, santoshsy@gmail.com,
	Subhash Jadavani <subhashj@codeaurora.org>,
	Sujit Reddy Thumma <sthumma@codeaurora.org>,
	Dolev Raviv <draviv@codeaurora.org>
Subject: [PATCH V3 01/16] scsi: support well known logical units
Date: Wed, 10 Sep 2014 14:54:08 +0300	[thread overview]
Message-ID: <1410350063-23267-2-git-send-email-draviv@codeaurora.org> (raw)
In-Reply-To: <1410350063-23267-1-git-send-email-draviv@codeaurora.org>

From: Subhash Jadavani <subhashj@codeaurora.org>

REPORT LUNS command has "SELECT REPORT" field which controls what type of
logical units to be reported by device server. According to UFS device
standard, if this field is set to 0, REPORT LUNS would report only report
standard logical units. If it's set to 1 then it would report only well
known logical unit and if it's set to 2 then device would report both
standard and well known logical units.

Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Signed-off-by: Dolev Raviv <draviv@codeaurora.org>

diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 56675db..d7f0df8 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -805,6 +805,14 @@ static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result,
 	} else {
 		sdev->type = (inq_result[0] & 0x1f);
 		sdev->removable = (inq_result[1] & 0x80) >> 7;
+
+		/*
+		 * some devices may respond with wrong type for
+		 * well-known logical units. Force well-known type
+		 * to enumerate them correctly.
+		 */
+		if (scsi_is_wlun(sdev->lun))
+			sdev->type = TYPE_WLUN;
 	}
 
 	if (sdev->type == TYPE_RBC || sdev->type == TYPE_ROM) {
@@ -1400,6 +1408,12 @@ static int scsi_report_lun_scan(struct scsi_target *starget, int bflags,
 	memset(&scsi_cmd[1], 0, 5);
 
 	/*
+	 * Set "SELECT REPORT" field to 0x2 which will make device to
+	 * report well known logical units along with standard LUs.
+	 */
+	scsi_cmd[2] = 0x2;
+
+	/*
 	 * bytes 6 - 9: length of the command.
 	 */
 	scsi_cmd[6] = (unsigned char) (length >> 24) & 0xff;
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 261e708..d17178e 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
@@ -333,6 +333,7 @@ static inline int scsi_status_is_good(int status)
 #define TYPE_RBC	    0x0e
 #define TYPE_OSD            0x11
 #define TYPE_ZBC            0x14
+#define TYPE_WLUN           0x1e    /* well-known logical unit */
 #define TYPE_NO_LUN         0x7f
 
 /* SCSI protocols; these are taken from SPC-3 section 7.5 */
-- 
1.8.5.2
-- 
QUALCOMM ISRAEL, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation

  reply	other threads:[~2014-09-10 11:54 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-10 11:54 [PATCH V3 00/16] UFS: Power management support Dolev Raviv
2014-09-10 11:54 ` Dolev Raviv [this message]
2014-09-10 18:58   ` [PATCH V3 01/16] scsi: support well known logical units Christoph Hellwig
2014-09-12  0:41     ` Subhash Jadavani
2014-09-13 18:54       ` 'Christoph Hellwig'
2014-09-18 17:18         ` Subhash Jadavani
2014-09-18 19:12           ` Subhash Jadavani
2014-09-22 14:28             ` 'Christoph Hellwig'
2014-09-23 21:40               ` Subhash Jadavani
2014-09-10 11:54 ` [PATCH V3 02/16] scsi: balance out autopm get/put calls in scsi_sysfs_add_sdev() Dolev Raviv
2014-09-13 18:54   ` Christoph Hellwig
2014-09-10 11:54 ` [PATCH V3 03/16] scsi: ufs: Allow vendor specific initialization Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 04/16] scsi: ufs: Add regulator enable support Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 05/16] scsi: ufs: Add clock initialization support Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 06/16] scsi: ufs: refactor query descriptor API support Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 07/16] scsi: ufs: improve init sequence Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 08/16] scsi: ufs: Active Power Mode - configuring bActiveICCLevel Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 09/16] scsi: ufs: introduce well known logical unit in ufs Dolev Raviv
2014-09-11 13:06   ` Akinobu Mita
2014-09-15 10:39     ` Dolev Raviv
2014-09-15 14:55       ` Akinobu Mita
2014-09-10 11:54 ` [PATCH V3 10/16] scsi: ufs: add UFS power management support Dolev Raviv
2014-09-10 13:58   ` Akinobu Mita
2014-09-15 11:09     ` Dolev Raviv
2014-09-16 13:44   ` Akinobu Mita
2014-09-18 13:02   ` Kiran Padwal
2014-09-21 14:35     ` Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 11/16] scsi: ufs: refactor configuring power mode Dolev Raviv
2014-09-11 13:09   ` Akinobu Mita
2014-09-15 11:10     ` Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 12/16] scsi: ufs: Add support for clock gating Dolev Raviv
2014-09-18 13:05   ` Kiran Padwal
2014-09-10 11:54 ` [PATCH V3 13/16] scsi: ufs: Add freq-table-hz property for UFS device Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 14/16] scsi: ufs: Add support for clock scaling using devfreq framework Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 15/16] scsi: ufs: tune bkops while power managment events Dolev Raviv
2014-09-10 11:54 ` [PATCH V3 16/16] scsi: ufs: definitions for phy interface Dolev Raviv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1410350063-23267-2-git-send-email-draviv@codeaurora.org \
    --to=draviv@codeaurora.org \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=hch@infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-scsi-owner@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=santoshsy@gmail.com \
    --cc=sthumma@codeaurora.org \
    --cc=subhashj@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).