From: OGAWA Hirofumi switch(reg1 & 0x700) { case 5: info_hpt366.private_data = &hpt366_40; break; case 9: info_hpt366.private_data = &hpt366_25; break; default: info_hpt366.private_data = &hpt366_33; break; } The above runs always default part. It should be "(reg1 & 0x700) >> 8". Signed-off-by: OGAWA Hirofumi Acked-by: Alan Cox Signed-off-by: Andrew Morton --- drivers/ata/pata_hpt366.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff -puN drivers/ata/pata_hpt366.c~pata_hpt366-fix-typo drivers/ata/pata_hpt366.c --- a/drivers/ata/pata_hpt366.c~pata_hpt366-fix-typo +++ a/drivers/ata/pata_hpt366.c @@ -429,7 +429,7 @@ static int hpt36x_init_one(struct pci_de /* PCI clocking determines the ATA timing values to use */ /* info_hpt366 is safe against re-entry so we can scribble on it */ - switch(reg1 & 0x700) { + switch((reg1 & 0x700) >> 8) { case 5: info_hpt366.private_data = &hpt366_40; break; _