Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc

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

+73 -27
+1 -1
Documentation/feature-removal-schedule.txt
··· 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
+1 -1
arch/arm/boot/dts/at91sam9g25ek.dts
··· 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 {
+1 -1
arch/arm/configs/armadillo800eva_defconfig
··· 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
+1 -1
arch/arm/mach-at91/at91rm9200_time.c
··· 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
+5 -1
arch/arm/mach-at91/at91sam9260_devices.c
··· 726 726 .flags = IORESOURCE_MEM, 727 727 }, { 728 728 .flags = IORESOURCE_MEM, 729 + }, { 730 + .flags = IORESOURCE_IRQ, 729 731 }, 730 732 }; 731 733 ··· 746 744 * The second resource is needed: 747 745 * GPBR will serve as the storage for RTC time offset 748 746 */ 749 - at91sam9260_rtt_device.num_resources = 2; 747 + at91sam9260_rtt_device.num_resources = 3; 750 748 rtt_resources[1].start = AT91SAM9260_BASE_GPBR + 751 749 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; 752 750 rtt_resources[1].end = rtt_resources[1].start + 3; 751 + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; 752 + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; 753 753 } 754 754 #else 755 755 static void __init at91_add_device_rtt_rtc(void)
+5 -1
arch/arm/mach-at91/at91sam9261_devices.c
··· 609 609 .flags = IORESOURCE_MEM, 610 610 }, { 611 611 .flags = IORESOURCE_MEM, 612 + }, { 613 + .flags = IORESOURCE_IRQ, 612 614 } 613 615 }; 614 616 ··· 628 626 * The second resource is needed: 629 627 * GPBR will serve as the storage for RTC time offset 630 628 */ 631 - at91sam9261_rtt_device.num_resources = 2; 629 + at91sam9261_rtt_device.num_resources = 3; 632 630 rtt_resources[1].start = AT91SAM9261_BASE_GPBR + 633 631 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; 634 632 rtt_resources[1].end = rtt_resources[1].start + 3; 633 + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; 634 + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; 635 635 } 636 636 #else 637 637 static void __init at91_add_device_rtt_rtc(void)
+8 -2
arch/arm/mach-at91/at91sam9263_devices.c
··· 990 990 .flags = IORESOURCE_MEM, 991 991 }, { 992 992 .flags = IORESOURCE_MEM, 993 + }, { 994 + .flags = IORESOURCE_IRQ, 993 995 } 994 996 }; 995 997 ··· 1008 1006 .flags = IORESOURCE_MEM, 1009 1007 }, { 1010 1008 .flags = IORESOURCE_MEM, 1009 + }, { 1010 + .flags = IORESOURCE_IRQ, 1011 1011 } 1012 1012 }; 1013 1013 ··· 1031 1027 * The second resource is needed only for the chosen RTT: 1032 1028 * GPBR will serve as the storage for RTC time offset 1033 1029 */ 1034 - at91sam9263_rtt0_device.num_resources = 2; 1030 + at91sam9263_rtt0_device.num_resources = 3; 1035 1031 at91sam9263_rtt1_device.num_resources = 1; 1036 1032 pdev = &at91sam9263_rtt0_device; 1037 1033 r = rtt0_resources; 1038 1034 break; 1039 1035 case 1: 1040 1036 at91sam9263_rtt0_device.num_resources = 1; 1041 - at91sam9263_rtt1_device.num_resources = 2; 1037 + at91sam9263_rtt1_device.num_resources = 3; 1042 1038 pdev = &at91sam9263_rtt1_device; 1043 1039 r = rtt1_resources; 1044 1040 break; ··· 1051 1047 pdev->name = "rtc-at91sam9"; 1052 1048 r[1].start = AT91SAM9263_BASE_GPBR + 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; 1053 1049 r[1].end = r[1].start + 3; 1050 + r[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; 1051 + r[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; 1054 1052 } 1055 1053 #else 1056 1054 static void __init at91_add_device_rtt_rtc(void)
+5 -1
arch/arm/mach-at91/at91sam9g45_devices.c
··· 1293 1293 .flags = IORESOURCE_MEM, 1294 1294 }, { 1295 1295 .flags = IORESOURCE_MEM, 1296 + }, { 1297 + .flags = IORESOURCE_IRQ, 1296 1298 } 1297 1299 }; 1298 1300 ··· 1312 1310 * The second resource is needed: 1313 1311 * GPBR will serve as the storage for RTC time offset 1314 1312 */ 1315 - at91sam9g45_rtt_device.num_resources = 2; 1313 + at91sam9g45_rtt_device.num_resources = 3; 1316 1314 rtt_resources[1].start = AT91SAM9G45_BASE_GPBR + 1317 1315 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; 1318 1316 rtt_resources[1].end = rtt_resources[1].start + 3; 1317 + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; 1318 + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; 1319 1319 } 1320 1320 #else 1321 1321 static void __init at91_add_device_rtt_rtc(void)
+5 -1
arch/arm/mach-at91/at91sam9rl_devices.c
··· 688 688 .flags = IORESOURCE_MEM, 689 689 }, { 690 690 .flags = IORESOURCE_MEM, 691 + }, { 692 + .flags = IORESOURCE_IRQ, 691 693 } 692 694 }; 693 695 ··· 707 705 * The second resource is needed: 708 706 * GPBR will serve as the storage for RTC time offset 709 707 */ 710 - at91sam9rl_rtt_device.num_resources = 2; 708 + at91sam9rl_rtt_device.num_resources = 3; 711 709 rtt_resources[1].start = AT91SAM9RL_BASE_GPBR + 712 710 4 * CONFIG_RTC_DRV_AT91SAM9_GPBR; 713 711 rtt_resources[1].end = rtt_resources[1].start + 3; 712 + rtt_resources[2].start = NR_IRQS_LEGACY + AT91_ID_SYS; 713 + rtt_resources[2].end = NR_IRQS_LEGACY + AT91_ID_SYS; 714 714 } 715 715 #else 716 716 static void __init at91_add_device_rtt_rtc(void)
+12
arch/arm/mach-at91/clock.c
··· 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() \ ··· 711 705 pll_overclock = true; 712 706 } else if (cpu_has_800M_plla()) { 713 707 if (plla.rate_hz > 800000000) 708 + pll_overclock = true; 709 + } else if (cpu_has_240M_plla()) { 710 + if (plla.rate_hz > 240000000) 711 + pll_overclock = true; 712 + } else if (cpu_has_210M_plla()) { 713 + if (plla.rate_hz > 210000000) 714 714 pll_overclock = true; 715 715 } else { 716 716 if (plla.rate_hz > 209000000)
+1
arch/arm/mach-gemini/irq.c
··· 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)
+1
arch/arm/mach-kirkwood/db88f6281-bp-setup.c
··· 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>
+7 -6
arch/arm/mach-shmobile/board-armadillo800eva.c
··· 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 = { ··· 902 901 &camera_device, 903 902 &ceu0_device, 904 903 &fsi_device, 905 - &fsi_hdmi_device, 906 904 &fsi_wm8978_device, 905 + &fsi_hdmi_device, 907 906 }; 908 907 909 908 static void __init eva_clock_init(void)
+2 -1
arch/arm/mach-shmobile/board-mackerel.c
··· 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) ··· 1326 1325 &nor_flash_device, 1327 1326 &smc911x_device, 1328 1327 &lcdc_device, 1329 - &usbhs1_device, 1330 1328 &usbhs0_device, 1329 + &usbhs1_device, 1331 1330 &leds_device, 1332 1331 &fsi_device, 1333 1332 &fsi_ak4643_device,
+1 -1
arch/arm/mach-shmobile/board-marzen.c
··· 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 },
+2 -2
arch/arm/mach-shmobile/intc-sh73a0.c
··· 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,
+15 -7
drivers/rtc/rtc-at91sam9.c
··· 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) \ ··· 293 292 { 294 293 struct resource *r, *r_gpbr; 295 294 struct sam9_rtc *rtc; 296 - int ret; 295 + int ret, irq; 297 296 u32 mr; 298 297 299 298 r = platform_get_resource(pdev, IORESOURCE_MEM, 0); ··· 303 302 return -ENODEV; 304 303 } 305 304 305 + irq = platform_get_irq(pdev, 0); 306 + if (irq < 0) { 307 + dev_err(&pdev->dev, "failed to get interrupt resource\n"); 308 + return irq; 309 + } 310 + 306 311 rtc = kzalloc(sizeof *rtc, GFP_KERNEL); 307 312 if (!rtc) 308 313 return -ENOMEM; 314 + 315 + rtc->irq = irq; 309 316 310 317 /* platform setup code should have handled this; sigh */ 311 318 if (!device_can_wakeup(&pdev->dev)) ··· 354 345 } 355 346 356 347 /* register irq handler after we know what name we'll use */ 357 - ret = request_irq(AT91_ID_SYS, at91_rtc_interrupt, 358 - IRQF_SHARED, 348 + ret = request_irq(rtc->irq, at91_rtc_interrupt, IRQF_SHARED, 359 349 dev_name(&rtc->rtcdev->dev), rtc); 360 350 if (ret) { 361 - dev_dbg(&pdev->dev, "can't share IRQ %d?\n", AT91_ID_SYS); 351 + dev_dbg(&pdev->dev, "can't share IRQ %d?\n", rtc->irq); 362 352 rtc_device_unregister(rtc->rtcdev); 363 353 goto fail_register; 364 354 } ··· 394 386 395 387 /* disable all interrupts */ 396 388 rtt_writel(rtc, MR, mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN)); 397 - free_irq(AT91_ID_SYS, rtc); 389 + free_irq(rtc->irq, rtc); 398 390 399 391 rtc_device_unregister(rtc->rtcdev); 400 392 ··· 431 423 rtc->imr = mr & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); 432 424 if (rtc->imr) { 433 425 if (device_may_wakeup(&pdev->dev) && (mr & AT91_RTT_ALMIEN)) { 434 - enable_irq_wake(AT91_ID_SYS); 426 + enable_irq_wake(rtc->irq); 435 427 /* don't let RTTINC cause wakeups */ 436 428 if (mr & AT91_RTT_RTTINCIEN) 437 429 rtt_writel(rtc, MR, mr & ~AT91_RTT_RTTINCIEN); ··· 449 441 450 442 if (rtc->imr) { 451 443 if (device_may_wakeup(&pdev->dev)) 452 - disable_irq_wake(AT91_ID_SYS); 444 + disable_irq_wake(rtc->irq); 453 445 mr = rtt_readl(rtc, MR); 454 446 rtt_writel(rtc, MR, mr | rtc->imr); 455 447 }