diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2007-02-05 16:28:29 -0800 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-02-09 16:23:17 +0000 |
commit | 4df4db5c6c6daeb10a8693d09ce872bce8cd84e6 (patch) | |
tree | 7ec7632d88253f41c4b4a2faf0f404f661ed6f50 /drivers/scsi/NCR53C9x.c | |
parent | 335dc50cec2891026bd51e46769fc12365b6e475 (diff) | |
download | op-kernel-dev-4df4db5c6c6daeb10a8693d09ce872bce8cd84e6.zip op-kernel-dev-4df4db5c6c6daeb10a8693d09ce872bce8cd84e6.tar.gz |
[TC] dec_esp: Driver model for the PMAZ-A
This is a set of changes that converts the PMAZ-A support to the driver model.
The use of the driver model required switching to the hotplug SCSI
initialization model, which in turn required a change to the core NCR53C9x
driver. I decided not to break all the frontend drivers and introduced an
additional parameter for esp_allocate() to select between the old and the new
model. I hope this is OK, but I would be fine with converting NCR53C9x to the
new model unconditionally as long as I do not have to fix all the other
frontends (OK, perhaps I could do some of them ;-) ).
Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'drivers/scsi/NCR53C9x.c')
-rw-r--r-- | drivers/scsi/NCR53C9x.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/NCR53C9x.c b/drivers/scsi/NCR53C9x.c index 3c912ee..8b5334c 100644 --- a/drivers/scsi/NCR53C9x.c +++ b/drivers/scsi/NCR53C9x.c @@ -528,12 +528,16 @@ void esp_bootup_reset(struct NCR_ESP *esp, struct ESP_regs *eregs) /* Allocate structure and insert basic data such as SCSI chip frequency * data and a pointer to the device */ -struct NCR_ESP* esp_allocate(struct scsi_host_template *tpnt, void *esp_dev) +struct NCR_ESP* esp_allocate(struct scsi_host_template *tpnt, void *esp_dev, + int hotplug) { struct NCR_ESP *esp, *elink; struct Scsi_Host *esp_host; - esp_host = scsi_register(tpnt, sizeof(struct NCR_ESP)); + if (hotplug) + esp_host = scsi_host_alloc(tpnt, sizeof(struct NCR_ESP)); + else + esp_host = scsi_register(tpnt, sizeof(struct NCR_ESP)); if(!esp_host) panic("Cannot register ESP SCSI host"); esp = (struct NCR_ESP *) esp_host->hostdata; |