Pull ARM SoC bug fixes from Olof Johansson: "Mostly Renesas and Atmel bugfixes this time, targeting boot and build problems. A couple of patches for gemini and kirkwood as well. On a whole nothing very controversial." * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: ARM: gemini: fix the gemini build ARM: shmobile: armadillo800eva: enable rw rootfs mount ARM: Kirkwood: Fix 'SZ_1M' undeclared here for db88f6281-bp-setup.c ARM: shmobile: mackerel: fixup usb module order ARM: shmobile: armadillo800eva: fixup: sound card detection order ARM: shmobile: marzen: fixup smsc911x id for regulator ARM: at91/feature-removal-schedule: delay at91_mci removal ARM: mach-shmobile: armadillo800eva: Enable power button as wakeup source ARM: mach-shmobile: armadillo800eva: Fix GPIO buttons descriptions ARM: at91/dts: remove partial parameter in at91sam9g25ek.dts ARM: at91/clock: fix PLLA overclock warning ARM: at91: fix rtc-at91sam9 irq issue due to sparse irq support ARM: at91: fix system timer irq issue due to sparse irq support ARM: shmobile: sh73a0: fixup RELOC_BASE of intca_irq_pins_desc
Unified · Split
| @@ -579,7 +579,7 @@ Why: KVM tracepoints provide mostly equivalent information in a much more · 578 unmodified lines | ||
| 579 | 579 | ---------------------------- |
| 580 | 580 | |
| 581 | 581 | What: at91-mci driver ("CONFIG_MMC_AT91") |
| 582 | −When: 3.7 | |
| 582 | +When: 3.8 | |
| 583 | 583 | Why: There are two mci drivers: at91-mci and atmel-mci. The PDC support |
| 584 | 584 | was added to atmel-mci as a first step to support more chips. |
| 585 | 585 | Then at91-mci was kept only for old IP versions (on at91rm9200 and |
| @@ -15,7 +15,7 @@ · 14 unmodified lines | ||
| 15 | 15 | compatible = "atmel,at91sam9g25ek", "atmel,at91sam9x5ek", "atmel,at91sam9x5", "atmel,at91sam9"; |
| 16 | 16 | |
| 17 | 17 | chosen { |
| 18 | − bootargs = "128M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs"; | |
| 18 | + bootargs = "console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=ubifs ubi.mtd=1 root=ubi0:rootfs"; | |
| 19 | 19 | }; |
| 20 | 20 | |
| 21 | 21 | ahb { |
| @@ -33,7 +33,7 @@ CONFIG_AEABI=y · 32 unmodified lines | ||
| 33 | 33 | CONFIG_FORCE_MAX_ZONEORDER=13 |
| 34 | 34 | CONFIG_ZBOOT_ROM_TEXT=0x0 |
| 35 | 35 | CONFIG_ZBOOT_ROM_BSS=0x0 |
| 36 | −CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096" | |
| 36 | +CONFIG_CMDLINE="console=tty0 console=ttySC1,115200 earlyprintk=sh-sci.1,115200 ignore_loglevel root=/dev/nfs ip=dhcp nfsroot=,rsize=4096,wsize=4096 rw" | |
| 37 | 37 | CONFIG_CMDLINE_FORCE=y |
| 38 | 38 | CONFIG_KEXEC=y |
| 39 | 39 | CONFIG_VFP=y |
| @@ -197,7 +197,7 @@ void __init at91rm9200_timer_init(void) · 196 unmodified lines | ||
| 197 | 197 | at91_st_read(AT91_ST_SR); |
| 198 | 198 | |
| 199 | 199 | /* Make IRQs happen for the system timer */ |
| 200 | − setup_irq(AT91_ID_SYS, &at91rm9200_timer_irq); | |
| 200 | + setup_irq(NR_IRQS_LEGACY + AT91_ID_SYS, &at91rm9200_timer_irq); | |
| 201 | 201 | |
| 202 | 202 | /* The 32KiHz "Slow Clock" (tick every 30517.58 nanoseconds) is used |
| 203 | 203 | * directly for the clocksource and all clockevents, after adjusting |
| @@ -726,6 +726,8 @@ static struct resource rtt_resources[] = { · 725 unmodified lines | ||
| 726 | 726 | .flags = IORESOURCE_MEM, |
| 727 | 727 | }, { |
| 728 | 728 | .flags = IORESOURCE_MEM, |
| 729 | + }, { | |
| 730 | + .flags = IORESOURCE_IRQ, | |
| 729 | 731 | }, |
| 730 | 732 | }; |
| 731 | 733 | |
| @@ -744,10 +746,12 @@ static void __init at91_add_device_rtt_rtc(void) · 12 unmodified lines | ||
| 744 | 746 | * The second resource is needed: |
| 745 | 747 | * GPBR will serve as the storage for RTC time offset |
| 746 | 748 | */ |
| 747 | − at91sam9260_rtt_device.num_resources = 2; | |
| 749 | + at91sam9260_rtt_device.num_resources = 3; | |
| 748 | 750 | rtt_resources[1].start = AT91SAM9260_BASE_GPBR + |
| 749 | 751 | 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; |
| 750 | 752 | rtt_resources[1].end = rtt_resources[1].start + 3; |
| 753 | + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 754 | + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 751 | 755 | } |
| 752 | 756 | #else |
| 753 | 757 | static void __init at91_add_device_rtt_rtc(void) |
| @@ -609,6 +609,8 @@ static struct resource rtt_resources[] = { · 608 unmodified lines | ||
| 609 | 609 | .flags = IORESOURCE_MEM, |
| 610 | 610 | }, { |
| 611 | 611 | .flags = IORESOURCE_MEM, |
| 612 | + }, { | |
| 613 | + .flags = IORESOURCE_IRQ, | |
| 612 | 614 | } |
| 613 | 615 | }; |
| 614 | 616 | |
| @@ -626,10 +628,12 @@ static void __init at91_add_device_rtt_rtc(void) · 11 unmodified lines | ||
| 626 | 628 | * The second resource is needed: |
| 627 | 629 | * GPBR will serve as the storage for RTC time offset |
| 628 | 630 | */ |
| 629 | − at91sam9261_rtt_device.num_resources = 2; | |
| 631 | + at91sam9261_rtt_device.num_resources = 3; | |
| 630 | 632 | rtt_resources[1].start = AT91SAM9261_BASE_GPBR + |
| 631 | 633 | 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; |
| 632 | 634 | rtt_resources[1].end = rtt_resources[1].start + 3; |
| 635 | + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 636 | + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 633 | 637 | } |
| 634 | 638 | #else |
| 635 | 639 | static void __init at91_add_device_rtt_rtc(void) |
| @@ -990,6 +990,8 @@ static struct resource rtt0_resources[] = { · 989 unmodified lines | ||
| 990 | 990 | .flags = IORESOURCE_MEM, |
| 991 | 991 | }, { |
| 992 | 992 | .flags = IORESOURCE_MEM, |
| 993 | + }, { | |
| 994 | + .flags = IORESOURCE_IRQ, | |
| 993 | 995 | } |
| 994 | 996 | }; |
| 995 | 997 | |
| @@ -1006,6 +1008,8 @@ static struct resource rtt1_resources[] = { · 10 unmodified lines | ||
| 1006 | 1008 | .flags = IORESOURCE_MEM, |
| 1007 | 1009 | }, { |
| 1008 | 1010 | .flags = IORESOURCE_MEM, |
| 1011 | + }, { | |
| 1012 | + .flags = IORESOURCE_IRQ, | |
| 1009 | 1013 | } |
| 1010 | 1014 | }; |
| 1011 | 1015 | |
| @@ -1027,14 +1031,14 @@ static void __init at91_add_device_rtt_rtc(void) · 15 unmodified lines | ||
| 1027 | 1031 | * The second resource is needed only for the chosen RTT: |
| 1028 | 1032 | * GPBR will serve as the storage for RTC time offset |
| 1029 | 1033 | */ |
| 1030 | − at91sam9263_rtt0_device.num_resources = 2; | |
| 1034 | + at91sam9263_rtt0_device.num_resources = 3; | |
| 1031 | 1035 | at91sam9263_rtt1_device.num_resources = 1; |
| 1032 | 1036 | pdev = &at91sam9263_rtt0_device; |
| 1033 | 1037 | r = rtt0_resources; |
| 1034 | 1038 | break; |
| 1035 | 1039 | case 1: |
| 1036 | 1040 | at91sam9263_rtt0_device.num_resources = 1; |
| 1037 | − at91sam9263_rtt1_device.num_resources = 2; | |
| 1041 | + at91sam9263_rtt1_device.num_resources = 3; | |
| 1038 | 1042 | pdev = &at91sam9263_rtt1_device; |
| 1039 | 1043 | r = rtt1_resources; |
| 1040 | 1044 | break; |
| @@ -1047,6 +1051,8 @@ static void __init at91_add_device_rtt_rtc(void) · 6 unmodified lines | ||
| 1047 | 1051 | pdev->name = "rtc-at91sam9"; |
| 1048 | 1052 | r[1].start = AT91SAM9263_BASE_GPBR + 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; |
| 1049 | 1053 | r[1].end = r[1].start + 3; |
| 1054 | + r[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 1055 | + r[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 1050 | 1056 | } |
| 1051 | 1057 | #else |
| 1052 | 1058 | static void __init at91_add_device_rtt_rtc(void) |
| @@ -1293,6 +1293,8 @@ static struct resource rtt_resources[] = { · 1292 unmodified lines | ||
| 1293 | 1293 | .flags = IORESOURCE_MEM, |
| 1294 | 1294 | }, { |
| 1295 | 1295 | .flags = IORESOURCE_MEM, |
| 1296 | + }, { | |
| 1297 | + .flags = IORESOURCE_IRQ, | |
| 1296 | 1298 | } |
| 1297 | 1299 | }; |
| 1298 | 1300 | |
| @@ -1310,10 +1312,12 @@ static void __init at91_add_device_rtt_rtc(void) · 11 unmodified lines | ||
| 1310 | 1312 | * The second resource is needed: |
| 1311 | 1313 | * GPBR will serve as the storage for RTC time offset |
| 1312 | 1314 | */ |
| 1313 | − at91sam9g45_rtt_device.num_resources = 2; | |
| 1315 | + at91sam9g45_rtt_device.num_resources = 3; | |
| 1314 | 1316 | rtt_resources[1].start = AT91SAM9G45_BASE_GPBR + |
| 1315 | 1317 | 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; |
| 1316 | 1318 | rtt_resources[1].end = rtt_resources[1].start + 3; |
| 1319 | + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 1320 | + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 1317 | 1321 | } |
| 1318 | 1322 | #else |
| 1319 | 1323 | static void __init at91_add_device_rtt_rtc(void) |
| @@ -688,6 +688,8 @@ static struct resource rtt_resources[] = { · 687 unmodified lines | ||
| 688 | 688 | .flags = IORESOURCE_MEM, |
| 689 | 689 | }, { |
| 690 | 690 | .flags = IORESOURCE_MEM, |
| 691 | + }, { | |
| 692 | + .flags = IORESOURCE_IRQ, | |
| 691 | 693 | } |
| 692 | 694 | }; |
| 693 | 695 | |
| @@ -705,10 +707,12 @@ static void __init at91_add_device_rtt_rtc(void) · 11 unmodified lines | ||
| 705 | 707 | * The second resource is needed: |
| 706 | 708 | * GPBR will serve as the storage for RTC time offset |
| 707 | 709 | */ |
| 708 | − at91sam9rl_rtt_device.num_resources = 2; | |
| 710 | + at91sam9rl_rtt_device.num_resources = 3; | |
| 709 | 711 | rtt_resources[1].start = AT91SAM9RL_BASE_GPBR + |
| 710 | 712 | 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; |
| 711 | 713 | rtt_resources[1].end = rtt_resources[1].start + 3; |
| 714 | + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 715 | + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; | |
| 712 | 716 | } |
| 713 | 717 | #else |
| 714 | 718 | static void __init at91_add_device_rtt_rtc(void) |
| @@ -63,6 +63,12 @@ EXPORT_SYMBOL_GPL(at91_pmc_base); · 62 unmodified lines | ||
| 63 | 63 | |
| 64 | 64 | #define cpu_has_300M_plla() (cpu_is_at91sam9g10()) |
| 65 | 65 | |
| 66 | +#define cpu_has_240M_plla() (cpu_is_at91sam9261() \ | |
| 67 | + || cpu_is_at91sam9263() \ | |
| 68 | + || cpu_is_at91sam9rl()) | |
| 69 | + | |
| 70 | +#define cpu_has_210M_plla() (cpu_is_at91sam9260()) | |
| 71 | + | |
| 66 | 72 | #define cpu_has_pllb() (!(cpu_is_at91sam9rl() \ |
| 67 | 73 | || cpu_is_at91sam9g45() \ |
| 68 | 74 | || cpu_is_at91sam9x5() \ |
| @@ -706,6 +712,12 @@ static int __init at91_pmc_init(unsigned long main_clock) · 637 unmodified lines | ||
| 706 | 712 | } else if (cpu_has_800M_plla()) { |
| 707 | 713 | if (plla.rate_hz > 800000000) |
| 708 | 714 | pll_overclock = true; |
| 715 | + } else if (cpu_has_240M_plla()) { | |
| 716 | + if (plla.rate_hz > 240000000) | |
| 717 | + pll_overclock = true; | |
| 718 | + } else if (cpu_has_210M_plla()) { | |
| 719 | + if (plla.rate_hz > 210000000) | |
| 720 | + pll_overclock = true; | |
| 709 | 721 | } else { |
| 710 | 722 | if (plla.rate_hz > 209000000) |
| 711 | 723 | pll_overclock = true; |
| @@ -17,6 +17,7 @@ · 16 unmodified lines | ||
| 17 | 17 | #include <linux/sched.h> |
| 18 | 18 | #include <asm/irq.h> |
| 19 | 19 | #include <asm/mach/irq.h> |
| 20 | +#include <asm/system_misc.h> | |
| 20 | 21 | #include <mach/hardware.h> |
| 21 | 22 | |
| 22 | 23 | #define IRQ_SOURCE(base_addr) (base_addr + 0x00) |
| @@ -10,6 +10,7 @@ · 9 unmodified lines | ||
| 10 | 10 | |
| 11 | 11 | #include <linux/kernel.h> |
| 12 | 12 | #include <linux/init.h> |
| 13 | +#include <linux/sizes.h> | |
| 13 | 14 | #include <linux/platform_device.h> |
| 14 | 15 | #include <linux/mtd/partitions.h> |
| 15 | 16 | #include <linux/ata_platform.h> |
| @@ -520,13 +520,14 @@ static struct platform_device hdmi_lcdc_device = { · 519 unmodified lines | ||
| 520 | 520 | }; |
| 521 | 521 | |
| 522 | 522 | /* GPIO KEY */ |
| 523 | −#define GPIO_KEY(c, g, d) { .code = c, .gpio = g, .desc = d, .active_low = 1 } | |
| 523 | +#define GPIO_KEY(c, g, d, ...) \ | |
| 524 | + { .code = c, .gpio = g, .desc = d, .active_low = 1, __VA_ARGS__ } | |
| 524 | 525 | |
| 525 | 526 | static struct gpio_keys_button gpio_buttons[] = { |
| 526 | − GPIO_KEY(KEY_POWER, GPIO_PORT99, "SW1"), | |
| 527 | − GPIO_KEY(KEY_BACK, GPIO_PORT100, "SW2"), | |
| 528 | − GPIO_KEY(KEY_MENU, GPIO_PORT97, "SW3"), | |
| 529 | − GPIO_KEY(KEY_HOME, GPIO_PORT98, "SW4"), | |
| 527 | + GPIO_KEY(KEY_POWER, GPIO_PORT99, "SW3", .wakeup = 1), | |
| 528 | + GPIO_KEY(KEY_BACK, GPIO_PORT100, "SW4"), | |
| 529 | + GPIO_KEY(KEY_MENU, GPIO_PORT97, "SW5"), | |
| 530 | + GPIO_KEY(KEY_HOME, GPIO_PORT98, "SW6"), | |
| 530 | 531 | }; |
| 531 | 532 | |
| 532 | 533 | static struct gpio_keys_platform_data gpio_key_info = { |
| @@ -901,8 +902,8 @@ static struct platform_device *eva_devices[] __initdata = { · 368 unmodified lines | ||
| 901 | 902 | &camera_device, |
| 902 | 903 | &ceu0_device, |
| 903 | 904 | &fsi_device, |
| 904 | − &fsi_hdmi_device, | |
| 905 | 905 | &fsi_wm8978_device, |
| 906 | + &fsi_hdmi_device, | |
| 906 | 907 | }; |
| 907 | 908 | |
| 908 | 909 | static void __init eva_clock_init(void) |
| @@ -695,6 +695,7 @@ static struct platform_device usbhs0_device = { · 694 unmodified lines | ||
| 695 | 695 | * - J30 "open" |
| 696 | 696 | * - modify usbhs1_get_id() USBHS_HOST -> USBHS_GADGET |
| 697 | 697 | * - add .get_vbus = usbhs_get_vbus in usbhs1_private |
| 698 | + * - check usbhs0_device(pio)/usbhs1_device(irq) order in mackerel_devices. | |
| 698 | 699 | */ |
| 699 | 700 | #define IRQ8 evt2irq(0x0300) |
| 700 | 701 | #define USB_PHY_MODE (1 << 4) |
| @@ -1325,8 +1326,8 @@ static struct platform_device *mackerel_devices[] __initdata = { · 624 unmodified lines | ||
| 1325 | 1326 | &nor_flash_device, |
| 1326 | 1327 | &smc911x_device, |
| 1327 | 1328 | &lcdc_device, |
| 1328 | − &usbhs1_device, | |
| 1329 | 1329 | &usbhs0_device, |
| 1330 | + &usbhs1_device, | |
| 1330 | 1331 | &leds_device, |
| 1331 | 1332 | &fsi_device, |
| 1332 | 1333 | &fsi_ak4643_device, |
| @@ -67,7 +67,7 @@ static struct smsc911x_platform_config smsc911x_platdata = { · 66 unmodified lines | ||
| 67 | 67 | |
| 68 | 68 | static struct platform_device eth_device = { |
| 69 | 69 | .name = "smsc911x", |
| 70 | − .id = 0, | |
| 70 | + .id = -1, | |
| 71 | 71 | .dev = { |
| 72 | 72 | .platform_data = &smsc911x_platdata, |
| 73 | 73 | }, |
| @@ -259,9 +259,9 @@ static int sh73a0_set_wake(struct irq_data *data, unsigned int on) · 258 unmodified lines | ||
| 259 | 259 | return 0; /* always allow wakeup */ |
| 260 | 260 | } |
| 261 | 261 | |
| 262 | −#define RELOC_BASE 0x1000 | |
| 262 | +#define RELOC_BASE 0x1200 | |
| 263 | 263 | |
| 264 | −/* INTCA IRQ pins at INTCS + 0x1000 to make space for GIC+INTC handling */ | |
| 264 | +/* INTCA IRQ pins at INTCS + RELOC_BASE to make space for GIC+INTC handling */ | |
| 265 | 265 | #define INTCS_VECT_RELOC(n, vect) INTCS_VECT((n), (vect) + RELOC_BASE) |
| 266 | 266 | |
| 267 | 267 | INTC_IRQ_PINS_32(intca_irq_pins, 0xe6900000, |
| @@ -58,6 +58,7 @@ struct sam9_rtc { · 57 unmodified lines | ||
| 58 | 58 | struct rtc_device *rtcdev; |
| 59 | 59 | u32 imr; |
| 60 | 60 | void __iomem *gpbr; |
| 61 | + int irq; | |
| 61 | 62 | }; |
| 62 | 63 | |
| 63 | 64 | #define rtt_readl(rtc, field) \ |
| @@ -292,7 +293,7 @@ static int __devinit at91_rtc_probe(struct platform_device *pdev) · 228 unmodified lines | ||
| 292 | 293 | { |
| 293 | 294 | struct resource *r, *r_gpbr; |
| 294 | 295 | struct sam9_rtc *rtc; |
| 295 | − int ret; | |
| 296 | + int ret, irq; | |
| 296 | 297 | u32 mr; |
| 297 | 298 | |
| 298 | 299 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| @@ -302,10 +303,18 @@ static int __devinit at91_rtc_probe(struct platform_device *pdev) · 3 unmodified lines | ||
| 302 | 303 | return -ENODEV; |
| 303 | 304 | } |
| 304 | 305 | |
| 306 | + irq = platform_get_irq(pdev, 0); | |
| 307 | + if (irq < 0) { | |
| 308 | + dev_err(&pdev->dev, "failed to get interrupt resource\n"); | |
| 309 | + return irq; | |
| 310 | + } | |
| 311 | + | |
| 305 | 312 | rtc = kzalloc(sizeof *rtc, GFP_KERNEL); |
| 306 | 313 | if (!rtc) |
| 307 | 314 | return -ENOMEM; |
| 308 | 315 | |
| 316 | + rtc->irq = irq; | |
| 317 | + | |
| 309 | 318 | /* platform setup code should have handled this; sigh */ |
| 310 | 319 | if (!device_can_wakeup(&pdev->dev)) |
| 311 | 320 | device_init_wakeup(&pdev->dev, 1); |
| @@ -345,11 +354,10 @@ static int __devinit at91_rtc_probe(struct platform_device *pdev) · 33 unmodified lines | ||
| 345 | 354 | } |
| 346 | 355 | |
| 347 | 356 | /* register irq handler after we know what name we'll use */ |
| 348 | − ret = request_irq(AT91_ID_SYS, at91_rtc_interrupt, | |
| 349 | − IRQF_SHARED, | |
| 357 | + ret = request_irq(rtc->irq, at91_rtc_interrupt, IRQF_SHARED, | |
| 350 | 358 | dev_name(&rtc->rtcdev->dev), rtc); |
| 351 | 359 | if (ret) { |
| 352 | − dev_dbg(&pdev->dev, "can't share IRQ %d?\n", AT91_ID_SYS); | |
| 360 | + dev_dbg(&pdev->dev, "can't share IRQ %d?\n", rtc->irq); | |
| 353 | 361 | rtc_device_unregister(rtc->rtcdev); |
| 354 | 362 | goto fail_register; |
| 355 | 363 | } |
| @@ -386,7 +394,7 @@ static int __devexit at91_rtc_remove(struct platform_device *pdev) · 30 unmodified lines | ||
| 386 | 394 | |
| 387 | 395 | /* disable all interrupts */ |
| 388 | 396 | rtt_writel(rtc, MR, mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN)); |
| 389 | − free_irq(AT91_ID_SYS, rtc); | |
| 397 | + free_irq(rtc->irq, rtc); | |
| 390 | 398 | |
| 391 | 399 | rtc_device_unregister(rtc->rtcdev); |
| 392 | 400 | |
| @@ -423,7 +431,7 @@ static int at91_rtc_suspend(struct platform_device *pdev, · 30 unmodified lines | ||
| 423 | 431 | rtc->imr = mr & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); |
| 424 | 432 | if (rtc->imr) { |
| 425 | 433 | if (device_may_wakeup(&pdev->dev) && (mr & AT91_RTT_ALMIEN)) { |
| 426 | − enable_irq_wake(AT91_ID_SYS); | |
| 434 | + enable_irq_wake(rtc->irq); | |
| 427 | 435 | /* don't let RTTINC cause wakeups */ |
| 428 | 436 | if (mr & AT91_RTT_RTTINCIEN) |
| 429 | 437 | rtt_writel(rtc, MR, mr & ~AT91_RTT_RTTINCIEN); |
| @@ -441,7 +449,7 @@ static int at91_rtc_resume(struct platform_device *pdev) · 11 unmodified lines | ||
| 441 | 449 | |
| 442 | 450 | if (rtc->imr) { |
| 443 | 451 | if (device_may_wakeup(&pdev->dev)) |
| 444 | − disable_irq_wake(AT91_ID_SYS); | |
| 452 | + disable_irq_wake(rtc->irq); | |
| 445 | 453 | mr = rtt_readl(rtc, MR); |
| 446 | 454 | rtt_writel(rtc, MR, mr | rtc->imr); |
| 447 | 455 | } |