aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-12-29 14:27:33 -0500
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-12-29 14:27:33 -0500
commitf58c1ab8deebc2360cef998f169a6727c288210f (patch)
treed3bd8a05ae227cb1bcabd55444b54cbac82764fb
parent46aa7af1d6bf46d0973dc9e8f13275f2c001d3dd (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.c2
-rw-r--r--drivers/ide/ide-probe.c4
-rw-r--r--include/linux/ide.h1
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;