diff options
Diffstat (limited to 'drivers/ide/pci/aec62xx.c')
| -rw-r--r-- | drivers/ide/pci/aec62xx.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c index a21b1e11eef4..c743e68c33aa 100644 --- a/drivers/ide/pci/aec62xx.c +++ b/drivers/ide/pci/aec62xx.c | |||
| @@ -262,6 +262,21 @@ static unsigned int __devinit init_chipset_aec62xx(struct pci_dev *dev, const ch | |||
| 262 | else | 262 | else |
| 263 | pci_set_drvdata(dev, (void *) aec6xxx_34_base); | 263 | pci_set_drvdata(dev, (void *) aec6xxx_34_base); |
| 264 | 264 | ||
| 265 | /* These are necessary to get AEC6280 Macintosh cards to work */ | ||
| 266 | if ((dev->device == PCI_DEVICE_ID_ARTOP_ATP865) || | ||
| 267 | (dev->device == PCI_DEVICE_ID_ARTOP_ATP865R)) { | ||
| 268 | u8 reg49h = 0, reg4ah = 0; | ||
| 269 | /* Clear reset and test bits. */ | ||
| 270 | pci_read_config_byte(dev, 0x49, ®49h); | ||
| 271 | pci_write_config_byte(dev, 0x49, reg49h & ~0x30); | ||
| 272 | /* Enable chip interrupt output. */ | ||
| 273 | pci_read_config_byte(dev, 0x4a, ®4ah); | ||
| 274 | pci_write_config_byte(dev, 0x4a, reg4ah & ~0x01); | ||
| 275 | /* Enable burst mode. */ | ||
| 276 | pci_read_config_byte(dev, 0x4a, ®4ah); | ||
| 277 | pci_write_config_byte(dev, 0x4a, reg4ah | 0x80); | ||
| 278 | } | ||
| 279 | |||
| 265 | return dev->irq; | 280 | return dev->irq; |
| 266 | } | 281 | } |
| 267 | 282 | ||
