diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2007-05-10 11:46:13 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-05-11 12:18:55 -0400 |
commit | c7b87f3d5037a35b5c7bb916ffc826be3fcb208d (patch) | |
tree | 57fb9d7bb21965fa0d78b26043cf459ce51a9668 /drivers/scsi/arm | |
parent | 129a84de2347002f09721cda3155ccfd19fade40 (diff) |
[ARM] ecard: add helper function for setting ecard irq ops
Rather than having every driver fiddle about setting its private
IRQ operations and data, provide a helper function to contain
this functionality in one place.
Arrange to remove the driver-private IRQ operations and data when
the device is removed from the driver, and remove the driver
private code to do this.
This fixes potential problems caused by drivers forgetting to
remove these hooks.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/scsi/arm')
-rw-r--r-- | drivers/scsi/arm/cumana_2.c | 4 | ||||
-rw-r--r-- | drivers/scsi/arm/eesox.c | 4 | ||||
-rw-r--r-- | drivers/scsi/arm/powertec.c | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c index 82add77ad1..f51aa3446b 100644 --- a/drivers/scsi/arm/cumana_2.c +++ b/drivers/scsi/arm/cumana_2.c | |||
@@ -450,8 +450,8 @@ cumanascsi2_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
450 | 450 | ||
451 | ec->irqaddr = info->base + CUMANASCSI2_STATUS; | 451 | ec->irqaddr = info->base + CUMANASCSI2_STATUS; |
452 | ec->irqmask = STATUS_INT; | 452 | ec->irqmask = STATUS_INT; |
453 | ec->irq_data = info; | 453 | |
454 | ec->ops = &cumanascsi_2_ops; | 454 | ecard_setirq(ec, &cumanascsi_2_ops, info); |
455 | 455 | ||
456 | ret = fas216_init(host); | 456 | ret = fas216_init(host); |
457 | if (ret) | 457 | if (ret) |
diff --git a/drivers/scsi/arm/eesox.c b/drivers/scsi/arm/eesox.c index ed06a8c19a..cc5d513aa9 100644 --- a/drivers/scsi/arm/eesox.c +++ b/drivers/scsi/arm/eesox.c | |||
@@ -569,8 +569,8 @@ eesoxscsi_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
569 | 569 | ||
570 | ec->irqaddr = base + EESOX_DMASTAT; | 570 | ec->irqaddr = base + EESOX_DMASTAT; |
571 | ec->irqmask = EESOX_STAT_INTR; | 571 | ec->irqmask = EESOX_STAT_INTR; |
572 | ec->irq_data = info; | 572 | |
573 | ec->ops = &eesoxscsi_ops; | 573 | ecard_setirq(ec, &eesoxscsi_ops, info); |
574 | 574 | ||
575 | device_create_file(&ec->dev, &dev_attr_bus_term); | 575 | device_create_file(&ec->dev, &dev_attr_bus_term); |
576 | 576 | ||
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c index 159047a349..3cbd525b58 100644 --- a/drivers/scsi/arm/powertec.c +++ b/drivers/scsi/arm/powertec.c | |||
@@ -361,8 +361,8 @@ powertecscsi_probe(struct expansion_card *ec, const struct ecard_id *id) | |||
361 | 361 | ||
362 | ec->irqaddr = base + POWERTEC_INTR_STATUS; | 362 | ec->irqaddr = base + POWERTEC_INTR_STATUS; |
363 | ec->irqmask = POWERTEC_INTR_BIT; | 363 | ec->irqmask = POWERTEC_INTR_BIT; |
364 | ec->irq_data = info; | 364 | |
365 | ec->ops = &powertecscsi_ops; | 365 | ecard_setirq(ec, &powertecscsi_ops, info); |
366 | 366 | ||
367 | device_create_file(&ec->dev, &dev_attr_bus_term); | 367 | device_create_file(&ec->dev, &dev_attr_bus_term); |
368 | 368 | ||