[PATCH] pata_legacy: correctly mask recovery field for HT6560B
From: Sergei Shtylyov <hidden>
Date: 2012-01-19 15:11:05
According to the HT6560H datasheet, the recovery timing field is 4-bit wide, with a value of 0 meaning 16 cycles. Correct obvious thinko in the recovery field mask. Signed-off-by: Sergei Shtylyov <redacted> Cc: stable@kernel.org --- The patch is against the current Linus' tree. The bug was there from the day one, so the fix needs to be merged to all stable kernels since 2.6.19 (when PATA driver were merged)... drivers/ata/pata_legacy.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) Index: linux-2.6/drivers/ata/pata_legacy.c ===================================================================
--- linux-2.6.orig/drivers/ata/pata_legacy.c
+++ linux-2.6/drivers/ata/pata_legacy.c@@ -401,8 +401,7 @@ static void ht6560b_set_piomode(struct a ata_timing_compute(adev, adev->pio_mode, &t, 20000, 1000); active = clamp_val(t.active, 2, 15); - recover = clamp_val(t.recover, 2, 16); - recover &= 0x15; + recover = clamp_val(t.recover, 2, 16) & 0x0F; inb(0x3E6); inb(0x3E6);