summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2019-01-05 15:48:25 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2019-01-05 15:48:25 -0500
commit47f3f4eb7834ea424b0704bffd0d3e3c8ffbc3a1 (patch)
tree14bb595d5bdc86fc94a8d780c72a5ee8583f4c49
parentf1c2f8857c5aa6c92aa903bc06437503422e5925 (diff)
parentedefae94b7b9f10d5efe32dece5a36e9d9ecc29e (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--.mailmap5
-rw-r--r--MAINTAINERS3
-rw-r--r--arch/mips/alchemy/common/time.c2
-rw-r--r--arch/mips/alchemy/devboards/db1000.c76
-rw-r--r--arch/mips/alchemy/devboards/db1200.c24
-rw-r--r--arch/mips/alchemy/devboards/db1300.c23
-rw-r--r--arch/mips/alchemy/devboards/db1550.c13
-rw-r--r--arch/mips/bcm63xx/Makefile6
-rw-r--r--arch/mips/bcm63xx/boards/board_bcm963xx.c20
-rw-r--r--arch/mips/bcm63xx/dev-dsp.c56
-rw-r--r--arch/mips/bcm63xx/reset.c2
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-helper.c3
-rw-r--r--arch/mips/include/asm/atomic.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h3
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h14
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h5
-rw-r--r--arch/mips/ralink/Kconfig1
17 files changed, 70 insertions, 188 deletions
diff --git a/.mailmap b/.mailmap
index b4b0b0b768dd..ea98fcc197e4 100644
--- a/.mailmap
+++ b/.mailmap
@@ -48,7 +48,10 @@ Corey Minyard <minyard@acm.org>
48Damian Hobson-Garcia <dhobsong@igel.co.jp> 48Damian Hobson-Garcia <dhobsong@igel.co.jp>
49David Brownell <david-b@pacbell.net> 49David Brownell <david-b@pacbell.net>
50David Woodhouse <dwmw2@shinybook.infradead.org> 50David Woodhouse <dwmw2@shinybook.infradead.org>
51Deng-Cheng Zhu <dengcheng.zhu@mips.com> <dengcheng.zhu@imgtec.com> 51Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@mips.com>
52Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@imgtec.com>
53Dengcheng Zhu <dzhu@wavecomp.com> <dczhu@mips.com>
54Dengcheng Zhu <dzhu@wavecomp.com> <dengcheng.zhu@gmail.com>
52Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> 55Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
53Domen Puncer <domen@coderock.org> 56Domen Puncer <domen@coderock.org>
54Douglas Gilbert <dougg@torque.net> 57Douglas 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
10017MICROSEMI MIPS SOCS 10017MICROSEMI MIPS SOCS
10018M: Alexandre Belloni <alexandre.belloni@bootlin.com> 10018M: Alexandre Belloni <alexandre.belloni@bootlin.com>
10019M: Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
10019L: linux-mips@vger.kernel.org 10020L: linux-mips@vger.kernel.org
10020S: Maintained 10021S: Supported
10021F: arch/mips/generic/board-ocelot.c 10022F: arch/mips/generic/board-ocelot.c
10022F: arch/mips/configs/generic/board-ocelot.config 10023F: arch/mips/configs/generic/board-ocelot.config
10023F: arch/mips/boot/dts/mscc/ 10024F: 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
87static struct irqaction au1x_rtcmatch2_irqaction = { 87static 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
85static u64 au1xxx_all_dmamask = DMA_BIT_MASK(32);
86
85static struct resource alchemy_pci_host_res[] = { 87static 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
123static u64 au1100_lcd_dmamask = DMA_BIT_MASK(32);
124
125static struct platform_device au1100_lcd_device = { 125static 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
171static struct platform_device db1x00_audio_dev = { 171static 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
341static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32);
342
343static struct platform_device db1100_mmc0_dev = { 345static 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
392static 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
410static struct au1k_irda_platform_data db1000_irda_platdata = {
411 .set_phy_mode = db1000_irda_set_phy_mode,
412};
413
414static 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
432static 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
444static struct ads7846_platform_data db1100_touch_pd = { 394static 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
500static struct platform_device *db1000_devs[] = {
501 &db1000_irda_dev,
502};
503
504static struct platform_device *db1100_devs[] = { 452static 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
511int __init db1000_dev_setup(void) 458int __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
156static u64 au1200_all_dmamask = DMA_BIT_MASK(32);
157
156static struct mtd_partition db1200_spiflash_parts[] = { 158static 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
327static u64 au1200_ide_dmamask = DMA_BIT_MASK(32);
328
329static struct platform_device db1200_ide_dev = { 329static 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
569static u64 au1xxx_mmc_dmamask = DMA_BIT_MASK(32);
570
571static struct platform_device db1200_mmc0_dev = { 569static 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
660static u64 au1200_lcd_dmamask = DMA_BIT_MASK(32);
661
662static struct platform_device au1200_lcd_dev = { 658static 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
720static u64 spi_dmamask = DMA_BIT_MASK(32);
721
722static struct platform_device db1200_spi_dev = { 716static 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 = {
766static struct platform_device db1200_sound_dev = { 760static 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
771static struct platform_device db1200_stac_dev = { 769static 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
151static u64 au1300_all_dmamask = DMA_BIT_MASK(32);
152
151static void au1300_nand_cmd_ctrl(struct nand_chip *this, int cmd, 153static 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
439static struct platform_device db1300_ide_dev = { 441static 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
561static struct platform_device db1300_sd1_dev = { 565static 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
626static struct platform_device db1300_sd0_dev = { 632static 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
653static struct platform_device db1300_sndac97_dev = { 661static 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
657static struct platform_device db1300_sndi2s_dev = { 669static 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
703static u64 au1300_lcd_dmamask = DMA_BIT_MASK(32);
704 719
705static struct platform_device db1300_lcd_dev = { 720static 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
85static u64 au1550_all_dmamask = DMA_BIT_MASK(32);
86
85static struct mtd_partition db1550_spiflash_parts[] = { 87static 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
272static u64 spi_dmamask = DMA_BIT_MASK(32);
273 274
274static struct platform_device db1550_spi_dev = { 275static 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
398static struct platform_device db1550_sndac97_dev = { 399static 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
402static struct platform_device db1550_sndi2s_dev = { 407static 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
2obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o reset.o \ 2obj-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
6obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 6obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
7 7
8obj-y += boards/ 8obj-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
20static 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
32static 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
39int __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
5struct bcm63xx_dsp_platform_data {
6 unsigned gpio_rst;
7 unsigned gpio_int;
8 unsigned cs;
9 unsigned ext_irq;
10};
11
12int __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