|
@@ -968,11 +968,6 @@ static int ide_init_queue(ide_drive_t *drive)
|
|
* Much of the code is for correctly detecting/handling irq sharing
|
|
* Much of the code is for correctly detecting/handling irq sharing
|
|
* and irq serialization situations. This is somewhat complex because
|
|
* and irq serialization situations. This is somewhat complex because
|
|
* it handles static as well as dynamic (PCMCIA) IDE interfaces.
|
|
* it handles static as well as dynamic (PCMCIA) IDE interfaces.
|
|
- *
|
|
|
|
- * The IRQF_DISABLED in sa_flags means ide_intr() is always entered with
|
|
|
|
- * interrupts completely disabled. This can be bad for interrupt latency,
|
|
|
|
- * but anything else has led to problems on some machines. We re-enable
|
|
|
|
- * interrupts as much as we can safely do in most places.
|
|
|
|
*/
|
|
*/
|
|
static int init_irq (ide_hwif_t *hwif)
|
|
static int init_irq (ide_hwif_t *hwif)
|
|
{
|
|
{
|
|
@@ -1055,17 +1050,13 @@ static int init_irq (ide_hwif_t *hwif)
|
|
* Allocate the irq, if not already obtained for another hwif
|
|
* Allocate the irq, if not already obtained for another hwif
|
|
*/
|
|
*/
|
|
if (!match || match->irq != hwif->irq) {
|
|
if (!match || match->irq != hwif->irq) {
|
|
- int sa = IRQF_DISABLED;
|
|
|
|
|
|
+ int sa = 0;
|
|
#if defined(__mc68000__) || defined(CONFIG_APUS)
|
|
#if defined(__mc68000__) || defined(CONFIG_APUS)
|
|
sa = IRQF_SHARED;
|
|
sa = IRQF_SHARED;
|
|
#endif /* __mc68000__ || CONFIG_APUS */
|
|
#endif /* __mc68000__ || CONFIG_APUS */
|
|
|
|
|
|
- if (IDE_CHIPSET_IS_PCI(hwif->chipset)) {
|
|
|
|
|
|
+ if (IDE_CHIPSET_IS_PCI(hwif->chipset))
|
|
sa = IRQF_SHARED;
|
|
sa = IRQF_SHARED;
|
|
-#ifndef CONFIG_IDEPCI_SHARE_IRQ
|
|
|
|
- sa |= IRQF_DISABLED;
|
|
|
|
-#endif /* CONFIG_IDEPCI_SHARE_IRQ */
|
|
|
|
- }
|
|
|
|
|
|
|
|
if (hwif->io_ports[IDE_CONTROL_OFFSET])
|
|
if (hwif->io_ports[IDE_CONTROL_OFFSET])
|
|
/* clear nIEN */
|
|
/* clear nIEN */
|