pata_sl82c105 can not reserve IO region
Alan
alan at lxorguk.ukuu.org.uk
Mon Dec 4 10:23:49 EST 2006
On Sun, 3 Dec 2006 23:24:49 +0100 (MET)
Olaf Hering <olaf at aepfle.de> wrote:
> This change seems to fix it, only a single reset occurs. I think that
> one is normal when a CD is in the drive during bootup, maybe it leaves
> the drive in a confused state.
>
> @@ -167,9 +175,13 @@ static void sl82c105_reset_engine(struct
> struct pci_dev *pdev = to_pci_dev(ap->host->dev);
> u16 val;
>
> + udelay(42);
> pci_read_config_word(pdev, 0x7E, &val);
> + udelay(10);
> pci_write_config_word(pdev, 0x7E, val | 4);
> + udelay(10);
> pci_write_config_word(pdev, 0x7E, val & ~4);
> + udelay(42);
> }
Where do you get the delays from ? There is nothing in the documentation
or errata sheets I have here on that subject. Is this guesswork, divine
inspiration or an errata note I don't posess ?
In the absence of documented behaviour its seem to me much more likely
that the delay is actually either moving a race condition in the libata
code, or perhaps just allowing some time for the CD to "recover" in which
case it's perhaps a bit of a delay we need in libata. That would explain
why the old -> new change broke stuff.
Either way its most interesting it makes a difference.
Alan
More information about the Linuxppc-dev
mailing list