Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f18e719 authored by Michael Ellerman's avatar Michael Ellerman Committed by Jeff Garzik
Browse files

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: default avatarMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 79203695
Loading
Loading
Loading
Loading
+4 −1
Original line number Original line Diff line number Diff line
@@ -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);
+2 −3
Original line number Original line Diff line number Diff line
@@ -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 */