aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2007-10-15 05:34:35 -0400
committerJeff Garzik <jeff@garzik.org>2007-10-15 14:29:49 -0400
commit0f18e719dc0d36ad91fe94b0b3dd08fdcdd2faa2 (patch)
treed849b7876a48bd820c73201a5b7d607264ddf801
parent792036952123a0670c7dd6960ca5458cdfd5e4fd (diff)
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>
-rw-r--r--drivers/net/ibm_emac/ibm_emac_mal.c5
-rw-r--r--drivers/net/ibm_emac/ibm_emac_mal.h5
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 4e49e8c4f871..dcd8826fc749 100644
--- a/drivers/net/ibm_emac/ibm_emac_mal.c
+++ b/drivers/net/ibm_emac/ibm_emac_mal.c
@@ -413,7 +413,10 @@ static int __init mal_probe(struct ocp_device *ocpdev)
413 ocpdev->def->index); 413 ocpdev->def->index);
414 return -ENOMEM; 414 return -ENOMEM;
415 } 415 }
416 mal->dcrbase = maldata->dcr_base; 416
417 /* XXX This only works for native dcr for now */
418 mal->dcrhost = dcr_map(NULL, maldata->dcr_base, 0);
419
417 mal->def = ocpdev->def; 420 mal->def = ocpdev->def;
418 421
419 INIT_LIST_HEAD(&mal->poll_list); 422 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 8f54d621994d..aa76d3f0dfce 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 {
191}; 191};
192 192
193struct ibm_ocp_mal { 193struct ibm_ocp_mal {
194 int dcrbase;
195 dcr_host_t dcrhost; 194 dcr_host_t dcrhost;
196 195
197 struct list_head poll_list; 196 struct list_head poll_list;
@@ -209,12 +208,12 @@ struct ibm_ocp_mal {
209 208
210static inline u32 get_mal_dcrn(struct ibm_ocp_mal *mal, int reg) 209static inline u32 get_mal_dcrn(struct ibm_ocp_mal *mal, int reg)
211{ 210{
212 return dcr_read(mal->dcrhost, mal->dcrbase + reg); 211 return dcr_read(mal->dcrhost, mal->dcrhost.base + reg);
213} 212}
214 213
215static inline void set_mal_dcrn(struct ibm_ocp_mal *mal, int reg, u32 val) 214static inline void set_mal_dcrn(struct ibm_ocp_mal *mal, int reg, u32 val)
216{ 215{
217 dcr_write(mal->dcrhost, mal->dcrbase + reg, val); 216 dcr_write(mal->dcrhost, mal->dcrhost.base + reg, val);
218} 217}
219 218
220/* Register MAL devices */ 219/* Register MAL devices */