diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-21 00:12:39 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-21 00:12:39 +0400 |
commit | 72558dde738b06cc01e16b3247a9659ca739e22d (patch) | |
tree | 9b9ff02668fd9f948efe24bef56a23fb78f7e4d0 /drivers/ide/pci/hpt366.c | |
parent | b91385236c00031c64b42b44db8068ad38a5ea11 (diff) | |
parent | 769b49ce68386b21e45bb6e573b63c02020b17a1 (diff) | |
download | linux-72558dde738b06cc01e16b3247a9659ca739e22d.tar.xz |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (36 commits)
ide: re-add TRM290 fix lost during ide_build_dmatable() cleanup
scc_pata: kill unused variables
sgiioc4: kill duplicate ioremap()
sgiioc4: kill useless address checks
delkin_cb: add PM support
ide: remove broken hpt34x driver
ide-floppy: remove idefloppy_floppy_t typedef
sgiioc4: remove maskproc() method
hpt366: cleanup maskproc() method
ide: mask interrupt in ide_config_drive_speed()
hpt366: fix compile warning
ide: remove unused macros from <asm-parisc/ide.h>
ide: remove M68K_IDE_SWAPW define from <asm-m68k/ide.h>
ide: remove dead <asm-arm/arch-sa1100/ide.h>
ide: fix support for IDE PCI controllers using MMIO on frv
ide-cd: remove stale comment
ide-cd: small drive type print fix
ide-cd: debug log enhancements
ide: add generic ATA/ATAPI disk driver
ide: allow device drivers to specify per-device type /proc settings
...
Diffstat (limited to 'drivers/ide/pci/hpt366.c')
-rw-r--r-- | drivers/ide/pci/hpt366.c | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c index 9cf171cb9376..a7909e9c720e 100644 --- a/drivers/ide/pci/hpt366.c +++ b/drivers/ide/pci/hpt366.c @@ -3,7 +3,7 @@ * Portions Copyright (C) 2001 Sun Microsystems, Inc. * Portions Copyright (C) 2003 Red Hat Inc * Portions Copyright (C) 2007 Bartlomiej Zolnierkiewicz - * Portions Copyright (C) 2005-2007 MontaVista Software, Inc. + * Portions Copyright (C) 2005-2008 MontaVista Software, Inc. * * Thanks to HighPoint Technologies for their assistance, and hardware. * Special Thanks to Jon Burchmore in SanDiego for the deep pockets, his @@ -748,26 +748,24 @@ static void hpt3xx_maskproc(ide_drive_t *drive, int mask) struct pci_dev *dev = to_pci_dev(hwif->dev); struct hpt_info *info = hpt3xx_get_info(hwif->dev); - if (drive->quirk_list) { - if (info->chip_type >= HPT370) { - u8 scr1 = 0; - - pci_read_config_byte(dev, 0x5a, &scr1); - if (((scr1 & 0x10) >> 4) != mask) { - if (mask) - scr1 |= 0x10; - else - scr1 &= ~0x10; - pci_write_config_byte(dev, 0x5a, scr1); - } - } else { + if (drive->quirk_list == 0) + return; + + if (info->chip_type >= HPT370) { + u8 scr1 = 0; + + pci_read_config_byte(dev, 0x5a, &scr1); + if (((scr1 & 0x10) >> 4) != mask) { if (mask) - disable_irq(hwif->irq); + scr1 |= 0x10; else - enable_irq (hwif->irq); + scr1 &= ~0x10; + pci_write_config_byte(dev, 0x5a, scr1); } - } else - outb(ATA_DEVCTL_OBS | (mask ? 2 : 0), hwif->io_ports.ctl_addr); + } else if (mask) + disable_irq(hwif->irq); + else + enable_irq(hwif->irq); } /* @@ -1289,7 +1287,6 @@ static u8 hpt3xx_cable_detect(ide_hwif_t *hwif) static void __devinit init_hwif_hpt366(ide_hwif_t *hwif) { - struct pci_dev *dev = to_pci_dev(hwif->dev); struct hpt_info *info = hpt3xx_get_info(hwif->dev); int serialize = HPT_SERIALIZE_IO; u8 chip_type = info->chip_type; |