diff options
| -rw-r--r-- | arch/sparc/include/asm/unistd.h | 3 | ||||
| -rw-r--r-- | arch/sparc/kernel/auxio_64.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/central.c | 4 | ||||
| -rw-r--r-- | arch/sparc/kernel/ds.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/entry.S | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/mdesc.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/pci_fire.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/pci_psycho.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/pci_sabre.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/pci_schizo.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/pci_sun4v.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/power.c | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_32.S | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/systbls_64.S | 2 | ||||
| -rw-r--r-- | arch/sparc/kernel/time_64.c | 6 | ||||
| -rw-r--r-- | drivers/tty/serial/Kconfig | 2 | ||||
| -rw-r--r-- | drivers/tty/serial/apbuart.c | 34 |
17 files changed, 32 insertions, 41 deletions
diff --git a/arch/sparc/include/asm/unistd.h b/arch/sparc/include/asm/unistd.h index 2f475d7c0b53..9d897b6db983 100644 --- a/arch/sparc/include/asm/unistd.h +++ b/arch/sparc/include/asm/unistd.h | |||
| @@ -403,8 +403,9 @@ | |||
| 403 | #define __NR_name_to_handle_at 332 | 403 | #define __NR_name_to_handle_at 332 |
| 404 | #define __NR_open_by_handle_at 333 | 404 | #define __NR_open_by_handle_at 333 |
| 405 | #define __NR_clock_adjtime 334 | 405 | #define __NR_clock_adjtime 334 |
| 406 | #define __NR_syncfs 335 | ||
| 406 | 407 | ||
| 407 | #define NR_syscalls 335 | 408 | #define NR_syscalls 336 |
| 408 | 409 | ||
| 409 | #ifdef __32bit_syscall_numbers__ | 410 | #ifdef __32bit_syscall_numbers__ |
| 410 | /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, | 411 | /* Sparc 32-bit only has the "setresuid32", "getresuid32" variants, |
diff --git a/arch/sparc/kernel/auxio_64.c b/arch/sparc/kernel/auxio_64.c index 2abace076c7d..773091ac71a3 100644 --- a/arch/sparc/kernel/auxio_64.c +++ b/arch/sparc/kernel/auxio_64.c | |||
| @@ -93,7 +93,7 @@ void auxio_set_lte(int on) | |||
| 93 | } | 93 | } |
| 94 | EXPORT_SYMBOL(auxio_set_lte); | 94 | EXPORT_SYMBOL(auxio_set_lte); |
| 95 | 95 | ||
| 96 | static struct of_device_id __initdata auxio_match[] = { | 96 | static const struct of_device_id auxio_match[] = { |
| 97 | { | 97 | { |
| 98 | .name = "auxio", | 98 | .name = "auxio", |
| 99 | }, | 99 | }, |
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c index 136d3718a74a..7eef3f741963 100644 --- a/arch/sparc/kernel/central.c +++ b/arch/sparc/kernel/central.c | |||
| @@ -140,7 +140,7 @@ out_free: | |||
| 140 | goto out; | 140 | goto out; |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | static struct of_device_id __initdata clock_board_match[] = { | 143 | static const struct of_device_id clock_board_match[] = { |
| 144 | { | 144 | { |
| 145 | .name = "clock-board", | 145 | .name = "clock-board", |
| 146 | }, | 146 | }, |
| @@ -245,7 +245,7 @@ out_free: | |||
| 245 | goto out; | 245 | goto out; |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | static struct of_device_id __initdata fhc_match[] = { | 248 | static const struct of_device_id fhc_match[] = { |
| 249 | { | 249 | { |
| 250 | .name = "fhc", | 250 | .name = "fhc", |
| 251 | }, | 251 | }, |
diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c index 4a700f4b79ce..3add4de8a1a9 100644 --- a/arch/sparc/kernel/ds.c +++ b/arch/sparc/kernel/ds.c | |||
| @@ -1218,7 +1218,7 @@ static int ds_remove(struct vio_dev *vdev) | |||
| 1218 | return 0; | 1218 | return 0; |
| 1219 | } | 1219 | } |
| 1220 | 1220 | ||
| 1221 | static struct vio_device_id __initdata ds_match[] = { | 1221 | static const struct vio_device_id ds_match[] = { |
| 1222 | { | 1222 | { |
| 1223 | .type = "domain-services-port", | 1223 | .type = "domain-services-port", |
| 1224 | }, | 1224 | }, |
diff --git a/arch/sparc/kernel/entry.S b/arch/sparc/kernel/entry.S index 1504df8ddf70..906ee3e24cc9 100644 --- a/arch/sparc/kernel/entry.S +++ b/arch/sparc/kernel/entry.S | |||
| @@ -1283,7 +1283,7 @@ linux_syscall_trace: | |||
| 1283 | .globl ret_from_fork | 1283 | .globl ret_from_fork |
| 1284 | ret_from_fork: | 1284 | ret_from_fork: |
| 1285 | call schedule_tail | 1285 | call schedule_tail |
| 1286 | mov %g3, %o0 | 1286 | ld [%g3 + TI_TASK], %o0 |
| 1287 | b ret_sys_call | 1287 | b ret_sys_call |
| 1288 | ld [%sp + STACKFRAME_SZ + PT_I0], %o0 | 1288 | ld [%sp + STACKFRAME_SZ + PT_I0], %o0 |
| 1289 | 1289 | ||
diff --git a/arch/sparc/kernel/mdesc.c b/arch/sparc/kernel/mdesc.c index 6addb914fcc8..56db06432ce9 100644 --- a/arch/sparc/kernel/mdesc.c +++ b/arch/sparc/kernel/mdesc.c | |||
| @@ -107,7 +107,7 @@ static struct mdesc_handle * __init mdesc_memblock_alloc(unsigned int mdesc_size | |||
| 107 | return hp; | 107 | return hp; |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | static void mdesc_memblock_free(struct mdesc_handle *hp) | 110 | static void __init mdesc_memblock_free(struct mdesc_handle *hp) |
| 111 | { | 111 | { |
| 112 | unsigned int alloc_size; | 112 | unsigned int alloc_size; |
| 113 | unsigned long start; | 113 | unsigned long start; |
diff --git a/arch/sparc/kernel/pci_fire.c b/arch/sparc/kernel/pci_fire.c index 3d70f8326efd..d29a32fcc5e4 100644 --- a/arch/sparc/kernel/pci_fire.c +++ b/arch/sparc/kernel/pci_fire.c | |||
| @@ -496,7 +496,7 @@ out_err: | |||
| 496 | return err; | 496 | return err; |
| 497 | } | 497 | } |
| 498 | 498 | ||
| 499 | static struct of_device_id __initdata fire_match[] = { | 499 | static const struct of_device_id fire_match[] = { |
| 500 | { | 500 | { |
| 501 | .name = "pci", | 501 | .name = "pci", |
| 502 | .compatible = "pciex108e,80f0", | 502 | .compatible = "pciex108e,80f0", |
diff --git a/arch/sparc/kernel/pci_psycho.c b/arch/sparc/kernel/pci_psycho.c index 56ee745064de..86ae08d9b6ee 100644 --- a/arch/sparc/kernel/pci_psycho.c +++ b/arch/sparc/kernel/pci_psycho.c | |||
| @@ -592,7 +592,7 @@ out_err: | |||
| 592 | return err; | 592 | return err; |
| 593 | } | 593 | } |
| 594 | 594 | ||
| 595 | static struct of_device_id __initdata psycho_match[] = { | 595 | static const struct of_device_id psycho_match[] = { |
| 596 | { | 596 | { |
| 597 | .name = "pci", | 597 | .name = "pci", |
| 598 | .compatible = "pci108e,8000", | 598 | .compatible = "pci108e,8000", |
diff --git a/arch/sparc/kernel/pci_sabre.c b/arch/sparc/kernel/pci_sabre.c index 2857073342d2..948068a083fc 100644 --- a/arch/sparc/kernel/pci_sabre.c +++ b/arch/sparc/kernel/pci_sabre.c | |||
| @@ -581,7 +581,7 @@ out_err: | |||
| 581 | return err; | 581 | return err; |
| 582 | } | 582 | } |
| 583 | 583 | ||
| 584 | static struct of_device_id __initdata sabre_match[] = { | 584 | static const struct of_device_id sabre_match[] = { |
| 585 | { | 585 | { |
| 586 | .name = "pci", | 586 | .name = "pci", |
| 587 | .compatible = "pci108e,a001", | 587 | .compatible = "pci108e,a001", |
diff --git a/arch/sparc/kernel/pci_schizo.c b/arch/sparc/kernel/pci_schizo.c index 1d41af73a92f..fecfcb2063c8 100644 --- a/arch/sparc/kernel/pci_schizo.c +++ b/arch/sparc/kernel/pci_schizo.c | |||
| @@ -1470,7 +1470,7 @@ static int __devinit schizo_probe(struct platform_device *op) | |||
| 1470 | * and pci108e,8001. So list the chips in reverse chronological | 1470 | * and pci108e,8001. So list the chips in reverse chronological |
| 1471 | * order. | 1471 | * order. |
| 1472 | */ | 1472 | */ |
| 1473 | static struct of_device_id __initdata schizo_match[] = { | 1473 | static const struct of_device_id schizo_match[] = { |
| 1474 | { | 1474 | { |
| 1475 | .name = "pci", | 1475 | .name = "pci", |
| 1476 | .compatible = "pci108e,a801", | 1476 | .compatible = "pci108e,a801", |
diff --git a/arch/sparc/kernel/pci_sun4v.c b/arch/sparc/kernel/pci_sun4v.c index 6cf534681788..b01a06e9ae4e 100644 --- a/arch/sparc/kernel/pci_sun4v.c +++ b/arch/sparc/kernel/pci_sun4v.c | |||
| @@ -998,7 +998,7 @@ out_err: | |||
| 998 | return err; | 998 | return err; |
| 999 | } | 999 | } |
| 1000 | 1000 | ||
| 1001 | static struct of_device_id __initdata pci_sun4v_match[] = { | 1001 | static const struct of_device_id pci_sun4v_match[] = { |
| 1002 | { | 1002 | { |
| 1003 | .name = "pci", | 1003 | .name = "pci", |
| 1004 | .compatible = "SUNW,sun4v-pci", | 1004 | .compatible = "SUNW,sun4v-pci", |
diff --git a/arch/sparc/kernel/power.c b/arch/sparc/kernel/power.c index cd725fe238b2..cb4c0f57c024 100644 --- a/arch/sparc/kernel/power.c +++ b/arch/sparc/kernel/power.c | |||
| @@ -52,7 +52,7 @@ static int __devinit power_probe(struct platform_device *op) | |||
| 52 | return 0; | 52 | return 0; |
| 53 | } | 53 | } |
| 54 | 54 | ||
| 55 | static struct of_device_id __initdata power_match[] = { | 55 | static const struct of_device_id power_match[] = { |
| 56 | { | 56 | { |
| 57 | .name = "power", | 57 | .name = "power", |
| 58 | }, | 58 | }, |
diff --git a/arch/sparc/kernel/systbls_32.S b/arch/sparc/kernel/systbls_32.S index 4b86eaf04fe5..47ac73c32e88 100644 --- a/arch/sparc/kernel/systbls_32.S +++ b/arch/sparc/kernel/systbls_32.S | |||
| @@ -84,4 +84,4 @@ sys_call_table: | |||
| 84 | /*320*/ .long sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv | 84 | /*320*/ .long sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv |
| 85 | /*325*/ .long sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init | 85 | /*325*/ .long sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init |
| 86 | /*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime | 86 | /*330*/ .long sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime |
| 87 | 87 | /*335*/ .long sys_syncfs | |
diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S index 0331bafdf3a3..4f3170c1ef47 100644 --- a/arch/sparc/kernel/systbls_64.S +++ b/arch/sparc/kernel/systbls_64.S | |||
| @@ -85,6 +85,7 @@ sys_call_table32: | |||
| 85 | /*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, compat_sys_preadv | 85 | /*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, compat_sys_preadv |
| 86 | .word compat_sys_pwritev, compat_sys_rt_tgsigqueueinfo, sys_perf_event_open, compat_sys_recvmmsg, sys_fanotify_init | 86 | .word compat_sys_pwritev, compat_sys_rt_tgsigqueueinfo, sys_perf_event_open, compat_sys_recvmmsg, sys_fanotify_init |
| 87 | /*330*/ .word sys32_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime | 87 | /*330*/ .word sys32_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, compat_sys_open_by_handle_at, compat_sys_clock_adjtime |
| 88 | .word sys_syncfs | ||
| 88 | 89 | ||
| 89 | #endif /* CONFIG_COMPAT */ | 90 | #endif /* CONFIG_COMPAT */ |
| 90 | 91 | ||
| @@ -161,3 +162,4 @@ sys_call_table: | |||
| 161 | /*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv | 162 | /*320*/ .word sys_dup3, sys_pipe2, sys_inotify_init1, sys_accept4, sys_preadv |
| 162 | .word sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init | 163 | .word sys_pwritev, sys_rt_tgsigqueueinfo, sys_perf_event_open, sys_recvmmsg, sys_fanotify_init |
| 163 | /*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime | 164 | /*330*/ .word sys_fanotify_mark, sys_prlimit64, sys_name_to_handle_at, sys_open_by_handle_at, sys_clock_adjtime |
| 165 | .word sys_syncfs | ||
diff --git a/arch/sparc/kernel/time_64.c b/arch/sparc/kernel/time_64.c index 95ec25faba39..2b8d54b2d850 100644 --- a/arch/sparc/kernel/time_64.c +++ b/arch/sparc/kernel/time_64.c | |||
| @@ -442,7 +442,7 @@ static int __devinit rtc_probe(struct platform_device *op) | |||
| 442 | return platform_device_register(&rtc_cmos_device); | 442 | return platform_device_register(&rtc_cmos_device); |
| 443 | } | 443 | } |
| 444 | 444 | ||
| 445 | static struct of_device_id __initdata rtc_match[] = { | 445 | static const struct of_device_id rtc_match[] = { |
| 446 | { | 446 | { |
| 447 | .name = "rtc", | 447 | .name = "rtc", |
| 448 | .compatible = "m5819", | 448 | .compatible = "m5819", |
| @@ -487,7 +487,7 @@ static int __devinit bq4802_probe(struct platform_device *op) | |||
| 487 | return platform_device_register(&rtc_bq4802_device); | 487 | return platform_device_register(&rtc_bq4802_device); |
| 488 | } | 488 | } |
| 489 | 489 | ||
| 490 | static struct of_device_id __initdata bq4802_match[] = { | 490 | static const struct of_device_id bq4802_match[] = { |
| 491 | { | 491 | { |
| 492 | .name = "rtc", | 492 | .name = "rtc", |
| 493 | .compatible = "bq4802", | 493 | .compatible = "bq4802", |
| @@ -552,7 +552,7 @@ static int __devinit mostek_probe(struct platform_device *op) | |||
| 552 | return platform_device_register(&m48t59_rtc); | 552 | return platform_device_register(&m48t59_rtc); |
| 553 | } | 553 | } |
| 554 | 554 | ||
| 555 | static struct of_device_id __initdata mostek_match[] = { | 555 | static const struct of_device_id mostek_match[] = { |
| 556 | { | 556 | { |
| 557 | .name = "eeprom", | 557 | .name = "eeprom", |
| 558 | }, | 558 | }, |
diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig index e1aee37270f5..80484af781e1 100644 --- a/drivers/tty/serial/Kconfig +++ b/drivers/tty/serial/Kconfig | |||
| @@ -1506,7 +1506,7 @@ config SERIAL_BCM63XX_CONSOLE | |||
| 1506 | 1506 | ||
| 1507 | config SERIAL_GRLIB_GAISLER_APBUART | 1507 | config SERIAL_GRLIB_GAISLER_APBUART |
| 1508 | tristate "GRLIB APBUART serial support" | 1508 | tristate "GRLIB APBUART serial support" |
| 1509 | depends on OF | 1509 | depends on OF && SPARC |
| 1510 | select SERIAL_CORE | 1510 | select SERIAL_CORE |
| 1511 | ---help--- | 1511 | ---help--- |
| 1512 | Add support for the GRLIB APBUART serial port. | 1512 | Add support for the GRLIB APBUART serial port. |
diff --git a/drivers/tty/serial/apbuart.c b/drivers/tty/serial/apbuart.c index 1ab999b04ef3..19a943693e4c 100644 --- a/drivers/tty/serial/apbuart.c +++ b/drivers/tty/serial/apbuart.c | |||
| @@ -555,10 +555,9 @@ static struct uart_driver grlib_apbuart_driver = { | |||
| 555 | 555 | ||
| 556 | static int __devinit apbuart_probe(struct platform_device *op) | 556 | static int __devinit apbuart_probe(struct platform_device *op) |
| 557 | { | 557 | { |
| 558 | int i = -1; | 558 | int i; |
| 559 | struct uart_port *port = NULL; | 559 | struct uart_port *port = NULL; |
| 560 | 560 | ||
| 561 | i = 0; | ||
| 562 | for (i = 0; i < grlib_apbuart_port_nr; i++) { | 561 | for (i = 0; i < grlib_apbuart_port_nr; i++) { |
| 563 | if (op->dev.of_node == grlib_apbuart_nodes[i]) | 562 | if (op->dev.of_node == grlib_apbuart_nodes[i]) |
| 564 | break; | 563 | break; |
| @@ -566,6 +565,7 @@ static int __devinit apbuart_probe(struct platform_device *op) | |||
| 566 | 565 | ||
| 567 | port = &grlib_apbuart_ports[i]; | 566 | port = &grlib_apbuart_ports[i]; |
| 568 | port->dev = &op->dev; | 567 | port->dev = &op->dev; |
| 568 | port->irq = op->archdata.irqs[0]; | ||
| 569 | 569 | ||
| 570 | uart_add_one_port(&grlib_apbuart_driver, (struct uart_port *) port); | 570 | uart_add_one_port(&grlib_apbuart_driver, (struct uart_port *) port); |
| 571 | 571 | ||
| @@ -598,24 +598,12 @@ static struct platform_driver grlib_apbuart_of_driver = { | |||
| 598 | 598 | ||
| 599 | static int grlib_apbuart_configure(void) | 599 | static int grlib_apbuart_configure(void) |
| 600 | { | 600 | { |
| 601 | struct device_node *np, *rp; | 601 | struct device_node *np; |
| 602 | const u32 *prop; | 602 | int line = 0; |
| 603 | int freq_khz, line = 0; | ||
| 604 | |||
| 605 | /* Get bus frequency */ | ||
| 606 | rp = of_find_node_by_path("/"); | ||
| 607 | if (!rp) | ||
| 608 | return -ENODEV; | ||
| 609 | rp = of_get_next_child(rp, NULL); | ||
| 610 | if (!rp) | ||
| 611 | return -ENODEV; | ||
| 612 | prop = of_get_property(rp, "clock-frequency", NULL); | ||
| 613 | if (!prop) | ||
| 614 | return -ENODEV; | ||
| 615 | freq_khz = *prop; | ||
| 616 | 603 | ||
| 617 | for_each_matching_node(np, apbuart_match) { | 604 | for_each_matching_node(np, apbuart_match) { |
| 618 | const int *irqs, *ampopts; | 605 | const int *ampopts; |
| 606 | const u32 *freq_hz; | ||
| 619 | const struct amba_prom_registers *regs; | 607 | const struct amba_prom_registers *regs; |
| 620 | struct uart_port *port; | 608 | struct uart_port *port; |
| 621 | unsigned long addr; | 609 | unsigned long addr; |
| @@ -623,11 +611,11 @@ static int grlib_apbuart_configure(void) | |||
| 623 | ampopts = of_get_property(np, "ampopts", NULL); | 611 | ampopts = of_get_property(np, "ampopts", NULL); |
| 624 | if (ampopts && (*ampopts == 0)) | 612 | if (ampopts && (*ampopts == 0)) |
| 625 | continue; /* Ignore if used by another OS instance */ | 613 | continue; /* Ignore if used by another OS instance */ |
| 626 | |||
| 627 | irqs = of_get_property(np, "interrupts", NULL); | ||
| 628 | regs = of_get_property(np, "reg", NULL); | 614 | regs = of_get_property(np, "reg", NULL); |
| 615 | /* Frequency of APB Bus is frequency of UART */ | ||
| 616 | freq_hz = of_get_property(np, "freq", NULL); | ||
| 629 | 617 | ||
| 630 | if (!irqs || !regs) | 618 | if (!regs || !freq_hz || (*freq_hz == 0)) |
| 631 | continue; | 619 | continue; |
| 632 | 620 | ||
| 633 | grlib_apbuart_nodes[line] = np; | 621 | grlib_apbuart_nodes[line] = np; |
| @@ -638,12 +626,12 @@ static int grlib_apbuart_configure(void) | |||
| 638 | 626 | ||
| 639 | port->mapbase = addr; | 627 | port->mapbase = addr; |
| 640 | port->membase = ioremap(addr, sizeof(struct grlib_apbuart_regs_map)); | 628 | port->membase = ioremap(addr, sizeof(struct grlib_apbuart_regs_map)); |
| 641 | port->irq = *irqs; | 629 | port->irq = 0; |
| 642 | port->iotype = UPIO_MEM; | 630 | port->iotype = UPIO_MEM; |
| 643 | port->ops = &grlib_apbuart_ops; | 631 | port->ops = &grlib_apbuart_ops; |
| 644 | port->flags = UPF_BOOT_AUTOCONF; | 632 | port->flags = UPF_BOOT_AUTOCONF; |
| 645 | port->line = line; | 633 | port->line = line; |
| 646 | port->uartclk = freq_khz * 1000; | 634 | port->uartclk = *freq_hz; |
| 647 | port->fifosize = apbuart_scan_fifo_size((struct uart_port *) port, line); | 635 | port->fifosize = apbuart_scan_fifo_size((struct uart_port *) port, line); |
| 648 | line++; | 636 | line++; |
| 649 | 637 | ||
