Commit e04d6c53 authored by Russell King's avatar Russell King

Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes

parents e9569c15 bcb22a94
...@@ -257,11 +257,16 @@ static const struct fsl_usb2_platform_data otg_device_pdata __initconst = { ...@@ -257,11 +257,16 @@ static const struct fsl_usb2_platform_data otg_device_pdata __initconst = {
.workaround = FLS_USB2_WORKAROUND_ENGCM09152, .workaround = FLS_USB2_WORKAROUND_ENGCM09152,
}; };
static int vpr200_usbh_init(struct platform_device *pdev)
{
return mx35_initialize_usb_hw(pdev->id,
MXC_EHCI_INTERFACE_SINGLE_UNI | MXC_EHCI_INTERNAL_PHY);
}
/* USB HOST config */ /* USB HOST config */
static const struct mxc_usbh_platform_data usb_host_pdata __initconst = { static const struct mxc_usbh_platform_data usb_host_pdata __initconst = {
.init = vpr200_usbh_init,
.portsc = MXC_EHCI_MODE_SERIAL, .portsc = MXC_EHCI_MODE_SERIAL,
.flags = MXC_EHCI_INTERFACE_SINGLE_UNI |
MXC_EHCI_INTERNAL_PHY,
}; };
static struct platform_device *devices[] __initdata = { static struct platform_device *devices[] __initdata = {
......
...@@ -193,7 +193,7 @@ static iomux_v3_cfg_t mx53_loco_pads[] = { ...@@ -193,7 +193,7 @@ static iomux_v3_cfg_t mx53_loco_pads[] = {
.wakeup = wake, \ .wakeup = wake, \
} }
static const struct gpio_keys_button loco_buttons[] __initconst = { static struct gpio_keys_button loco_buttons[] = {
GPIO_BUTTON(MX53_LOCO_POWER, KEY_POWER, 1, "power", 0), GPIO_BUTTON(MX53_LOCO_POWER, KEY_POWER, 1, "power", 0),
GPIO_BUTTON(MX53_LOCO_UI1, KEY_VOLUMEUP, 1, "volume-up", 0), GPIO_BUTTON(MX53_LOCO_UI1, KEY_VOLUMEUP, 1, "volume-up", 0),
GPIO_BUTTON(MX53_LOCO_UI2, KEY_VOLUMEDOWN, 1, "volume-down", 0), GPIO_BUTTON(MX53_LOCO_UI2, KEY_VOLUMEDOWN, 1, "volume-down", 0),
......
...@@ -295,11 +295,11 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ ...@@ -295,11 +295,11 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \
unsigned long diff, parent_rate, calc_rate; \ unsigned long diff, parent_rate, calc_rate; \
int i; \ int i; \
\ \
parent_rate = clk_get_rate(clk->parent); \
div_max = BM_CLKCTRL_##dr##_DIV >> BP_CLKCTRL_##dr##_DIV; \ div_max = BM_CLKCTRL_##dr##_DIV >> BP_CLKCTRL_##dr##_DIV; \
bm_busy = BM_CLKCTRL_##dr##_BUSY; \ bm_busy = BM_CLKCTRL_##dr##_BUSY; \
\ \
if (clk->parent == &ref_xtal_clk) { \ if (clk->parent == &ref_xtal_clk) { \
parent_rate = clk_get_rate(clk->parent); \
div = DIV_ROUND_UP(parent_rate, rate); \ div = DIV_ROUND_UP(parent_rate, rate); \
if (clk == &cpu_clk) { \ if (clk == &cpu_clk) { \
div_max = BM_CLKCTRL_CPU_DIV_XTAL >> \ div_max = BM_CLKCTRL_CPU_DIV_XTAL >> \
...@@ -309,6 +309,11 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \ ...@@ -309,6 +309,11 @@ static int name##_set_rate(struct clk *clk, unsigned long rate) \
if (div == 0 || div > div_max) \ if (div == 0 || div > div_max) \
return -EINVAL; \ return -EINVAL; \
} else { \ } else { \
/* \
* hack alert: this block modifies clk->parent, too, \
* so the base to use it the grand parent. \
*/ \
parent_rate = clk_get_rate(clk->parent->parent); \
rate >>= PARENT_RATE_SHIFT; \ rate >>= PARENT_RATE_SHIFT; \
parent_rate >>= PARENT_RATE_SHIFT; \ parent_rate >>= PARENT_RATE_SHIFT; \
diff = parent_rate; \ diff = parent_rate; \
......
...@@ -295,6 +295,12 @@ static int mxc_gpio_direction_output(struct gpio_chip *chip, ...@@ -295,6 +295,12 @@ static int mxc_gpio_direction_output(struct gpio_chip *chip,
return 0; return 0;
} }
/*
* This lock class tells lockdep that GPIO irqs are in a different
* category than their parents, so it won't report false recursion.
*/
static struct lock_class_key gpio_lock_class;
int __init mxc_gpio_init(struct mxc_gpio_port *port, int cnt) int __init mxc_gpio_init(struct mxc_gpio_port *port, int cnt)
{ {
int i, j; int i, j;
...@@ -311,6 +317,7 @@ int __init mxc_gpio_init(struct mxc_gpio_port *port, int cnt) ...@@ -311,6 +317,7 @@ int __init mxc_gpio_init(struct mxc_gpio_port *port, int cnt)
__raw_writel(~0, port[i].base + GPIO_ISR); __raw_writel(~0, port[i].base + GPIO_ISR);
for (j = port[i].virtual_irq_start; for (j = port[i].virtual_irq_start;
j < port[i].virtual_irq_start + 32; j++) { j < port[i].virtual_irq_start + 32; j++) {
irq_set_lockdep_class(j, &gpio_lock_class);
irq_set_chip_and_handler(j, &gpio_irq_chip, irq_set_chip_and_handler(j, &gpio_irq_chip,
handle_level_irq); handle_level_irq);
set_irq_flags(j, IRQF_VALID); set_irq_flags(j, IRQF_VALID);
......
...@@ -124,6 +124,8 @@ imx_ssi_fiq_start: ...@@ -124,6 +124,8 @@ imx_ssi_fiq_start:
1: 1:
@ return from FIQ @ return from FIQ
subs pc, lr, #4 subs pc, lr, #4
.align
imx_ssi_fiq_base: imx_ssi_fiq_base:
.word 0x0 .word 0x0
imx_ssi_fiq_rx_buffer: imx_ssi_fiq_rx_buffer:
......
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