On Mon, 2007-09-17 at 16:05 +1000, Michael Ellerman wrote: > This requires us to do a sort-of fake dcr_map(), so that base is set > properly. This will be fixed/removed when the device-tree-aware emac driver > is merged. > > Signed-off-by: Michael Ellerman <[EMAIL PROTECTED]>
Acked-by: Benjamin Herrenschmidt <[EMAIL PROTECTED]> --- (Have you actually tested btw ? :-) > --- > drivers/net/ibm_emac/ibm_emac_mal.c | 5 ++++- > drivers/net/ibm_emac/ibm_emac_mal.h | 5 ++--- > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/ibm_emac/ibm_emac_mal.c > b/drivers/net/ibm_emac/ibm_emac_mal.c > index cabd984..b08da96 100644 > --- a/drivers/net/ibm_emac/ibm_emac_mal.c > +++ b/drivers/net/ibm_emac/ibm_emac_mal.c > @@ -421,7 +421,10 @@ static int __init mal_probe(struct ocp_device *ocpdev) > ocpdev->def->index); > return -ENOMEM; > } > - mal->dcrbase = maldata->dcr_base; > + > + /* XXX This only works for native dcr for now */ > + mal->dcrhost = dcr_map(NULL, maldata->dcr_base, 0); > + > mal->def = ocpdev->def; > > INIT_LIST_HEAD(&mal->poll_list); > diff --git a/drivers/net/ibm_emac/ibm_emac_mal.h > b/drivers/net/ibm_emac/ibm_emac_mal.h > index 64bc338..6b1fbeb 100644 > --- a/drivers/net/ibm_emac/ibm_emac_mal.h > +++ b/drivers/net/ibm_emac/ibm_emac_mal.h > @@ -191,7 +191,6 @@ struct mal_commac { > }; > > struct ibm_ocp_mal { > - int dcrbase; > dcr_host_t dcrhost; > > struct list_head poll_list; > @@ -209,12 +208,12 @@ struct ibm_ocp_mal { > > static inline u32 get_mal_dcrn(struct ibm_ocp_mal *mal, int reg) > { > - return dcr_read(mal->dcrhost, mal->dcrbase + reg); > + return dcr_read(mal->dcrhost, mal->dcrhost.base + reg); > } > > static inline void set_mal_dcrn(struct ibm_ocp_mal *mal, int reg, u32 val) > { > - dcr_write(mal->dcrhost, mal->dcrbase + reg, val); > + dcr_write(mal->dcrhost, mal->dcrhost.base + reg, val); > } > > /* Register MAL devices */ _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev