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

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

Update ibm_newemac to use dcr_host_t.base



Now that dcr_host_t contains the base address, we can use that in the
ibm_newemac code, rather than storing it separately.

Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent bc2618f7
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -461,6 +461,7 @@ static int __devinit mal_probe(struct of_device *ofdev,
	struct mal_instance *mal;
	int err = 0, i, bd_size;
	int index = mal_count++;
	unsigned int dcr_base;
	const u32 *prop;
	u32 cfg;

@@ -497,14 +498,14 @@ static int __devinit mal_probe(struct of_device *ofdev,
	}
	mal->num_rx_chans = prop[0];

	mal->dcr_base = dcr_resource_start(ofdev->node, 0);
	if (mal->dcr_base == 0) {
	dcr_base = dcr_resource_start(ofdev->node, 0);
	if (dcr_base == 0) {
		printk(KERN_ERR
		       "mal%d: can't find DCR resource!\n", index);
		err = -ENODEV;
		goto fail;
	}
        mal->dcr_host = dcr_map(ofdev->node, mal->dcr_base, 0x100);
	mal->dcr_host = dcr_map(ofdev->node, dcr_base, 0x100);
	if (!DCR_MAP_OK(mal->dcr_host)) {
		printk(KERN_ERR
		       "mal%d: failed to map DCRs !\n", index);
@@ -626,7 +627,7 @@ static int __devinit mal_probe(struct of_device *ofdev,
 fail2:
	dma_free_coherent(&ofdev->dev, bd_size, mal->bd_virt, mal->bd_dma);
 fail_unmap:
	dcr_unmap(mal->dcr_host, mal->dcr_base, 0x100);
	dcr_unmap(mal->dcr_host, dcr_base, 0x100);
 fail:
	kfree(mal);

+2 −3
Original line number Diff line number Diff line
@@ -185,7 +185,6 @@ struct mal_commac {

struct mal_instance {
	int			version;
	int			dcr_base;
	dcr_host_t		dcr_host;

	int			num_tx_chans;	/* Number of TX channels */
@@ -213,12 +212,12 @@ struct mal_instance {

static inline u32 get_mal_dcrn(struct mal_instance *mal, int reg)
{
	return dcr_read(mal->dcr_host, mal->dcr_base + reg);
	return dcr_read(mal->dcr_host, mal->dcr_host.base + reg);
}

static inline void set_mal_dcrn(struct mal_instance *mal, int reg, u32 val)
{
	dcr_write(mal->dcr_host, mal->dcr_base + reg, val);
	dcr_write(mal->dcr_host, mal->dcr_host.base + reg, val);
}

/* Register MAL devices */