Loading arch/arm/common/rtctime.c +12 −4 Original line number Diff line number Diff line Loading @@ -128,19 +128,27 @@ EXPORT_SYMBOL(rtc_tm_to_time); /* * Calculate the next alarm time given the requested alarm time mask * and the current time. * * FIXME: for now, we just copy the alarm time because we're lazy (and * is therefore buggy - setting a 10am alarm at 8pm will not result in * the alarm triggering.) */ void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc_time *alrm) { unsigned long next_time; unsigned long now_time; next->tm_year = now->tm_year; next->tm_mon = now->tm_mon; next->tm_mday = now->tm_mday; next->tm_hour = alrm->tm_hour; next->tm_min = alrm->tm_min; next->tm_sec = alrm->tm_sec; rtc_tm_to_time(now, &now_time); rtc_tm_to_time(next, &next_time); if (next_time < now_time) { /* Advance one day */ next_time += 60 * 60 * 24; rtc_time_to_tm(next_time, next); } } static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) Loading arch/arm/kernel/entry-armv.S +1 −1 Original line number Diff line number Diff line Loading @@ -566,7 +566,7 @@ ENTRY(__switch_to) ldr r6, [r2, #TI_CPU_DOMAIN]! #endif #if __LINUX_ARM_ARCH__ >= 6 #ifdef CONFIG_CPU_MPCORE #ifdef CONFIG_CPU_32v6K clrex #else strex r5, r4, [ip] @ Clear exclusive monitor Loading arch/arm/kernel/traps.c +8 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <linux/personality.h> #include <linux/ptrace.h> #include <linux/kallsyms.h> #include <linux/delay.h> #include <linux/init.h> #include <asm/atomic.h> Loading Loading @@ -231,6 +232,13 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err) __die(str, err, thread, regs); bust_spinlocks(0); spin_unlock_irq(&die_lock); if (panic_on_oops) { printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n"); ssleep(5); panic("Fatal exception"); } do_exit(SIGSEGV); } Loading arch/arm/mach-at91rm9200/devices.c +3 −1 Original line number Diff line number Diff line Loading @@ -100,8 +100,10 @@ void __init at91_add_device_udc(struct at91_udc_data *data) at91_set_gpio_input(data->vbus_pin, 0); at91_set_deglitch(data->vbus_pin, 1); } if (data->pullup_pin) if (data->pullup_pin) { at91_set_gpio_output(data->pullup_pin, 0); at91_set_multi_drive(data->pullup_pin, 1); } udc_data = *data; platform_device_register(&at91rm9200_udc_device); Loading arch/arm/mach-at91rm9200/gpio.c +17 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,23 @@ int __init_or_module at91_set_deglitch(unsigned pin, int is_on) } EXPORT_SYMBOL(at91_set_deglitch); /* * enable/disable the multi-driver; This is only valid for output and * allows the output pin to run as an open collector output. */ int __init_or_module at91_set_multi_drive(unsigned pin, int is_on) { void __iomem *pio = pin_to_controller(pin); unsigned mask = pin_to_mask(pin); if (!pio) return -EINVAL; __raw_writel(mask, pio + (is_on ? PIO_MDER : PIO_MDDR)); return 0; } EXPORT_SYMBOL(at91_set_multi_drive); /*--------------------------------------------------------------------------*/ Loading Loading
arch/arm/common/rtctime.c +12 −4 Original line number Diff line number Diff line Loading @@ -128,19 +128,27 @@ EXPORT_SYMBOL(rtc_tm_to_time); /* * Calculate the next alarm time given the requested alarm time mask * and the current time. * * FIXME: for now, we just copy the alarm time because we're lazy (and * is therefore buggy - setting a 10am alarm at 8pm will not result in * the alarm triggering.) */ void rtc_next_alarm_time(struct rtc_time *next, struct rtc_time *now, struct rtc_time *alrm) { unsigned long next_time; unsigned long now_time; next->tm_year = now->tm_year; next->tm_mon = now->tm_mon; next->tm_mday = now->tm_mday; next->tm_hour = alrm->tm_hour; next->tm_min = alrm->tm_min; next->tm_sec = alrm->tm_sec; rtc_tm_to_time(now, &now_time); rtc_tm_to_time(next, &next_time); if (next_time < now_time) { /* Advance one day */ next_time += 60 * 60 * 24; rtc_time_to_tm(next_time, next); } } static inline int rtc_read_time(struct rtc_ops *ops, struct rtc_time *tm) Loading
arch/arm/kernel/entry-armv.S +1 −1 Original line number Diff line number Diff line Loading @@ -566,7 +566,7 @@ ENTRY(__switch_to) ldr r6, [r2, #TI_CPU_DOMAIN]! #endif #if __LINUX_ARM_ARCH__ >= 6 #ifdef CONFIG_CPU_MPCORE #ifdef CONFIG_CPU_32v6K clrex #else strex r5, r4, [ip] @ Clear exclusive monitor Loading
arch/arm/kernel/traps.c +8 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <linux/personality.h> #include <linux/ptrace.h> #include <linux/kallsyms.h> #include <linux/delay.h> #include <linux/init.h> #include <asm/atomic.h> Loading Loading @@ -231,6 +232,13 @@ NORET_TYPE void die(const char *str, struct pt_regs *regs, int err) __die(str, err, thread, regs); bust_spinlocks(0); spin_unlock_irq(&die_lock); if (panic_on_oops) { printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n"); ssleep(5); panic("Fatal exception"); } do_exit(SIGSEGV); } Loading
arch/arm/mach-at91rm9200/devices.c +3 −1 Original line number Diff line number Diff line Loading @@ -100,8 +100,10 @@ void __init at91_add_device_udc(struct at91_udc_data *data) at91_set_gpio_input(data->vbus_pin, 0); at91_set_deglitch(data->vbus_pin, 1); } if (data->pullup_pin) if (data->pullup_pin) { at91_set_gpio_output(data->pullup_pin, 0); at91_set_multi_drive(data->pullup_pin, 1); } udc_data = *data; platform_device_register(&at91rm9200_udc_device); Loading
arch/arm/mach-at91rm9200/gpio.c +17 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,23 @@ int __init_or_module at91_set_deglitch(unsigned pin, int is_on) } EXPORT_SYMBOL(at91_set_deglitch); /* * enable/disable the multi-driver; This is only valid for output and * allows the output pin to run as an open collector output. */ int __init_or_module at91_set_multi_drive(unsigned pin, int is_on) { void __iomem *pio = pin_to_controller(pin); unsigned mask = pin_to_mask(pin); if (!pio) return -EINVAL; __raw_writel(mask, pio + (is_on ? PIO_MDER : PIO_MDDR)); return 0; } EXPORT_SYMBOL(at91_set_multi_drive); /*--------------------------------------------------------------------------*/ Loading