dm: scsi: Use the uclass platform data
authorSimon Glass <sjg@chromium.org>
Thu, 15 Jun 2017 03:28:31 +0000 (21:28 -0600)
committerSimon Glass <sjg@chromium.org>
Tue, 11 Jul 2017 16:08:19 +0000 (10:08 -0600)
At present the two driver-model SCSI drivers use device platform data to
store information that relates to the uclass. It is better to use uclass
platform data in this situation. Update the code to do this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
drivers/ata/ahci.c
drivers/ata/dwc_ahci.c
drivers/ata/sata_ceva.c
drivers/scsi/scsi-uclass.c
drivers/scsi/scsi.c

index 29835f06d3a7fd4ff26bc8373d690b715d292a10..2cc604b3f48246ded00c7cdb7f03fadc74212d32 100644 (file)
@@ -479,7 +479,7 @@ static int ahci_init_one(pci_dev_t dev)
                pci_write_config_byte(dev, 0x41, 0xa1);
 #endif
 #else
-       struct scsi_platdata *plat = dev_get_platdata(dev);
+       struct scsi_platdata *plat = dev_get_uclass_platdata(dev);
        probe_ent->mmio_base = (void *)plat->base;
 #endif
 
index 3f839bf9879e4ec6e7a2c7092fbb7a545f8aeb6f..e634df5e3ceb05877eec4d73e948c60aa783be5a 100644 (file)
@@ -28,7 +28,7 @@ struct dwc_ahci_priv {
 static int dwc_ahci_ofdata_to_platdata(struct udevice *dev)
 {
        struct dwc_ahci_priv *priv = dev_get_priv(dev);
-       struct scsi_platdata *plat = dev_get_platdata(dev);
+       struct scsi_platdata *plat = dev_get_uclass_platdata(dev);
        fdt_addr_t addr;
 
        plat->max_id = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
@@ -96,6 +96,5 @@ U_BOOT_DRIVER(dwc_ahci) = {
        .ofdata_to_platdata = dwc_ahci_ofdata_to_platdata,
        .probe  = dwc_ahci_probe,
        .priv_auto_alloc_size = sizeof(struct dwc_ahci_priv),
-       .platdata_auto_alloc_size = sizeof(struct scsi_platdata),
        .flags = DM_FLAG_ALLOC_PRIV_DMA,
 };
index 0c24fce8dc32f9dcb3d0360a198e4c2e205cf45f..f55ba5966607b73476a454951698eec33f6cf586 100644 (file)
@@ -113,7 +113,7 @@ static int ceva_init_sata(ulong mmio)
 
 static int sata_ceva_probe(struct udevice *dev)
 {
-       struct scsi_platdata *plat = dev_get_platdata(dev);
+       struct scsi_platdata *plat = dev_get_uclass_platdata(dev);
 
        ceva_init_sata(plat->base);
        return 0;
@@ -126,7 +126,7 @@ static const struct udevice_id sata_ceva_ids[] = {
 
 static int sata_ceva_ofdata_to_platdata(struct udevice *dev)
 {
-       struct scsi_platdata *plat = dev_get_platdata(dev);
+       struct scsi_platdata *plat = dev_get_uclass_platdata(dev);
 
        plat->base = devfdt_get_addr(dev);
        if (plat->base == FDT_ADDR_T_NONE)
@@ -145,5 +145,4 @@ U_BOOT_DRIVER(ceva_host_blk) = {
        .of_match = sata_ceva_ids,
        .probe = sata_ceva_probe,
        .ofdata_to_platdata = sata_ceva_ofdata_to_platdata,
-       .platdata_auto_alloc_size = sizeof(struct scsi_platdata),
 };
index 05da6cdeab8d98a00bc2a9588451cf56e95bc360..e4ee44bb4c312405ab6291423d0e8d16adbdcc9f 100644 (file)
@@ -24,4 +24,5 @@ UCLASS_DRIVER(scsi) = {
        .id             = UCLASS_SCSI,
        .name           = "scsi",
        .post_probe      = scsi_post_probe,
+       .per_device_platdata_auto_alloc_size = sizeof(struct scsi_platdata),
 };
index 5f5652b9e0379fbebbcfb873765ab294364fa0e2..2d0f81ad1f1ad51165033bb539c9bb2ca6313413 100644 (file)
@@ -619,7 +619,7 @@ int scsi_scan(int mode)
                        return ret;
 
                /* Get controller platdata */
-               plat = dev_get_platdata(dev);
+               plat = dev_get_uclass_platdata(dev);
 
                for (i = 0; i < plat->max_id; i++)
                        for (lun = 0; lun < plat->max_lun; lun++)