[libata] support for > 512 byte sectors (e.g. 4K Native)
authorGrant Grundler <grundler@google.com>
Tue, 17 Aug 2010 17:56:53 +0000 (10:56 -0700)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 22 Oct 2010 00:21:03 +0000 (20:21 -0400)
commit295124dce4ddfd40b1f12d3ffd2779673e87c701
treecccdc9d6270fbc72b9147050232c627f7ddee23b
parent1aadf5c3bbbbb0db09dcb5aa26c61326e0d3e9e7
[libata] support for > 512 byte sectors (e.g. 4K Native)

This change enables my x86 machine to recognize and talk to a
"Native 4K" SATA device.

When I started working on this, I didn't know Matthew Wilcox had
posted a similar patch 2 years ago:
  http://git.kernel.org/?p=linux/kernel/git/willy/ata.git;a=shortlog;h=refs/heads/ata-large-sectors

Gwendal Grignou pointed me at the the above code and small portions of
this patch include Matthew's work. That's why Mathew is first on the
"Signed-off-by:". I've NOT included his use of a bitmap to determine
512 vs Native for ATA command block size - just used a simple table.
And bugs are almost certainly mine.

Lastly, the patch has been tested with a native 4K 'Engineering
Sample' drive provided by Hitachi GST.

Signed-off-by: Matthew Wilcox <matthew.r.wilcox@intel.com>
Signed-off-by: Grant Grundler <grundler@google.com>
Reviewed-by: Gwendal Grignou <gwendal@google.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/libata-scsi.c
include/linux/ata.h