diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-11 12:22:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-11 12:22:50 -0400 |
commit | 9ec4ff421f032f24416217f23b0c82dc9a5f38f6 (patch) | |
tree | 63035223c2b3ce0e4e2d1c54ff7768af46f16753 /drivers/ide/pci/hpt366.c | |
parent | aa7c3a119a6202b758a669cde9e3829ced64a13f (diff) |
hpt366: write the full 4 bytes of ROM address, not just low 1 byte
This is one heck of a confused driver. It uses a byte write to a dword
register to enable a ROM resource that it doesn't even seem to be using.
"Lost and wandering in the desert of confusion"
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/ide/pci/hpt366.c')
-rw-r--r-- | drivers/ide/pci/hpt366.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c index 7b64db10d1b0..127619a109ed 100644 --- a/drivers/ide/pci/hpt366.c +++ b/drivers/ide/pci/hpt366.c | |||
@@ -1334,9 +1334,13 @@ static int __devinit init_hpt366(struct pci_dev *dev) | |||
1334 | static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev, const char *name) | 1334 | static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev, const char *name) |
1335 | { | 1335 | { |
1336 | int ret = 0; | 1336 | int ret = 0; |
1337 | /* FIXME: Not portable */ | 1337 | |
1338 | /* | ||
1339 | * FIXME: Not portable. Also, why do we enable the ROM in the first place? | ||
1340 | * We don't seem to be using it. | ||
1341 | */ | ||
1338 | if (dev->resource[PCI_ROM_RESOURCE].start) | 1342 | if (dev->resource[PCI_ROM_RESOURCE].start) |
1339 | pci_write_config_byte(dev, PCI_ROM_ADDRESS, | 1343 | pci_write_config_dword(dev, PCI_ROM_ADDRESS, |
1340 | dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE); | 1344 | dev->resource[PCI_ROM_RESOURCE].start | PCI_ROM_ADDRESS_ENABLE); |
1341 | 1345 | ||
1342 | pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, (L1_CACHE_BYTES / 4)); | 1346 | pci_write_config_byte(dev, PCI_CACHE_LINE_SIZE, (L1_CACHE_BYTES / 4)); |