On Wed, Oct 5, 2011 at 5:45 PM, Sergei Shtylyov <sshtylyov@xxxxxxxxxx> wrote: > On 01.10.2011 5:43, ming.lei@xxxxxxxxxxxxx wrote: > >> From: Ming Lei <ming.lei@xxxxxxxxxxxxx> > >> This quirk patch fixes one kind of bug inside some Intel Sandybridge >> chipsets, see reports from > >> https://bugzilla.kernel.org/show_bug.cgi?id=40592. > >> Many guys also have reported the problem before: > >> https://bugs.launchpad.net/bugs/737388 >> https://bugs.launchpad.net/bugs/794642 >> https://bugs.launchpad.net/bugs/782389 >> ...... > >> With help from Tejun, the problem is found to be caused by 32bit PIO >> mode, so introduce the quirk patch to disable 32bit PIO on SATA piix >> for some Sandybridge CPT chipsets. > >> Seth also tested the patch on all five affected chipsets >> (pci device ID: 0x1c00, 0x1c01, 0x1d00, 0x1e00, 0x1e01), and found >> the patch does fix the problem. > >> Tested-by: Heasley, Seth<seth.heasley@xxxxxxxxx> >> Cc: Alan Cox<alan@xxxxxxxxxxxxxxx> >> Signed-off-by: Ming Lei<ming.lei@xxxxxxxxxxxxx> >> Signed-off-by: Tejun Heo<htejun@xxxxxxxxx> >> --- >> drivers/ata/ata_piix.c | 37 ++++++++++++++++++++++++++++++++----- >> include/linux/libata.h | 1 + >> 2 files changed, 33 insertions(+), 5 deletions(-) > >> diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c >> index 43107e9..70095be 100644 >> --- a/drivers/ata/ata_piix.c >> +++ b/drivers/ata/ata_piix.c >> @@ -113,6 +113,8 @@ enum { >> PIIX_PATA_FLAGS = ATA_FLAG_SLAVE_POSS, >> PIIX_SATA_FLAGS = ATA_FLAG_SATA | PIIX_FLAG_CHECKINTR, >> >> + PIIX_FLAG_PIO16 = ATA_FLAG_PIO16, > > It's not clear why are you declaring a ganeric flag and then add a local > name for it... It is just same with other flags, isn't it? > >> diff --git a/include/linux/libata.h b/include/linux/libata.h >> index efd6f98..dc68de5 100644 >> --- a/include/linux/libata.h >> +++ b/include/linux/libata.h >> @@ -207,6 +207,7 @@ enum { >> ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity >> * led */ >> ATA_FLAG_NO_DIPM = (1 << 23), /* host not happy with DIPM */ >> + ATA_FLAG_PIO16 = (1 << 24), /*16bit PIO */ > > Please, fix the formatting. Or better totally remove this. It is used to describe if the controller only supports 16bit PIO, and it is introduced to fix the problem on SNB chips. thanks, -- Ming Lei -- 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