scsi: Convert remaining PCI HBAs to realize()

These are "am53c974", "dc390", "lsi53c895a", "lsi53c810", "megasas",
"megasas-gen2".

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Message-Id: <1425925048-15482-5-git-send-email-armbru@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Markus Armbruster 2015-03-09 19:17:28 +01:00 committed by Paolo Bonzini
parent 390e90a907
commit ae071cc851
3 changed files with 17 additions and 41 deletions

View File

@ -28,7 +28,6 @@
#include "hw/scsi/esp.h" #include "hw/scsi/esp.h"
#include "trace.h" #include "trace.h"
#include "qemu/log.h" #include "qemu/log.h"
#include "qapi/qmp/qerror.h"
#define TYPE_AM53C974_DEVICE "am53c974" #define TYPE_AM53C974_DEVICE "am53c974"
@ -343,13 +342,12 @@ static const struct SCSIBusInfo esp_pci_scsi_info = {
.cancel = esp_request_cancelled, .cancel = esp_request_cancelled,
}; };
static int esp_pci_scsi_init(PCIDevice *dev) static void esp_pci_scsi_realize(PCIDevice *dev, Error **errp)
{ {
PCIESPState *pci = PCI_ESP(dev); PCIESPState *pci = PCI_ESP(dev);
DeviceState *d = DEVICE(dev); DeviceState *d = DEVICE(dev);
ESPState *s = &pci->esp; ESPState *s = &pci->esp;
uint8_t *pci_conf; uint8_t *pci_conf;
Error *err = NULL;
pci_conf = dev->config; pci_conf = dev->config;
@ -368,14 +366,8 @@ static int esp_pci_scsi_init(PCIDevice *dev)
scsi_bus_new(&s->bus, sizeof(s->bus), d, &esp_pci_scsi_info, NULL); scsi_bus_new(&s->bus, sizeof(s->bus), d, &esp_pci_scsi_info, NULL);
if (!d->hotplugged) { if (!d->hotplugged) {
scsi_bus_legacy_handle_cmdline(&s->bus, &err); scsi_bus_legacy_handle_cmdline(&s->bus, errp);
if (err != NULL) {
qerror_report_err(err);
error_free(err);
return -1;
}
} }
return 0;
} }
static void esp_pci_scsi_uninit(PCIDevice *d) static void esp_pci_scsi_uninit(PCIDevice *d)
@ -390,7 +382,7 @@ static void esp_pci_class_init(ObjectClass *klass, void *data)
DeviceClass *dc = DEVICE_CLASS(klass); DeviceClass *dc = DEVICE_CLASS(klass);
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
k->init = esp_pci_scsi_init; k->realize = esp_pci_scsi_realize;
k->exit = esp_pci_scsi_uninit; k->exit = esp_pci_scsi_uninit;
k->vendor_id = PCI_VENDOR_ID_AMD; k->vendor_id = PCI_VENDOR_ID_AMD;
k->device_id = PCI_DEVICE_ID_AMD_SCSI; k->device_id = PCI_DEVICE_ID_AMD_SCSI;
@ -468,17 +460,19 @@ static void dc390_write_config(PCIDevice *dev,
} }
} }
static int dc390_scsi_init(PCIDevice *dev) static void dc390_scsi_realize(PCIDevice *dev, Error **errp)
{ {
DC390State *pci = DC390(dev); DC390State *pci = DC390(dev);
Error *err = NULL;
uint8_t *contents; uint8_t *contents;
uint16_t chksum = 0; uint16_t chksum = 0;
int i, ret; int i;
/* init base class */ /* init base class */
ret = esp_pci_scsi_init(dev); esp_pci_scsi_realize(dev, &err);
if (ret < 0) { if (err) {
return ret; error_propagate(errp, err);
return;
} }
/* EEPROM */ /* EEPROM */
@ -505,8 +499,6 @@ static int dc390_scsi_init(PCIDevice *dev)
chksum = 0x1234 - chksum; chksum = 0x1234 - chksum;
contents[EE_CHKSUM1] = chksum & 0xff; contents[EE_CHKSUM1] = chksum & 0xff;
contents[EE_CHKSUM2] = chksum >> 8; contents[EE_CHKSUM2] = chksum >> 8;
return 0;
} }
static void dc390_class_init(ObjectClass *klass, void *data) static void dc390_class_init(ObjectClass *klass, void *data)
@ -514,7 +506,7 @@ static void dc390_class_init(ObjectClass *klass, void *data)
DeviceClass *dc = DEVICE_CLASS(klass); DeviceClass *dc = DEVICE_CLASS(klass);
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
k->init = dc390_scsi_init; k->realize = dc390_scsi_realize;
k->config_read = dc390_read_config; k->config_read = dc390_read_config;
k->config_write = dc390_write_config; k->config_write = dc390_write_config;
set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); set_bit(DEVICE_CATEGORY_STORAGE, dc->categories);

View File

