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:
		
							parent
							
								
									390e90a907
								
							
						
					
					
						commit
						ae071cc851
					
				| 
						 | 
					@ -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);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue