On 10-08-23 04:32 AM, Tejun Heo wrote:
On 08/19/2010 05:48 PM, Martin K. Petersen wrote:
Until now identifying that a device supports WRITE SAME(16) with the
UNMAP bit set has been black magic. Implement support for the new (SBC3
r24) Thin Provisioning VPD page and the TPWS bit.
Signed-off-by: Martin K. Petersen<martin.petersen@xxxxxxxxxx>
---
drivers/ata/libata-scsi.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index a54273d..e280ae6 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -2001,6 +2001,7 @@ static unsigned int ata_scsiop_inq_00(struct ata_scsi_args *args, u8 *rbuf)
0x89, /* page 0x89, ata info page */
0xb0, /* page 0xb0, block limits page */
0xb1, /* page 0xb1, block device characteristics page */
+ 0xb2, /* page 0xb2, thin provisioning page */
};
rbuf[3] = sizeof(pages); /* number of supported VPD pages */
@@ -2172,6 +2173,15 @@ static unsigned int ata_scsiop_inq_b1(struct ata_scsi_args *args, u8 *rbuf)
return 0;
}
+static unsigned int ata_scsiop_inq_b2(struct ata_scsi_args *args, u8 *rbuf)
+{
+ rbuf[1] = 0xb1;
+ rbuf[3] = 0x3c;
+ rbuf[5] = 1<< 6; /* TPWS */
I would love a bit more documentation here.
Yes, that style comes from my code in scsi_debug and
some of my utilities. Recently I added some more
documentation, just prior the the function:
/* SCSI Thin Provisioning VPD page: SBC-3 rev 22 or later */
I see no point in commenting the individual code lines.
Just follow that reference ...
And when I do then I see that rbuf[3] should be 4 (not 0x3c)
unless the DP bit is set.
Doug Gilbert
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html