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:
committed by
Jeff Garzik
parent
7920369521
commit
0f18e719dc
@@ -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);
|
||||||
|
@@ -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 */
|
||||||
|
Reference in New Issue
Block a user