* 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: OMAP: rx51: fix USB ARM: OMAP: mcbsp: Fix possible memory corruption arm/imx: fix power button on imx51 babbage board ARM: imx: fix cpufreq build errors ARM: mx5: add __initconst for fec pdata MXC PWM: should active during DOZE/WAIT/DBG mode ARM: EXYNOS: Fix build error without CONFIG_LOCAL_TIMERS ARM: EXYNOS: Fix for stall in case of cpu hotplug or sleep ARM: S5PV210: Set 1000ns as PWM backlight period on SMDKV210 ARM: SAMSUNG: remove duplicated header include
Unified · Split
| @@ -44,8 +44,6 @@ struct mct_clock_event_device { · 43 unmodified lines | ||
| 44 | 44 | char name[10]; |
| 45 | 45 | }; |
| 46 | 46 | |
| 47 | −static DEFINE_PER_CPU(struct mct_clock_event_device, percpu_mct_tick); | |
| 48 | − | |
| 49 | 47 | static void exynos4_mct_write(unsigned int value, void *addr) |
| 50 | 48 | { |
| 51 | 49 | void __iomem *stat_addr; |
| @@ -264,6 +262,9 @@ static void exynos4_clockevent_init(void) · 212 unmodified lines | ||
| 264 | 262 | } |
| 265 | 263 | |
| 266 | 264 | #ifdef CONFIG_LOCAL_TIMERS |
| 265 | + | |
| 266 | +static DEFINE_PER_CPU(struct mct_clock_event_device, percpu_mct_tick); | |
| 267 | + | |
| 267 | 268 | /* Clock event handling */ |
| 268 | 269 | static void exynos4_mct_tick_stop(struct mct_clock_event_device *mevt) |
| 269 | 270 | { |
| @@ -428,9 +429,13 @@ int __cpuinit local_timer_setup(struct clock_event_device *evt) · 158 unmodified lines | ||
| 428 | 429 | |
| 429 | 430 | void local_timer_stop(struct clock_event_device *evt) |
| 430 | 431 | { |
| 432 | + unsigned int cpu = smp_processor_id(); | |
| 431 | 433 | evt->set_mode(CLOCK_EVT_MODE_UNUSED, evt); |
| 432 | 434 | if (mct_int_type == MCT_INT_SPI) |
| 433 | − disable_irq(evt->irq); | |
| 435 | + if (cpu == 0) | |
| 436 | + remove_irq(evt->irq, &mct_tick0_event_irq); | |
| 437 | + else | |
| 438 | + remove_irq(evt->irq, &mct_tick1_event_irq); | |
| 434 | 439 | else |
| 435 | 440 | disable_percpu_irq(IRQ_MCT_LOCALTIMER); |
| 436 | 441 | } |
| @@ -443,6 +448,7 @@ static void __init exynos4_timer_resources(void) · 6 unmodified lines | ||
| 443 | 448 | |
| 444 | 449 | clk_rate = clk_get_rate(mct_clk); |
| 445 | 450 | |
| 451 | +#ifdef CONFIG_LOCAL_TIMERS | |
| 446 | 452 | if (mct_int_type == MCT_INT_PPI) { |
| 447 | 453 | int err; |
| 448 | 454 | |
| @@ -452,6 +458,7 @@ static void __init exynos4_timer_resources(void) · 3 unmodified lines | ||
| 452 | 458 | WARN(err, "MCT: can't request IRQ %d (%d)\n", |
| 453 | 459 | IRQ_MCT_LOCALTIMER, err); |
| 454 | 460 | } |
| 461 | +#endif /* CONFIG_LOCAL_TIMERS */ | |
| 455 | 462 | } |
| 456 | 463 | |
| 457 | 464 | static void __init exynos4_timer_init(void) |
| @@ -362,7 +362,7 @@ static void __init mx51_babbage_init(void) · 361 unmodified lines | ||
| 362 | 362 | { |
| 363 | 363 | iomux_v3_cfg_t usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP; |
| 364 | 364 | iomux_v3_cfg_t power_key = NEW_PAD_CTRL(MX51_PAD_EIM_A27__GPIO2_21, |
| 365 | − PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP); | |
| 365 | + PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH); | |
| 366 | 366 | |
| 367 | 367 | imx51_soc_init(); |
| 368 | 368 | |
| @@ -106,7 +106,7 @@ static inline void mx53_evk_fec_reset(void) · 105 unmodified lines | ||
| 106 | 106 | gpio_set_value(MX53_EVK_FEC_PHY_RST, 1); |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | −static struct fec_platform_data mx53_evk_fec_pdata = { | |
| 109 | +static const struct fec_platform_data mx53_evk_fec_pdata __initconst = { | |
| 110 | 110 | .phy = PHY_INTERFACE_MODE_RMII, |
| 111 | 111 | }; |
| 112 | 112 | |
| @@ -242,7 +242,7 @@ static inline void mx53_loco_fec_reset(void) · 241 unmodified lines | ||
| 242 | 242 | gpio_set_value(LOCO_FEC_PHY_RST, 1); |
| 243 | 243 | } |
| 244 | 244 | |
| 245 | −static struct fec_platform_data mx53_loco_fec_data = { | |
| 245 | +static const struct fec_platform_data mx53_loco_fec_data __initconst = { | |
| 246 | 246 | .phy = PHY_INTERFACE_MODE_RMII, |
| 247 | 247 | }; |
| 248 | 248 | |
| @@ -104,7 +104,7 @@ static inline void mx53_smd_fec_reset(void) · 103 unmodified lines | ||
| 104 | 104 | gpio_set_value(SMD_FEC_PHY_RST, 1); |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | −static struct fec_platform_data mx53_smd_fec_data = { | |
| 107 | +static const struct fec_platform_data mx53_smd_fec_data __initconst = { | |
| 108 | 108 | .phy = PHY_INTERFACE_MODE_RMII, |
| 109 | 109 | }; |
| 110 | 110 | |
| @@ -193,7 +193,7 @@ static struct platform_device rx51_charger_device = { · 192 unmodified lines | ||
| 193 | 193 | static void __init rx51_charger_init(void) |
| 194 | 194 | { |
| 195 | 195 | WARN_ON(gpio_request_one(RX51_USB_TRANSCEIVER_RST_GPIO, |
| 196 | − GPIOF_OUT_INIT_LOW, "isp1704_reset")); | |
| 196 | + GPIOF_OUT_INIT_HIGH, "isp1704_reset")); | |
| 197 | 197 | |
| 198 | 198 | platform_device_register(&rx51_charger_device); |
| 199 | 199 | } |
| @@ -145,6 +145,9 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) · 144 unmodified lines | ||
| 145 | 145 | pdata->reg_size = 4; |
| 146 | 146 | pdata->has_ccr = true; |
| 147 | 147 | } |
| 148 | + pdata->set_clk_src = omap2_mcbsp_set_clk_src; | |
| 149 | + if (id == 1) | |
| 150 | + pdata->mux_signal = omap2_mcbsp1_mux_rx_clk; | |
| 148 | 151 | |
| 149 | 152 | if (oh->class->rev == MCBSP_CONFIG_TYPE3) { |
| 150 | 153 | if (id == 2) |
| @@ -174,9 +177,6 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) · 23 unmodified lines | ||
| 174 | 177 | name, oh->name); |
| 175 | 178 | return PTR_ERR(pdev); |
| 176 | 179 | } |
| 177 | − pdata->set_clk_src = omap2_mcbsp_set_clk_src; | |
| 178 | − if (id == 1) | |
| 179 | − pdata->mux_signal = omap2_mcbsp1_mux_rx_clk; | |
| 180 | 180 | omap_mcbsp_count++; |
| 181 | 181 | return 0; |
| 182 | 182 | } |
| @@ -273,6 +273,7 @@ static struct samsung_bl_gpio_info smdkv210_bl_gpio_info = { · 272 unmodified lines | ||
| 273 | 273 | |
| 274 | 274 | static struct platform_pwm_backlight_data smdkv210_bl_data = { |
| 275 | 275 | .pwm_id = 3, |
| 276 | + .pwm_period_ns = 1000, | |
| 276 | 277 | }; |
| 277 | 278 | |
| 278 | 279 | static void __init smdkv210_map_io(void) |
| @@ -17,6 +17,7 @@ · 16 unmodified lines | ||
| 17 | 17 | * the CPU clock speed on the fly. |
| 18 | 18 | */ |
| 19 | 19 | |
| 20 | +#include <linux/module.h> | |
| 20 | 21 | #include <linux/cpufreq.h> |
| 21 | 22 | #include <linux/clk.h> |
| 22 | 23 | #include <linux/err.h> |
| @@ -32,6 +32,9 @@ · 31 unmodified lines | ||
| 32 | 32 | #define MX3_PWMSAR 0x0C /* PWM Sample Register */ |
| 33 | 33 | #define MX3_PWMPR 0x10 /* PWM Period Register */ |
| 34 | 34 | #define MX3_PWMCR_PRESCALER(x) (((x - 1) & 0xFFF) << 4) |
| 35 | +#define MX3_PWMCR_DOZEEN (1 << 24) | |
| 36 | +#define MX3_PWMCR_WAITEN (1 << 23) | |
| 37 | +#define MX3_PWMCR_DBGEN (1 << 22) | |
| 35 | 38 | #define MX3_PWMCR_CLKSRC_IPG_HIGH (2 << 16) |
| 36 | 39 | #define MX3_PWMCR_CLKSRC_IPG (1 << 16) |
| 37 | 40 | #define MX3_PWMCR_EN (1 << 0) |
| @@ -77,7 +80,9 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns) · 39 unmodified lines | ||
| 77 | 80 | writel(duty_cycles, pwm->mmio_base + MX3_PWMSAR); |
| 78 | 81 | writel(period_cycles, pwm->mmio_base + MX3_PWMPR); |
| 79 | 82 | |
| 80 | − cr = MX3_PWMCR_PRESCALER(prescale) | MX3_PWMCR_EN; | |
| 83 | + cr = MX3_PWMCR_PRESCALER(prescale) | | |
| 84 | + MX3_PWMCR_DOZEEN | MX3_PWMCR_WAITEN | | |
| 85 | + MX3_PWMCR_DBGEN | MX3_PWMCR_EN; | |
| 81 | 86 | |
| 82 | 87 | if (cpu_is_mx25()) |
| 83 | 88 | cr |= MX3_PWMCR_CLKSRC_IPG; |
| @@ -15,7 +15,6 @@ · 14 unmodified lines | ||
| 15 | 15 | #include <linux/slab.h> |
| 16 | 16 | #include <linux/io.h> |
| 17 | 17 | #include <linux/pwm_backlight.h> |
| 18 | −#include <linux/slab.h> | |
| 19 | 18 | |
| 20 | 19 | #include <plat/devs.h> |
| 21 | 20 | #include <plat/gpio-cfg.h> |