On 10/3/23 8:07 PM, Ondrej Zary wrote: [...] >>> There's a 'x' missing in 0x55 in pata_parport_devchk(), causing the >>> detection to always fail. Fix it. >>> >>> Signed-off-by: Ondrej Zary <linux@xxxxxxx> >> >> I think we need a Fixes: tag here... >> >>> --- >>> drivers/ata/pata_parport/pata_parport.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/drivers/ata/pata_parport/pata_parport.c b/drivers/ata/pata_parport/pata_parport.c >>> index 1af64d435d3c..258d189f42e5 100644 >>> --- a/drivers/ata/pata_parport/pata_parport.c >>> +++ b/drivers/ata/pata_parport/pata_parport.c >>> @@ -64,7 +64,7 @@ static bool pata_parport_devchk(struct ata_port *ap, unsigned int device) >>> pi->proto->write_regr(pi, 0, ATA_REG_NSECT, 0xaa); >>> pi->proto->write_regr(pi, 0, ATA_REG_LBAL, 0x55); >>> >>> - pi->proto->write_regr(pi, 0, ATA_REG_NSECT, 055); >>> + pi->proto->write_regr(pi, 0, ATA_REG_NSECT, 0x55); >> >> Oh, Gawd! How did this ever work?! :-/ >> This bug seems to predate the Big PARIDE move... > > This code was not present in PARIDE - it's my bug. Yes, I finally figured -- hence the Fixes: tag I suggested later.... > The function is a clone of ata_devchk() without direct port access. The libata's taskfile methods suck big time -- I even used to have the plans to clean this stuff up at some point... > It's called only from softreset so nobody notices the breakage until something goes wrong. The CD-865 drive needs a reset to start working. I thought the SRST reset is used at the initial detection phase as well... MBR, Sergey