From mboxrd@z Thu Jan 1 00:00:00 1970 From: Douglas Gilbert Subject: Re: [PATCH 1/6] libata: Signal that our SATL supports WRITE SAME(16) with UNMAP Date: Mon, 23 Aug 2010 14:29:04 -0400 Message-ID: <4C72BDF0.7080000@interlog.com> References: <1282232941-9910-1-git-send-email-martin.petersen@oracle.com> <1282232941-9910-2-git-send-email-martin.petersen@oracle.com> <4C723215.3080507@kernel.org> <4C72BC60.4090705@interlog.com> Reply-To: dgilbert@interlog.com Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4C72BC60.4090705@interlog.com> Sender: linux-ide-owner@vger.kernel.org To: Tejun Heo , "Martin K. Petersen" Cc: linux-ide@vger.kernel.org, linux-scsi@vger.kernel.org, hch@lst.de List-Id: linux-scsi@vger.kernel.org On 10-08-23 02:22 PM, Douglas Gilbert wrote: > 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 >>> --- >>> 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. ... and of course rbuf[1] should be 0xb2 . Martin ???? The rbuf[5] line is correct :-) Doug Gilbert