Commit 1f63b954 authored by Russell King's avatar Russell King

Merge branch 'fixes'

parents 4a683a2c d8cff136
...@@ -838,7 +838,7 @@ EXPORT_SYMBOL(ep93xx_i2s_release); ...@@ -838,7 +838,7 @@ EXPORT_SYMBOL(ep93xx_i2s_release);
static struct resource ep93xx_ac97_resources[] = { static struct resource ep93xx_ac97_resources[] = {
{ {
.start = EP93XX_AAC_PHYS_BASE, .start = EP93XX_AAC_PHYS_BASE,
.end = EP93XX_AAC_PHYS_BASE + 0xb0 - 1, .end = EP93XX_AAC_PHYS_BASE + 0xac - 1,
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
}, },
{ {
......
...@@ -180,7 +180,7 @@ static const uint32_t mx25pdk_keymap[] = { ...@@ -180,7 +180,7 @@ static const uint32_t mx25pdk_keymap[] = {
KEY(3, 3, KEY_POWER), KEY(3, 3, KEY_POWER),
}; };
static const struct matrix_keymap_data mx25pdk_keymap_data __initdata = { static const struct matrix_keymap_data mx25pdk_keymap_data __initconst = {
.keymap = mx25pdk_keymap, .keymap = mx25pdk_keymap,
.keymap_size = ARRAY_SIZE(mx25pdk_keymap), .keymap_size = ARRAY_SIZE(mx25pdk_keymap),
}; };
......
...@@ -304,7 +304,7 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ ...@@ -304,7 +304,7 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \
reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \ reg = __raw_readl(CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \
reg &= ~BM_CLKCTRL_##dr##_DIV; \ reg &= ~BM_CLKCTRL_##dr##_DIV; \
reg |= div << BP_CLKCTRL_##dr##_DIV; \ reg |= div << BP_CLKCTRL_##dr##_DIV; \
if (reg | (1 << clk->enable_shift)) { \ if (reg & (1 << clk->enable_shift)) { \
pr_err("%s: clock is gated\n", __func__); \ pr_err("%s: clock is gated\n", __func__); \
return -EINVAL; \ return -EINVAL; \
} \ } \
...@@ -347,7 +347,7 @@ static int name##_set_parent(struct clk *clk, struct clk *parent) \ ...@@ -347,7 +347,7 @@ static int name##_set_parent(struct clk *clk, struct clk *parent) \
{ \ { \
if (parent != clk->parent) { \ if (parent != clk->parent) { \
__raw_writel(BM_CLKCTRL_CLKSEQ_BYPASS_##bit, \ __raw_writel(BM_CLKCTRL_CLKSEQ_BYPASS_##bit, \
HW_CLKCTRL_CLKSEQ_TOG); \ CLKCTRL_BASE_ADDR + HW_CLKCTRL_CLKSEQ_TOG); \
clk->parent = parent; \ clk->parent = parent; \
} \ } \
\ \
......
...@@ -355,12 +355,12 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ ...@@ -355,12 +355,12 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \
} else { \ } else { \
reg &= ~BM_CLKCTRL_##dr##_DIV; \ reg &= ~BM_CLKCTRL_##dr##_DIV; \
reg |= div << BP_CLKCTRL_##dr##_DIV; \ reg |= div << BP_CLKCTRL_##dr##_DIV; \
if (reg | (1 << clk->enable_shift)) { \ if (reg & (1 << clk->enable_shift)) { \
pr_err("%s: clock is gated\n", __func__); \ pr_err("%s: clock is gated\n", __func__); \
return -EINVAL; \ return -EINVAL; \
} \ } \
} \ } \
__raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_CPU); \ __raw_writel(reg, CLKCTRL_BASE_ADDR + HW_CLKCTRL_##dr); \
\ \
for (i = 10000; i; i--) \ for (i = 10000; i; i--) \
if (!(__raw_readl(CLKCTRL_BASE_ADDR + \ if (!(__raw_readl(CLKCTRL_BASE_ADDR + \
...@@ -483,7 +483,7 @@ static int name##_set_parent(struct clk *clk, struct clk *parent) \ ...@@ -483,7 +483,7 @@ static int name##_set_parent(struct clk *clk, struct clk *parent) \
{ \ { \
if (parent != clk->parent) { \ if (parent != clk->parent) { \
__raw_writel(BM_CLKCTRL_CLKSEQ_BYPASS_##bit, \ __raw_writel(BM_CLKCTRL_CLKSEQ_BYPASS_##bit, \
HW_CLKCTRL_CLKSEQ_TOG); \ CLKCTRL_BASE_ADDR + HW_CLKCTRL_CLKSEQ_TOG); \
clk->parent = parent; \ clk->parent = parent; \
} \ } \
\ \
...@@ -609,7 +609,6 @@ static struct clk_lookup lookups[] = { ...@@ -609,7 +609,6 @@ static struct clk_lookup lookups[] = {
_REGISTER_CLOCK("duart", NULL, uart_clk) _REGISTER_CLOCK("duart", NULL, uart_clk)
_REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk) _REGISTER_CLOCK("imx28-fec.0", NULL, fec_clk)
_REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk) _REGISTER_CLOCK("imx28-fec.1", NULL, fec_clk)
_REGISTER_CLOCK("fec.0", NULL, fec_clk)
_REGISTER_CLOCK("rtc", NULL, rtc_clk) _REGISTER_CLOCK("rtc", NULL, rtc_clk)
_REGISTER_CLOCK("pll2", NULL, pll2_clk) _REGISTER_CLOCK("pll2", NULL, pll2_clk)
_REGISTER_CLOCK(NULL, "hclk", hbus_clk) _REGISTER_CLOCK(NULL, "hclk", hbus_clk)
......
...@@ -57,7 +57,6 @@ static void __clk_disable(struct clk *clk) ...@@ -57,7 +57,6 @@ static void __clk_disable(struct clk *clk)
if (clk->disable) if (clk->disable)
clk->disable(clk); clk->disable(clk);
__clk_disable(clk->parent); __clk_disable(clk->parent);
__clk_disable(clk->secondary);
} }
} }
...@@ -68,7 +67,6 @@ static int __clk_enable(struct clk *clk) ...@@ -68,7 +67,6 @@ static int __clk_enable(struct clk *clk)
if (clk->usecount++ == 0) { if (clk->usecount++ == 0) {
__clk_enable(clk->parent); __clk_enable(clk->parent);
__clk_enable(clk->secondary);
if (clk->enable) if (clk->enable)
clk->enable(clk); clk->enable(clk);
......
...@@ -139,6 +139,8 @@ static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc) ...@@ -139,6 +139,8 @@ static void mxs_gpio_irq_handler(u32 irq, struct irq_desc *desc)
struct mxs_gpio_port *port = (struct mxs_gpio_port *)get_irq_data(irq); struct mxs_gpio_port *port = (struct mxs_gpio_port *)get_irq_data(irq);
u32 gpio_irq_no_base = port->virtual_irq_start; u32 gpio_irq_no_base = port->virtual_irq_start;
desc->irq_data.chip->irq_ack(&desc->irq_data);
irq_stat = __raw_readl(port->base + PINCTRL_IRQSTAT(port->id)) & irq_stat = __raw_readl(port->base + PINCTRL_IRQSTAT(port->id)) &
__raw_readl(port->base + PINCTRL_IRQEN(port->id)); __raw_readl(port->base + PINCTRL_IRQEN(port->id));
......
...@@ -29,8 +29,6 @@ struct clk { ...@@ -29,8 +29,6 @@ struct clk {
int id; int id;
/* Source clock this clk depends on */ /* Source clock this clk depends on */
struct clk *parent; struct clk *parent;
/* Secondary clock to enable/disable with this clock */
struct clk *secondary;
/* Reference count of clock enable/disable */ /* Reference count of clock enable/disable */
__s8 usecount; __s8 usecount;
/* Register bit position for clock's enable/disable control. */ /* Register bit position for clock's enable/disable control. */
......
...@@ -95,6 +95,7 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id) ...@@ -95,6 +95,7 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id)
case MACH_TYPE_MX35_3DS: case MACH_TYPE_MX35_3DS:
case MACH_TYPE_PCM043: case MACH_TYPE_PCM043:
case MACH_TYPE_LILLY1131: case MACH_TYPE_LILLY1131:
case MACH_TYPE_VPR200:
uart_base = MX3X_UART1_BASE_ADDR; uart_base = MX3X_UART1_BASE_ADDR;
break; break;
case MACH_TYPE_MAGX_ZN5: case MACH_TYPE_MAGX_ZN5:
...@@ -102,6 +103,7 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id) ...@@ -102,6 +103,7 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id)
break; break;
case MACH_TYPE_MX51_BABBAGE: case MACH_TYPE_MX51_BABBAGE:
case MACH_TYPE_EUKREA_CPUIMX51SD: case MACH_TYPE_EUKREA_CPUIMX51SD:
case MACH_TYPE_MX51_3DS:
uart_base = MX51_UART1_BASE_ADDR; uart_base = MX51_UART1_BASE_ADDR;
break; break;
case MACH_TYPE_MX50_RDP: case MACH_TYPE_MX50_RDP:
......
...@@ -50,7 +50,11 @@ static void aaci_ac97_select_codec(struct aaci *aaci, struct snd_ac97 *ac97) ...@@ -50,7 +50,11 @@ static void aaci_ac97_select_codec(struct aaci *aaci, struct snd_ac97 *ac97)
if (v & SLFR_1RXV) if (v & SLFR_1RXV)
readl(aaci->base + AACI_SL1RX); readl(aaci->base + AACI_SL1RX);
writel(maincr, aaci->base + AACI_MAINCR); if (maincr != readl(aaci->base + AACI_MAINCR)) {
writel(maincr, aaci->base + AACI_MAINCR);
readl(aaci->base + AACI_MAINCR);
udelay(1);
}
} }
/* /*
...@@ -993,6 +997,8 @@ static unsigned int __devinit aaci_size_fifo(struct aaci *aaci) ...@@ -993,6 +997,8 @@ static unsigned int __devinit aaci_size_fifo(struct aaci *aaci)
* disabling the channel doesn't clear the FIFO. * disabling the channel doesn't clear the FIFO.
*/ */
writel(aaci->maincr & ~MAINCR_IE, aaci->base + AACI_MAINCR); writel(aaci->maincr & ~MAINCR_IE, aaci->base + AACI_MAINCR);
readl(aaci->base + AACI_MAINCR);
udelay(1);
writel(aaci->maincr, aaci->base + AACI_MAINCR); writel(aaci->maincr, aaci->base + AACI_MAINCR);
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment