On Thursday 05 October 2023 21:53:44 Sergey Shtylyov wrote: > On 10/5/23 10:24 PM, Ondrej Zary wrote: > > > fit3 protocol driver does not support accessing IDE control registers > > (device control/altstatus). The DOS driver does not use these registers > > either (as observed from DOSEMU trace). But the HW seems to be capable > > of accessing these registers - I simply tried bit 3 and it works! > > > > The control register is required to properly reset ATAPI devices or > > they will be detected only once (after a power cycle). > > > > Tested with EXP Computer CD-865 with MC-1285B EPP cable and > > TransDisk 3000. > > > > Signed-off-by: Ondrej Zary <linux@xxxxxxx> > > Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx> > > > --- > > drivers/ata/pata_parport/fit3.c | 14 ++------------ > > 1 file changed, 2 insertions(+), 12 deletions(-) > > > > diff --git a/drivers/ata/pata_parport/fit3.c b/drivers/ata/pata_parport/fit3.c > > index bad7aa920cdc..d2b81cf2e16d 100644 > > --- a/drivers/ata/pata_parport/fit3.c > > +++ b/drivers/ata/pata_parport/fit3.c > [...] > > @@ -59,11 +53,7 @@ static int fit3_read_regr(struct pi_adapter *pi, int cont, int regr) > > { > > int a, b; > > > > - if (cont) { > > - if (regr != 6) > > - return 0xff; > > - regr = 7; > > - } > > + regr += cont << 3; > > So, is regr == 7 instead of 8 intentional? The original code read ATA_REG_STATUS (7) in context 0 instead of ALT_STATUS (6) in context 1. -- Ondrej Zary