diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-01-05 15:48:25 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-01-05 15:48:25 -0500 |
commit | 47f3f4eb7834ea424b0704bffd0d3e3c8ffbc3a1 (patch) | |
tree | 14bb595d5bdc86fc94a8d780c72a5ee8583f4c49 | |
parent | f1c2f8857c5aa6c92aa903bc06437503422e5925 (diff) | |
parent | edefae94b7b9f10d5efe32dece5a36e9d9ecc29e (diff) |
Merge tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
Pull MIPS fixes from Paul Burton:
"A few early MIPS fixes for 4.21:
- The Broadcom BCM63xx platform sees a fix for resetting the BCM6368
ethernet switch, and the removal of a platform device we've never
had a driver for.
- The Alchemy platform sees a few fixes for bitrot that occurred
within the past few cycles.
- We now enable vectored interrupt support for the MediaTek MT7620
SoC, which makes sense since they're supported by the SoC but in
this case also works around a bug relating to the location of
exception vectors when using a recent version of U-Boot.
- The atomic64_fetch_*_relaxed() family of functions see a fix for a
regression in MIPS64 kernels since v4.19.
- Cavium Octeon III CN7xxx systems will now disable their RGMII
interfaces rather than attempt to enable them & warn about the lack
of support for doing so, as they did since initial CN7xxx ethernet
support was added in v4.7.
- The Microsemi/Microchip MSCC SoCs gain a MAINTAINERS entry.
- .mailmap now provides consistency for Dengcheng Zhu's name &
current email address"
* tag 'mips_fixes_4.21_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
MIPS: OCTEON: mark RGMII interface disabled on OCTEON III
MIPS: Fix a R10000_LLSC_WAR logic in atomic.h
MIPS: BCM63XX: drop unused and broken DSP platform device
mailmap: Update name spelling and email for Dengcheng Zhu
MIPS: ralink: Select CONFIG_CPU_MIPSR2_IRQ_VI on MT7620/8
MAINTAINERS: Add a maintainer for MSCC MIPS SoCs
MIPS: Alchemy: update dma masks for devboard devices
MIPS: Alchemy: update cpu-feature-overrides
MIPS: Alchemy: drop DB1000 IrDA support bits
MIPS: alchemy: cpu_all_mask is forbidden for clock event devices
MIPS: BCM63XX: fix switch core reset on BCM6368
-rw-r--r-- | .mailmap | 5 | ||||
-rw-r--r-- | MAINTAINERS | 3 | ||||
-rw-r--r-- | arch/mips/alchemy/common/time.c | 2 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/db1000.c | 76 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/db1200.c | 24 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/db1300.c | 23 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/db1550.c | 13 | ||||
-rw-r--r-- | arch/mips/bcm63xx/Makefile | 6 | ||||
-rw-r--r-- | arch/mips/bcm63xx/boards/board_bcm963xx.c | 20 | ||||
-rw-r--r-- | arch/mips/bcm63xx/dev-dsp.c | 56 | ||||
-rw-r--r-- | arch/mips/bcm63xx/reset.c | 2 | ||||
-rw-r--r-- | arch/mips/cavium-octeon/executive/cvmx-helper.c | 3 | ||||
-rw-r--r-- | arch/mips/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h | 3 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h | 14 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 5 | ||||
-rw-r--r-- | arch/mips/ralink/Kconfig | 1 |
17 files changed, 70 insertions, 188 deletions
@@ -48,7 +48,10 @@ Corey Minyard <minyard@acm.org> | |||
48 | Damian Hobson-Garcia <dhobsong@igel.co.jp> | 48 | Damian Hobson-Garcia <dhobsong@igel.co.jp> |
49 | David Brownell <david-b@pacbell.net> | 49 | David Brownell <david-b@pacbell.net> |
50 | David Woodhouse <dwmw2@shinybook.infradead.org> | 50 | David Woodhouse <dwmw2@shinybook.infradead.org> |
51 | Deng-Cheng Zhu <dengcheng.zhu@mips.com> <dengcheng.zhu@imgtec.com> | 51 | Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@mips.com> |
52 | Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@imgtec.com> | ||
53 | Dengcheng Zhu <dzhu@wavecomp.com> <dczhu@mips.com> | ||
54 | Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@gmail.com> | ||
52 | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> | 55 | Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> |
53 | Domen Puncer <domen@coderock.org> | 56 | Domen Puncer <domen@coderock.org> |
54 | Douglas Gilbert <dougg@torque.net> | 57 | Douglas Gilbert <dougg@torque.net> |
diff --git a/MAINTAINERS b/MAINTAINERS index 58551782e960..5a0d1d4a905d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -10016,8 +10016,9 @@ F: drivers/dma/at_xdmac.c | |||
10016 | 10016 | ||
10017 | MICROSEMI MIPS SOCS | 10017 | MICROSEMI MIPS SOCS |
10018 | M: Alexandre Belloni <alexandre.belloni@bootlin.com> | 10018 | M: Alexandre Belloni <alexandre.belloni@bootlin.com> |
10019 | M: Microchip Linux Driver Support <UNGLinuxDriver@microchip.com> | ||
10019 | L: linux-mips@vger.kernel.org | 10020 | L: linux-mips@vger.kernel.org |
10020 | S: Maintained | 10021 | S: Supported |
10021 | F: arch/mips/generic/board-ocelot.c | 10022 | F: arch/mips/generic/board-ocelot.c |
10022 | F: arch/mips/configs/generic/board-ocelot.config | 10023 | F: arch/mips/configs/generic/board-ocelot.config |
10023 | F: arch/mips/boot/dts/mscc/ | 10024 | F: arch/mips/boot/dts/mscc/ |
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c index 32d1333bb243..166e842c044f 100644 --- a/arch/mips/alchemy/common/time.c +++ b/arch/mips/alchemy/common/time.c | |||
@@ -81,7 +81,7 @@ static struct clock_event_device au1x_rtcmatch2_clockdev = { | |||
81 | .features = CLOCK_EVT_FEAT_ONESHOT, | 81 | .features = CLOCK_EVT_FEAT_ONESHOT, |
82 | .rating = 1500, | 82 | .rating = 1500, |
83 | .set_next_event = au1x_rtcmatch2_set_next_event, | 83 | .set_next_event = au1x_rtcmatch2_set_next_event, |
84 | .cpumask = cpu_all_mask, | 84 | .cpumask = cpu_possible_mask, |
85 | }; | 85 | }; |
86 | 86 | ||
87 | static struct irqaction au1x_rtcmatch2_irqaction = { | 87 | static struct irqaction au1x_rtcmatch2_irqaction = { |
diff --git a/arch/mips/alchemy/devboards/db1000.c b/arch/mips/alchemy/devboards/db1000.c index 13e3c84859fe..7f99592cf56b 100644 --- a/arch/mips/alchemy/devboards/db1000.c +++ b/arch/mips/alchemy/devboards/db1000.c | |||
@@ -82,6 +82,8 @@ static int db1500_map_pci_irq(const struct pci_dev *d, u8 slot, u8 pin) | |||
82 | return -1; | 82 | return -1; |
83 | } | 83 | } |
84 | 84 | ||
85 | static u64 au1xxx_all_dmamask = DMA_BIT_MASK(32); | ||
86 | |||
85 | static struct resource alchemy_pci_host_res[] = { | 87 | static struct resource alchemy_pci_host_res[] = { |
86 | [0] = { | 88 | [0] = { |
87 | .start = AU1500_PCI_PHYS_ADDR, | 89 | .start = AU1500_PCI_PHYS_ADDR, |
@@ -120,13 +122,11 @@ static struct resource au1100_lcd_resources[] = { | |||
120 | } | 122 | } |
121 | }; | 123 | }; |
122 | 124 | ||
123 | static u64 au1100_lcd_dmamask = DMA_BIT_MASK(32); | ||
124 | |||
125 | static struct platform_device au1100_lcd_device = { | 125 | static struct platform_device au1100_lcd_device = { |
126 | .name = "au1100-lcd", | 126 | .name = "au1100-lcd", |
127 | .id = 0, | 127 | .id = 0, |
128 | .dev = { | 128 | .dev = { |
129 | .dma_mask = &au1100_lcd_dmamask, | 129 | .dma_mask = &au1xxx_all_dmamask, |
130 | .coherent_dma_mask = DMA_BIT_MASK(32), | 130 | .coherent_dma_mask = DMA_BIT_MASK(32), |
131 | }, | 131 | }, |
132 | .num_resources = ARRAY_SIZE(au1100_lcd_resources), | 132 | .num_resources = ARRAY_SIZE(au1100_lcd_resources), |
@@ -170,6 +170,10 @@ static struct platform_device db1x00_codec_dev = { | |||
170 | 170 | ||
171 | static struct platform_device db1x00_audio_dev = { | 171 | static struct platform_device db1x00_audio_dev = { |
172 | .name = "db1000-audio", | 172 | .name = "db1000-audio", |
173 | .dev = { | ||
174 | .dma_mask = &au1xxx_all_dmamask, | ||
175 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
176 | }, | ||
173 | }; | 177 | }; |
174 | 178 | ||
175 | /******************************************************************************/ | 179 | /******************************************************************************/ |
@@ -338,13 +342,11 @@ static struct resource au1100_mmc0_resources[] = { | |||
338 | } | 342 | } |
339 | }; | 343 | }; |
340 | 344 | ||
341 | static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32); | ||
342 | |||
343 | static struct platform_device db1100_mmc0_dev = { | 345 | static struct platform_device db1100_mmc0_dev = { |
344 | .name = "au1xxx-mmc", | 346 | .name = "au1xxx-mmc", |
345 | .id = 0, | 347 | .id = 0, |
346 | .dev = { | 348 | .dev = { |
347 | .dma_mask = &au1xxx_mmc_dmamask, | 349 | .dma_mask = &au1xxx_all_dmamask, |
348 | .coherent_dma_mask = DMA_BIT_MASK(32), | 350 | .coherent_dma_mask = DMA_BIT_MASK(32), |
349 | .platform_data = &db1100_mmc_platdata[0], | 351 | .platform_data = &db1100_mmc_platdata[0], |
350 | }, | 352 | }, |
@@ -379,7 +381,7 @@ static struct platform_device db1100_mmc1_dev = { | |||
379 | .name = "au1xxx-mmc", | 381 | .name = "au1xxx-mmc", |
380 | .id = 1, | 382 | .id = 1, |
381 | .dev = { | 383 | .dev = { |
382 | .dma_mask = &au1xxx_mmc_dmamask, | 384 | .dma_mask = &au1xxx_all_dmamask, |
383 | .coherent_dma_mask = DMA_BIT_MASK(32), | 385 | .coherent_dma_mask = DMA_BIT_MASK(32), |
384 | .platform_data = &db1100_mmc_platdata[1], | 386 | .platform_data = &db1100_mmc_platdata[1], |
385 | }, | 387 | }, |
@@ -389,58 +391,6 @@ static struct platform_device db1100_mmc1_dev = { | |||
389 | 391 | ||
390 | /******************************************************************************/ | 392 | /******************************************************************************/ |
391 | 393 | ||
392 | static void db1000_irda_set_phy_mode(int mode) | ||
393 | { | ||
394 | unsigned short mask = BCSR_RESETS_IRDA_MODE_MASK | BCSR_RESETS_FIR_SEL; | ||
395 | |||
396 | switch (mode) { | ||
397 | case AU1000_IRDA_PHY_MODE_OFF: | ||
398 | bcsr_mod(BCSR_RESETS, mask, BCSR_RESETS_IRDA_MODE_OFF); | ||
399 | break; | ||
400 | case AU1000_IRDA_PHY_MODE_SIR: | ||
401 | bcsr_mod(BCSR_RESETS, mask, BCSR_RESETS_IRDA_MODE_FULL); | ||
402 | break; | ||
403 | case AU1000_IRDA_PHY_MODE_FIR: | ||
404 | bcsr_mod(BCSR_RESETS, mask, BCSR_RESETS_IRDA_MODE_FULL | | ||
405 | BCSR_RESETS_FIR_SEL); | ||
406 | break; | ||
407 | } | ||
408 | } | ||
409 | |||
410 | static struct au1k_irda_platform_data db1000_irda_platdata = { | ||
411 | .set_phy_mode = db1000_irda_set_phy_mode, | ||
412 | }; | ||
413 | |||
414 | static struct resource au1000_irda_res[] = { | ||
415 | [0] = { | ||
416 | .start = AU1000_IRDA_PHYS_ADDR, | ||
417 | .end = AU1000_IRDA_PHYS_ADDR + 0x0fff, | ||
418 | .flags = IORESOURCE_MEM, | ||
419 | }, | ||
420 | [1] = { | ||
421 | .start = AU1000_IRDA_TX_INT, | ||
422 | .end = AU1000_IRDA_TX_INT, | ||
423 | .flags = IORESOURCE_IRQ, | ||
424 | }, | ||
425 | [2] = { | ||
426 | .start = AU1000_IRDA_RX_INT, | ||
427 | .end = AU1000_IRDA_RX_INT, | ||
428 | .flags = IORESOURCE_IRQ, | ||
429 | }, | ||
430 | }; | ||
431 | |||
432 | static struct platform_device db1000_irda_dev = { | ||
433 | .name = "au1000-irda", | ||
434 | .id = -1, | ||
435 | .dev = { | ||
436 | .platform_data = &db1000_irda_platdata, | ||
437 | }, | ||
438 | .resource = au1000_irda_res, | ||
439 | .num_resources = ARRAY_SIZE(au1000_irda_res), | ||
440 | }; | ||
441 | |||
442 | /******************************************************************************/ | ||
443 | |||
444 | static struct ads7846_platform_data db1100_touch_pd = { | 394 | static struct ads7846_platform_data db1100_touch_pd = { |
445 | .model = 7846, | 395 | .model = 7846, |
446 | .vref_mv = 3300, | 396 | .vref_mv = 3300, |
@@ -468,6 +418,8 @@ static struct platform_device db1100_spi_dev = { | |||
468 | .id = 0, | 418 | .id = 0, |
469 | .dev = { | 419 | .dev = { |
470 | .platform_data = &db1100_spictl_pd, | 420 | .platform_data = &db1100_spictl_pd, |
421 | .dma_mask = &au1xxx_all_dmamask, | ||
422 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
471 | }, | 423 | }, |
472 | }; | 424 | }; |
473 | 425 | ||
@@ -497,15 +449,10 @@ static struct platform_device *db1x00_devs[] = { | |||
497 | &db1x00_audio_dev, | 449 | &db1x00_audio_dev, |
498 | }; | 450 | }; |
499 | 451 | ||
500 | static struct platform_device *db1000_devs[] = { | ||
501 | &db1000_irda_dev, | ||
502 | }; | ||
503 | |||
504 | static struct platform_device *db1100_devs[] = { | 452 | static struct platform_device *db1100_devs[] = { |
505 | &au1100_lcd_device, | 453 | &au1100_lcd_device, |
506 | &db1100_mmc0_dev, | 454 | &db1100_mmc0_dev, |
507 | &db1100_mmc1_dev, | 455 | &db1100_mmc1_dev, |
508 | &db1000_irda_dev, | ||
509 | }; | 456 | }; |
510 | 457 | ||
511 | int __init db1000_dev_setup(void) | 458 | int __init db1000_dev_setup(void) |
@@ -565,7 +512,6 @@ int __init db1000_dev_setup(void) | |||
565 | d1 = 3; /* GPIO number, NOT irq! */ | 512 | d1 = 3; /* GPIO number, NOT irq! */ |
566 | s0 = AU1000_GPIO1_INT; | 513 | s0 = AU1000_GPIO1_INT; |
567 | s1 = AU1000_GPIO4_INT; | 514 | s1 = AU1000_GPIO4_INT; |
568 | platform_add_devices(db1000_devs, ARRAY_SIZE(db1000_devs)); | ||
569 | } else if ((board == BCSR_WHOAMI_PB1500) || | 515 | } else if ((board == BCSR_WHOAMI_PB1500) || |
570 | (board == BCSR_WHOAMI_PB1500R2)) { | 516 | (board == BCSR_WHOAMI_PB1500R2)) { |
571 | c0 = AU1500_GPIO203_INT; | 517 | c0 = AU1500_GPIO203_INT; |
diff --git a/arch/mips/alchemy/devboards/db1200.c b/arch/mips/alchemy/devboards/db1200.c index 4bf02f96ab7f..fb11c578e178 100644 --- a/arch/mips/alchemy/devboards/db1200.c +++ b/arch/mips/alchemy/devboards/db1200.c | |||
@@ -153,6 +153,8 @@ int __init db1200_board_setup(void) | |||
153 | 153 | ||
154 | /******************************************************************************/ | 154 | /******************************************************************************/ |
155 | 155 | ||
156 | static u64 au1200_all_dmamask = DMA_BIT_MASK(32); | ||
157 | |||
156 | static struct mtd_partition db1200_spiflash_parts[] = { | 158 | static struct mtd_partition db1200_spiflash_parts[] = { |
157 | { | 159 | { |
158 | .name = "spi_flash", | 160 | .name = "spi_flash", |
@@ -324,13 +326,11 @@ static struct resource db1200_ide_res[] = { | |||
324 | }, | 326 | }, |
325 | }; | 327 | }; |
326 | 328 | ||
327 | static u64 au1200_ide_dmamask = DMA_BIT_MASK(32); | ||
328 | |||
329 | static struct platform_device db1200_ide_dev = { | 329 | static struct platform_device db1200_ide_dev = { |
330 | .name = "pata_platform", | 330 | .name = "pata_platform", |
331 | .id = 0, | 331 | .id = 0, |
332 | .dev = { | 332 | .dev = { |
333 | .dma_mask = &au1200_ide_dmamask, | 333 | .dma_mask = &au1200_all_dmamask, |
334 | .coherent_dma_mask = DMA_BIT_MASK(32), | 334 | .coherent_dma_mask = DMA_BIT_MASK(32), |
335 | .platform_data = &db1200_ide_info, | 335 | .platform_data = &db1200_ide_info, |
336 | }, | 336 | }, |
@@ -566,13 +566,11 @@ static struct resource au1200_mmc0_resources[] = { | |||
566 | } | 566 | } |
567 | }; | 567 | }; |
568 | 568 | ||
569 | static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32); | ||
570 | |||
571 | static struct platform_device db1200_mmc0_dev = { | 569 | static struct platform_device db1200_mmc0_dev = { |
572 | .name = "au1xxx-mmc", | 570 | .name = "au1xxx-mmc", |
573 | .id = 0, | 571 | .id = 0, |
574 | .dev = { | 572 | .dev = { |
575 | .dma_mask = &au1xxx_mmc_dmamask, | 573 | .dma_mask = &au1200_all_dmamask, |
576 | .coherent_dma_mask = DMA_BIT_MASK(32), | 574 | .coherent_dma_mask = DMA_BIT_MASK(32), |
577 | .platform_data = &db1200_mmc_platdata[0], | 575 | .platform_data = &db1200_mmc_platdata[0], |
578 | }, | 576 | }, |
@@ -607,7 +605,7 @@ static struct platform_device pb1200_mmc1_dev = { | |||
607 | .name = "au1xxx-mmc", | 605 | .name = "au1xxx-mmc", |
608 | .id = 1, | 606 | .id = 1, |
609 | .dev = { | 607 | .dev = { |
610 | .dma_mask = &au1xxx_mmc_dmamask, | 608 | .dma_mask = &au1200_all_dmamask, |
611 | .coherent_dma_mask = DMA_BIT_MASK(32), | 609 | .coherent_dma_mask = DMA_BIT_MASK(32), |
612 | .platform_data = &db1200_mmc_platdata[1], | 610 | .platform_data = &db1200_mmc_platdata[1], |
613 | }, | 611 | }, |
@@ -657,13 +655,11 @@ static struct resource au1200_lcd_res[] = { | |||
657 | } | 655 | } |
658 | }; | 656 | }; |
659 | 657 | ||
660 | static u64 au1200_lcd_dmamask = DMA_BIT_MASK(32); | ||
661 | |||
662 | static struct platform_device au1200_lcd_dev = { | 658 | static struct platform_device au1200_lcd_dev = { |
663 | .name = "au1200-lcd", | 659 | .name = "au1200-lcd", |
664 | .id = 0, | 660 | .id = 0, |
665 | .dev = { | 661 | .dev = { |
666 | .dma_mask = &au1200_lcd_dmamask, | 662 | .dma_mask = &au1200_all_dmamask, |
667 | .coherent_dma_mask = DMA_BIT_MASK(32), | 663 | .coherent_dma_mask = DMA_BIT_MASK(32), |
668 | .platform_data = &db1200fb_pd, | 664 | .platform_data = &db1200fb_pd, |
669 | }, | 665 | }, |
@@ -717,11 +713,9 @@ static struct au1550_spi_info db1200_spi_platdata = { | |||
717 | .activate_cs = db1200_spi_cs_en, | 713 | .activate_cs = db1200_spi_cs_en, |
718 | }; | 714 | }; |
719 | 715 | ||
720 | static u64 spi_dmamask = DMA_BIT_MASK(32); | ||
721 | |||
722 | static struct platform_device db1200_spi_dev = { | 716 | static struct platform_device db1200_spi_dev = { |
723 | .dev = { | 717 | .dev = { |
724 | .dma_mask = &spi_dmamask, | 718 | .dma_mask = &au1200_all_dmamask, |
725 | .coherent_dma_mask = DMA_BIT_MASK(32), | 719 | .coherent_dma_mask = DMA_BIT_MASK(32), |
726 | .platform_data = &db1200_spi_platdata, | 720 | .platform_data = &db1200_spi_platdata, |
727 | }, | 721 | }, |
@@ -766,6 +760,10 @@ static struct platform_device db1200_audio_dev = { | |||
766 | static struct platform_device db1200_sound_dev = { | 760 | static struct platform_device db1200_sound_dev = { |
767 | /* name assigned later based on switch setting */ | 761 | /* name assigned later based on switch setting */ |
768 | .id = 1, /* PSC ID */ | 762 | .id = 1, /* PSC ID */ |
763 | .dev = { | ||
764 | .dma_mask = &au1200_all_dmamask, | ||
765 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
766 | }, | ||
769 | }; | 767 | }; |
770 | 768 | ||
771 | static struct platform_device db1200_stac_dev = { | 769 | static struct platform_device db1200_stac_dev = { |
diff --git a/arch/mips/alchemy/devboards/db1300.c b/arch/mips/alchemy/devboards/db1300.c index ad7dd8e89598..8ac1f56ee57d 100644 --- a/arch/mips/alchemy/devboards/db1300.c +++ b/arch/mips/alchemy/devboards/db1300.c | |||
@@ -148,6 +148,8 @@ static void __init db1300_gpio_config(void) | |||
148 | 148 | ||
149 | /**********************************************************************/ | 149 | /**********************************************************************/ |
150 | 150 | ||
151 | static u64 au1300_all_dmamask = DMA_BIT_MASK(32); | ||
152 | |||
151 | static void au1300_nand_cmd_ctrl(struct nand_chip *this, int cmd, | 153 | static void au1300_nand_cmd_ctrl(struct nand_chip *this, int cmd, |
152 | unsigned int ctrl) | 154 | unsigned int ctrl) |
153 | { | 155 | { |
@@ -438,6 +440,8 @@ static struct resource db1300_ide_res[] = { | |||
438 | 440 | ||
439 | static struct platform_device db1300_ide_dev = { | 441 | static struct platform_device db1300_ide_dev = { |
440 | .dev = { | 442 | .dev = { |
443 | .dma_mask = &au1300_all_dmamask, | ||
444 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
441 | .platform_data = &db1300_ide_info, | 445 | .platform_data = &db1300_ide_info, |
442 | }, | 446 | }, |
443 | .name = "pata_platform", | 447 | .name = "pata_platform", |
@@ -560,7 +564,9 @@ static struct resource au1300_sd1_res[] = { | |||
560 | 564 | ||
561 | static struct platform_device db1300_sd1_dev = { | 565 | static struct platform_device db1300_sd1_dev = { |
562 | .dev = { | 566 | .dev = { |
563 | .platform_data = &db1300_sd1_platdata, | 567 | .dma_mask = &au1300_all_dmamask, |
568 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
569 | .platform_data = &db1300_sd1_platdata, | ||
564 | }, | 570 | }, |
565 | .name = "au1xxx-mmc", | 571 | .name = "au1xxx-mmc", |
566 | .id = 1, | 572 | .id = 1, |
@@ -625,7 +631,9 @@ static struct resource au1300_sd0_res[] = { | |||
625 | 631 | ||
626 | static struct platform_device db1300_sd0_dev = { | 632 | static struct platform_device db1300_sd0_dev = { |
627 | .dev = { | 633 | .dev = { |
628 | .platform_data = &db1300_sd0_platdata, | 634 | .dma_mask = &au1300_all_dmamask, |
635 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
636 | .platform_data = &db1300_sd0_platdata, | ||
629 | }, | 637 | }, |
630 | .name = "au1xxx-mmc", | 638 | .name = "au1xxx-mmc", |
631 | .id = 0, | 639 | .id = 0, |
@@ -652,10 +660,18 @@ static struct platform_device db1300_i2sdma_dev = { | |||
652 | 660 | ||
653 | static struct platform_device db1300_sndac97_dev = { | 661 | static struct platform_device db1300_sndac97_dev = { |
654 | .name = "db1300-ac97", | 662 | .name = "db1300-ac97", |
663 | .dev = { | ||
664 | .dma_mask = &au1300_all_dmamask, | ||
665 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
666 | }, | ||
655 | }; | 667 | }; |
656 | 668 | ||
657 | static struct platform_device db1300_sndi2s_dev = { | 669 | static struct platform_device db1300_sndi2s_dev = { |
658 | .name = "db1300-i2s", | 670 | .name = "db1300-i2s", |
671 | .dev = { | ||
672 | .dma_mask = &au1300_all_dmamask, | ||
673 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
674 | }, | ||
659 | }; | 675 | }; |
660 | 676 | ||
661 | /**********************************************************************/ | 677 | /**********************************************************************/ |
@@ -700,13 +716,12 @@ static struct resource au1300_lcd_res[] = { | |||
700 | } | 716 | } |
701 | }; | 717 | }; |
702 | 718 | ||
703 | static u64 au1300_lcd_dmamask = DMA_BIT_MASK(32); | ||
704 | 719 | ||
705 | static struct platform_device db1300_lcd_dev = { | 720 | static struct platform_device db1300_lcd_dev = { |
706 | .name = "au1200-lcd", | 721 | .name = "au1200-lcd", |
707 | .id = 0, | 722 | .id = 0, |
708 | .dev = { | 723 | .dev = { |
709 | .dma_mask = &au1300_lcd_dmamask, | 724 | .dma_mask = &au1300_all_dmamask, |
710 | .coherent_dma_mask = DMA_BIT_MASK(32), | 725 | .coherent_dma_mask = DMA_BIT_MASK(32), |
711 | .platform_data = &db1300fb_pd, | 726 | .platform_data = &db1300fb_pd, |
712 | }, | 727 | }, |
diff --git a/arch/mips/alchemy/devboards/db1550.c b/arch/mips/alchemy/devboards/db1550.c index 7700ad0b93b4..3e0c75c0ece0 100644 --- a/arch/mips/alchemy/devboards/db1550.c +++ b/arch/mips/alchemy/devboards/db1550.c | |||
@@ -82,6 +82,8 @@ int __init db1550_board_setup(void) | |||
82 | 82 | ||
83 | /*****************************************************************************/ | 83 | /*****************************************************************************/ |
84 | 84 | ||
85 | static u64 au1550_all_dmamask = DMA_BIT_MASK(32); | ||
86 | |||
85 | static struct mtd_partition db1550_spiflash_parts[] = { | 87 | static struct mtd_partition db1550_spiflash_parts[] = { |
86 | { | 88 | { |
87 | .name = "spi_flash", | 89 | .name = "spi_flash", |
@@ -269,11 +271,10 @@ static struct au1550_spi_info db1550_spi_platdata = { | |||
269 | .activate_cs = db1550_spi_cs_en, | 271 | .activate_cs = db1550_spi_cs_en, |
270 | }; | 272 | }; |
271 | 273 | ||
272 | static u64 spi_dmamask = DMA_BIT_MASK(32); | ||
273 | 274 | ||
274 | static struct platform_device db1550_spi_dev = { | 275 | static struct platform_device db1550_spi_dev = { |
275 | .dev = { | 276 | .dev = { |
276 | .dma_mask = &spi_dmamask, | 277 | .dma_mask = &au1550_all_dmamask, |
277 | .coherent_dma_mask = DMA_BIT_MASK(32), | 278 | .coherent_dma_mask = DMA_BIT_MASK(32), |
278 | .platform_data = &db1550_spi_platdata, | 279 | .platform_data = &db1550_spi_platdata, |
279 | }, | 280 | }, |
@@ -397,10 +398,18 @@ static struct platform_device db1550_i2sdma_dev = { | |||
397 | 398 | ||
398 | static struct platform_device db1550_sndac97_dev = { | 399 | static struct platform_device db1550_sndac97_dev = { |
399 | .name = "db1550-ac97", | 400 | .name = "db1550-ac97", |
401 | .dev = { | ||
402 | .dma_mask = &au1550_all_dmamask, | ||
403 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
404 | }, | ||
400 | }; | 405 | }; |
401 | 406 | ||
402 | static struct platform_device db1550_sndi2s_dev = { | 407 | static struct platform_device db1550_sndi2s_dev = { |
403 | .name = "db1550-i2s", | 408 | .name = "db1550-i2s", |
409 | .dev = { | ||
410 | .dma_mask = &au1550_all_dmamask, | ||
411 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
412 | }, | ||
404 | }; | 413 | }; |
405 | 414 | ||
406 | /**********************************************************************/ | 415 | /**********************************************************************/ |
diff --git a/arch/mips/bcm63xx/Makefile b/arch/mips/bcm63xx/Makefile index c69f297fc1df..d89651e538f6 100644 --- a/arch/mips/bcm63xx/Makefile +++ b/arch/mips/bcm63xx/Makefile | |||
@@ -1,8 +1,8 @@ | |||
1 | # SPDX-License-Identifier: GPL-2.0 | 1 | # SPDX-License-Identifier: GPL-2.0 |
2 | obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o reset.o \ | 2 | obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o reset.o \ |
3 | setup.o timer.o dev-dsp.o dev-enet.o dev-flash.o \ | 3 | setup.o timer.o dev-enet.o dev-flash.o dev-pcmcia.o \ |
4 | dev-pcmcia.o dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o \ | 4 | dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o dev-wdt.o \ |
5 | dev-wdt.o dev-usb-usbd.o | 5 | dev-usb-usbd.o |
6 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 6 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
7 | 7 | ||
8 | obj-y += boards/ | 8 | obj-y += boards/ |
diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c b/arch/mips/bcm63xx/boards/board_bcm963xx.c index b2097c0d2ed7..36ec3dc2c999 100644 --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <bcm63xx_nvram.h> | 23 | #include <bcm63xx_nvram.h> |
24 | #include <bcm63xx_dev_pci.h> | 24 | #include <bcm63xx_dev_pci.h> |
25 | #include <bcm63xx_dev_enet.h> | 25 | #include <bcm63xx_dev_enet.h> |
26 | #include <bcm63xx_dev_dsp.h> | ||
27 | #include <bcm63xx_dev_flash.h> | 26 | #include <bcm63xx_dev_flash.h> |
28 | #include <bcm63xx_dev_hsspi.h> | 27 | #include <bcm63xx_dev_hsspi.h> |
29 | #include <bcm63xx_dev_pcmcia.h> | 28 | #include <bcm63xx_dev_pcmcia.h> |
@@ -289,14 +288,6 @@ static struct board_info __initdata board_96348gw_10 = { | |||
289 | .has_pccard = 1, | 288 | .has_pccard = 1, |
290 | .has_ehci0 = 1, | 289 | .has_ehci0 = 1, |
291 | 290 | ||
292 | .has_dsp = 1, | ||
293 | .dsp = { | ||
294 | .gpio_rst = 6, | ||
295 | .gpio_int = 34, | ||
296 | .cs = 2, | ||
297 | .ext_irq = 2, | ||
298 | }, | ||
299 | |||
300 | .leds = { | 291 | .leds = { |
301 | { | 292 | { |
302 | .name = "adsl-fail", | 293 | .name = "adsl-fail", |
@@ -401,14 +392,6 @@ static struct board_info __initdata board_96348gw = { | |||
401 | 392 | ||
402 | .has_ohci0 = 1, | 393 | .has_ohci0 = 1, |
403 | 394 | ||
404 | .has_dsp = 1, | ||
405 | .dsp = { | ||
406 | .gpio_rst = 6, | ||
407 | .gpio_int = 34, | ||
408 | .ext_irq = 2, | ||
409 | .cs = 2, | ||
410 | }, | ||
411 | |||
412 | .leds = { | 395 | .leds = { |
413 | { | 396 | { |
414 | .name = "adsl-fail", | 397 | .name = "adsl-fail", |
@@ -898,9 +881,6 @@ int __init board_register_devices(void) | |||
898 | if (board.has_usbd) | 881 | if (board.has_usbd) |
899 | bcm63xx_usbd_register(&board.usbd); | 882 | bcm63xx_usbd_register(&board.usbd); |
900 | 883 | ||
901 | if (board.has_dsp) | ||
902 | bcm63xx_dsp_register(&board.dsp); | ||
903 | |||
904 | /* Generate MAC address for WLAN and register our SPROM, | 884 | /* Generate MAC address for WLAN and register our SPROM, |
905 | * do this after registering enet devices | 885 | * do this after registering enet devices |
906 | */ | 886 | */ |
diff --git a/arch/mips/bcm63xx/dev-dsp.c b/arch/mips/bcm63xx/dev-dsp.c deleted file mode 100644 index 5bb5b154c9bd..000000000000 --- a/arch/mips/bcm63xx/dev-dsp.c +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /* | ||
2 | * Broadcom BCM63xx VoIP DSP registration | ||
3 | * | ||
4 | * This file is subject to the terms and conditions of the GNU General Public | ||
5 | * License. See the file "COPYING" in the main directory of this archive | ||
6 | * for more details. | ||
7 | * | ||
8 | * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org> | ||
9 | */ | ||
10 | |||
11 | #include <linux/init.h> | ||
12 | #include <linux/kernel.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | |||
15 | #include <bcm63xx_cpu.h> | ||
16 | #include <bcm63xx_dev_dsp.h> | ||
17 | #include <bcm63xx_regs.h> | ||
18 | #include <bcm63xx_io.h> | ||
19 | |||
20 | static struct resource voip_dsp_resources[] = { | ||
21 | { | ||
22 | .start = -1, /* filled at runtime */ | ||
23 | .end = -1, /* filled at runtime */ | ||
24 | .flags = IORESOURCE_MEM, | ||
25 | }, | ||
26 | { | ||
27 | .start = -1, /* filled at runtime */ | ||
28 | .flags = IORESOURCE_IRQ, | ||
29 | }, | ||
30 | }; | ||
31 | |||
32 | static struct platform_device bcm63xx_voip_dsp_device = { | ||
33 | .name = "bcm63xx-voip-dsp", | ||
34 | .id = -1, | ||
35 | .num_resources = ARRAY_SIZE(voip_dsp_resources), | ||
36 | .resource = voip_dsp_resources, | ||
37 | }; | ||
38 | |||
39 | int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd) | ||
40 | { | ||
41 | struct bcm63xx_dsp_platform_data *dpd; | ||
42 | u32 val; | ||
43 | |||
44 | /* Get the memory window */ | ||
45 | val = bcm_mpi_readl(MPI_CSBASE_REG(pd->cs - 1)); | ||
46 | val &= MPI_CSBASE_BASE_MASK; | ||
47 | voip_dsp_resources[0].start = val; | ||
48 | voip_dsp_resources[0].end = val + 0xFFFFFFF; | ||
49 | voip_dsp_resources[1].start = pd->ext_irq; | ||
50 | |||
51 | /* copy given platform data */ | ||
52 | dpd = bcm63xx_voip_dsp_device.dev.platform_data; | ||
53 | memcpy(dpd, pd, sizeof (*pd)); | ||
54 | |||
55 | return platform_device_register(&bcm63xx_voip_dsp_device); | ||
56 | } | ||
diff --git a/arch/mips/bcm63xx/reset.c b/arch/mips/bcm63xx/reset.c index a2af38cf28a7..64574e74cb23 100644 --- a/arch/mips/bcm63xx/reset.c +++ b/arch/mips/bcm63xx/reset.c | |||
@@ -120,7 +120,7 @@ | |||
120 | #define BCM6368_RESET_DSL 0 | 120 | #define BCM6368_RESET_DSL 0 |
121 | #define BCM6368_RESET_SAR SOFTRESET_6368_SAR_MASK | 121 | #define BCM6368_RESET_SAR SOFTRESET_6368_SAR_MASK |
122 | #define BCM6368_RESET_EPHY SOFTRESET_6368_EPHY_MASK | 122 | #define BCM6368_RESET_EPHY SOFTRESET_6368_EPHY_MASK |
123 | #define BCM6368_RESET_ENETSW 0 | 123 | #define BCM6368_RESET_ENETSW SOFTRESET_6368_ENETSW_MASK |
124 | #define BCM6368_RESET_PCM SOFTRESET_6368_PCM_MASK | 124 | #define BCM6368_RESET_PCM SOFTRESET_6368_PCM_MASK |
125 | #define BCM6368_RESET_MPI SOFTRESET_6368_MPI_MASK | 125 | #define BCM6368_RESET_MPI SOFTRESET_6368_MPI_MASK |
126 | #define BCM6368_RESET_PCIE 0 | 126 | #define BCM6368_RESET_PCIE 0 |
diff --git a/arch/mips/cavium-octeon/executive/cvmx-helper.c b/arch/mips/cavium-octeon/executive/cvmx-helper.c index a76bbcc30f95..38e0444e57e8 100644 --- a/arch/mips/cavium-octeon/executive/cvmx-helper.c +++ b/arch/mips/cavium-octeon/executive/cvmx-helper.c | |||
@@ -266,7 +266,8 @@ static cvmx_helper_interface_mode_t __cvmx_get_mode_cn7xxx(int interface) | |||
266 | case 3: | 266 | case 3: |
267 | return CVMX_HELPER_INTERFACE_MODE_LOOP; | 267 | return CVMX_HELPER_INTERFACE_MODE_LOOP; |
268 | case 4: | 268 | case 4: |
269 | return CVMX_HELPER_INTERFACE_MODE_RGMII; | 269 | /* TODO: Implement support for AGL (RGMII). */ |
270 | return CVMX_HELPER_INTERFACE_MODE_DISABLED; | ||
270 | default: | 271 | default: |
271 | return CVMX_HELPER_INTERFACE_MODE_DISABLED; | 272 | return CVMX_HELPER_INTERFACE_MODE_DISABLED; |
272 | } | 273 | } |
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h index e8fbfd419151..43fcd35e2957 100644 --- a/arch/mips/include/asm/atomic.h +++ b/arch/mips/include/asm/atomic.h | |||
@@ -313,7 +313,7 @@ static __inline__ long atomic64_fetch_##op##_relaxed(long i, atomic64_t * v) \ | |||
313 | { \ | 313 | { \ |
314 | long result; \ | 314 | long result; \ |
315 | \ | 315 | \ |
316 | if (kernel_uses_llsc && R10000_LLSC_WAR) { \ | 316 | if (kernel_uses_llsc) { \ |
317 | long temp; \ | 317 | long temp; \ |
318 | \ | 318 | \ |
319 | __asm__ __volatile__( \ | 319 | __asm__ __volatile__( \ |
diff --git a/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h b/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h index f439cf9cf9d1..ecfbb5aeada3 100644 --- a/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h +++ b/arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h | |||
@@ -75,10 +75,12 @@ | |||
75 | #define cpu_dcache_line_size() 32 | 75 | #define cpu_dcache_line_size() 32 |
76 | #define cpu_icache_line_size() 32 | 76 | #define cpu_icache_line_size() 32 |
77 | #define cpu_scache_line_size() 0 | 77 | #define cpu_scache_line_size() 0 |
78 | #define cpu_tcache_line_size() 0 | ||
78 | 79 | ||
79 | #define cpu_has_perf_cntr_intr_bit 0 | 80 | #define cpu_has_perf_cntr_intr_bit 0 |
80 | #define cpu_has_vz 0 | 81 | #define cpu_has_vz 0 |
81 | #define cpu_has_msa 0 | 82 | #define cpu_has_msa 0 |
83 | #define cpu_has_ufr 0 | ||
82 | #define cpu_has_fre 0 | 84 | #define cpu_has_fre 0 |
83 | #define cpu_has_cdmm 0 | 85 | #define cpu_has_cdmm 0 |
84 | #define cpu_has_small_pages 0 | 86 | #define cpu_has_small_pages 0 |
@@ -88,5 +90,6 @@ | |||
88 | #define cpu_has_badinstr 0 | 90 | #define cpu_has_badinstr 0 |
89 | #define cpu_has_badinstrp 0 | 91 | #define cpu_has_badinstrp 0 |
90 | #define cpu_has_contextconfig 0 | 92 | #define cpu_has_contextconfig 0 |
93 | #define cpu_has_perf 0 | ||
91 | 94 | ||
92 | #endif /* __ASM_MACH_AU1X00_CPU_FEATURE_OVERRIDES_H */ | 95 | #endif /* __ASM_MACH_AU1X00_CPU_FEATURE_OVERRIDES_H */ |
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h deleted file mode 100644 index 4e4970787371..000000000000 --- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | #ifndef __BCM63XX_DSP_H | ||
3 | #define __BCM63XX_DSP_H | ||
4 | |||
5 | struct bcm63xx_dsp_platform_data { | ||
6 | unsigned gpio_rst; | ||
7 | unsigned gpio_int; | ||
8 | unsigned cs; | ||
9 | unsigned ext_irq; | ||
10 | }; | ||
11 | |||
12 | int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd); | ||
13 | |||
14 | #endif /* __BCM63XX_DSP_H */ | ||
diff --git a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h index 5e5b1bc4a324..830f53f28e3f 100644 --- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h +++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | |||
@@ -7,7 +7,6 @@ | |||
7 | #include <linux/leds.h> | 7 | #include <linux/leds.h> |
8 | #include <bcm63xx_dev_enet.h> | 8 | #include <bcm63xx_dev_enet.h> |
9 | #include <bcm63xx_dev_usb_usbd.h> | 9 | #include <bcm63xx_dev_usb_usbd.h> |
10 | #include <bcm63xx_dev_dsp.h> | ||
11 | 10 | ||
12 | /* | 11 | /* |
13 | * flash mapping | 12 | * flash mapping |
@@ -31,7 +30,6 @@ struct board_info { | |||
31 | unsigned int has_ohci0:1; | 30 | unsigned int has_ohci0:1; |
32 | unsigned int has_ehci0:1; | 31 | unsigned int has_ehci0:1; |
33 | unsigned int has_usbd:1; | 32 | unsigned int has_usbd:1; |
34 | unsigned int has_dsp:1; | ||
35 | unsigned int has_uart0:1; | 33 | unsigned int has_uart0:1; |
36 | unsigned int has_uart1:1; | 34 | unsigned int has_uart1:1; |
37 | 35 | ||
@@ -43,9 +41,6 @@ struct board_info { | |||
43 | /* USB config */ | 41 | /* USB config */ |
44 | struct bcm63xx_usbd_platform_data usbd; | 42 | struct bcm63xx_usbd_platform_data usbd; |
45 | 43 | ||
46 | /* DSP config */ | ||
47 | struct bcm63xx_dsp_platform_data dsp; | ||
48 | |||
49 | /* GPIO LEDs */ | 44 | /* GPIO LEDs */ |
50 | struct gpio_led leds[5]; | 45 | struct gpio_led leds[5]; |
51 | 46 | ||
diff --git a/arch/mips/ralink/Kconfig b/arch/mips/ralink/Kconfig index 4c8006b4a5f7..49c22ddd9c41 100644 --- a/arch/mips/ralink/Kconfig +++ b/arch/mips/ralink/Kconfig | |||
@@ -38,6 +38,7 @@ choice | |||
38 | 38 | ||
39 | config SOC_MT7620 | 39 | config SOC_MT7620 |
40 | bool "MT7620/8" | 40 | bool "MT7620/8" |
41 | select CPU_MIPSR2_IRQ_VI | ||
41 | select HAVE_PCI | 42 | select HAVE_PCI |
42 | 43 | ||
43 | config SOC_MT7621 | 44 | config SOC_MT7621 |