diff options
80 files changed, 493 insertions, 494 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 071a99674347..7f6bc290d455 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -1930,6 +1930,7 @@ CONTROL GROUPS (CGROUPS) | |||
| 1930 | M: Paul Menage <paul@paulmenage.org> | 1930 | M: Paul Menage <paul@paulmenage.org> |
| 1931 | M: Li Zefan <lizf@cn.fujitsu.com> | 1931 | M: Li Zefan <lizf@cn.fujitsu.com> |
| 1932 | L: containers@lists.linux-foundation.org | 1932 | L: containers@lists.linux-foundation.org |
| 1933 | L: cgroups@vger.kernel.org | ||
| 1933 | S: Maintained | 1934 | S: Maintained |
| 1934 | F: include/linux/cgroup* | 1935 | F: include/linux/cgroup* |
| 1935 | F: kernel/cgroup* | 1936 | F: kernel/cgroup* |
| @@ -4304,6 +4305,7 @@ MEMORY RESOURCE CONTROLLER | |||
| 4304 | M: Balbir Singh <bsingharora@gmail.com> | 4305 | M: Balbir Singh <bsingharora@gmail.com> |
| 4305 | M: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> | 4306 | M: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> |
| 4306 | M: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> | 4307 | M: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> |
| 4308 | L: cgroups@vger.kernel.org | ||
| 4307 | L: linux-mm@kvack.org | 4309 | L: linux-mm@kvack.org |
| 4308 | S: Maintained | 4310 | S: Maintained |
| 4309 | F: mm/memcontrol.c | 4311 | F: mm/memcontrol.c |
| @@ -4337,7 +4339,7 @@ MIPS | |||
| 4337 | M: Ralf Baechle <ralf@linux-mips.org> | 4339 | M: Ralf Baechle <ralf@linux-mips.org> |
| 4338 | L: linux-mips@linux-mips.org | 4340 | L: linux-mips@linux-mips.org |
| 4339 | W: http://www.linux-mips.org/ | 4341 | W: http://www.linux-mips.org/ |
| 4340 | T: git git://git.linux-mips.org/pub/scm/linux.git | 4342 | T: git git://git.linux-mips.org/pub/scm/ralf/linux.git |
| 4341 | Q: http://patchwork.linux-mips.org/project/linux-mips/list/ | 4343 | Q: http://patchwork.linux-mips.org/project/linux-mips/list/ |
| 4342 | S: Supported | 4344 | S: Supported |
| 4343 | F: Documentation/mips/ | 4345 | F: Documentation/mips/ |
| @@ -1,7 +1,7 @@ | |||
| 1 | VERSION = 3 | 1 | VERSION = 3 |
| 2 | PATCHLEVEL = 2 | 2 | PATCHLEVEL = 2 |
| 3 | SUBLEVEL = 0 | 3 | SUBLEVEL = 0 |
| 4 | EXTRAVERSION = -rc1 | 4 | EXTRAVERSION = -rc2 |
| 5 | NAME = Saber-toothed Squirrel | 5 | NAME = Saber-toothed Squirrel |
| 6 | 6 | ||
| 7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/blackfin/include/asm/bfin_serial.h b/arch/blackfin/include/asm/bfin_serial.h index 7fd0ec7b5b0f..ecacdf34768b 100644 --- a/arch/blackfin/include/asm/bfin_serial.h +++ b/arch/blackfin/include/asm/bfin_serial.h | |||
| @@ -32,6 +32,8 @@ struct work_struct; | |||
| 32 | struct bfin_serial_port { | 32 | struct bfin_serial_port { |
| 33 | struct uart_port port; | 33 | struct uart_port port; |
| 34 | unsigned int old_status; | 34 | unsigned int old_status; |
| 35 | int tx_irq; | ||
| 36 | int rx_irq; | ||
| 35 | int status_irq; | 37 | int status_irq; |
| 36 | #ifndef BFIN_UART_BF54X_STYLE | 38 | #ifndef BFIN_UART_BF54X_STYLE |
| 37 | unsigned int lsr; | 39 | unsigned int lsr; |
diff --git a/arch/blackfin/mach-bf518/boards/ezbrd.c b/arch/blackfin/mach-bf518/boards/ezbrd.c index 1082e49f7a9f..d1c0c0cff3ef 100644 --- a/arch/blackfin/mach-bf518/boards/ezbrd.c +++ b/arch/blackfin/mach-bf518/boards/ezbrd.c | |||
| @@ -373,8 +373,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 373 | .flags = IORESOURCE_MEM, | 373 | .flags = IORESOURCE_MEM, |
| 374 | }, | 374 | }, |
| 375 | { | 375 | { |
| 376 | .start = IRQ_UART0_TX, | ||
| 377 | .end = IRQ_UART0_TX, | ||
| 378 | .flags = IORESOURCE_IRQ, | ||
| 379 | }, | ||
| 380 | { | ||
| 376 | .start = IRQ_UART0_RX, | 381 | .start = IRQ_UART0_RX, |
| 377 | .end = IRQ_UART0_RX+1, | 382 | .end = IRQ_UART0_RX, |
| 378 | .flags = IORESOURCE_IRQ, | 383 | .flags = IORESOURCE_IRQ, |
| 379 | }, | 384 | }, |
| 380 | { | 385 | { |
| @@ -416,8 +421,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 416 | .flags = IORESOURCE_MEM, | 421 | .flags = IORESOURCE_MEM, |
| 417 | }, | 422 | }, |
| 418 | { | 423 | { |
| 424 | .start = IRQ_UART1_TX, | ||
| 425 | .end = IRQ_UART1_TX, | ||
| 426 | .flags = IORESOURCE_IRQ, | ||
| 427 | }, | ||
| 428 | { | ||
| 419 | .start = IRQ_UART1_RX, | 429 | .start = IRQ_UART1_RX, |
| 420 | .end = IRQ_UART1_RX+1, | 430 | .end = IRQ_UART1_RX, |
| 421 | .flags = IORESOURCE_IRQ, | 431 | .flags = IORESOURCE_IRQ, |
| 422 | }, | 432 | }, |
| 423 | { | 433 | { |
diff --git a/arch/blackfin/mach-bf518/boards/tcm-bf518.c b/arch/blackfin/mach-bf518/boards/tcm-bf518.c index 55c127908815..5470bf89e52e 100644 --- a/arch/blackfin/mach-bf518/boards/tcm-bf518.c +++ b/arch/blackfin/mach-bf518/boards/tcm-bf518.c | |||
| @@ -309,8 +309,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 309 | .flags = IORESOURCE_MEM, | 309 | .flags = IORESOURCE_MEM, |
| 310 | }, | 310 | }, |
| 311 | { | 311 | { |
| 312 | .start = IRQ_UART0_TX, | ||
| 313 | .end = IRQ_UART0_TX, | ||
| 314 | .flags = IORESOURCE_IRQ, | ||
| 315 | }, | ||
| 316 | { | ||
| 312 | .start = IRQ_UART0_RX, | 317 | .start = IRQ_UART0_RX, |
| 313 | .end = IRQ_UART0_RX+1, | 318 | .end = IRQ_UART0_RX, |
| 314 | .flags = IORESOURCE_IRQ, | 319 | .flags = IORESOURCE_IRQ, |
| 315 | }, | 320 | }, |
| 316 | { | 321 | { |
| @@ -352,8 +357,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 352 | .flags = IORESOURCE_MEM, | 357 | .flags = IORESOURCE_MEM, |
| 353 | }, | 358 | }, |
| 354 | { | 359 | { |
| 360 | .start = IRQ_UART1_TX, | ||
| 361 | .end = IRQ_UART1_TX, | ||
| 362 | .flags = IORESOURCE_IRQ, | ||
| 363 | }, | ||
| 364 | { | ||
| 355 | .start = IRQ_UART1_RX, | 365 | .start = IRQ_UART1_RX, |
| 356 | .end = IRQ_UART1_RX+1, | 366 | .end = IRQ_UART1_RX, |
| 357 | .flags = IORESOURCE_IRQ, | 367 | .flags = IORESOURCE_IRQ, |
| 358 | }, | 368 | }, |
| 359 | { | 369 | { |
diff --git a/arch/blackfin/mach-bf527/boards/ad7160eval.c b/arch/blackfin/mach-bf527/boards/ad7160eval.c index 8d65d476f118..5bc6938157ad 100644 --- a/arch/blackfin/mach-bf527/boards/ad7160eval.c +++ b/arch/blackfin/mach-bf527/boards/ad7160eval.c | |||
| @@ -381,8 +381,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 381 | .flags = IORESOURCE_MEM, | 381 | .flags = IORESOURCE_MEM, |
| 382 | }, | 382 | }, |
| 383 | { | 383 | { |
| 384 | .start = IRQ_UART0_TX, | ||
| 385 | .end = IRQ_UART0_TX, | ||
| 386 | .flags = IORESOURCE_IRQ, | ||
| 387 | }, | ||
| 388 | { | ||
| 384 | .start = IRQ_UART0_RX, | 389 | .start = IRQ_UART0_RX, |
| 385 | .end = IRQ_UART0_RX+1, | 390 | .end = IRQ_UART0_RX, |
| 386 | .flags = IORESOURCE_IRQ, | 391 | .flags = IORESOURCE_IRQ, |
| 387 | }, | 392 | }, |
| 388 | { | 393 | { |
| @@ -424,8 +429,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 424 | .flags = IORESOURCE_MEM, | 429 | .flags = IORESOURCE_MEM, |
| 425 | }, | 430 | }, |
| 426 | { | 431 | { |
| 432 | .start = IRQ_UART1_TX, | ||
| 433 | .end = IRQ_UART1_TX, | ||
| 434 | .flags = IORESOURCE_IRQ, | ||
| 435 | }, | ||
| 436 | { | ||
| 427 | .start = IRQ_UART1_RX, | 437 | .start = IRQ_UART1_RX, |
| 428 | .end = IRQ_UART1_RX+1, | 438 | .end = IRQ_UART1_RX, |
| 429 | .flags = IORESOURCE_IRQ, | 439 | .flags = IORESOURCE_IRQ, |
| 430 | }, | 440 | }, |
| 431 | { | 441 | { |
diff --git a/arch/blackfin/mach-bf527/boards/cm_bf527.c b/arch/blackfin/mach-bf527/boards/cm_bf527.c index 6410fc1af8ed..cd289698b4dd 100644 --- a/arch/blackfin/mach-bf527/boards/cm_bf527.c +++ b/arch/blackfin/mach-bf527/boards/cm_bf527.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/device.h> | 10 | #include <linux/device.h> |
| 11 | #include <linux/export.h> | ||
| 11 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
| 12 | #include <linux/mtd/mtd.h> | 13 | #include <linux/mtd/mtd.h> |
| 13 | #include <linux/mtd/partitions.h> | 14 | #include <linux/mtd/partitions.h> |
| @@ -539,8 +540,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 539 | .flags = IORESOURCE_MEM, | 540 | .flags = IORESOURCE_MEM, |
| 540 | }, | 541 | }, |
| 541 | { | 542 | { |
| 543 | .start = IRQ_UART0_TX, | ||
| 544 | .end = IRQ_UART0_TX, | ||
| 545 | .flags = IORESOURCE_IRQ, | ||
| 546 | }, | ||
| 547 | { | ||
| 542 | .start = IRQ_UART0_RX, | 548 | .start = IRQ_UART0_RX, |
| 543 | .end = IRQ_UART0_RX+1, | 549 | .end = IRQ_UART0_RX, |
| 544 | .flags = IORESOURCE_IRQ, | 550 | .flags = IORESOURCE_IRQ, |
| 545 | }, | 551 | }, |
| 546 | { | 552 | { |
| @@ -582,8 +588,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 582 | .flags = IORESOURCE_MEM, | 588 | .flags = IORESOURCE_MEM, |
| 583 | }, | 589 | }, |
| 584 | { | 590 | { |
| 591 | .start = IRQ_UART1_TX, | ||
| 592 | .end = IRQ_UART1_TX, | ||
| 593 | .flags = IORESOURCE_IRQ, | ||
| 594 | }, | ||
| 595 | { | ||
| 585 | .start = IRQ_UART1_RX, | 596 | .start = IRQ_UART1_RX, |
| 586 | .end = IRQ_UART1_RX+1, | 597 | .end = IRQ_UART1_RX, |
| 587 | .flags = IORESOURCE_IRQ, | 598 | .flags = IORESOURCE_IRQ, |
| 588 | }, | 599 | }, |
| 589 | { | 600 | { |
| @@ -801,7 +812,6 @@ static struct platform_device bfin_sport1_uart_device = { | |||
| 801 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 812 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
| 802 | #include <linux/input.h> | 813 | #include <linux/input.h> |
| 803 | #include <linux/gpio_keys.h> | 814 | #include <linux/gpio_keys.h> |
| 804 | #include <linux/export.h> | ||
| 805 | 815 | ||
| 806 | static struct gpio_keys_button bfin_gpio_keys_table[] = { | 816 | static struct gpio_keys_button bfin_gpio_keys_table[] = { |
| 807 | {BTN_0, GPIO_PF14, 1, "gpio-keys: BTN0"}, | 817 | {BTN_0, GPIO_PF14, 1, "gpio-keys: BTN0"}, |
diff --git a/arch/blackfin/mach-bf527/boards/ezbrd.c b/arch/blackfin/mach-bf527/boards/ezbrd.c index 64f7278aba53..9f792eafd1cc 100644 --- a/arch/blackfin/mach-bf527/boards/ezbrd.c +++ b/arch/blackfin/mach-bf527/boards/ezbrd.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/device.h> | 9 | #include <linux/device.h> |
| 10 | #include <linux/export.h> | ||
| 10 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
| 11 | #include <linux/mtd/mtd.h> | 12 | #include <linux/mtd/mtd.h> |
| 12 | #include <linux/mtd/partitions.h> | 13 | #include <linux/mtd/partitions.h> |
| @@ -417,8 +418,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 417 | .flags = IORESOURCE_MEM, | 418 | .flags = IORESOURCE_MEM, |
| 418 | }, | 419 | }, |
| 419 | { | 420 | { |
| 421 | .start = IRQ_UART0_TX, | ||
| 422 | .end = IRQ_UART0_TX, | ||
| 423 | .flags = IORESOURCE_IRQ, | ||
| 424 | }, | ||
| 425 | { | ||
| 420 | .start = IRQ_UART0_RX, | 426 | .start = IRQ_UART0_RX, |
| 421 | .end = IRQ_UART0_RX+1, | 427 | .end = IRQ_UART0_RX, |
| 422 | .flags = IORESOURCE_IRQ, | 428 | .flags = IORESOURCE_IRQ, |
| 423 | }, | 429 | }, |
| 424 | { | 430 | { |
| @@ -460,8 +466,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 460 | .flags = IORESOURCE_MEM, | 466 | .flags = IORESOURCE_MEM, |
| 461 | }, | 467 | }, |
| 462 | { | 468 | { |
| 469 | .start = IRQ_UART1_TX, | ||
| 470 | .end = IRQ_UART1_TX, | ||
| 471 | .flags = IORESOURCE_IRQ, | ||
| 472 | }, | ||
| 473 | { | ||
| 463 | .start = IRQ_UART1_RX, | 474 | .start = IRQ_UART1_RX, |
| 464 | .end = IRQ_UART1_RX+1, | 475 | .end = IRQ_UART1_RX, |
| 465 | .flags = IORESOURCE_IRQ, | 476 | .flags = IORESOURCE_IRQ, |
| 466 | }, | 477 | }, |
| 467 | { | 478 | { |
| @@ -674,7 +685,6 @@ static struct platform_device bfin_sport1_uart_device = { | |||
| 674 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | 685 | #if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) |
| 675 | #include <linux/input.h> | 686 | #include <linux/input.h> |
| 676 | #include <linux/gpio_keys.h> | 687 | #include <linux/gpio_keys.h> |
| 677 | #include <linux/export.h> | ||
| 678 | 688 | ||
| 679 | static struct gpio_keys_button bfin_gpio_keys_table[] = { | 689 | static struct gpio_keys_button bfin_gpio_keys_table[] = { |
| 680 | {BTN_0, GPIO_PG0, 1, "gpio-keys: BTN0"}, | 690 | {BTN_0, GPIO_PG0, 1, "gpio-keys: BTN0"}, |
diff --git a/arch/blackfin/mach-bf527/boards/ezkit.c b/arch/blackfin/mach-bf527/boards/ezkit.c index e4c6a122b66c..3ecafff5d2ef 100644 --- a/arch/blackfin/mach-bf527/boards/ezkit.c +++ b/arch/blackfin/mach-bf527/boards/ezkit.c | |||
| @@ -711,8 +711,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 711 | .flags = IORESOURCE_MEM, | 711 | .flags = IORESOURCE_MEM, |
| 712 | }, | 712 | }, |
| 713 | { | 713 | { |
| 714 | .start = IRQ_UART0_TX, | ||
| 715 | .end = IRQ_UART0_TX, | ||
| 716 | .flags = IORESOURCE_IRQ, | ||
| 717 | }, | ||
| 718 | { | ||
| 714 | .start = IRQ_UART0_RX, | 719 | .start = IRQ_UART0_RX, |
| 715 | .end = IRQ_UART0_RX+1, | 720 | .end = IRQ_UART0_RX, |
| 716 | .flags = IORESOURCE_IRQ, | 721 | .flags = IORESOURCE_IRQ, |
| 717 | }, | 722 | }, |
| 718 | { | 723 | { |
| @@ -754,8 +759,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 754 | .flags = IORESOURCE_MEM, | 759 | .flags = IORESOURCE_MEM, |
| 755 | }, | 760 | }, |
| 756 | { | 761 | { |
| 762 | .start = IRQ_UART1_TX, | ||
| 763 | .end = IRQ_UART1_TX, | ||
| 764 | .flags = IORESOURCE_IRQ, | ||
| 765 | }, | ||
| 766 | { | ||
| 757 | .start = IRQ_UART1_RX, | 767 | .start = IRQ_UART1_RX, |
| 758 | .end = IRQ_UART1_RX+1, | 768 | .end = IRQ_UART1_RX, |
| 759 | .flags = IORESOURCE_IRQ, | 769 | .flags = IORESOURCE_IRQ, |
| 760 | }, | 770 | }, |
| 761 | { | 771 | { |
diff --git a/arch/blackfin/mach-bf527/boards/tll6527m.c b/arch/blackfin/mach-bf527/boards/tll6527m.c index 76dbc03a8d4d..3a92c4318d2d 100644 --- a/arch/blackfin/mach-bf527/boards/tll6527m.c +++ b/arch/blackfin/mach-bf527/boards/tll6527m.c | |||
| @@ -496,8 +496,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 496 | .flags = IORESOURCE_MEM, | 496 | .flags = IORESOURCE_MEM, |
| 497 | }, | 497 | }, |
| 498 | { | 498 | { |
| 499 | .start = IRQ_UART0_TX, | ||
| 500 | .end = IRQ_UART0_TX, | ||
| 501 | .flags = IORESOURCE_IRQ, | ||
| 502 | }, | ||
| 503 | { | ||
| 499 | .start = IRQ_UART0_RX, | 504 | .start = IRQ_UART0_RX, |
| 500 | .end = IRQ_UART0_RX+1, | 505 | .end = IRQ_UART0_RX, |
| 501 | .flags = IORESOURCE_IRQ, | 506 | .flags = IORESOURCE_IRQ, |
| 502 | }, | 507 | }, |
| 503 | { | 508 | { |
| @@ -540,8 +545,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 540 | .flags = IORESOURCE_MEM, | 545 | .flags = IORESOURCE_MEM, |
| 541 | }, | 546 | }, |
| 542 | { | 547 | { |
| 548 | .start = IRQ_UART1_TX, | ||
| 549 | .end = IRQ_UART1_TX, | ||
| 550 | .flags = IORESOURCE_IRQ, | ||
| 551 | }, | ||
| 552 | { | ||
| 543 | .start = IRQ_UART1_RX, | 553 | .start = IRQ_UART1_RX, |
| 544 | .end = IRQ_UART1_RX+1, | 554 | .end = IRQ_UART1_RX, |
| 545 | .flags = IORESOURCE_IRQ, | 555 | .flags = IORESOURCE_IRQ, |
| 546 | }, | 556 | }, |
| 547 | { | 557 | { |
diff --git a/arch/blackfin/mach-bf533/boards/H8606.c b/arch/blackfin/mach-bf533/boards/H8606.c index 5da5787fc4ef..47cadd316e76 100644 --- a/arch/blackfin/mach-bf533/boards/H8606.c +++ b/arch/blackfin/mach-bf533/boards/H8606.c | |||
| @@ -238,8 +238,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 238 | .flags = IORESOURCE_MEM, | 238 | .flags = IORESOURCE_MEM, |
| 239 | }, | 239 | }, |
| 240 | { | 240 | { |
| 241 | .start = IRQ_UART0_TX, | ||
| 242 | .end = IRQ_UART0_TX, | ||
| 243 | .flags = IORESOURCE_IRQ, | ||
| 244 | }, | ||
| 245 | { | ||
| 241 | .start = IRQ_UART0_RX, | 246 | .start = IRQ_UART0_RX, |
| 242 | .end = IRQ_UART0_RX + 1, | 247 | .end = IRQ_UART0_RX, |
| 243 | .flags = IORESOURCE_IRQ, | 248 | .flags = IORESOURCE_IRQ, |
| 244 | }, | 249 | }, |
| 245 | { | 250 | { |
diff --git a/arch/blackfin/mach-bf533/boards/blackstamp.c b/arch/blackfin/mach-bf533/boards/blackstamp.c index b0ec825fb4ec..18817d57c7a1 100644 --- a/arch/blackfin/mach-bf533/boards/blackstamp.c +++ b/arch/blackfin/mach-bf533/boards/blackstamp.c | |||
| @@ -193,8 +193,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 193 | .flags = IORESOURCE_MEM, | 193 | .flags = IORESOURCE_MEM, |
| 194 | }, | 194 | }, |
| 195 | { | 195 | { |
| 196 | .start = IRQ_UART0_TX, | ||
| 197 | .end = IRQ_UART0_TX, | ||
| 198 | .flags = IORESOURCE_IRQ, | ||
| 199 | }, | ||
| 200 | { | ||
| 196 | .start = IRQ_UART0_RX, | 201 | .start = IRQ_UART0_RX, |
| 197 | .end = IRQ_UART0_RX + 1, | 202 | .end = IRQ_UART0_RX, |
| 198 | .flags = IORESOURCE_IRQ, | 203 | .flags = IORESOURCE_IRQ, |
| 199 | }, | 204 | }, |
| 200 | { | 205 | { |
diff --git a/arch/blackfin/mach-bf533/boards/cm_bf533.c b/arch/blackfin/mach-bf533/boards/cm_bf533.c index 14f54a31e74c..2c8f30ef6a7b 100644 --- a/arch/blackfin/mach-bf533/boards/cm_bf533.c +++ b/arch/blackfin/mach-bf533/boards/cm_bf533.c | |||
| @@ -221,8 +221,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 221 | .flags = IORESOURCE_MEM, | 221 | .flags = IORESOURCE_MEM, |
| 222 | }, | 222 | }, |
| 223 | { | 223 | { |
| 224 | .start = IRQ_UART0_TX, | ||
| 225 | .end = IRQ_UART0_TX, | ||
| 226 | .flags = IORESOURCE_IRQ, | ||
| 227 | }, | ||
| 228 | { | ||
| 224 | .start = IRQ_UART0_RX, | 229 | .start = IRQ_UART0_RX, |
| 225 | .end = IRQ_UART0_RX + 1, | 230 | .end = IRQ_UART0_RX, |
| 226 | .flags = IORESOURCE_IRQ, | 231 | .flags = IORESOURCE_IRQ, |
| 227 | }, | 232 | }, |
| 228 | { | 233 | { |
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c index ecd2801f050d..144556e14499 100644 --- a/arch/blackfin/mach-bf533/boards/ezkit.c +++ b/arch/blackfin/mach-bf533/boards/ezkit.c | |||
| @@ -292,8 +292,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 292 | .flags = IORESOURCE_MEM, | 292 | .flags = IORESOURCE_MEM, |
| 293 | }, | 293 | }, |
| 294 | { | 294 | { |
| 295 | .start = IRQ_UART0_TX, | ||
| 296 | .end = IRQ_UART0_TX, | ||
| 297 | .flags = IORESOURCE_IRQ, | ||
| 298 | }, | ||
| 299 | { | ||
| 295 | .start = IRQ_UART0_RX, | 300 | .start = IRQ_UART0_RX, |
| 296 | .end = IRQ_UART0_RX + 1, | 301 | .end = IRQ_UART0_RX, |
| 297 | .flags = IORESOURCE_IRQ, | 302 | .flags = IORESOURCE_IRQ, |
| 298 | }, | 303 | }, |
| 299 | { | 304 | { |
diff --git a/arch/blackfin/mach-bf533/boards/ip0x.c b/arch/blackfin/mach-bf533/boards/ip0x.c index fbee77fa9211..b597d4e50d58 100644 --- a/arch/blackfin/mach-bf533/boards/ip0x.c +++ b/arch/blackfin/mach-bf533/boards/ip0x.c | |||
| @@ -151,8 +151,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 151 | .flags = IORESOURCE_MEM, | 151 | .flags = IORESOURCE_MEM, |
| 152 | }, | 152 | }, |
| 153 | { | 153 | { |
| 154 | .start = IRQ_UART0_TX, | ||
| 155 | .end = IRQ_UART0_TX, | ||
| 156 | .flags = IORESOURCE_IRQ, | ||
| 157 | }, | ||
| 158 | { | ||
| 154 | .start = IRQ_UART0_RX, | 159 | .start = IRQ_UART0_RX, |
| 155 | .end = IRQ_UART0_RX + 1, | 160 | .end = IRQ_UART0_RX, |
| 156 | .flags = IORESOURCE_IRQ, | 161 | .flags = IORESOURCE_IRQ, |
| 157 | }, | 162 | }, |
| 158 | { | 163 | { |
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c index 964a8e5f79b4..2afd02e14bd1 100644 --- a/arch/blackfin/mach-bf533/boards/stamp.c +++ b/arch/blackfin/mach-bf533/boards/stamp.c | |||
| @@ -298,8 +298,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 298 | .flags = IORESOURCE_MEM, | 298 | .flags = IORESOURCE_MEM, |
| 299 | }, | 299 | }, |
| 300 | { | 300 | { |
| 301 | .start = IRQ_UART0_TX, | ||
| 302 | .end = IRQ_UART0_TX, | ||
| 303 | .flags = IORESOURCE_IRQ, | ||
| 304 | }, | ||
| 305 | { | ||
| 301 | .start = IRQ_UART0_RX, | 306 | .start = IRQ_UART0_RX, |
| 302 | .end = IRQ_UART0_RX + 1, | 307 | .end = IRQ_UART0_RX, |
| 303 | .flags = IORESOURCE_IRQ, | 308 | .flags = IORESOURCE_IRQ, |
| 304 | }, | 309 | }, |
| 305 | { | 310 | { |
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537e.c b/arch/blackfin/mach-bf537/boards/cm_bf537e.c index 1471c51ea697..604a430038e1 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537e.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537e.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/device.h> | 10 | #include <linux/device.h> |
| 11 | #include <linux/export.h> | ||
| 11 | #include <linux/etherdevice.h> | 12 | #include <linux/etherdevice.h> |
| 12 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 13 | #include <linux/mtd/mtd.h> | 14 | #include <linux/mtd/mtd.h> |
| @@ -305,8 +306,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 305 | .flags = IORESOURCE_MEM, | 306 | .flags = IORESOURCE_MEM, |
| 306 | }, | 307 | }, |
| 307 | { | 308 | { |
| 309 | .start = IRQ_UART0_TX, | ||
| 310 | .end = IRQ_UART0_TX, | ||
| 311 | .flags = IORESOURCE_IRQ, | ||
| 312 | }, | ||
| 313 | { | ||
| 308 | .start = IRQ_UART0_RX, | 314 | .start = IRQ_UART0_RX, |
| 309 | .end = IRQ_UART0_RX+1, | 315 | .end = IRQ_UART0_RX, |
| 310 | .flags = IORESOURCE_IRQ, | 316 | .flags = IORESOURCE_IRQ, |
| 311 | }, | 317 | }, |
| 312 | { | 318 | { |
| @@ -366,8 +372,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 366 | .flags = IORESOURCE_MEM, | 372 | .flags = IORESOURCE_MEM, |
| 367 | }, | 373 | }, |
| 368 | { | 374 | { |
| 375 | .start = IRQ_UART1_TX, | ||
| 376 | .end = IRQ_UART1_TX, | ||
| 377 | .flags = IORESOURCE_IRQ, | ||
| 378 | }, | ||
| 379 | { | ||
| 369 | .start = IRQ_UART1_RX, | 380 | .start = IRQ_UART1_RX, |
| 370 | .end = IRQ_UART1_RX+1, | 381 | .end = IRQ_UART1_RX, |
| 371 | .flags = IORESOURCE_IRQ, | 382 | .flags = IORESOURCE_IRQ, |
| 372 | }, | 383 | }, |
| 373 | { | 384 | { |
| @@ -569,7 +580,6 @@ static struct platform_device bfin_sport1_uart_device = { | |||
| 569 | 580 | ||
| 570 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | 581 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) |
| 571 | #include <linux/bfin_mac.h> | 582 | #include <linux/bfin_mac.h> |
| 572 | #include <linux/export.h> | ||
| 573 | static const unsigned short bfin_mac_peripherals[] = P_MII0; | 583 | static const unsigned short bfin_mac_peripherals[] = P_MII0; |
| 574 | 584 | ||
| 575 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { | 585 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { |
diff --git a/arch/blackfin/mach-bf537/boards/cm_bf537u.c b/arch/blackfin/mach-bf537/boards/cm_bf537u.c index 47cf37de33ba..d916b46a44fe 100644 --- a/arch/blackfin/mach-bf537/boards/cm_bf537u.c +++ b/arch/blackfin/mach-bf537/boards/cm_bf537u.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | #include <linux/device.h> | 10 | #include <linux/device.h> |
| 11 | #include <linux/etherdevice.h> | 11 | #include <linux/etherdevice.h> |
| 12 | #include <linux/export.h> | ||
| 12 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 13 | #include <linux/mtd/mtd.h> | 14 | #include <linux/mtd/mtd.h> |
| 14 | #include <linux/mtd/partitions.h> | 15 | #include <linux/mtd/partitions.h> |
| @@ -306,8 +307,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 306 | .flags = IORESOURCE_MEM, | 307 | .flags = IORESOURCE_MEM, |
| 307 | }, | 308 | }, |
| 308 | { | 309 | { |
| 310 | .start = IRQ_UART0_TX, | ||
| 311 | .end = IRQ_UART0_TX, | ||
| 312 | .flags = IORESOURCE_IRQ, | ||
| 313 | }, | ||
| 314 | { | ||
| 309 | .start = IRQ_UART0_RX, | 315 | .start = IRQ_UART0_RX, |
| 310 | .end = IRQ_UART0_RX+1, | 316 | .end = IRQ_UART0_RX, |
| 311 | .flags = IORESOURCE_IRQ, | 317 | .flags = IORESOURCE_IRQ, |
| 312 | }, | 318 | }, |
| 313 | { | 319 | { |
| @@ -349,8 +355,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 349 | .flags = IORESOURCE_MEM, | 355 | .flags = IORESOURCE_MEM, |
| 350 | }, | 356 | }, |
| 351 | { | 357 | { |
| 358 | .start = IRQ_UART1_TX, | ||
| 359 | .end = IRQ_UART1_TX, | ||
| 360 | .flags = IORESOURCE_IRQ, | ||
| 361 | }, | ||
| 362 | { | ||
| 352 | .start = IRQ_UART1_RX, | 363 | .start = IRQ_UART1_RX, |
| 353 | .end = IRQ_UART1_RX+1, | 364 | .end = IRQ_UART1_RX, |
| 354 | .flags = IORESOURCE_IRQ, | 365 | .flags = IORESOURCE_IRQ, |
| 355 | }, | 366 | }, |
| 356 | { | 367 | { |
| @@ -534,7 +545,6 @@ static struct platform_device bfin_sport1_uart_device = { | |||
| 534 | 545 | ||
| 535 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | 546 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) |
| 536 | #include <linux/bfin_mac.h> | 547 | #include <linux/bfin_mac.h> |
| 537 | #include <linux/export.h> | ||
| 538 | static const unsigned short bfin_mac_peripherals[] = P_MII0; | 548 | static const unsigned short bfin_mac_peripherals[] = P_MII0; |
| 539 | 549 | ||
| 540 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { | 550 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { |
diff --git a/arch/blackfin/mach-bf537/boards/dnp5370.c b/arch/blackfin/mach-bf537/boards/dnp5370.c index 33e69e427e98..5f307228be63 100644 --- a/arch/blackfin/mach-bf537/boards/dnp5370.c +++ b/arch/blackfin/mach-bf537/boards/dnp5370.c | |||
| @@ -12,6 +12,7 @@ | |||
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | #include <linux/device.h> | 14 | #include <linux/device.h> |
| 15 | #include <linux/export.h> | ||
| 15 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
| 16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
| 17 | #include <linux/io.h> | 18 | #include <linux/io.h> |
| @@ -49,7 +50,6 @@ static struct platform_device rtc_device = { | |||
| 49 | 50 | ||
| 50 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | 51 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) |
| 51 | #include <linux/bfin_mac.h> | 52 | #include <linux/bfin_mac.h> |
| 52 | #include <linux/export.h> | ||
| 53 | static const unsigned short bfin_mac_peripherals[] = P_RMII0; | 53 | static const unsigned short bfin_mac_peripherals[] = P_RMII0; |
| 54 | 54 | ||
| 55 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { | 55 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { |
| @@ -237,8 +237,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 237 | .flags = IORESOURCE_MEM, | 237 | .flags = IORESOURCE_MEM, |
| 238 | }, | 238 | }, |
| 239 | { | 239 | { |
| 240 | .start = IRQ_UART0_TX, | ||
| 241 | .end = IRQ_UART0_TX, | ||
| 242 | .flags = IORESOURCE_IRQ, | ||
| 243 | }, | ||
| 244 | { | ||
| 240 | .start = IRQ_UART0_RX, | 245 | .start = IRQ_UART0_RX, |
| 241 | .end = IRQ_UART0_RX+1, | 246 | .end = IRQ_UART0_RX, |
| 242 | .flags = IORESOURCE_IRQ, | 247 | .flags = IORESOURCE_IRQ, |
| 243 | }, | 248 | }, |
| 244 | { | 249 | { |
| @@ -281,8 +286,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 281 | .flags = IORESOURCE_MEM, | 286 | .flags = IORESOURCE_MEM, |
| 282 | }, | 287 | }, |
| 283 | { | 288 | { |
| 289 | .start = IRQ_UART1_TX, | ||
| 290 | .end = IRQ_UART1_TX, | ||
| 291 | .flags = IORESOURCE_IRQ, | ||
| 292 | }, | ||
| 293 | { | ||
| 284 | .start = IRQ_UART1_RX, | 294 | .start = IRQ_UART1_RX, |
| 285 | .end = IRQ_UART1_RX+1, | 295 | .end = IRQ_UART1_RX, |
| 286 | .flags = IORESOURCE_IRQ, | 296 | .flags = IORESOURCE_IRQ, |
| 287 | }, | 297 | }, |
| 288 | { | 298 | { |
diff --git a/arch/blackfin/mach-bf537/boards/minotaur.c b/arch/blackfin/mach-bf537/boards/minotaur.c index c62f9dccd9f7..3901dd093b90 100644 --- a/arch/blackfin/mach-bf537/boards/minotaur.c +++ b/arch/blackfin/mach-bf537/boards/minotaur.c | |||
| @@ -240,8 +240,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 240 | .flags = IORESOURCE_MEM, | 240 | .flags = IORESOURCE_MEM, |
| 241 | }, | 241 | }, |
| 242 | { | 242 | { |
| 243 | .start = IRQ_UART0_TX, | ||
| 244 | .end = IRQ_UART0_TX, | ||
| 245 | .flags = IORESOURCE_IRQ, | ||
| 246 | }, | ||
| 247 | { | ||
| 243 | .start = IRQ_UART0_RX, | 248 | .start = IRQ_UART0_RX, |
| 244 | .end = IRQ_UART0_RX+1, | 249 | .end = IRQ_UART0_RX, |
| 245 | .flags = IORESOURCE_IRQ, | 250 | .flags = IORESOURCE_IRQ, |
| 246 | }, | 251 | }, |
| 247 | { | 252 | { |
| @@ -283,8 +288,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 283 | .flags = IORESOURCE_MEM, | 288 | .flags = IORESOURCE_MEM, |
| 284 | }, | 289 | }, |
| 285 | { | 290 | { |
| 291 | .start = IRQ_UART1_TX, | ||
| 292 | .end = IRQ_UART1_TX, | ||
| 293 | .flags = IORESOURCE_IRQ, | ||
| 294 | }, | ||
| 295 | { | ||
| 286 | .start = IRQ_UART1_RX, | 296 | .start = IRQ_UART1_RX, |
| 287 | .end = IRQ_UART1_RX+1, | 297 | .end = IRQ_UART1_RX, |
| 288 | .flags = IORESOURCE_IRQ, | 298 | .flags = IORESOURCE_IRQ, |
| 289 | }, | 299 | }, |
| 290 | { | 300 | { |
diff --git a/arch/blackfin/mach-bf537/boards/pnav10.c b/arch/blackfin/mach-bf537/boards/pnav10.c index 3099e91114fc..aebd31c845f0 100644 --- a/arch/blackfin/mach-bf537/boards/pnav10.c +++ b/arch/blackfin/mach-bf537/boards/pnav10.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | 8 | ||
| 9 | #include <linux/device.h> | 9 | #include <linux/device.h> |
| 10 | #include <linux/etherdevice.h> | 10 | #include <linux/etherdevice.h> |
| 11 | #include <linux/export.h> | ||
| 11 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
| 12 | #include <linux/mtd/mtd.h> | 13 | #include <linux/mtd/mtd.h> |
| 13 | #include <linux/mtd/partitions.h> | 14 | #include <linux/mtd/partitions.h> |
| @@ -309,8 +310,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 309 | .flags = IORESOURCE_MEM, | 310 | .flags = IORESOURCE_MEM, |
| 310 | }, | 311 | }, |
| 311 | { | 312 | { |
| 313 | .start = IRQ_UART0_TX, | ||
| 314 | .end = IRQ_UART0_TX, | ||
| 315 | .flags = IORESOURCE_IRQ, | ||
| 316 | }, | ||
| 317 | { | ||
| 312 | .start = IRQ_UART0_RX, | 318 | .start = IRQ_UART0_RX, |
| 313 | .end = IRQ_UART0_RX+1, | 319 | .end = IRQ_UART0_RX, |
| 314 | .flags = IORESOURCE_IRQ, | 320 | .flags = IORESOURCE_IRQ, |
| 315 | }, | 321 | }, |
| 316 | { | 322 | { |
| @@ -352,8 +358,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 352 | .flags = IORESOURCE_MEM, | 358 | .flags = IORESOURCE_MEM, |
| 353 | }, | 359 | }, |
| 354 | { | 360 | { |
| 361 | .start = IRQ_UART1_TX, | ||
| 362 | .end = IRQ_UART1_TX, | ||
| 363 | .flags = IORESOURCE_IRQ, | ||
| 364 | }, | ||
| 365 | { | ||
| 355 | .start = IRQ_UART1_RX, | 366 | .start = IRQ_UART1_RX, |
| 356 | .end = IRQ_UART1_RX+1, | 367 | .end = IRQ_UART1_RX, |
| 357 | .flags = IORESOURCE_IRQ, | 368 | .flags = IORESOURCE_IRQ, |
| 358 | }, | 369 | }, |
| 359 | { | 370 | { |
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c index 27f955db9976..7fbb0bbf8676 100644 --- a/arch/blackfin/mach-bf537/boards/stamp.c +++ b/arch/blackfin/mach-bf537/boards/stamp.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/device.h> | 9 | #include <linux/device.h> |
| 10 | #include <linux/export.h> | ||
| 10 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
| 11 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
| 12 | #include <linux/io.h> | 13 | #include <linux/io.h> |
| @@ -1566,8 +1567,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 1566 | .flags = IORESOURCE_MEM, | 1567 | .flags = IORESOURCE_MEM, |
| 1567 | }, | 1568 | }, |
| 1568 | { | 1569 | { |
| 1570 | .start = IRQ_UART0_TX, | ||
| 1571 | .end = IRQ_UART0_TX, | ||
| 1572 | .flags = IORESOURCE_IRQ, | ||
| 1573 | }, | ||
| 1574 | { | ||
| 1569 | .start = IRQ_UART0_RX, | 1575 | .start = IRQ_UART0_RX, |
| 1570 | .end = IRQ_UART0_RX+1, | 1576 | .end = IRQ_UART0_RX, |
| 1571 | .flags = IORESOURCE_IRQ, | 1577 | .flags = IORESOURCE_IRQ, |
| 1572 | }, | 1578 | }, |
| 1573 | { | 1579 | { |
| @@ -1621,8 +1627,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 1621 | .flags = IORESOURCE_MEM, | 1627 | .flags = IORESOURCE_MEM, |
| 1622 | }, | 1628 | }, |
| 1623 | { | 1629 | { |
| 1630 | .start = IRQ_UART1_TX, | ||
| 1631 | .end = IRQ_UART1_TX, | ||
| 1632 | .flags = IORESOURCE_IRQ, | ||
| 1633 | }, | ||
| 1634 | { | ||
| 1624 | .start = IRQ_UART1_RX, | 1635 | .start = IRQ_UART1_RX, |
| 1625 | .end = IRQ_UART1_RX+1, | 1636 | .end = IRQ_UART1_RX, |
| 1626 | .flags = IORESOURCE_IRQ, | 1637 | .flags = IORESOURCE_IRQ, |
| 1627 | }, | 1638 | }, |
| 1628 | { | 1639 | { |
| @@ -1992,7 +2003,6 @@ static struct adp8870_backlight_platform_data adp8870_pdata = { | |||
| 1992 | 2003 | ||
| 1993 | #if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE) | 2004 | #if defined(CONFIG_BACKLIGHT_ADP8860) || defined(CONFIG_BACKLIGHT_ADP8860_MODULE) |
| 1994 | #include <linux/i2c/adp8860.h> | 2005 | #include <linux/i2c/adp8860.h> |
| 1995 | #include <linux/export.h> | ||
| 1996 | static struct led_info adp8860_leds[] = { | 2006 | static struct led_info adp8860_leds[] = { |
| 1997 | { | 2007 | { |
| 1998 | .name = "adp8860-led7", | 2008 | .name = "adp8860-led7", |
diff --git a/arch/blackfin/mach-bf537/boards/tcm_bf537.c b/arch/blackfin/mach-bf537/boards/tcm_bf537.c index 841803038d6f..6917ce2fa55e 100644 --- a/arch/blackfin/mach-bf537/boards/tcm_bf537.c +++ b/arch/blackfin/mach-bf537/boards/tcm_bf537.c | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | #include <linux/device.h> | 10 | #include <linux/device.h> |
| 11 | #include <linux/etherdevice.h> | 11 | #include <linux/etherdevice.h> |
| 12 | #include <linux/export.h> | ||
| 12 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
| 13 | #include <linux/mtd/mtd.h> | 14 | #include <linux/mtd/mtd.h> |
| 14 | #include <linux/mtd/partitions.h> | 15 | #include <linux/mtd/partitions.h> |
| @@ -306,8 +307,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 306 | .flags = IORESOURCE_MEM, | 307 | .flags = IORESOURCE_MEM, |
| 307 | }, | 308 | }, |
| 308 | { | 309 | { |
| 310 | .start = IRQ_UART0_TX, | ||
| 311 | .end = IRQ_UART0_TX, | ||
| 312 | .flags = IORESOURCE_IRQ, | ||
| 313 | }, | ||
| 314 | { | ||
| 309 | .start = IRQ_UART0_RX, | 315 | .start = IRQ_UART0_RX, |
| 310 | .end = IRQ_UART0_RX+1, | 316 | .end = IRQ_UART0_RX, |
| 311 | .flags = IORESOURCE_IRQ, | 317 | .flags = IORESOURCE_IRQ, |
| 312 | }, | 318 | }, |
| 313 | { | 319 | { |
| @@ -349,8 +355,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 349 | .flags = IORESOURCE_MEM, | 355 | .flags = IORESOURCE_MEM, |
| 350 | }, | 356 | }, |
| 351 | { | 357 | { |
| 358 | .start = IRQ_UART1_TX, | ||
| 359 | .end = IRQ_UART1_TX, | ||
| 360 | .flags = IORESOURCE_IRQ, | ||
| 361 | }, | ||
| 362 | { | ||
| 352 | .start = IRQ_UART1_RX, | 363 | .start = IRQ_UART1_RX, |
| 353 | .end = IRQ_UART1_RX+1, | 364 | .end = IRQ_UART1_RX, |
| 354 | .flags = IORESOURCE_IRQ, | 365 | .flags = IORESOURCE_IRQ, |
| 355 | }, | 366 | }, |
| 356 | { | 367 | { |
| @@ -536,7 +547,6 @@ static struct platform_device bfin_sport1_uart_device = { | |||
| 536 | 547 | ||
| 537 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) | 548 | #if defined(CONFIG_BFIN_MAC) || defined(CONFIG_BFIN_MAC_MODULE) |
| 538 | #include <linux/bfin_mac.h> | 549 | #include <linux/bfin_mac.h> |
| 539 | #include <linux/export.h> | ||
| 540 | static const unsigned short bfin_mac_peripherals[] = P_MII0; | 550 | static const unsigned short bfin_mac_peripherals[] = P_MII0; |
| 541 | 551 | ||
| 542 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { | 552 | static struct bfin_phydev_platform_data bfin_phydev_data[] = { |
diff --git a/arch/blackfin/mach-bf538/boards/ezkit.c b/arch/blackfin/mach-bf538/boards/ezkit.c index 629f3c333415..8356eb599f19 100644 --- a/arch/blackfin/mach-bf538/boards/ezkit.c +++ b/arch/blackfin/mach-bf538/boards/ezkit.c | |||
| @@ -49,8 +49,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 49 | .flags = IORESOURCE_MEM, | 49 | .flags = IORESOURCE_MEM, |
| 50 | }, | 50 | }, |
| 51 | { | 51 | { |
| 52 | .start = IRQ_UART0_TX, | ||
| 53 | .end = IRQ_UART0_TX, | ||
| 54 | .flags = IORESOURCE_IRQ, | ||
| 55 | }, | ||
| 56 | { | ||
| 52 | .start = IRQ_UART0_RX, | 57 | .start = IRQ_UART0_RX, |
| 53 | .end = IRQ_UART0_RX+1, | 58 | .end = IRQ_UART0_RX, |
| 54 | .flags = IORESOURCE_IRQ, | 59 | .flags = IORESOURCE_IRQ, |
| 55 | }, | 60 | }, |
| 56 | { | 61 | { |
| @@ -104,8 +109,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 104 | .flags = IORESOURCE_MEM, | 109 | .flags = IORESOURCE_MEM, |
| 105 | }, | 110 | }, |
| 106 | { | 111 | { |
| 112 | .start = IRQ_UART1_TX, | ||
| 113 | .end = IRQ_UART1_TX, | ||
| 114 | .flags = IORESOURCE_IRQ, | ||
| 115 | }, | ||
| 116 | { | ||
| 107 | .start = IRQ_UART1_RX, | 117 | .start = IRQ_UART1_RX, |
| 108 | .end = IRQ_UART1_RX+1, | 118 | .end = IRQ_UART1_RX, |
| 109 | .flags = IORESOURCE_IRQ, | 119 | .flags = IORESOURCE_IRQ, |
| 110 | }, | 120 | }, |
| 111 | { | 121 | { |
| @@ -147,8 +157,13 @@ static struct resource bfin_uart2_resources[] = { | |||
| 147 | .flags = IORESOURCE_MEM, | 157 | .flags = IORESOURCE_MEM, |
| 148 | }, | 158 | }, |
| 149 | { | 159 | { |
| 160 | .start = IRQ_UART2_TX, | ||
| 161 | .end = IRQ_UART2_TX, | ||
| 162 | .flags = IORESOURCE_IRQ, | ||
| 163 | }, | ||
| 164 | { | ||
| 150 | .start = IRQ_UART2_RX, | 165 | .start = IRQ_UART2_RX, |
| 151 | .end = IRQ_UART2_RX+1, | 166 | .end = IRQ_UART2_RX, |
| 152 | .flags = IORESOURCE_IRQ, | 167 | .flags = IORESOURCE_IRQ, |
| 153 | }, | 168 | }, |
| 154 | { | 169 | { |
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c index 212b9e0a08c8..0350eacec21b 100644 --- a/arch/blackfin/mach-bf548/boards/cm_bf548.c +++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c | |||
| @@ -135,8 +135,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 135 | .flags = IORESOURCE_MEM, | 135 | .flags = IORESOURCE_MEM, |
| 136 | }, | 136 | }, |
| 137 | { | 137 | { |
| 138 | .start = IRQ_UART0_TX, | ||
| 139 | .end = IRQ_UART0_TX, | ||
| 140 | .flags = IORESOURCE_IRQ, | ||
| 141 | }, | ||
| 142 | { | ||
| 138 | .start = IRQ_UART0_RX, | 143 | .start = IRQ_UART0_RX, |
| 139 | .end = IRQ_UART0_RX+1, | 144 | .end = IRQ_UART0_RX, |
| 140 | .flags = IORESOURCE_IRQ, | 145 | .flags = IORESOURCE_IRQ, |
| 141 | }, | 146 | }, |
| 142 | { | 147 | { |
| @@ -178,8 +183,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 178 | .flags = IORESOURCE_MEM, | 183 | .flags = IORESOURCE_MEM, |
| 179 | }, | 184 | }, |
| 180 | { | 185 | { |
| 186 | .start = IRQ_UART1_TX, | ||
| 187 | .end = IRQ_UART1_TX, | ||
| 188 | .flags = IORESOURCE_IRQ, | ||
| 189 | }, | ||
| 190 | { | ||
| 181 | .start = IRQ_UART1_RX, | 191 | .start = IRQ_UART1_RX, |
| 182 | .end = IRQ_UART1_RX+1, | 192 | .end = IRQ_UART1_RX, |
| 183 | .flags = IORESOURCE_IRQ, | 193 | .flags = IORESOURCE_IRQ, |
| 184 | }, | 194 | }, |
| 185 | { | 195 | { |
| @@ -237,8 +247,13 @@ static struct resource bfin_uart2_resources[] = { | |||
| 237 | .flags = IORESOURCE_MEM, | 247 | .flags = IORESOURCE_MEM, |
| 238 | }, | 248 | }, |
| 239 | { | 249 | { |
| 250 | .start = IRQ_UART2_TX, | ||
| 251 | .end = IRQ_UART2_TX, | ||
| 252 | .flags = IORESOURCE_IRQ, | ||
| 253 | }, | ||
| 254 | { | ||
| 240 | .start = IRQ_UART2_RX, | 255 | .start = IRQ_UART2_RX, |
| 241 | .end = IRQ_UART2_RX+1, | 256 | .end = IRQ_UART2_RX, |
| 242 | .flags = IORESOURCE_IRQ, | 257 | .flags = IORESOURCE_IRQ, |
| 243 | }, | 258 | }, |
| 244 | { | 259 | { |
| @@ -280,8 +295,13 @@ static struct resource bfin_uart3_resources[] = { | |||
| 280 | .flags = IORESOURCE_MEM, | 295 | .flags = IORESOURCE_MEM, |
| 281 | }, | 296 | }, |
| 282 | { | 297 | { |
| 298 | .start = IRQ_UART3_TX, | ||
| 299 | .end = IRQ_UART3_TX, | ||
| 300 | .flags = IORESOURCE_IRQ, | ||
| 301 | }, | ||
| 302 | { | ||
| 283 | .start = IRQ_UART3_RX, | 303 | .start = IRQ_UART3_RX, |
| 284 | .end = IRQ_UART3_RX+1, | 304 | .end = IRQ_UART3_RX, |
| 285 | .flags = IORESOURCE_IRQ, | 305 | .flags = IORESOURCE_IRQ, |
| 286 | }, | 306 | }, |
| 287 | { | 307 | { |
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c index cd9cbb68de69..bb868ac0fe2d 100644 --- a/arch/blackfin/mach-bf548/boards/ezkit.c +++ b/arch/blackfin/mach-bf548/boards/ezkit.c | |||
| @@ -241,8 +241,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 241 | .flags = IORESOURCE_MEM, | 241 | .flags = IORESOURCE_MEM, |
| 242 | }, | 242 | }, |
| 243 | { | 243 | { |
| 244 | .start = IRQ_UART0_TX, | ||
| 245 | .end = IRQ_UART0_TX, | ||
| 246 | .flags = IORESOURCE_IRQ, | ||
| 247 | }, | ||
| 248 | { | ||
| 244 | .start = IRQ_UART0_RX, | 249 | .start = IRQ_UART0_RX, |
| 245 | .end = IRQ_UART0_RX+1, | 250 | .end = IRQ_UART0_RX, |
| 246 | .flags = IORESOURCE_IRQ, | 251 | .flags = IORESOURCE_IRQ, |
| 247 | }, | 252 | }, |
| 248 | { | 253 | { |
| @@ -284,8 +289,13 @@ static struct resource bfin_uart1_resources[] = { | |||
| 284 | .flags = IORESOURCE_MEM, | 289 | .flags = IORESOURCE_MEM, |
| 285 | }, | 290 | }, |
| 286 | { | 291 | { |
| 292 | .start = IRQ_UART1_TX, | ||
| 293 | .end = IRQ_UART1_TX, | ||
| 294 | .flags = IORESOURCE_IRQ, | ||
| 295 | }, | ||
| 296 | { | ||
| 287 | .start = IRQ_UART1_RX, | 297 | .start = IRQ_UART1_RX, |
| 288 | .end = IRQ_UART1_RX+1, | 298 | .end = IRQ_UART1_RX, |
| 289 | .flags = IORESOURCE_IRQ, | 299 | .flags = IORESOURCE_IRQ, |
| 290 | }, | 300 | }, |
| 291 | { | 301 | { |
| @@ -343,8 +353,13 @@ static struct resource bfin_uart2_resources[] = { | |||
| 343 | .flags = IORESOURCE_MEM, | 353 | .flags = IORESOURCE_MEM, |
| 344 | }, | 354 | }, |
| 345 | { | 355 | { |
| 356 | .start = IRQ_UART2_TX, | ||
| 357 | .end = IRQ_UART2_TX, | ||
| 358 | .flags = IORESOURCE_IRQ, | ||
| 359 | }, | ||
| 360 | { | ||
| 346 | .start = IRQ_UART2_RX, | 361 | .start = IRQ_UART2_RX, |
| 347 | .end = IRQ_UART2_RX+1, | 362 | .end = IRQ_UART2_RX, |
| 348 | .flags = IORESOURCE_IRQ, | 363 | .flags = IORESOURCE_IRQ, |
| 349 | }, | 364 | }, |
| 350 | { | 365 | { |
| @@ -386,8 +401,13 @@ static struct resource bfin_uart3_resources[] = { | |||
| 386 | .flags = IORESOURCE_MEM, | 401 | .flags = IORESOURCE_MEM, |
| 387 | }, | 402 | }, |
| 388 | { | 403 | { |
| 404 | .start = IRQ_UART3_TX, | ||
| 405 | .end = IRQ_UART3_TX, | ||
| 406 | .flags = IORESOURCE_IRQ, | ||
| 407 | }, | ||
| 408 | { | ||
| 389 | .start = IRQ_UART3_RX, | 409 | .start = IRQ_UART3_RX, |
| 390 | .end = IRQ_UART3_RX+1, | 410 | .end = IRQ_UART3_RX, |
| 391 | .flags = IORESOURCE_IRQ, | 411 | .flags = IORESOURCE_IRQ, |
| 392 | }, | 412 | }, |
| 393 | { | 413 | { |
diff --git a/arch/blackfin/mach-bf561/boards/acvilon.c b/arch/blackfin/mach-bf561/boards/acvilon.c index 972e1347c6bc..b1b7339b6ba7 100644 --- a/arch/blackfin/mach-bf561/boards/acvilon.c +++ b/arch/blackfin/mach-bf561/boards/acvilon.c | |||
| @@ -203,8 +203,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 203 | .flags = IORESOURCE_MEM, | 203 | .flags = IORESOURCE_MEM, |
| 204 | }, | 204 | }, |
| 205 | { | 205 | { |
| 206 | .start = IRQ_UART_TX, | ||
| 207 | .end = IRQ_UART_TX, | ||
| 208 | .flags = IORESOURCE_IRQ, | ||
| 209 | }, | ||
| 210 | { | ||
| 206 | .start = IRQ_UART_RX, | 211 | .start = IRQ_UART_RX, |
| 207 | .end = IRQ_UART_RX + 1, | 212 | .end = IRQ_UART_RX, |
| 208 | .flags = IORESOURCE_IRQ, | 213 | .flags = IORESOURCE_IRQ, |
| 209 | }, | 214 | }, |
| 210 | { | 215 | { |
diff --git a/arch/blackfin/mach-bf561/boards/cm_bf561.c b/arch/blackfin/mach-bf561/boards/cm_bf561.c index c1b72f2d6354..c017cf07ed4e 100644 --- a/arch/blackfin/mach-bf561/boards/cm_bf561.c +++ b/arch/blackfin/mach-bf561/boards/cm_bf561.c | |||
| @@ -277,8 +277,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 277 | .flags = IORESOURCE_MEM, | 277 | .flags = IORESOURCE_MEM, |
| 278 | }, | 278 | }, |
| 279 | { | 279 | { |
| 280 | .start = IRQ_UART_TX, | ||
| 281 | .end = IRQ_UART_TX, | ||
| 282 | .flags = IORESOURCE_IRQ, | ||
| 283 | }, | ||
| 284 | { | ||
| 280 | .start = IRQ_UART_RX, | 285 | .start = IRQ_UART_RX, |
| 281 | .end = IRQ_UART_RX+1, | 286 | .end = IRQ_UART_RX, |
| 282 | .flags = IORESOURCE_IRQ, | 287 | .flags = IORESOURCE_IRQ, |
| 283 | }, | 288 | }, |
| 284 | { | 289 | { |
diff --git a/arch/blackfin/mach-bf561/boards/ezkit.c b/arch/blackfin/mach-bf561/boards/ezkit.c index 9490dc800ca5..27f22ed381d9 100644 --- a/arch/blackfin/mach-bf561/boards/ezkit.c +++ b/arch/blackfin/mach-bf561/boards/ezkit.c | |||
| @@ -172,8 +172,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 172 | .flags = IORESOURCE_MEM, | 172 | .flags = IORESOURCE_MEM, |
| 173 | }, | 173 | }, |
| 174 | { | 174 | { |
| 175 | .start = IRQ_UART_TX, | ||
| 176 | .end = IRQ_UART_TX, | ||
| 177 | .flags = IORESOURCE_IRQ, | ||
| 178 | }, | ||
| 179 | { | ||
| 175 | .start = IRQ_UART_RX, | 180 | .start = IRQ_UART_RX, |
| 176 | .end = IRQ_UART_RX+1, | 181 | .end = IRQ_UART_RX, |
| 177 | .flags = IORESOURCE_IRQ, | 182 | .flags = IORESOURCE_IRQ, |
| 178 | }, | 183 | }, |
| 179 | { | 184 | { |
diff --git a/arch/blackfin/mach-bf561/boards/tepla.c b/arch/blackfin/mach-bf561/boards/tepla.c index bb056e60f6ed..1a57bc986aad 100644 --- a/arch/blackfin/mach-bf561/boards/tepla.c +++ b/arch/blackfin/mach-bf561/boards/tepla.c | |||
| @@ -51,8 +51,13 @@ static struct resource bfin_uart0_resources[] = { | |||
| 51 | .flags = IORESOURCE_MEM, | 51 | .flags = IORESOURCE_MEM, |
| 52 | }, | 52 | }, |
| 53 | { | 53 | { |
| 54 | .start = IRQ_UART_TX, | ||
| 55 | .end = IRQ_UART_TX, | ||
| 56 | .flags = IORESOURCE_IRQ, | ||
| 57 | }, | ||
| 58 | { | ||
| 54 | .start = IRQ_UART_RX, | 59 | .start = IRQ_UART_RX, |
| 55 | .end = IRQ_UART_RX+1, | 60 | .end = IRQ_UART_RX, |
| 56 | .flags = IORESOURCE_IRQ, | 61 | .flags = IORESOURCE_IRQ, |
| 57 | }, | 62 | }, |
| 58 | { | 63 | { |
diff --git a/arch/mips/cavium-octeon/flash_setup.c b/arch/mips/cavium-octeon/flash_setup.c index 975c20327bb1..0a430e06f5e5 100644 --- a/arch/mips/cavium-octeon/flash_setup.c +++ b/arch/mips/cavium-octeon/flash_setup.c | |||
| @@ -17,8 +17,6 @@ | |||
| 17 | 17 | ||
| 18 | static struct map_info flash_map; | 18 | static struct map_info flash_map; |
| 19 | static struct mtd_info *mymtd; | 19 | static struct mtd_info *mymtd; |
| 20 | static int nr_parts; | ||
| 21 | static struct mtd_partition *parts; | ||
| 22 | static const char *part_probe_types[] = { | 20 | static const char *part_probe_types[] = { |
| 23 | "cmdlinepart", | 21 | "cmdlinepart", |
| 24 | #ifdef CONFIG_MTD_REDBOOT_PARTS | 22 | #ifdef CONFIG_MTD_REDBOOT_PARTS |
| @@ -61,11 +59,8 @@ static int __init flash_init(void) | |||
| 61 | mymtd = do_map_probe("cfi_probe", &flash_map); | 59 | mymtd = do_map_probe("cfi_probe", &flash_map); |
| 62 | if (mymtd) { | 60 | if (mymtd) { |
| 63 | mymtd->owner = THIS_MODULE; | 61 | mymtd->owner = THIS_MODULE; |
| 64 | 62 | mtd_device_parse_register(mymtd, part_probe_types, | |
| 65 | nr_parts = parse_mtd_partitions(mymtd, | 63 | 0, NULL, 0); |
| 66 | part_probe_types, | ||
| 67 | &parts, 0); | ||
| 68 | mtd_device_register(mymtd, parts, nr_parts); | ||
| 69 | } else { | 64 | } else { |
| 70 | pr_err("Failed to register MTD device for flash\n"); | 65 | pr_err("Failed to register MTD device for flash\n"); |
| 71 | } | 66 | } |
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c index 8b606423bbd7..efcfff4d4627 100644 --- a/arch/mips/cavium-octeon/smp.c +++ b/arch/mips/cavium-octeon/smp.c | |||
| @@ -207,8 +207,9 @@ void octeon_prepare_cpus(unsigned int max_cpus) | |||
| 207 | * the other bits alone. | 207 | * the other bits alone. |
| 208 | */ | 208 | */ |
| 209 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffff); | 209 | cvmx_write_csr(CVMX_CIU_MBOX_CLRX(cvmx_get_core_num()), 0xffff); |
| 210 | if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, IRQF_DISABLED, | 210 | if (request_irq(OCTEON_IRQ_MBOX0, mailbox_interrupt, |
| 211 | "SMP-IPI", mailbox_interrupt)) { | 211 | IRQF_PERCPU | IRQF_NO_THREAD, "SMP-IPI", |
| 212 | mailbox_interrupt)) { | ||
| 212 | panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); | 213 | panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n"); |
| 213 | } | 214 | } |
| 214 | } | 215 | } |
diff --git a/arch/mips/emma/common/prom.c b/arch/mips/emma/common/prom.c index 708f08761406..cae42259d6da 100644 --- a/arch/mips/emma/common/prom.c +++ b/arch/mips/emma/common/prom.c | |||
| @@ -50,7 +50,7 @@ void __init prom_init(void) | |||
| 50 | 50 | ||
| 51 | /* arg[0] is "g", the rest is boot parameters */ | 51 | /* arg[0] is "g", the rest is boot parameters */ |
| 52 | for (i = 1; i < argc; i++) { | 52 | for (i = 1; i < argc; i++) { |
| 53 | if (strlen(arcs_cmdline) + strlen(arg[i] + 1) | 53 | if (strlen(arcs_cmdline) + strlen(arg[i]) + 1 |
| 54 | >= sizeof(arcs_cmdline)) | 54 | >= sizeof(arcs_cmdline)) |
| 55 | break; | 55 | break; |
| 56 | strcat(arcs_cmdline, arg[i]); | 56 | strcat(arcs_cmdline, arg[i]); |
diff --git a/arch/mips/include/asm/mach-bcm47xx/gpio.h b/arch/mips/include/asm/mach-bcm47xx/gpio.h index 76961cabeedf..2ef17e8df403 100644 --- a/arch/mips/include/asm/mach-bcm47xx/gpio.h +++ b/arch/mips/include/asm/mach-bcm47xx/gpio.h | |||
| @@ -36,6 +36,8 @@ static inline int gpio_get_value(unsigned gpio) | |||
| 36 | return -EINVAL; | 36 | return -EINVAL; |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | #define gpio_get_value_cansleep gpio_get_value | ||
| 40 | |||
| 39 | static inline void gpio_set_value(unsigned gpio, int value) | 41 | static inline void gpio_set_value(unsigned gpio, int value) |
| 40 | { | 42 | { |
| 41 | switch (bcm47xx_bus_type) { | 43 | switch (bcm47xx_bus_type) { |
| @@ -54,6 +56,19 @@ static inline void gpio_set_value(unsigned gpio, int value) | |||
| 54 | } | 56 | } |
| 55 | } | 57 | } |
| 56 | 58 | ||
| 59 | #define gpio_set_value_cansleep gpio_set_value | ||
| 60 | |||
| 61 | static inline int gpio_cansleep(unsigned gpio) | ||
| 62 | { | ||
| 63 | return 0; | ||
| 64 | } | ||
| 65 | |||
| 66 | static inline int gpio_is_valid(unsigned gpio) | ||
| 67 | { | ||
| 68 | return gpio < (BCM47XX_EXTIF_GPIO_LINES + BCM47XX_CHIPCO_GPIO_LINES); | ||
| 69 | } | ||
| 70 | |||
| 71 | |||
| 57 | static inline int gpio_direction_input(unsigned gpio) | 72 | static inline int gpio_direction_input(unsigned gpio) |
| 58 | { | 73 | { |
| 59 | switch (bcm47xx_bus_type) { | 74 | switch (bcm47xx_bus_type) { |
| @@ -137,7 +152,4 @@ static inline int gpio_polarity(unsigned gpio, int value) | |||
| 137 | } | 152 | } |
| 138 | 153 | ||
| 139 | 154 | ||
| 140 | /* cansleep wrappers */ | ||
| 141 | #include <asm-generic/gpio.h> | ||
| 142 | |||
| 143 | #endif /* __BCM47XX_GPIO_H */ | 155 | #endif /* __BCM47XX_GPIO_H */ |
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h index ecea7871dec2..d8dad5340ea3 100644 --- a/arch/mips/include/asm/unistd.h +++ b/arch/mips/include/asm/unistd.h | |||
| @@ -365,16 +365,18 @@ | |||
| 365 | #define __NR_syncfs (__NR_Linux + 342) | 365 | #define __NR_syncfs (__NR_Linux + 342) |
| 366 | #define __NR_sendmmsg (__NR_Linux + 343) | 366 | #define __NR_sendmmsg (__NR_Linux + 343) |
| 367 | #define __NR_setns (__NR_Linux + 344) | 367 | #define __NR_setns (__NR_Linux + 344) |
| 368 | #define __NR_process_vm_readv (__NR_Linux + 345) | ||
| 369 | #define __NR_process_vm_writev (__NR_Linux + 346) | ||
| 368 | 370 | ||
| 369 | /* | 371 | /* |
| 370 | * Offset of the last Linux o32 flavoured syscall | 372 | * Offset of the last Linux o32 flavoured syscall |
| 371 | */ | 373 | */ |
| 372 | #define __NR_Linux_syscalls 344 | 374 | #define __NR_Linux_syscalls 346 |
| 373 | 375 | ||
| 374 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ | 376 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ |
| 375 | 377 | ||
| 376 | #define __NR_O32_Linux 4000 | 378 | #define __NR_O32_Linux 4000 |
| 377 | #define __NR_O32_Linux_syscalls 344 | 379 | #define __NR_O32_Linux_syscalls 346 |
| 378 | 380 | ||
| 379 | #if _MIPS_SIM == _MIPS_SIM_ABI64 | 381 | #if _MIPS_SIM == _MIPS_SIM_ABI64 |
| 380 | 382 | ||
| @@ -686,16 +688,18 @@ | |||
| 686 | #define __NR_syncfs (__NR_Linux + 301) | 688 | #define __NR_syncfs (__NR_Linux + 301) |
| 687 | #define __NR_sendmmsg (__NR_Linux + 302) | 689 | #define __NR_sendmmsg (__NR_Linux + 302) |
| 688 | #define __NR_setns (__NR_Linux + 303) | 690 | #define __NR_setns (__NR_Linux + 303) |
| 691 | #define __NR_process_vm_readv (__NR_Linux + 304) | ||
| 692 | #define __NR_process_vm_writev (__NR_Linux + 305) | ||
| 689 | 693 | ||
| 690 | /* | 694 | /* |
| 691 | * Offset of the last Linux 64-bit flavoured syscall | 695 | * Offset of the last Linux 64-bit flavoured syscall |
| 692 | */ | 696 | */ |
| 693 | #define __NR_Linux_syscalls 303 | 697 | #define __NR_Linux_syscalls 305 |
| 694 | 698 | ||
| 695 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ | 699 | #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ |
| 696 | 700 | ||
| 697 | #define __NR_64_Linux 5000 | 701 | #define __NR_64_Linux 5000 |
| 698 | #define __NR_64_Linux_syscalls 303 | 702 | #define __NR_64_Linux_syscalls 305 |
| 699 | 703 | ||
| 700 | #if _MIPS_SIM == _MIPS_SIM_NABI32 | 704 | #if _MIPS_SIM == _MIPS_SIM_NABI32 |
| 701 | 705 | ||
| @@ -1012,16 +1016,18 @@ | |||
| 1012 | #define __NR_syncfs (__NR_Linux + 306) | 1016 | #define __NR_syncfs (__NR_Linux + 306) |
| 1013 | #define __NR_sendmmsg (__NR_Linux + 307) | 1017 | #define __NR_sendmmsg (__NR_Linux + 307) |
| 1014 | #define __NR_setns (__NR_Linux + 308) | 1018 | #define __NR_setns (__NR_Linux + 308) |
| 1019 | #define __NR_process_vm_readv (__NR_Linux + 309) | ||
| 1020 | #define __NR_process_vm_writev (__NR_Linux + 310) | ||
| 1015 | 1021 | ||
| 1016 | /* | 1022 | /* |
| 1017 | * Offset of the last N32 flavoured syscall | 1023 | * Offset of the last N32 flavoured syscall |
| 1018 | */ | 1024 | */ |
| 1019 | #define __NR_Linux_syscalls 308 | 1025 | #define __NR_Linux_syscalls 310 |
| 1020 | 1026 | ||
| 1021 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ | 1027 | #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ |
| 1022 | 1028 | ||
| 1023 | #define __NR_N32_Linux 6000 | 1029 | #define __NR_N32_Linux 6000 |
| 1024 | #define __NR_N32_Linux_syscalls 308 | 1030 | #define __NR_N32_Linux_syscalls 310 |
| 1025 | 1031 | ||
| 1026 | #ifdef __KERNEL__ | 1032 | #ifdef __KERNEL__ |
| 1027 | 1033 | ||
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c index 98c5a9737c14..e2d8e199be32 100644 --- a/arch/mips/kernel/cevt-r4k.c +++ b/arch/mips/kernel/cevt-r4k.c | |||
| @@ -103,19 +103,10 @@ static int c0_compare_int_pending(void) | |||
| 103 | 103 | ||
| 104 | /* | 104 | /* |
| 105 | * Compare interrupt can be routed and latched outside the core, | 105 | * Compare interrupt can be routed and latched outside the core, |
| 106 | * so a single execution hazard barrier may not be enough to give | 106 | * so wait up to worst case number of cycle counter ticks for timer interrupt |
| 107 | * it time to clear as seen in the Cause register. 4 time the | 107 | * changes to propagate to the cause register. |
| 108 | * pipeline depth seems reasonably conservative, and empirically | ||
| 109 | * works better in configurations with high CPU/bus clock ratios. | ||
| 110 | */ | 108 | */ |
| 111 | 109 | #define COMPARE_INT_SEEN_TICKS 50 | |
| 112 | #define compare_change_hazard() \ | ||
| 113 | do { \ | ||
| 114 | irq_disable_hazard(); \ | ||
| 115 | irq_disable_hazard(); \ | ||
| 116 | irq_disable_hazard(); \ | ||
| 117 | irq_disable_hazard(); \ | ||
| 118 | } while (0) | ||
| 119 | 110 | ||
| 120 | int c0_compare_int_usable(void) | 111 | int c0_compare_int_usable(void) |
| 121 | { | 112 | { |
| @@ -126,8 +117,12 @@ int c0_compare_int_usable(void) | |||
| 126 | * IP7 already pending? Try to clear it by acking the timer. | 117 | * IP7 already pending? Try to clear it by acking the timer. |
| 127 | */ | 118 | */ |
| 128 | if (c0_compare_int_pending()) { | 119 | if (c0_compare_int_pending()) { |
| 129 | write_c0_compare(read_c0_count()); | 120 | cnt = read_c0_count(); |
| 130 | compare_change_hazard(); | 121 | write_c0_compare(cnt); |
| 122 | back_to_back_c0_hazard(); | ||
| 123 | while (read_c0_count() < (cnt + COMPARE_INT_SEEN_TICKS)) | ||
| 124 | if (!c0_compare_int_pending()) | ||
| 125 | break; | ||
| 131 | if (c0_compare_int_pending()) | 126 | if (c0_compare_int_pending()) |
| 132 | return 0; | 127 | return 0; |
| 133 | } | 128 | } |
| @@ -136,7 +131,7 @@ int c0_compare_int_usable(void) | |||
| 136 | cnt = read_c0_count(); | 131 | cnt = read_c0_count(); |
| 137 | cnt += delta; | 132 | cnt += delta; |
| 138 | write_c0_compare(cnt); | 133 | write_c0_compare(cnt); |
| 139 | compare_change_hazard(); | 134 | back_to_back_c0_hazard(); |
| 140 | if ((int)(read_c0_count() - cnt) < 0) | 135 | if ((int)(read_c0_count() - cnt) < 0) |
| 141 | break; | 136 | break; |
| 142 | /* increase delta if the timer was already expired */ | 137 | /* increase delta if the timer was already expired */ |
| @@ -145,12 +140,17 @@ int c0_compare_int_usable(void) | |||
| 145 | while ((int)(read_c0_count() - cnt) <= 0) | 140 | while ((int)(read_c0_count() - cnt) <= 0) |
| 146 | ; /* Wait for expiry */ | 141 | ; /* Wait for expiry */ |
| 147 | 142 | ||
| 148 | compare_change_hazard(); | 143 | while (read_c0_count() < (cnt + COMPARE_INT_SEEN_TICKS)) |
| 144 | if (c0_compare_int_pending()) | ||
| 145 | break; | ||
| 149 | if (!c0_compare_int_pending()) | 146 | if (!c0_compare_int_pending()) |
| 150 | return 0; | 147 | return 0; |
| 151 | 148 | cnt = read_c0_count(); | |
| 152 | write_c0_compare(read_c0_count()); | 149 | write_c0_compare(cnt); |
| 153 | compare_change_hazard(); | 150 | back_to_back_c0_hazard(); |
| 151 | while (read_c0_count() < (cnt + COMPARE_INT_SEEN_TICKS)) | ||
| 152 | if (!c0_compare_int_pending()) | ||
| 153 | break; | ||
| 154 | if (c0_compare_int_pending()) | 154 | if (c0_compare_int_pending()) |
| 155 | return 0; | 155 | return 0; |
| 156 | 156 | ||
diff --git a/arch/mips/kernel/cpufreq/loongson2_clock.c b/arch/mips/kernel/cpufreq/loongson2_clock.c index cefc6e259baf..5426779d9fdb 100644 --- a/arch/mips/kernel/cpufreq/loongson2_clock.c +++ b/arch/mips/kernel/cpufreq/loongson2_clock.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | * for more details. | 7 | * for more details. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/module.h> | ||
| 10 | #include <linux/cpufreq.h> | 11 | #include <linux/cpufreq.h> |
| 11 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
| 12 | 13 | ||
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S index 47920657968d..a632bc144efa 100644 --- a/arch/mips/kernel/scall32-o32.S +++ b/arch/mips/kernel/scall32-o32.S | |||
| @@ -591,6 +591,8 @@ einval: li v0, -ENOSYS | |||
| 591 | sys sys_syncfs 1 | 591 | sys sys_syncfs 1 |
| 592 | sys sys_sendmmsg 4 | 592 | sys sys_sendmmsg 4 |
| 593 | sys sys_setns 2 | 593 | sys sys_setns 2 |
| 594 | sys sys_process_vm_readv 6 /* 4345 */ | ||
| 595 | sys sys_process_vm_writev 6 | ||
| 594 | .endm | 596 | .endm |
| 595 | 597 | ||
| 596 | /* We pre-compute the number of _instruction_ bytes needed to | 598 | /* We pre-compute the number of _instruction_ bytes needed to |
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S index fb7334bea731..3b5a5e9ae49c 100644 --- a/arch/mips/kernel/scall64-64.S +++ b/arch/mips/kernel/scall64-64.S | |||
| @@ -430,4 +430,6 @@ sys_call_table: | |||
| 430 | PTR sys_syncfs | 430 | PTR sys_syncfs |
| 431 | PTR sys_sendmmsg | 431 | PTR sys_sendmmsg |
| 432 | PTR sys_setns | 432 | PTR sys_setns |
| 433 | PTR sys_process_vm_readv | ||
| 434 | PTR sys_process_vm_writev /* 5305 */ | ||
| 433 | .size sys_call_table,.-sys_call_table | 435 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 6de1f598346e..6be6f7020923 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S | |||
| @@ -430,4 +430,6 @@ EXPORT(sysn32_call_table) | |||
| 430 | PTR sys_syncfs | 430 | PTR sys_syncfs |
| 431 | PTR compat_sys_sendmmsg | 431 | PTR compat_sys_sendmmsg |
| 432 | PTR sys_setns | 432 | PTR sys_setns |
| 433 | PTR compat_sys_process_vm_readv | ||
| 434 | PTR compat_sys_process_vm_writev /* 6310 */ | ||
| 433 | .size sysn32_call_table,.-sysn32_call_table | 435 | .size sysn32_call_table,.-sysn32_call_table |
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 1d813169e453..54228553691d 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S | |||
| @@ -548,4 +548,6 @@ sys_call_table: | |||
| 548 | PTR sys_syncfs | 548 | PTR sys_syncfs |
| 549 | PTR compat_sys_sendmmsg | 549 | PTR compat_sys_sendmmsg |
| 550 | PTR sys_setns | 550 | PTR sys_setns |
| 551 | PTR compat_sys_process_vm_readv /* 4345 */ | ||
| 552 | PTR compat_sys_process_vm_writev | ||
| 551 | .size sys_call_table,.-sys_call_table | 553 | .size sys_call_table,.-sys_call_table |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 261ccbc07740..5c8a49d55054 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
| @@ -1596,7 +1596,8 @@ void __cpuinit per_cpu_trap_init(void) | |||
| 1596 | } | 1596 | } |
| 1597 | #endif /* CONFIG_MIPS_MT_SMTC */ | 1597 | #endif /* CONFIG_MIPS_MT_SMTC */ |
| 1598 | 1598 | ||
| 1599 | cpu_data[cpu].asid_cache = ASID_FIRST_VERSION; | 1599 | if (!cpu_data[cpu].asid_cache) |
| 1600 | cpu_data[cpu].asid_cache = ASID_FIRST_VERSION; | ||
| 1600 | 1601 | ||
| 1601 | atomic_inc(&init_mm.mm_count); | 1602 | atomic_inc(&init_mm.mm_count); |
| 1602 | current->active_mm = &init_mm; | 1603 | current->active_mm = &init_mm; |
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c index 7e9c0ffc11a5..77ed70fc2fe5 100644 --- a/arch/mips/lantiq/clk.c +++ b/arch/mips/lantiq/clk.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> | 7 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> |
| 8 | */ | 8 | */ |
| 9 | #include <linux/io.h> | 9 | #include <linux/io.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
| 13 | #include <linux/types.h> | 13 | #include <linux/types.h> |
diff --git a/arch/mips/lantiq/devices.c b/arch/mips/lantiq/devices.c index 44a36771c819..de1cb2bcd79a 100644 --- a/arch/mips/lantiq/devices.c +++ b/arch/mips/lantiq/devices.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
| 12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
| 13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
diff --git a/arch/mips/lantiq/prom.c b/arch/mips/lantiq/prom.c index 56ba007bf1e5..e34fcfd0d5ca 100644 --- a/arch/mips/lantiq/prom.c +++ b/arch/mips/lantiq/prom.c | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> | 6 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/module.h> | 9 | #include <linux/export.h> |
| 10 | #include <linux/clk.h> | 10 | #include <linux/clk.h> |
| 11 | #include <asm/bootinfo.h> | 11 | #include <asm/bootinfo.h> |
| 12 | #include <asm/time.h> | 12 | #include <asm/time.h> |
diff --git a/arch/mips/lantiq/setup.c b/arch/mips/lantiq/setup.c index 9b8af77ed0f9..1ff6c9d6cb93 100644 --- a/arch/mips/lantiq/setup.c +++ b/arch/mips/lantiq/setup.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/kernel.h> | 9 | #include <linux/kernel.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/io.h> | 11 | #include <linux/io.h> |
| 12 | #include <linux/ioport.h> | 12 | #include <linux/ioport.h> |
| 13 | #include <asm/bootinfo.h> | 13 | #include <asm/bootinfo.h> |
diff --git a/arch/mips/lantiq/xway/clk-ase.c b/arch/mips/lantiq/xway/clk-ase.c index 22d823acd536..652258309c9c 100644 --- a/arch/mips/lantiq/xway/clk-ase.c +++ b/arch/mips/lantiq/xway/clk-ase.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/io.h> | 9 | #include <linux/io.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/clk.h> | 12 | #include <linux/clk.h> |
| 13 | 13 | ||
diff --git a/arch/mips/lantiq/xway/clk-xway.c b/arch/mips/lantiq/xway/clk-xway.c index ddd39593c581..696b1a3e0642 100644 --- a/arch/mips/lantiq/xway/clk-xway.c +++ b/arch/mips/lantiq/xway/clk-xway.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/io.h> | 9 | #include <linux/io.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/clk.h> | 12 | #include <linux/clk.h> |
| 13 | 13 | ||
diff --git a/arch/mips/lantiq/xway/devices.c b/arch/mips/lantiq/xway/devices.c index d0e32ab2ea07..d614aa7ff07f 100644 --- a/arch/mips/lantiq/xway/devices.c +++ b/arch/mips/lantiq/xway/devices.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
| 12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
| 13 | #include <linux/mtd/physmap.h> | 13 | #include <linux/mtd/physmap.h> |
diff --git a/arch/mips/lantiq/xway/dma.c b/arch/mips/lantiq/xway/dma.c index 4278a459d6c4..cbb6ae5747b9 100644 --- a/arch/mips/lantiq/xway/dma.c +++ b/arch/mips/lantiq/xway/dma.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | #include <linux/platform_device.h> | 19 | #include <linux/platform_device.h> |
| 20 | #include <linux/io.h> | 20 | #include <linux/io.h> |
| 21 | #include <linux/dma-mapping.h> | 21 | #include <linux/dma-mapping.h> |
| 22 | #include <linux/export.h> | ||
| 22 | 23 | ||
| 23 | #include <lantiq_soc.h> | 24 | #include <lantiq_soc.h> |
| 24 | #include <xway_dma.h> | 25 | #include <xway_dma.h> |
diff --git a/arch/mips/lantiq/xway/gpio.c b/arch/mips/lantiq/xway/gpio.c index a321451a5455..d2fa98f3c78d 100644 --- a/arch/mips/lantiq/xway/gpio.c +++ b/arch/mips/lantiq/xway/gpio.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/slab.h> | 9 | #include <linux/slab.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
| 12 | #include <linux/gpio.h> | 12 | #include <linux/gpio.h> |
| 13 | #include <linux/ioport.h> | 13 | #include <linux/ioport.h> |
diff --git a/arch/mips/lantiq/xway/gpio_ebu.c b/arch/mips/lantiq/xway/gpio_ebu.c index a479355abdb9..b91c7f17f10f 100644 --- a/arch/mips/lantiq/xway/gpio_ebu.c +++ b/arch/mips/lantiq/xway/gpio_ebu.c | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
| 10 | #include <linux/module.h> | 10 | #include <linux/export.h> |
| 11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
| 12 | #include <linux/platform_device.h> | 12 | #include <linux/platform_device.h> |
| 13 | #include <linux/mutex.h> | 13 | #include <linux/mutex.h> |
diff --git a/arch/mips/lantiq/xway/gpio_stp.c b/arch/mips/lantiq/xway/gpio_stp.c index 67d59d690340..ff9991cddeaa 100644 --- a/arch/mips/lantiq/xway/gpio_stp.c +++ b/arch/mips/lantiq/xway/gpio_stp.c | |||
| @@ -9,7 +9,7 @@ | |||
| 9 | 9 | ||
| 10 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
| 11 | #include <linux/init.h> | 11 | #include <linux/init.h> |
| 12 | #include <linux/module.h> | 12 | #include <linux/export.h> |
| 13 | #include <linux/types.h> | 13 | #include <linux/types.h> |
| 14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
| 15 | #include <linux/mutex.h> | 15 | #include <linux/mutex.h> |
diff --git a/arch/mips/lantiq/xway/prom-ase.c b/arch/mips/lantiq/xway/prom-ase.c index abe49f4db57f..ae4959ae865c 100644 --- a/arch/mips/lantiq/xway/prom-ase.c +++ b/arch/mips/lantiq/xway/prom-ase.c | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> | 6 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/module.h> | 9 | #include <linux/export.h> |
| 10 | #include <linux/clk.h> | 10 | #include <linux/clk.h> |
| 11 | #include <asm/bootinfo.h> | 11 | #include <asm/bootinfo.h> |
| 12 | #include <asm/time.h> | 12 | #include <asm/time.h> |
diff --git a/arch/mips/lantiq/xway/prom-xway.c b/arch/mips/lantiq/xway/prom-xway.c index 1686692ac24d..2228133ca356 100644 --- a/arch/mips/lantiq/xway/prom-xway.c +++ b/arch/mips/lantiq/xway/prom-xway.c | |||
| @@ -6,7 +6,7 @@ | |||
| 6 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> | 6 | * Copyright (C) 2010 John Crispin <blogic@openwrt.org> |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/module.h> | 9 | #include <linux/export.h> |
| 10 | #include <linux/clk.h> | 10 | #include <linux/clk.h> |
| 11 | #include <asm/bootinfo.h> | 11 | #include <asm/bootinfo.h> |
| 12 | #include <asm/time.h> | 12 | #include <asm/time.h> |
diff --git a/arch/mips/lantiq/xway/reset.c b/arch/mips/lantiq/xway/reset.c index a1be36d0e490..3d41f0bb5bf7 100644 --- a/arch/mips/lantiq/xway/reset.c +++ b/arch/mips/lantiq/xway/reset.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <linux/io.h> | 10 | #include <linux/io.h> |
| 11 | #include <linux/ioport.h> | 11 | #include <linux/ioport.h> |
| 12 | #include <linux/pm.h> | 12 | #include <linux/pm.h> |
| 13 | #include <linux/module.h> | 13 | #include <linux/export.h> |
| 14 | #include <asm/reboot.h> | 14 | #include <asm/reboot.h> |
| 15 | 15 | ||
| 16 | #include <lantiq_soc.h> | 16 | #include <lantiq_soc.h> |
diff --git a/arch/mips/nxp/pnx8550/common/pci.c b/arch/mips/nxp/pnx8550/common/pci.c deleted file mode 100644 index 98e86ddb86cc..000000000000 --- a/arch/mips/nxp/pnx8550/common/pci.c +++ /dev/null | |||
| @@ -1,134 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * | ||
| 3 | * BRIEF MODULE DESCRIPTION | ||
| 4 | * | ||
| 5 | * Author: source@mvista.com | ||
| 6 | * | ||
| 7 | * This program is free software; you can distribute it and/or modify it | ||
| 8 | * under the terms of the GNU General Public License (Version 2) as | ||
| 9 | * published by the Free Software Foundation. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
| 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
| 14 | * for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License along | ||
| 17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
| 18 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
| 19 | */ | ||
| 20 | #include <linux/types.h> | ||
| 21 | #include <linux/pci.h> | ||
| 22 | #include <linux/kernel.h> | ||
| 23 | #include <linux/init.h> | ||
| 24 | |||
| 25 | #include <pci.h> | ||
| 26 | #include <glb.h> | ||
| 27 | #include <nand.h> | ||
| 28 | |||
| 29 | static struct resource pci_io_resource = { | ||
| 30 | .start = PNX8550_PCIIO + 0x1000, /* reserve regacy I/O space */ | ||
| 31 | .end = PNX8550_PCIIO + PNX8550_PCIIO_SIZE, | ||
| 32 | .name = "pci IO space", | ||
| 33 | .flags = IORESOURCE_IO | ||
| 34 | }; | ||
| 35 | |||
| 36 | static struct resource pci_mem_resource = { | ||
| 37 | .start = PNX8550_PCIMEM, | ||
| 38 | .end = PNX8550_PCIMEM + PNX8550_PCIMEM_SIZE - 1, | ||
| 39 | .name = "pci memory space", | ||
| 40 | .flags = IORESOURCE_MEM | ||
| 41 | }; | ||
| 42 | |||
| 43 | extern struct pci_ops pnx8550_pci_ops; | ||
| 44 | |||
| 45 | static struct pci_controller pnx8550_controller = { | ||
| 46 | .pci_ops = &pnx8550_pci_ops, | ||
| 47 | .io_map_base = PNX8550_PORT_BASE, | ||
| 48 | .io_resource = &pci_io_resource, | ||
| 49 | .mem_resource = &pci_mem_resource, | ||
| 50 | }; | ||
| 51 | |||
| 52 | /* Return the total size of DRAM-memory, (RANK0 + RANK1) */ | ||
| 53 | static inline unsigned long get_system_mem_size(void) | ||
| 54 | { | ||
| 55 | /* Read IP2031_RANK0_ADDR_LO */ | ||
| 56 | unsigned long dram_r0_lo = inl(PCI_BASE | 0x65010); | ||
| 57 | /* Read IP2031_RANK1_ADDR_HI */ | ||
| 58 | unsigned long dram_r1_hi = inl(PCI_BASE | 0x65018); | ||
| 59 | |||
| 60 | return dram_r1_hi - dram_r0_lo + 1; | ||
| 61 | } | ||
| 62 | |||
| 63 | static int __init pnx8550_pci_setup(void) | ||
| 64 | { | ||
| 65 | int pci_mem_code; | ||
| 66 | int mem_size = get_system_mem_size() >> 20; | ||
| 67 | |||
| 68 | /* Clear the Global 2 Register, PCI Inta Output Enable Registers | ||
| 69 | Bit 1:Enable DAC Powerdown | ||
| 70 | -> 0:DACs are enabled and are working normally | ||
| 71 | 1:DACs are powerdown | ||
| 72 | Bit 0:Enable of PCI inta output | ||
| 73 | -> 0 = Disable PCI inta output | ||
| 74 | 1 = Enable PCI inta output | ||
| 75 | */ | ||
| 76 | PNX8550_GLB2_ENAB_INTA_O = 0; | ||
| 77 | |||
| 78 | /* Calc the PCI mem size code */ | ||
| 79 | if (mem_size >= 128) | ||
| 80 | pci_mem_code = SIZE_128M; | ||
| 81 | else if (mem_size >= 64) | ||
| 82 | pci_mem_code = SIZE_64M; | ||
| 83 | else if (mem_size >= 32) | ||
| 84 | pci_mem_code = SIZE_32M; | ||
| 85 | else | ||
| 86 | pci_mem_code = SIZE_16M; | ||
| 87 | |||
| 88 | /* Set PCI_XIO registers */ | ||
| 89 | outl(pci_mem_resource.start, PCI_BASE | PCI_BASE1_LO); | ||
| 90 | outl(pci_mem_resource.end + 1, PCI_BASE | PCI_BASE1_HI); | ||
| 91 | outl(pci_io_resource.start, PCI_BASE | PCI_BASE2_LO); | ||
| 92 | outl(pci_io_resource.end, PCI_BASE | PCI_BASE2_HI); | ||
| 93 | |||
| 94 | /* Send memory transaction via PCI_BASE2 */ | ||
| 95 | outl(0x00000001, PCI_BASE | PCI_IO); | ||
| 96 | |||
| 97 | /* Unlock the setup register */ | ||
| 98 | outl(0xca, PCI_BASE | PCI_UNLOCKREG); | ||
| 99 | |||
| 100 | /* | ||
| 101 | * BAR0 of PNX8550 (pci base 10) must be zero in order for ide | ||
| 102 | * to work, and in order for bus_to_baddr to work without any | ||
| 103 | * hacks. | ||
| 104 | */ | ||
| 105 | outl(0x00000000, PCI_BASE | PCI_BASE10); | ||
| 106 | |||
| 107 | /* | ||
| 108 | *These two bars are set by default or the boot code. | ||
| 109 | * However, it's safer to set them here so we're not boot | ||
| 110 | * code dependent. | ||
| 111 | */ | ||
| 112 | outl(0x1be00000, PCI_BASE | PCI_BASE14); /* PNX MMIO */ | ||
| 113 | outl(PNX8550_NAND_BASE_ADDR, PCI_BASE | PCI_BASE18); /* XIO */ | ||
| 114 | |||
| 115 | outl(PCI_EN_TA | | ||
| 116 | PCI_EN_PCI2MMI | | ||
| 117 | PCI_EN_XIO | | ||
| 118 | PCI_SETUP_BASE18_SIZE(SIZE_32M) | | ||
| 119 | PCI_SETUP_BASE18_EN | | ||
| 120 | PCI_SETUP_BASE14_EN | | ||
| 121 | PCI_SETUP_BASE10_PREF | | ||
| 122 | PCI_SETUP_BASE10_SIZE(pci_mem_code) | | ||
| 123 | PCI_SETUP_CFGMANAGE_EN | | ||
| 124 | PCI_SETUP_PCIARB_EN, | ||
| 125 | PCI_BASE | | ||
| 126 | PCI_SETUP); /* PCI_SETUP */ | ||
| 127 | outl(0x00000000, PCI_BASE | PCI_CTRL); /* PCI_CONTROL */ | ||
| 128 | |||
| 129 | register_pci_controller(&pnx8550_controller); | ||
| 130 | |||
| 131 | return 0; | ||
| 132 | } | ||
| 133 | |||
| 134 | arch_initcall(pnx8550_pci_setup); | ||
diff --git a/arch/mips/nxp/pnx8550/common/setup.c b/arch/mips/nxp/pnx8550/common/setup.c deleted file mode 100644 index 71adac323323..000000000000 --- a/arch/mips/nxp/pnx8550/common/setup.c +++ /dev/null | |||
| @@ -1,143 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * | ||
| 3 | * 2.6 port, Embedded Alley Solutions, Inc | ||
| 4 | * | ||
| 5 | * Based on Per Hallsmark, per.hallsmark@mvista.com | ||
| 6 | * | ||
| 7 | * This program is free software; you can distribute it and/or modify it | ||
| 8 | * under the terms of the GNU General Public License (Version 2) as | ||
| 9 | * published by the Free Software Foundation. | ||
| 10 | * | ||
| 11 | * This program is distributed in the hope it will be useful, but WITHOUT | ||
| 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
| 13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | ||
| 14 | * for more details. | ||
| 15 | * | ||
| 16 | * You should have received a copy of the GNU General Public License along | ||
| 17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
| 18 | * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. | ||
| 19 | */ | ||
| 20 | #include <linux/init.h> | ||
| 21 | #include <linux/sched.h> | ||
| 22 | #include <linux/ioport.h> | ||
| 23 | #include <linux/irq.h> | ||
| 24 | #include <linux/mm.h> | ||
| 25 | #include <linux/delay.h> | ||
| 26 | #include <linux/interrupt.h> | ||
| 27 | #include <linux/serial_pnx8xxx.h> | ||
| 28 | #include <linux/pm.h> | ||
| 29 | |||
| 30 | #include <asm/cpu.h> | ||
| 31 | #include <asm/bootinfo.h> | ||
| 32 | #include <asm/irq.h> | ||
| 33 | #include <asm/mipsregs.h> | ||
| 34 | #include <asm/reboot.h> | ||
| 35 | #include <asm/pgtable.h> | ||
| 36 | #include <asm/time.h> | ||
| 37 | |||
| 38 | #include <glb.h> | ||
| 39 | #include <int.h> | ||
| 40 | #include <pci.h> | ||
| 41 | #include <uart.h> | ||
| 42 | #include <nand.h> | ||
| 43 | |||
| 44 | extern void __init board_setup(void); | ||
| 45 | extern void pnx8550_machine_restart(char *); | ||
| 46 | extern void pnx8550_machine_halt(void); | ||
| 47 | extern void pnx8550_machine_power_off(void); | ||
| 48 | extern struct resource ioport_resource; | ||
| 49 | extern struct resource iomem_resource; | ||
| 50 | extern char *prom_getcmdline(void); | ||
| 51 | |||
| 52 | struct resource standard_io_resources[] = { | ||
| 53 | { | ||
| 54 | .start = 0x00, | ||
| 55 | .end = 0x1f, | ||
| 56 | .name = "dma1", | ||
| 57 | .flags = IORESOURCE_BUSY | ||
| 58 | }, { | ||
| 59 | .start = 0x40, | ||
| 60 | .end = 0x5f, | ||
| 61 | .name = "timer", | ||
| 62 | .flags = IORESOURCE_BUSY | ||
| 63 | }, { | ||
| 64 | .start = 0x80, | ||
| 65 | .end = 0x8f, | ||
| 66 | .name = "dma page reg", | ||
| 67 | .flags = IORESOURCE_BUSY | ||
| 68 | }, { | ||
| 69 | .start = 0xc0, | ||
| 70 | .end = 0xdf, | ||
| 71 | .name = "dma2", | ||
| 72 | .flags = IORESOURCE_BUSY | ||
| 73 | }, | ||
| 74 | }; | ||
| 75 | |||
| 76 | #define STANDARD_IO_RESOURCES ARRAY_SIZE(standard_io_resources) | ||
| 77 | |||
| 78 | extern struct resource pci_io_resource; | ||
| 79 | extern struct resource pci_mem_resource; | ||
| 80 | |||
| 81 | /* Return the total size of DRAM-memory, (RANK0 + RANK1) */ | ||
| 82 | unsigned long get_system_mem_size(void) | ||
| 83 | { | ||
| 84 | /* Read IP2031_RANK0_ADDR_LO */ | ||
| 85 | unsigned long dram_r0_lo = inl(PCI_BASE | 0x65010); | ||
| 86 | /* Read IP2031_RANK1_ADDR_HI */ | ||
| 87 | unsigned long dram_r1_hi = inl(PCI_BASE | 0x65018); | ||
| 88 | |||
| 89 | return dram_r1_hi - dram_r0_lo + 1; | ||
| 90 | } | ||
| 91 | |||
| 92 | int pnx8550_console_port = -1; | ||
| 93 | |||
| 94 | void __init plat_mem_setup(void) | ||
| 95 | { | ||
| 96 | int i; | ||
| 97 | char* argptr; | ||
| 98 | |||
| 99 | board_setup(); /* board specific setup */ | ||
| 100 | |||
| 101 | _machine_restart = pnx8550_machine_restart; | ||
| 102 | _machine_halt = pnx8550_machine_halt; | ||
| 103 | pm_power_off = pnx8550_machine_power_off; | ||
| 104 | |||
| 105 | /* Clear the Global 2 Register, PCI Inta Output Enable Registers | ||
| 106 | Bit 1:Enable DAC Powerdown | ||
| 107 | -> 0:DACs are enabled and are working normally | ||
| 108 | 1:DACs are powerdown | ||
| 109 | Bit 0:Enable of PCI inta output | ||
| 110 | -> 0 = Disable PCI inta output | ||
| 111 | 1 = Enable PCI inta output | ||
| 112 | */ | ||
| 113 | PNX8550_GLB2_ENAB_INTA_O = 0; | ||
| 114 | |||
| 115 | /* IO/MEM resources. */ | ||
| 116 | set_io_port_base(PNX8550_PORT_BASE); | ||
| 117 | ioport_resource.start = 0; | ||
| 118 | ioport_resource.end = ~0; | ||
| 119 | iomem_resource.start = 0; | ||
| 120 | iomem_resource.end = ~0; | ||
| 121 | |||
| 122 | /* Request I/O space for devices on this board */ | ||
| 123 | for (i = 0; i < STANDARD_IO_RESOURCES; i++) | ||
| 124 | request_resource(&ioport_resource, standard_io_resources + i); | ||
| 125 | |||
| 126 | /* Place the Mode Control bit for GPIO pin 16 in primary function */ | ||
| 127 | /* Pin 16 is used by UART1, UA1_TX */ | ||
| 128 | outl((PNX8550_GPIO_MODE_PRIMOP << PNX8550_GPIO_MC_16_BIT) | | ||
| 129 | (PNX8550_GPIO_MODE_PRIMOP << PNX8550_GPIO_MC_17_BIT), | ||
| 130 | PNX8550_GPIO_MC1); | ||
| 131 | |||
| 132 | argptr = prom_getcmdline(); | ||
| 133 | if ((argptr = strstr(argptr, "console=ttyS")) != NULL) { | ||
| 134 | argptr += strlen("console=ttyS"); | ||
| 135 | pnx8550_console_port = *argptr == '0' ? 0 : 1; | ||
| 136 | |||
| 137 | /* We must initialize the UART (console) before early printk */ | ||
| 138 | /* Set LCR to 8-bit and BAUD to 38400 (no 5) */ | ||
| 139 | ip3106_lcr(UART_BASE, pnx8550_console_port) = | ||
| 140 | PNX8XXX_UART_LCR_8BIT; | ||
| 141 | ip3106_baud(UART_BASE, pnx8550_console_port) = 5; | ||
| 142 | } | ||
| 143 | } | ||
diff --git a/arch/mips/pci/pci-alchemy.c b/arch/mips/pci/pci-alchemy.c index 4ee57104e47b..b5ce041cdafb 100644 --- a/arch/mips/pci/pci-alchemy.c +++ b/arch/mips/pci/pci-alchemy.c | |||
| @@ -7,6 +7,7 @@ | |||
| 7 | * Support for all devices (greater than 16) added by David Gathright. | 7 | * Support for all devices (greater than 16) added by David Gathright. |
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | #include <linux/export.h> | ||
| 10 | #include <linux/types.h> | 11 | #include <linux/types.h> |
| 11 | #include <linux/pci.h> | 12 | #include <linux/pci.h> |
| 12 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
diff --git a/arch/mips/pci/pci-lantiq.c b/arch/mips/pci/pci-lantiq.c index 8656388b34bd..be1e1afe12c3 100644 --- a/arch/mips/pci/pci-lantiq.c +++ b/arch/mips/pci/pci-lantiq.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <linux/delay.h> | 13 | #include <linux/delay.h> |
| 14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
| 15 | #include <linux/vmalloc.h> | 15 | #include <linux/vmalloc.h> |
| 16 | #include <linux/export.h> | ||
| 16 | #include <linux/platform_device.h> | 17 | #include <linux/platform_device.h> |
| 17 | 18 | ||
| 18 | #include <asm/pci.h> | 19 | #include <asm/pci.h> |
diff --git a/arch/mips/pmc-sierra/yosemite/prom.c b/arch/mips/pmc-sierra/yosemite/prom.c index cf4c868715ac..dcc926e06fce 100644 --- a/arch/mips/pmc-sierra/yosemite/prom.c +++ b/arch/mips/pmc-sierra/yosemite/prom.c | |||
| @@ -102,7 +102,7 @@ void __init prom_init(void) | |||
| 102 | 102 | ||
| 103 | /* Get the boot parameters */ | 103 | /* Get the boot parameters */ |
| 104 | for (i = 1; i < argc; i++) { | 104 | for (i = 1; i < argc; i++) { |
| 105 | if (strlen(arcs_cmdline) + strlen(arg[i] + 1) >= | 105 | if (strlen(arcs_cmdline) + strlen(arg[i]) + 1 >= |
| 106 | sizeof(arcs_cmdline)) | 106 | sizeof(arcs_cmdline)) |
| 107 | break; | 107 | break; |
| 108 | 108 | ||
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index de170fd5ba4e..22ffccd8bef5 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c | |||
| @@ -23,7 +23,7 @@ | |||
| 23 | */ | 23 | */ |
| 24 | 24 | ||
| 25 | #include <linux/init.h> | 25 | #include <linux/init.h> |
| 26 | #include <linux/export.h> | 26 | #include <linux/module.h> |
| 27 | #include <linux/types.h> | 27 | #include <linux/types.h> |
| 28 | #include <linux/dma-mapping.h> | 28 | #include <linux/dma-mapping.h> |
| 29 | #include <linux/interrupt.h> | 29 | #include <linux/interrupt.h> |
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c index bcb1126e3d00..153980be4ee6 100644 --- a/drivers/firmware/dmi_scan.c +++ b/drivers/firmware/dmi_scan.c | |||
| @@ -585,14 +585,12 @@ int dmi_name_in_serial(const char *str) | |||
| 585 | } | 585 | } |
| 586 | 586 | ||
| 587 | /** | 587 | /** |
| 588 | * dmi_name_in_vendors - Check if string is anywhere in the DMI vendor information. | 588 | * dmi_name_in_vendors - Check if string is in the DMI system or board vendor name |
| 589 | * @str: Case sensitive Name | 589 | * @str: Case sensitive Name |
| 590 | */ | 590 | */ |
| 591 | int dmi_name_in_vendors(const char *str) | 591 | int dmi_name_in_vendors(const char *str) |
| 592 | { | 592 | { |
| 593 | static int fields[] = { DMI_BIOS_VENDOR, DMI_BIOS_VERSION, DMI_SYS_VENDOR, | 593 | static int fields[] = { DMI_SYS_VENDOR, DMI_BOARD_VENDOR, DMI_NONE }; |
| 594 | DMI_PRODUCT_NAME, DMI_PRODUCT_VERSION, DMI_BOARD_VENDOR, | ||
| 595 | DMI_BOARD_NAME, DMI_BOARD_VERSION, DMI_NONE }; | ||
| 596 | int i; | 594 | int i; |
| 597 | for (i = 0; fields[i] != DMI_NONE; i++) { | 595 | for (i = 0; fields[i] != DMI_NONE; i++) { |
| 598 | int f = fields[i]; | 596 | int f = fields[i]; |
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index 0e49d87f6c60..0b0562979171 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c | |||
| @@ -148,13 +148,17 @@ static int _get_gpio_dataout(struct gpio_bank *bank, int gpio) | |||
| 148 | return (__raw_readl(reg) & GPIO_BIT(bank, gpio)) != 0; | 148 | return (__raw_readl(reg) & GPIO_BIT(bank, gpio)) != 0; |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | #define MOD_REG_BIT(reg, bit_mask, set) \ | 151 | static inline void _gpio_rmw(void __iomem *base, u32 reg, u32 mask, bool set) |
| 152 | do { \ | 152 | { |
| 153 | int l = __raw_readl(base + reg); \ | 153 | int l = __raw_readl(base + reg); |
| 154 | if (set) l |= bit_mask; \ | 154 | |
| 155 | else l &= ~bit_mask; \ | 155 | if (set) |
| 156 | __raw_writel(l, base + reg); \ | 156 | l |= mask; |
| 157 | } while(0) | 157 | else |
| 158 | l &= ~mask; | ||
| 159 | |||
| 160 | __raw_writel(l, base + reg); | ||
| 161 | } | ||
| 158 | 162 | ||
| 159 | /** | 163 | /** |
| 160 | * _set_gpio_debounce - low level gpio debounce time | 164 | * _set_gpio_debounce - low level gpio debounce time |
| @@ -210,28 +214,28 @@ static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio, | |||
| 210 | u32 gpio_bit = 1 << gpio; | 214 | u32 gpio_bit = 1 << gpio; |
| 211 | 215 | ||
| 212 | if (cpu_is_omap44xx()) { | 216 | if (cpu_is_omap44xx()) { |
| 213 | MOD_REG_BIT(OMAP4_GPIO_LEVELDETECT0, gpio_bit, | 217 | _gpio_rmw(base, OMAP4_GPIO_LEVELDETECT0, gpio_bit, |
| 214 | trigger & IRQ_TYPE_LEVEL_LOW); | 218 | trigger & IRQ_TYPE_LEVEL_LOW); |
| 215 | MOD_REG_BIT(OMAP4_GPIO_LEVELDETECT1, gpio_bit, | 219 | _gpio_rmw(base, OMAP4_GPIO_LEVELDETECT1, gpio_bit, |
| 216 | trigger & IRQ_TYPE_LEVEL_HIGH); | 220 | trigger & IRQ_TYPE_LEVEL_HIGH); |
| 217 | MOD_REG_BIT(OMAP4_GPIO_RISINGDETECT, gpio_bit, | 221 | _gpio_rmw(base, OMAP4_GPIO_RISINGDETECT, gpio_bit, |
| 218 | trigger & IRQ_TYPE_EDGE_RISING); | 222 | trigger & IRQ_TYPE_EDGE_RISING); |
| 219 | MOD_REG_BIT(OMAP4_GPIO_FALLINGDETECT, gpio_bit, | 223 | _gpio_rmw(base, OMAP4_GPIO_FALLINGDETECT, gpio_bit, |
| 220 | trigger & IRQ_TYPE_EDGE_FALLING); | 224 | trigger & IRQ_TYPE_EDGE_FALLING); |
| 221 | } else { | 225 | } else { |
| 222 | MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT0, gpio_bit, | 226 | _gpio_rmw(base, OMAP24XX_GPIO_LEVELDETECT0, gpio_bit, |
| 223 | trigger & IRQ_TYPE_LEVEL_LOW); | 227 | trigger & IRQ_TYPE_LEVEL_LOW); |
| 224 | MOD_REG_BIT(OMAP24XX_GPIO_LEVELDETECT1, gpio_bit, | 228 | _gpio_rmw(base, OMAP24XX_GPIO_LEVELDETECT1, gpio_bit, |
| 225 | trigger & IRQ_TYPE_LEVEL_HIGH); | 229 | trigger & IRQ_TYPE_LEVEL_HIGH); |
| 226 | MOD_REG_BIT(OMAP24XX_GPIO_RISINGDETECT, gpio_bit, | 230 | _gpio_rmw(base, OMAP24XX_GPIO_RISINGDETECT, gpio_bit, |
| 227 | trigger & IRQ_TYPE_EDGE_RISING); | 231 | trigger & IRQ_TYPE_EDGE_RISING); |
| 228 | MOD_REG_BIT(OMAP24XX_GPIO_FALLINGDETECT, gpio_bit, | 232 | _gpio_rmw(base, OMAP24XX_GPIO_FALLINGDETECT, gpio_bit, |
| 229 | trigger & IRQ_TYPE_EDGE_FALLING); | 233 | trigger & IRQ_TYPE_EDGE_FALLING); |
| 230 | } | 234 | } |
| 231 | if (likely(!(bank->non_wakeup_gpios & gpio_bit))) { | 235 | if (likely(!(bank->non_wakeup_gpios & gpio_bit))) { |
| 232 | if (cpu_is_omap44xx()) { | 236 | if (cpu_is_omap44xx()) { |
| 233 | MOD_REG_BIT(OMAP4_GPIO_IRQWAKEN0, gpio_bit, | 237 | _gpio_rmw(base, OMAP4_GPIO_IRQWAKEN0, gpio_bit, |
| 234 | trigger != 0); | 238 | trigger != 0); |
| 235 | } else { | 239 | } else { |
| 236 | /* | 240 | /* |
| 237 | * GPIO wakeup request can only be generated on edge | 241 | * GPIO wakeup request can only be generated on edge |
| @@ -1086,6 +1090,11 @@ omap_mpuio_alloc_gc(struct gpio_bank *bank, unsigned int irq_start, | |||
| 1086 | 1090 | ||
| 1087 | gc = irq_alloc_generic_chip("MPUIO", 1, irq_start, bank->base, | 1091 | gc = irq_alloc_generic_chip("MPUIO", 1, irq_start, bank->base, |
| 1088 | handle_simple_irq); | 1092 | handle_simple_irq); |
| 1093 | if (!gc) { | ||
| 1094 | dev_err(bank->dev, "Memory alloc failed for gc\n"); | ||
| 1095 | return; | ||
| 1096 | } | ||
| 1097 | |||
| 1089 | ct = gc->chip_types; | 1098 | ct = gc->chip_types; |
| 1090 | 1099 | ||
| 1091 | /* NOTE: No ack required, reading IRQ status clears it. */ | 1100 | /* NOTE: No ack required, reading IRQ status clears it. */ |
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c index 0550dcb85814..147df8ae79db 100644 --- a/drivers/gpio/gpio-pca953x.c +++ b/drivers/gpio/gpio-pca953x.c | |||
| @@ -596,9 +596,6 @@ static int __devinit device_pca953x_init(struct pca953x_chip *chip, int invert) | |||
| 596 | 596 | ||
| 597 | /* set platform specific polarity inversion */ | 597 | /* set platform specific polarity inversion */ |
| 598 | ret = pca953x_write_reg(chip, PCA953X_INVERT, invert); | 598 | ret = pca953x_write_reg(chip, PCA953X_INVERT, invert); |
| 599 | if (ret) | ||
| 600 | goto out; | ||
| 601 | return 0; | ||
| 602 | out: | 599 | out: |
| 603 | return ret; | 600 | return ret; |
| 604 | } | 601 | } |
| @@ -640,7 +637,7 @@ static int __devinit pca953x_probe(struct i2c_client *client, | |||
| 640 | struct pca953x_platform_data *pdata; | 637 | struct pca953x_platform_data *pdata; |
| 641 | struct pca953x_chip *chip; | 638 | struct pca953x_chip *chip; |
| 642 | int irq_base=0, invert=0; | 639 | int irq_base=0, invert=0; |
| 643 | int ret = 0; | 640 | int ret; |
| 644 | 641 | ||
| 645 | chip = kzalloc(sizeof(struct pca953x_chip), GFP_KERNEL); | 642 | chip = kzalloc(sizeof(struct pca953x_chip), GFP_KERNEL); |
| 646 | if (chip == NULL) | 643 | if (chip == NULL) |
| @@ -673,10 +670,10 @@ static int __devinit pca953x_probe(struct i2c_client *client, | |||
| 673 | pca953x_setup_gpio(chip, id->driver_data & PCA_GPIO_MASK); | 670 | pca953x_setup_gpio(chip, id->driver_data & PCA_GPIO_MASK); |
| 674 | 671 | ||
| 675 | if (chip->chip_type == PCA953X_TYPE) | 672 | if (chip->chip_type == PCA953X_TYPE) |
| 676 | device_pca953x_init(chip, invert); | 673 | ret = device_pca953x_init(chip, invert); |
| 677 | else if (chip->chip_type == PCA957X_TYPE) | ||
| 678 | device_pca957x_init(chip, invert); | ||
| 679 | else | 674 | else |
| 675 | ret = device_pca957x_init(chip, invert); | ||
| 676 | if (ret) | ||
| 680 | goto out_failed; | 677 | goto out_failed; |
| 681 | 678 | ||
| 682 | ret = pca953x_irq_setup(chip, id, irq_base); | 679 | ret = pca953x_irq_setup(chip, id, irq_base); |
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 68b756253f9f..44a5d0ad8b7c 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c | |||
| @@ -110,10 +110,7 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc) | |||
| 110 | /* Prevent vblank irq processing while disabling vblank irqs, | 110 | /* Prevent vblank irq processing while disabling vblank irqs, |
| 111 | * so no updates of timestamps or count can happen after we've | 111 | * so no updates of timestamps or count can happen after we've |
| 112 | * disabled. Needed to prevent races in case of delayed irq's. | 112 | * disabled. Needed to prevent races in case of delayed irq's. |
| 113 | * Disable preemption, so vblank_time_lock is held as short as | ||
| 114 | * possible, even under a kernel with PREEMPT_RT patches. | ||
| 115 | */ | 113 | */ |
| 116 | preempt_disable(); | ||
| 117 | spin_lock_irqsave(&dev->vblank_time_lock, irqflags); | 114 | spin_lock_irqsave(&dev->vblank_time_lock, irqflags); |
| 118 | 115 | ||
| 119 | dev->driver->disable_vblank(dev, crtc); | 116 | dev->driver->disable_vblank(dev, crtc); |
| @@ -164,7 +161,6 @@ static void vblank_disable_and_save(struct drm_device *dev, int crtc) | |||
| 164 | clear_vblank_timestamps(dev, crtc); | 161 | clear_vblank_timestamps(dev, crtc); |
| 165 | 162 | ||
| 166 | spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags); | 163 | spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags); |
| 167 | preempt_enable(); | ||
| 168 | } | 164 | } |
| 169 | 165 | ||
| 170 | static void vblank_disable_fn(unsigned long arg) | 166 | static void vblank_disable_fn(unsigned long arg) |
| @@ -889,10 +885,6 @@ int drm_vblank_get(struct drm_device *dev, int crtc) | |||
| 889 | spin_lock_irqsave(&dev->vbl_lock, irqflags); | 885 | spin_lock_irqsave(&dev->vbl_lock, irqflags); |
| 890 | /* Going from 0->1 means we have to enable interrupts again */ | 886 | /* Going from 0->1 means we have to enable interrupts again */ |
| 891 | if (atomic_add_return(1, &dev->vblank_refcount[crtc]) == 1) { | 887 | if (atomic_add_return(1, &dev->vblank_refcount[crtc]) == 1) { |
| 892 | /* Disable preemption while holding vblank_time_lock. Do | ||
| 893 | * it explicitely to guard against PREEMPT_RT kernel. | ||
| 894 | */ | ||
| 895 | preempt_disable(); | ||
| 896 | spin_lock_irqsave(&dev->vblank_time_lock, irqflags2); | 888 | spin_lock_irqsave(&dev->vblank_time_lock, irqflags2); |
| 897 | if (!dev->vblank_enabled[crtc]) { | 889 | if (!dev->vblank_enabled[crtc]) { |
| 898 | /* Enable vblank irqs under vblank_time_lock protection. | 890 | /* Enable vblank irqs under vblank_time_lock protection. |
| @@ -912,7 +904,6 @@ int drm_vblank_get(struct drm_device *dev, int crtc) | |||
| 912 | } | 904 | } |
| 913 | } | 905 | } |
| 914 | spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags2); | 906 | spin_unlock_irqrestore(&dev->vblank_time_lock, irqflags2); |
| 915 | preempt_enable(); | ||
| 916 | } else { | 907 | } else { |
| 917 | if (!dev->vblank_enabled[crtc]) { | 908 | if (!dev->vblank_enabled[crtc]) { |
| 918 | atomic_dec(&dev->vblank_refcount[crtc]); | 909 | atomic_dec(&dev->vblank_refcount[crtc]); |
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index d2d179267af3..fecd705a1a5f 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c | |||
| @@ -85,6 +85,18 @@ static struct radeon_i2c_bus_rec radeon_lookup_i2c_gpio(struct radeon_device *rd | |||
| 85 | for (i = 0; i < num_indices; i++) { | 85 | for (i = 0; i < num_indices; i++) { |
| 86 | gpio = &i2c_info->asGPIO_Info[i]; | 86 | gpio = &i2c_info->asGPIO_Info[i]; |
| 87 | 87 | ||
| 88 | /* r4xx mask is technically not used by the hw, so patch in the legacy mask bits */ | ||
| 89 | if ((rdev->family == CHIP_R420) || | ||
| 90 | (rdev->family == CHIP_R423) || | ||
| 91 | (rdev->family == CHIP_RV410)) { | ||
| 92 | if ((le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x0018) || | ||
| 93 | (le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x0019) || | ||
| 94 | (le16_to_cpu(gpio->usClkMaskRegisterIndex) == 0x001a)) { | ||
| 95 | gpio->ucClkMaskShift = 0x19; | ||
| 96 | gpio->ucDataMaskShift = 0x18; | ||
| 97 | } | ||
| 98 | } | ||
| 99 | |||
| 88 | /* some evergreen boards have bad data for this entry */ | 100 | /* some evergreen boards have bad data for this entry */ |
| 89 | if (ASIC_IS_DCE4(rdev)) { | 101 | if (ASIC_IS_DCE4(rdev)) { |
| 90 | if ((i == 7) && | 102 | if ((i == 7) && |
| @@ -1996,14 +2008,14 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev) | |||
| 1996 | return state_index; | 2008 | return state_index; |
| 1997 | /* last mode is usually default, array is low to high */ | 2009 | /* last mode is usually default, array is low to high */ |
| 1998 | for (i = 0; i < num_modes; i++) { | 2010 | for (i = 0; i < num_modes; i++) { |
| 2011 | rdev->pm.power_state[state_index].clock_info = | ||
| 2012 | kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); | ||
| 2013 | if (!rdev->pm.power_state[state_index].clock_info) | ||
| 2014 | return state_index; | ||
| 2015 | rdev->pm.power_state[state_index].num_clock_modes = 1; | ||
| 1999 | rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE; | 2016 | rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE; |
| 2000 | switch (frev) { | 2017 | switch (frev) { |
| 2001 | case 1: | 2018 | case 1: |
| 2002 | rdev->pm.power_state[state_index].clock_info = | ||
| 2003 | kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); | ||
| 2004 | if (!rdev->pm.power_state[state_index].clock_info) | ||
| 2005 | return state_index; | ||
| 2006 | rdev->pm.power_state[state_index].num_clock_modes = 1; | ||
| 2007 | rdev->pm.power_state[state_index].clock_info[0].mclk = | 2019 | rdev->pm.power_state[state_index].clock_info[0].mclk = |
| 2008 | le16_to_cpu(power_info->info.asPowerPlayInfo[i].usMemoryClock); | 2020 | le16_to_cpu(power_info->info.asPowerPlayInfo[i].usMemoryClock); |
| 2009 | rdev->pm.power_state[state_index].clock_info[0].sclk = | 2021 | rdev->pm.power_state[state_index].clock_info[0].sclk = |
| @@ -2039,11 +2051,6 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev) | |||
| 2039 | state_index++; | 2051 | state_index++; |
| 2040 | break; | 2052 | break; |
| 2041 | case 2: | 2053 | case 2: |
| 2042 | rdev->pm.power_state[state_index].clock_info = | ||
| 2043 | kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); | ||
| 2044 | if (!rdev->pm.power_state[state_index].clock_info) | ||
| 2045 | return state_index; | ||
| 2046 | rdev->pm.power_state[state_index].num_clock_modes = 1; | ||
| 2047 | rdev->pm.power_state[state_index].clock_info[0].mclk = | 2054 | rdev->pm.power_state[state_index].clock_info[0].mclk = |
| 2048 | le32_to_cpu(power_info->info_2.asPowerPlayInfo[i].ulMemoryClock); | 2055 | le32_to_cpu(power_info->info_2.asPowerPlayInfo[i].ulMemoryClock); |
| 2049 | rdev->pm.power_state[state_index].clock_info[0].sclk = | 2056 | rdev->pm.power_state[state_index].clock_info[0].sclk = |
| @@ -2080,11 +2087,6 @@ static int radeon_atombios_parse_power_table_1_3(struct radeon_device *rdev) | |||
| 2080 | state_index++; | 2087 | state_index++; |
| 2081 | break; | 2088 | break; |
| 2082 | case 3: | 2089 | case 3: |
| 2083 | rdev->pm.power_state[state_index].clock_info = | ||
| 2084 | kzalloc(sizeof(struct radeon_pm_clock_info) * 1, GFP_KERNEL); | ||
| 2085 | if (!rdev->pm.power_state[state_index].clock_info) | ||
| 2086 | return state_index; | ||
| 2087 | rdev->pm.power_state[state_index].num_clock_modes = 1; | ||
| 2088 | rdev->pm.power_state[state_index].clock_info[0].mclk = | 2090 | rdev->pm.power_state[state_index].clock_info[0].mclk = |
| 2089 | le32_to_cpu(power_info->info_3.asPowerPlayInfo[i].ulMemoryClock); | 2091 | le32_to_cpu(power_info->info_3.asPowerPlayInfo[i].ulMemoryClock); |
| 2090 | rdev->pm.power_state[state_index].clock_info[0].sclk = | 2092 | rdev->pm.power_state[state_index].clock_info[0].sclk = |
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c index c72f1c0b5e63..bdde899af72e 100644 --- a/drivers/gpu/vga/vgaarb.c +++ b/drivers/gpu/vga/vgaarb.c | |||
| @@ -465,31 +465,29 @@ static void vga_arbiter_check_bridge_sharing(struct vga_device *vgadev) | |||
| 465 | while (new_bus) { | 465 | while (new_bus) { |
| 466 | new_bridge = new_bus->self; | 466 | new_bridge = new_bus->self; |
| 467 | 467 | ||
| 468 | if (new_bridge) { | 468 | /* go through list of devices already registered */ |
| 469 | /* go through list of devices already registered */ | 469 | list_for_each_entry(same_bridge_vgadev, &vga_list, list) { |
| 470 | list_for_each_entry(same_bridge_vgadev, &vga_list, list) { | 470 | bus = same_bridge_vgadev->pdev->bus; |
| 471 | bus = same_bridge_vgadev->pdev->bus; | 471 | bridge = bus->self; |
| 472 | bridge = bus->self; | 472 | |
| 473 | 473 | /* see if the share a bridge with this device */ | |
| 474 | /* see if the share a bridge with this device */ | 474 | if (new_bridge == bridge) { |
| 475 | if (new_bridge == bridge) { | 475 | /* if their direct parent bridge is the same |
| 476 | /* if their direct parent bridge is the same | 476 | as any bridge of this device then it can't be used |
| 477 | as any bridge of this device then it can't be used | 477 | for that device */ |
| 478 | for that device */ | 478 | same_bridge_vgadev->bridge_has_one_vga = false; |
| 479 | same_bridge_vgadev->bridge_has_one_vga = false; | 479 | } |
| 480 | } | ||
| 481 | 480 | ||
| 482 | /* now iterate the previous devices bridge hierarchy */ | 481 | /* now iterate the previous devices bridge hierarchy */ |
| 483 | /* if the new devices parent bridge is in the other devices | 482 | /* if the new devices parent bridge is in the other devices |
| 484 | hierarchy then we can't use it to control this device */ | 483 | hierarchy then we can't use it to control this device */ |
| 485 | while (bus) { | 484 | while (bus) { |
| 486 | bridge = bus->self; | 485 | bridge = bus->self; |
| 487 | if (bridge) { | 486 | if (bridge) { |
| 488 | if (bridge == vgadev->pdev->bus->self) | 487 | if (bridge == vgadev->pdev->bus->self) |
| 489 | vgadev->bridge_has_one_vga = false; | 488 | vgadev->bridge_has_one_vga = false; |
| 490 | } | ||
| 491 | bus = bus->parent; | ||
| 492 | } | 489 | } |
| 490 | bus = bus->parent; | ||
| 493 | } | 491 | } |
| 494 | } | 492 | } |
| 495 | new_bus = new_bus->parent; | 493 | new_bus = new_bus->parent; |
diff --git a/drivers/iommu/omap-iommu-debug.c b/drivers/iommu/omap-iommu-debug.c index 9c192e79f806..288da5c1499d 100644 --- a/drivers/iommu/omap-iommu-debug.c +++ b/drivers/iommu/omap-iommu-debug.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/module.h> | ||
| 13 | #include <linux/err.h> | 14 | #include <linux/err.h> |
| 14 | #include <linux/clk.h> | 15 | #include <linux/clk.h> |
| 15 | #include <linux/io.h> | 16 | #include <linux/io.h> |
diff --git a/drivers/iommu/omap-iovmm.c b/drivers/iommu/omap-iovmm.c index e8fdb8830f69..46be456fcc00 100644 --- a/drivers/iommu/omap-iovmm.c +++ b/drivers/iommu/omap-iovmm.c | |||
| @@ -10,6 +10,7 @@ | |||
| 10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <linux/module.h> | ||
| 13 | #include <linux/err.h> | 14 | #include <linux/err.h> |
| 14 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
| 15 | #include <linux/vmalloc.h> | 16 | #include <linux/vmalloc.h> |
diff --git a/drivers/leds/led-class.c b/drivers/leds/led-class.c index 661b692573e7..6d5628bb0601 100644 --- a/drivers/leds/led-class.c +++ b/drivers/leds/led-class.c | |||
| @@ -270,11 +270,8 @@ void led_blink_set(struct led_classdev *led_cdev, | |||
| 270 | del_timer_sync(&led_cdev->blink_timer); | 270 | del_timer_sync(&led_cdev->blink_timer); |
| 271 | 271 | ||
| 272 | if (led_cdev->blink_set && | 272 | if (led_cdev->blink_set && |
| 273 | !led_cdev->blink_set(led_cdev, delay_on, delay_off)) { | 273 | !led_cdev->blink_set(led_cdev, delay_on, delay_off)) |
| 274 | led_cdev->blink_delay_on = *delay_on; | ||
| 275 | led_cdev->blink_delay_off = *delay_off; | ||
| 276 | return; | 274 | return; |
| 277 | } | ||
| 278 | 275 | ||
| 279 | /* blink with 1 Hz as default if nothing specified */ | 276 | /* blink with 1 Hz as default if nothing specified */ |
| 280 | if (!*delay_on && !*delay_off) | 277 | if (!*delay_on && !*delay_off) |
diff --git a/drivers/misc/eeprom/Kconfig b/drivers/misc/eeprom/Kconfig index 26cf12ca7f50..701edf658970 100644 --- a/drivers/misc/eeprom/Kconfig +++ b/drivers/misc/eeprom/Kconfig | |||
| @@ -85,7 +85,7 @@ config EEPROM_93XX46 | |||
| 85 | 85 | ||
| 86 | config EEPROM_DIGSY_MTC_CFG | 86 | config EEPROM_DIGSY_MTC_CFG |
| 87 | bool "DigsyMTC display configuration EEPROMs device" | 87 | bool "DigsyMTC display configuration EEPROMs device" |
| 88 | depends on PPC_MPC5200_GPIO && GPIOLIB && SPI_GPIO | 88 | depends on GPIO_MPC5200 && SPI_GPIO |
| 89 | help | 89 | help |
| 90 | This option enables access to display configuration EEPROMs | 90 | This option enables access to display configuration EEPROMs |
| 91 | on digsy_mtc board. You have to additionally select Microwire | 91 | on digsy_mtc board. You have to additionally select Microwire |
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index ef566443f945..e17e2f8001d2 100644 --- a/drivers/pinctrl/Kconfig +++ b/drivers/pinctrl/Kconfig | |||
| @@ -2,23 +2,17 @@ | |||
| 2 | # PINCTRL infrastructure and drivers | 2 | # PINCTRL infrastructure and drivers |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | menuconfig PINCTRL | 5 | config PINCTRL |
| 6 | bool "PINCTRL Support" | 6 | bool |
| 7 | depends on EXPERIMENTAL | 7 | depends on EXPERIMENTAL |
| 8 | help | ||
| 9 | This enables the PINCTRL subsystem for controlling pins | ||
| 10 | on chip packages, for example multiplexing pins on primarily | ||
| 11 | PGA and BGA packages for systems on chip. | ||
| 12 | |||
| 13 | If unsure, say N. | ||
| 14 | 8 | ||
| 15 | if PINCTRL | 9 | if PINCTRL |
| 16 | 10 | ||
| 11 | menu "Pin controllers" | ||
| 12 | depends on PINCTRL | ||
| 13 | |||
| 17 | config PINMUX | 14 | config PINMUX |
| 18 | bool "Support pinmux controllers" | 15 | bool "Support pinmux controllers" |
| 19 | help | ||
| 20 | Say Y here if you want the pincontrol subsystem to handle pin | ||
| 21 | multiplexing drivers. | ||
| 22 | 16 | ||
| 23 | config DEBUG_PINCTRL | 17 | config DEBUG_PINCTRL |
| 24 | bool "Debug PINCTRL calls" | 18 | bool "Debug PINCTRL calls" |
| @@ -30,14 +24,12 @@ config PINMUX_SIRF | |||
| 30 | bool "CSR SiRFprimaII pinmux driver" | 24 | bool "CSR SiRFprimaII pinmux driver" |
| 31 | depends on ARCH_PRIMA2 | 25 | depends on ARCH_PRIMA2 |
| 32 | select PINMUX | 26 | select PINMUX |
| 33 | help | ||
| 34 | Say Y here to enable the SiRFprimaII pinmux driver | ||
| 35 | 27 | ||
| 36 | config PINMUX_U300 | 28 | config PINMUX_U300 |
| 37 | bool "U300 pinmux driver" | 29 | bool "U300 pinmux driver" |
| 38 | depends on ARCH_U300 | 30 | depends on ARCH_U300 |
| 39 | select PINMUX | 31 | select PINMUX |
| 40 | help | 32 | |
| 41 | Say Y here to enable the U300 pinmux driver | 33 | endmenu |
| 42 | 34 | ||
| 43 | endif | 35 | endif |
diff --git a/drivers/staging/octeon/ethernet-tx.c b/drivers/staging/octeon/ethernet-tx.c index b445cd63f901..2542c3743904 100644 --- a/drivers/staging/octeon/ethernet-tx.c +++ b/drivers/staging/octeon/ethernet-tx.c | |||
| @@ -275,7 +275,7 @@ int cvm_oct_xmit(struct sk_buff *skb, struct net_device *dev) | |||
| 275 | CVM_OCT_SKB_CB(skb)[0] = hw_buffer.u64; | 275 | CVM_OCT_SKB_CB(skb)[0] = hw_buffer.u64; |
| 276 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { | 276 | for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { |
| 277 | struct skb_frag_struct *fs = skb_shinfo(skb)->frags + i; | 277 | struct skb_frag_struct *fs = skb_shinfo(skb)->frags + i; |
| 278 | hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)(page_address(fs->page) + fs->page_offset)); | 278 | hw_buffer.s.addr = XKPHYS_TO_PHYS((u64)(page_address(fs->page.p) + fs->page_offset)); |
| 279 | hw_buffer.s.size = fs->size; | 279 | hw_buffer.s.size = fs->size; |
| 280 | CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64; | 280 | CVM_OCT_SKB_CB(skb)[i + 1] = hw_buffer.u64; |
| 281 | } | 281 | } |
diff --git a/fs/hfs/trans.c b/fs/hfs/trans.c index e673a88b8ae7..b1ce4c7ad3fb 100644 --- a/fs/hfs/trans.c +++ b/fs/hfs/trans.c | |||
| @@ -40,6 +40,8 @@ int hfs_mac2asc(struct super_block *sb, char *out, const struct hfs_name *in) | |||
| 40 | 40 | ||
| 41 | src = in->name; | 41 | src = in->name; |
| 42 | srclen = in->len; | 42 | srclen = in->len; |
| 43 | if (srclen > HFS_NAMELEN) | ||
| 44 | srclen = HFS_NAMELEN; | ||
| 43 | dst = out; | 45 | dst = out; |
| 44 | dstlen = HFS_MAX_NAMELEN; | 46 | dstlen = HFS_MAX_NAMELEN; |
| 45 | if (nls_io) { | 47 | if (nls_io) { |
diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h index 3d53efd25ab9..f81676f1b310 100644 --- a/include/drm/drm_pciids.h +++ b/include/drm/drm_pciids.h | |||
| @@ -4,6 +4,7 @@ | |||
| 4 | */ | 4 | */ |
| 5 | #define radeon_PCI_IDS \ | 5 | #define radeon_PCI_IDS \ |
| 6 | {0x1002, 0x3150, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ | 6 | {0x1002, 0x3150, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ |
| 7 | {0x1002, 0x3151, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | ||
| 7 | {0x1002, 0x3152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 8 | {0x1002, 0x3152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
| 8 | {0x1002, 0x3154, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 9 | {0x1002, 0x3154, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
| 9 | {0x1002, 0x3155, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 10 | {0x1002, 0x3155, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
| @@ -55,6 +56,7 @@ | |||
| 55 | {0x1002, 0x4C64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ | 56 | {0x1002, 0x4C64, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ |
| 56 | {0x1002, 0x4C66, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ | 57 | {0x1002, 0x4C66, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ |
| 57 | {0x1002, 0x4C67, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ | 58 | {0x1002, 0x4C67, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV250|RADEON_IS_MOBILITY}, \ |
| 59 | {0x1002, 0x4C6E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV280|RADEON_IS_MOBILITY}, \ | ||
| 58 | {0x1002, 0x4E44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ | 60 | {0x1002, 0x4E44, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ |
| 59 | {0x1002, 0x4E45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ | 61 | {0x1002, 0x4E45, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ |
| 60 | {0x1002, 0x4E46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ | 62 | {0x1002, 0x4E46, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R300}, \ |
diff --git a/include/linux/pinctrl/pinctrl.h b/include/linux/pinctrl/pinctrl.h index 3605e947fa90..04c011038f32 100644 --- a/include/linux/pinctrl/pinctrl.h +++ b/include/linux/pinctrl/pinctrl.h | |||
| @@ -121,6 +121,7 @@ extern const char *pinctrl_dev_get_name(struct pinctrl_dev *pctldev); | |||
| 121 | extern void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev); | 121 | extern void *pinctrl_dev_get_drvdata(struct pinctrl_dev *pctldev); |
| 122 | #else | 122 | #else |
| 123 | 123 | ||
| 124 | struct pinctrl_dev; | ||
| 124 | 125 | ||
| 125 | /* Sufficiently stupid default function when pinctrl is not in use */ | 126 | /* Sufficiently stupid default function when pinctrl is not in use */ |
| 126 | static inline bool pin_is_valid(struct pinctrl_dev *pctldev, int pin) | 127 | static inline bool pin_is_valid(struct pinctrl_dev *pctldev, int pin) |
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index dae27ba3be2c..bb28a5f9db8d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
| @@ -2422,6 +2422,8 @@ retry_avoidcopy: | |||
| 2422 | * anon_vma prepared. | 2422 | * anon_vma prepared. |
| 2423 | */ | 2423 | */ |
| 2424 | if (unlikely(anon_vma_prepare(vma))) { | 2424 | if (unlikely(anon_vma_prepare(vma))) { |
| 2425 | page_cache_release(new_page); | ||
| 2426 | page_cache_release(old_page); | ||
| 2425 | /* Caller expects lock to be held */ | 2427 | /* Caller expects lock to be held */ |
| 2426 | spin_lock(&mm->page_table_lock); | 2428 | spin_lock(&mm->page_table_lock); |
| 2427 | return VM_FAULT_OOM; | 2429 | return VM_FAULT_OOM; |
diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 471dedb463ab..76f2c5ae908e 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c | |||
| @@ -185,6 +185,11 @@ unsigned int oom_badness(struct task_struct *p, struct mem_cgroup *mem, | |||
| 185 | if (!p) | 185 | if (!p) |
| 186 | return 0; | 186 | return 0; |
| 187 | 187 | ||
| 188 | if (p->signal->oom_score_adj == OOM_SCORE_ADJ_MIN) { | ||
| 189 | task_unlock(p); | ||
| 190 | return 0; | ||
| 191 | } | ||
| 192 | |||
| 188 | /* | 193 | /* |
| 189 | * The memory controller may have a limit of 0 bytes, so avoid a divide | 194 | * The memory controller may have a limit of 0 bytes, so avoid a divide |
| 190 | * by zero, if necessary. | 195 | * by zero, if necessary. |
diff --git a/security/keys/user_defined.c b/security/keys/user_defined.c index 5b366d7af3c4..69ff52c08e97 100644 --- a/security/keys/user_defined.c +++ b/security/keys/user_defined.c | |||
| @@ -102,7 +102,8 @@ int user_update(struct key *key, const void *data, size_t datalen) | |||
| 102 | key->expiry = 0; | 102 | key->expiry = 0; |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | kfree_rcu(zap, rcu); | 105 | if (zap) |
| 106 | kfree_rcu(zap, rcu); | ||
| 106 | 107 | ||
| 107 | error: | 108 | error: |
| 108 | return ret; | 109 | return ret; |
