Skip to content

Commit

Permalink
powerpc/p1022ds: add missing iounmap calls to platform file
Browse files Browse the repository at this point in the history
The platform file for the Freecale P1022DS reference board is not freeing
the ioremap() mapping of the PIXIS and global utilities nodes it creates.

Signed-off-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
  • Loading branch information
Timur Tabi authored and Kumar Gala committed Jun 27, 2011
1 parent c0f5895 commit 3165595
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions arch/powerpc/platforms/85xx/p1022_ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ static void p1022ds_set_gamma_table(int monitor_port, char *gamma_table_base)
static void p1022ds_set_monitor_port(int monitor_port)
{
struct device_node *pixis_node;
void __iomem *pixis;
u8 __iomem *brdcfg1;

pixis_node = of_find_compatible_node(NULL, NULL, "fsl,p1022ds-pixis");
Expand All @@ -137,12 +138,12 @@ static void p1022ds_set_monitor_port(int monitor_port)
return;
}

brdcfg1 = of_iomap(pixis_node, 0);
if (!brdcfg1) {
pixis = of_iomap(pixis_node, 0);
if (!pixis) {
pr_err("p1022ds: could not map ngPIXIS registers\n");
return;
}
brdcfg1 += 9; /* BRDCFG1 is at offset 9 in the ngPIXIS */
brdcfg1 = pixis + 9; /* BRDCFG1 is at offset 9 in the ngPIXIS */

switch (monitor_port) {
case 0: /* DVI */
Expand All @@ -158,6 +159,8 @@ static void p1022ds_set_monitor_port(int monitor_port)
default:
pr_err("p1022ds: unsupported monitor port %i\n", monitor_port);
}

iounmap(pixis);
}

/**
Expand Down Expand Up @@ -201,6 +204,8 @@ void p1022ds_set_pixel_clock(unsigned int pixclock)

/* Enable the clock and set the pxclk */
setbits32(&guts->clkdvdr, CLKDVDR_PXCKEN | (pxclk << 16));

iounmap(guts);
}

/**
Expand Down

0 comments on commit 3165595

Please sign in to comment.