[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090131160601.5159579d@lxorguk.ukuu.org.uk>
Date: Sat, 31 Jan 2009 16:06:01 +0000
From: Alan Cox <alan@...rguk.ukuu.org.uk>
To: Sergei Shtylyov <sshtylyov@...mvista.com>
Cc: Hugh Dickins <hugh@...itas.com>, Jeff Garzik <jgarzik@...hat.com>,
"Rafael J. Wysocki" <rjw@...k.pl>, linux-ide@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: 2.6.29-rc libata sff 32bit PIO regression
O> > + ata_for_each_dev(adev, &ap->link, ENABLED) {
> > + if (adev->class == ATA_DEV_ATAPI)
> > + fifo = 0;
> > + }
> >
>
> Er, couldn't we do that dynamically, based on which device is
> executing the command now?
Possibly but PCI command cycles are expensive so you'd want to cache the
state and stuff. Better to get it correct firstly.
> > + if (pdev->device == PCI_DEVICE_ID_AMD_VIPER_7411) /* FIFO is broken */
> > + fifo = 0;
> > +
> > + /* On the later chips the read prefetch bits become no-op bits */
> > + pci_read_config_byte(pdev, 0x41, &r);
> > + r &= ~fifobit[ap->port_no];
> >
>
> Why not:
>
> r &= ~fifo;
Because then it wouldn't clear the bits if they were set already and we
wanted them off!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists