Commit 572be927 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by James Bottomley

[PATCH] Misc zalon fixes

Some miscellaneous cleanups for the Zalon driver:

 - Remove unused definitions of sync_scsi_data_for_cpu and
   sync_scsi_data_for_device
 - Fill in dev->irq in the zalon driver
 - Request the interrupt in the name of the driver, not the bus address
 - Change the driver name to look better in sysfs
 - Call ncr53c8xx_exit() in zalon7xx_exit()
Signed-off-by: default avatarMatthew Wilcox <matthew@wil.cx>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent a56a0507
...@@ -505,8 +505,6 @@ static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd) ...@@ -505,8 +505,6 @@ static int __map_scsi_sg_data(struct device *dev, struct scsi_cmnd *cmd)
#define unmap_scsi_data(np, cmd) __unmap_scsi_data(np->dev, cmd) #define unmap_scsi_data(np, cmd) __unmap_scsi_data(np->dev, cmd)
#define map_scsi_single_data(np, cmd) __map_scsi_single_data(np->dev, cmd) #define map_scsi_single_data(np, cmd) __map_scsi_single_data(np->dev, cmd)
#define map_scsi_sg_data(np, cmd) __map_scsi_sg_data(np->dev, cmd) #define map_scsi_sg_data(np, cmd) __map_scsi_sg_data(np->dev, cmd)
#define sync_scsi_data_for_cpu(np, cmd) __sync_scsi_data_for_cpu(np->dev, cmd)
#define sync_scsi_data_for_device(np, cmd) __sync_scsi_data_for_device(np->dev, cmd)
/*========================================================== /*==========================================================
** **
......
...@@ -87,7 +87,7 @@ zalon_probe(struct parisc_device *dev) ...@@ -87,7 +87,7 @@ zalon_probe(struct parisc_device *dev)
{ {
struct gsc_irq gsc_irq; struct gsc_irq gsc_irq;
u32 zalon_vers; u32 zalon_vers;
int irq, error = -ENODEV; int error = -ENODEV;
unsigned long zalon = dev->hpa; unsigned long zalon = dev->hpa;
unsigned long io_port = zalon + GSC_SCSI_ZALON_OFFSET; unsigned long io_port = zalon + GSC_SCSI_ZALON_OFFSET;
static int unit = 0; static int unit = 0;
...@@ -107,10 +107,10 @@ zalon_probe(struct parisc_device *dev) ...@@ -107,10 +107,10 @@ zalon_probe(struct parisc_device *dev)
/* Setup the interrupts first. /* Setup the interrupts first.
** Later on request_irq() will register the handler. ** Later on request_irq() will register the handler.
*/ */
irq = gsc_alloc_irq(&gsc_irq); dev->irq = gsc_alloc_irq(&gsc_irq);
printk("%s: Zalon vers field is 0x%x, IRQ %d\n", __FUNCTION__, printk("%s: Zalon vers field is 0x%x, IRQ %d\n", __FUNCTION__,
zalon_vers, irq); zalon_vers, dev->irq);
__raw_writel(gsc_irq.txn_addr | gsc_irq.txn_data, dev->hpa + IO_MODULE_EIM); __raw_writel(gsc_irq.txn_addr | gsc_irq.txn_data, dev->hpa + IO_MODULE_EIM);
...@@ -130,16 +130,16 @@ zalon_probe(struct parisc_device *dev) ...@@ -130,16 +130,16 @@ zalon_probe(struct parisc_device *dev)
device.dev = &dev->dev; device.dev = &dev->dev;
device.slot.base = (u_long)io_port; device.slot.base = (u_long)io_port;
device.slot.base_c = (u_long)io_port; device.slot.base_c = (u_long)io_port;
device.slot.irq = irq; device.slot.irq = dev->irq;
device.differential = 2; device.differential = 2;
host = ncr_attach(&zalon7xx_template, unit, &device); host = ncr_attach(&zalon7xx_template, unit, &device);
if (!host) if (!host)
goto fail; goto fail;
if (request_irq(irq, ncr53c8xx_intr, SA_SHIRQ, dev->dev.bus_id, host)) { if (request_irq(dev->irq, ncr53c8xx_intr, SA_SHIRQ, "zalon", host)) {
printk(KERN_ERR "%s: irq problem with %d, detaching\n ", printk(KERN_ERR "%s: irq problem with %d, detaching\n ",
dev->dev.bus_id, irq); dev->dev.bus_id, dev->irq);
goto fail; goto fail;
} }
...@@ -155,7 +155,7 @@ zalon_probe(struct parisc_device *dev) ...@@ -155,7 +155,7 @@ zalon_probe(struct parisc_device *dev)
return 0; return 0;
fail_free_irq: fail_free_irq:
free_irq(irq, host); free_irq(dev->irq, host);
fail: fail:
ncr53c8xx_release(host); ncr53c8xx_release(host);
return error; return error;
...@@ -171,18 +171,16 @@ MODULE_DEVICE_TABLE(parisc, zalon_tbl); ...@@ -171,18 +171,16 @@ MODULE_DEVICE_TABLE(parisc, zalon_tbl);
static int __exit zalon_remove(struct parisc_device *dev) static int __exit zalon_remove(struct parisc_device *dev)
{ {
struct Scsi_Host *host = dev_get_drvdata(&dev->dev); struct Scsi_Host *host = dev_get_drvdata(&dev->dev);
int irq = host->irq;
scsi_remove_host(host); scsi_remove_host(host);
ncr53c8xx_release(host); ncr53c8xx_release(host);
free_irq(irq, host); free_irq(dev->irq, host);
return 0; return 0;
} }
static struct parisc_driver zalon_driver = { static struct parisc_driver zalon_driver = {
.name = "GSC SCSI (Zalon)", .name = "zalon",
.id_table = zalon_tbl, .id_table = zalon_tbl,
.probe = zalon_probe, .probe = zalon_probe,
.remove = __devexit_p(zalon_remove), .remove = __devexit_p(zalon_remove),
...@@ -201,6 +199,7 @@ static int __init zalon7xx_init(void) ...@@ -201,6 +199,7 @@ static int __init zalon7xx_init(void)
static void __exit zalon7xx_exit(void) static void __exit zalon7xx_exit(void)
{ {
unregister_parisc_driver(&zalon_driver); unregister_parisc_driver(&zalon_driver);
ncr53c8xx_exit();
} }
module_init(zalon7xx_init); module_init(zalon7xx_init);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment