A "break;" is missing in the cable detection switch() statement, leading to a wrong detection of the cable type. Signed-off-by: Arnaud Patard <apatard@xxxxxxxxxxxx> ---
Index: libata-dev/drivers/ata/pata_marvell.c =================================================================== --- libata-dev.orig/drivers/ata/pata_marvell.c +++ libata-dev/drivers/ata/pata_marvell.c @@ -62,6 +62,7 @@ static int marvell_pre_reset(struct ata_ ap->cbl = ATA_CBL_PATA80; else ap->cbl = ATA_CBL_PATA40; + break; case 1: /* Legacy SATA port */ ap->cbl = ATA_CBL_SATA;