@ -19,7 +19,6 @@
#include "hw/pci/pci.h" #include "hw/pci/pci.h"
#include "hw/scsi/scsi.h" #include "hw/scsi/scsi.h"
#include "sysemu/dma.h" #include "sysemu/dma.h"
#include "qapi/qmp/qerror.h"
//#define DEBUG_LSI //#define DEBUG_LSI
//#define DEBUG_LSI_REG //#define DEBUG_LSI_REG
@ -2089,12 +2088,11 @@ static const struct SCSIBusInfo lsi_scsi_info = {
.cancel = lsi_request_cancelled .cancel = lsi_request_cancelled
}; };
static int lsi_scsi_init(PCIDevice *dev) static void lsi_scsi_realize(PCIDevice *dev, Error **errp)
{ {
LSIState *s = LSI53C895A(dev); LSIState *s = LSI53C895A(dev);
DeviceState *d = DEVICE(dev); DeviceState *d = DEVICE(dev);
uint8_t *pci_conf; uint8_t *pci_conf;
Error *err = NULL;
pci_conf = dev->config; pci_conf = dev->config;
@ -2117,14 +2115,8 @@ static int lsi_scsi_init(PCIDevice *dev)
scsi_bus_new(&s->bus, sizeof(s->bus), d, &lsi_scsi_info, NULL); scsi_bus_new(&s->bus, sizeof(s->bus), d, &lsi_scsi_info, NULL);
if (!d->hotplugged) { if (!d->hotplugged) {
scsi_bus_legacy_handle_cmdline(&s->bus, &err); scsi_bus_legacy_handle_cmdline(&s->bus, errp);
if (err != NULL) {
qerror_report_err(err);
error_free(err);
return -1;
}
} }
return 0;
} }
static void lsi_class_init(ObjectClass *klass, void *data) static void lsi_class_init(ObjectClass *klass, void *data)
@ -2132,7 +2124,7 @@ static void lsi_class_init(ObjectClass *klass, void *data)
DeviceClass *dc = DEVICE_CLASS(klass); DeviceClass *dc = DEVICE_CLASS(klass);
PCIDeviceClass *k = PCI_DEVICE_CLASS(klass); PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
k->init = lsi_scsi_init; k->realize = lsi_scsi_realize;
k->vendor_id = PCI_VENDOR_ID_LSI_LOGIC; k->vendor_id = PCI_VENDOR_ID_LSI_LOGIC;
k->device_id = PCI_DEVICE_ID_LSI_53C895A; k->device_id = PCI_DEVICE_ID_LSI_53C895A;
k->class_id = PCI_CLASS_STORAGE_SCSI; k->class_id = PCI_CLASS_STORAGE_SCSI;

View File

@ -28,7 +28,6 @@
#include "hw/scsi/scsi.h" #include "hw/scsi/scsi.h"
#include "block/scsi.h" #include "block/scsi.h"
#include "trace.h" #include "trace.h"
#include "qapi/qmp/qerror.h"
#include "mfi.h" #include "mfi.h"
@ -2321,14 +2320,13 @@ static const struct SCSIBusInfo megasas_scsi_info = {
.cancel = megasas_command_cancel, .cancel = megasas_command_cancel,
}; };
static int megasas_scsi_init(PCIDevice *dev) static void megasas_scsi_realize(PCIDevice *dev, Error **errp)
{ {
DeviceState *d = DEVICE(dev); DeviceState *d = DEVICE(dev);
MegasasState *s = MEGASAS(dev); MegasasState *s = MEGASAS(dev);
MegasasBaseClass *b = MEGASAS_DEVICE_GET_CLASS(s); MegasasBaseClass *b = MEGASAS_DEVICE_GET_CLASS(s);
uint8_t *pci_conf; uint8_t *pci_conf;
int i, bar_type; int i, bar_type;
Error *err = NULL;
pci_conf = dev->config; pci_conf = dev->config;
@ -2408,14 +2406,8 @@ static int megasas_scsi_init(PCIDevice *dev)
scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(dev), scsi_bus_new(&s->bus, sizeof(s->bus), DEVICE(dev),
&megasas_scsi_info, NULL); &megasas_scsi_info, NULL);
if (!d->hotplugged) { if (!d->hotplugged) {
scsi_bus_legacy_handle_cmdline(&s->bus, &err); scsi_bus_legacy_handle_cmdline(&s->bus, errp);
if (err != NULL) {
qerror_report_err(err);
error_free(err);
return -1;
}
} }
return 0;
} }
static void static void
@ -2509,7 +2501,7 @@ static void megasas_class_init(ObjectClass *oc, void *data)
MegasasBaseClass *e = MEGASAS_DEVICE_CLASS(oc); MegasasBaseClass *e = MEGASAS_DEVICE_CLASS(oc);
const MegasasInfo *info = data; const MegasasInfo *info = data;
pc->init = megasas_scsi_init; pc->realize = megasas_scsi_realize;
pc->exit = megasas_scsi_uninit; pc->exit = megasas_scsi_uninit;
pc->vendor_id = PCI_VENDOR_ID_LSI_LOGIC; pc->vendor_id = PCI_VENDOR_ID_LSI_LOGIC;
pc->device_id = info->device_id; pc->device_id = info->device_id;