Use dcr_host_t.base in ibm_emac_mal

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 <michael@ellerman.id.au>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
Michael Ellerman
2007-10-15 19:34:35 +10:00
committed by Jeff Garzik
parent 7920369521
commit 0f18e719dc
2 changed files with 6 additions and 4 deletions

View File

@@ -413,7 +413,10 @@ static int __init mal_probe(struct ocp_device *ocpdev)
ocpdev->def->index); ocpdev->def->index);
return -ENOMEM; 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; mal->def = ocpdev->def;
INIT_LIST_HEAD(&mal->poll_list); INIT_LIST_HEAD(&mal->poll_list);

View File

@@ -191,7 +191,6 @@ struct mal_commac {
}; };
struct ibm_ocp_mal { struct ibm_ocp_mal {
int dcrbase;
dcr_host_t dcrhost; dcr_host_t dcrhost;
struct list_head poll_list; 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) 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) 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 */ /* Register MAL devices */