From 4c8b581dd28588940a328632e406baab574e0ce5 Mon Sep 17 00:00:00 2001 From: Sascha Hauer Date: Mon, 30 Nov 2009 13:31:29 +0100 Subject: [PATCH] i.MX27 audmux: Fix register offsets We have two holes in the register space. The driver did not handle this. Fix it. Signed-off-by: Sascha Hauer --- arch/arm/plat-mxc/audmux-v1.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm/plat-mxc/audmux-v1.c b/arch/arm/plat-mxc/audmux-v1.c index 70ab5aff2b9e..da6387dcdf21 100644 --- a/arch/arm/plat-mxc/audmux-v1.c +++ b/arch/arm/plat-mxc/audmux-v1.c @@ -28,7 +28,9 @@ static void __iomem *audmux_base; -#define MXC_AUDMUX_V1_PCR(x) ((x) * 4) +static unsigned char port_mapping[] = { + 0x0, 0x4, 0x8, 0x10, 0x14, 0x1c, +}; int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) { @@ -37,7 +39,10 @@ int mxc_audmux_v1_configure_port(unsigned int port, unsigned int pcr) return -ENOSYS; } - writel(pcr, audmux_base + MXC_AUDMUX_V1_PCR(port)); + if (port >= ARRAY_SIZE(port_mapping)) + return -EINVAL; + + writel(pcr, audmux_base + port_mapping[port]); return 0; } -- 2.30.2