diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-12-29 14:27:33 -0500 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-12-29 14:27:33 -0500 |
commit | f58c1ab8deebc2360cef998f169a6727c288210f (patch) | |
tree | d3bd8a05ae227cb1bcabd55444b54cbac82764fb | |
parent | 46aa7af1d6bf46d0973dc9e8f13275f2c001d3dd (diff) |
ide: always set nIEN on idle devices
* Set nIEN for previous port/device in ide_do_request()
also if port uses a non-shared IRQ.
* Remove no longer needed ide_hwif_t.sharing_irq.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
-rw-r--r-- | drivers/ide/ide-io.c | 2 | ||||
-rw-r--r-- | drivers/ide/ide-probe.c | 4 | ||||
-rw-r--r-- | include/linux/ide.h | 1 |
3 files changed, 2 insertions, 5 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index ca51460af756..f776bd475010 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
@@ -1003,7 +1003,7 @@ static void ide_do_request (ide_hwgroup_t *hwgroup, int masked_irq) | |||
1003 | } | 1003 | } |
1004 | again: | 1004 | again: |
1005 | hwif = HWIF(drive); | 1005 | hwif = HWIF(drive); |
1006 | if (hwgroup->hwif->sharing_irq && hwif != hwgroup->hwif) { | 1006 | if (hwif != hwgroup->hwif) { |
1007 | /* | 1007 | /* |
1008 | * set nIEN for previous hwif, drives in the | 1008 | * set nIEN for previous hwif, drives in the |
1009 | * quirk_list may not like intr setups/cleanups | 1009 | * quirk_list may not like intr setups/cleanups |
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index a0eb72e2a026..81f61e8ea97f 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1060,7 +1060,6 @@ static int init_irq (ide_hwif_t *hwif) | |||
1060 | 1060 | ||
1061 | if (h && h->hwgroup) { /* scan only initialized ports */ | 1061 | if (h && h->hwgroup) { /* scan only initialized ports */ |
1062 | if (hwif->irq == h->irq) { | 1062 | if (hwif->irq == h->irq) { |
1063 | hwif->sharing_irq = h->sharing_irq = 1; | ||
1064 | if (hwif->chipset != ide_pci || | 1063 | if (hwif->chipset != ide_pci || |
1065 | h->chipset != ide_pci) { | 1064 | h->chipset != ide_pci) { |
1066 | save_match(hwif, h, &match); | 1065 | save_match(hwif, h, &match); |
@@ -1152,8 +1151,7 @@ static int init_irq (ide_hwif_t *hwif) | |||
1152 | io_ports->data_addr, hwif->irq); | 1151 | io_ports->data_addr, hwif->irq); |
1153 | #endif /* __mc68000__ */ | 1152 | #endif /* __mc68000__ */ |
1154 | if (match) | 1153 | if (match) |
1155 | printk(KERN_CONT " (%sed with %s)", | 1154 | printk(KERN_CONT " (serialized with %s)", match->name); |
1156 | hwif->sharing_irq ? "shar" : "serializ", match->name); | ||
1157 | printk(KERN_CONT "\n"); | 1155 | printk(KERN_CONT "\n"); |
1158 | 1156 | ||
1159 | mutex_unlock(&ide_cfg_mtx); | 1157 | mutex_unlock(&ide_cfg_mtx); |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 150e42311ee0..1d28006aec68 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -842,7 +842,6 @@ typedef struct hwif_s { | |||
842 | 842 | ||
843 | unsigned present : 1; /* this interface exists */ | 843 | unsigned present : 1; /* this interface exists */ |
844 | unsigned serialized : 1; /* serialized all channel operation */ | 844 | unsigned serialized : 1; /* serialized all channel operation */ |
845 | unsigned sharing_irq: 1; /* 1 = sharing irq with another hwif */ | ||
846 | unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ | 845 | unsigned sg_mapped : 1; /* sg_table and sg_nents are ready */ |
847 | 846 | ||
848 | struct device gendev; | 847 | struct device gendev; |