grlib: Add ambapp_common_info to derived types

This avoids a cast in DEV_TO_COMMON().
This commit is contained in:
Sebastian Huber
2020-09-18 10:00:46 +02:00
parent c15c520b96
commit f9c8e14dcb
14 changed files with 46 additions and 50 deletions

View File

@@ -418,17 +418,17 @@ static void ambapp_dev_info(
str1 = str2 = str3 = "";
if (core->ahb_mst) {
str1 = "AHBMST ";
ver = core->ahb_mst->ver;
ver = core->ahb_mst->common.ver;
ambapp_bus_freq_get(dev, DEV_AHB_MST, &ahbmst_freq);
}
if (core->ahb_slv) {
str2 = "AHBSLV ";
ver = core->ahb_slv->ver;
ver = core->ahb_slv->common.ver;
ambapp_bus_freq_get(dev, DEV_AHB_SLV, &ahbslv_freq);
}
if (core->apb_slv) {
str3 = "APBSLV";
ver = core->apb_slv->ver;
ver = core->apb_slv->common.ver;
ambapp_bus_freq_get(dev, DEV_APB_SLV, &apbslv_freq);
}
@@ -505,7 +505,7 @@ static int ambapp_dev_fixup(struct drvmgr_dev *dev, struct amba_dev_info *pnp)
int core;
devs_to_register[0] = dev;
subcores = (pnp->info.ahb_slv->ver & 0x7) + 1;
subcores = (pnp->info.ahb_slv->common.ver & 0x7) + 1;
for(core = 1; core < subcores; core++) {
drvmgr_alloc_dev(&newdev, sizeof(*pnpinfo));
memcpy(newdev, dev, sizeof(*newdev));
@@ -599,22 +599,22 @@ static void ambapp_core_register(
pnpinfo->info.ahb_mst = (struct ambapp_ahb_info *)
ahb_mst->devinfo;
ambapp_alloc_dev(ahb_mst, (void *)newdev);
if ( pnpinfo->info.ahb_mst->irq )
pnpinfo->info.irq = pnpinfo->info.ahb_mst->irq;
if ( pnpinfo->info.ahb_mst->common.irq )
pnpinfo->info.irq = pnpinfo->info.ahb_mst->common.irq;
}
if ( ahb_slv ) {
pnpinfo->info.ahb_slv = (struct ambapp_ahb_info *)
ahb_slv->devinfo;
ambapp_alloc_dev(ahb_slv, (void *)newdev);
if ( pnpinfo->info.ahb_slv->irq )
pnpinfo->info.irq = pnpinfo->info.ahb_slv->irq;
if ( pnpinfo->info.ahb_slv->common.irq )
pnpinfo->info.irq = pnpinfo->info.ahb_slv->common.irq;
}
if ( apb_slv ) {
pnpinfo->info.apb_slv = (struct ambapp_apb_info *)
apb_slv->devinfo;
ambapp_alloc_dev(apb_slv, (void *)newdev);
if ( pnpinfo->info.apb_slv->irq )
pnpinfo->info.irq = pnpinfo->info.apb_slv->irq;
if ( pnpinfo->info.apb_slv->common.irq )
pnpinfo->info.irq = pnpinfo->info.apb_slv->common.irq;
}
if ( pnpinfo->info.irq == 0 )
pnpinfo->info.irq = -1; /* indicate no IRQ */