|
|
@@ -1,203 +0,0 @@
|
|
|
-From 51559154375fff4a94bbbc249fdd9248a80827b3 Mon Sep 17 00:00:00 2001
|
|
|
-From: Jonas Gorski <[email protected]>
|
|
|
-Date: Tue, 18 Dec 2018 10:19:02 +0100
|
|
|
-Subject: [PATCH] MIPS: BCM63XX: drop unused and broken DSP platform device
|
|
|
-
|
|
|
-Trying to register the DSP platform device results in a null pointer
|
|
|
-access:
|
|
|
-
|
|
|
-[ 0.124184] CPU 0 Unable to handle kernel paging request at virtual address 00000000, epc == 804e305c, ra == 804e6f20
|
|
|
-[ 0.135208] Oops[#1]:
|
|
|
-[ 0.137514] CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.87
|
|
|
-...
|
|
|
-[ 0.197117] epc : 804e305c bcm63xx_dsp_register+0x80/0xa4
|
|
|
-[ 0.202838] ra : 804e6f20 board_register_devices+0x258/0x390
|
|
|
-...
|
|
|
-
|
|
|
-This happens because it tries to copy the passed platform data over the
|
|
|
-platform_device's unpopulated platform_data.
|
|
|
-
|
|
|
-Since this code has been broken since its submission, no driver was ever
|
|
|
-submitted for it, and apparently nobody was using it, just remove it
|
|
|
-instead of trying to fix it.
|
|
|
-
|
|
|
-Fixes: e7300d04bd08 ("MIPS: BCM63xx: Add support for the Broadcom BCM63xx family of SOCs.")
|
|
|
-Signed-off-by: Jonas Gorski <[email protected]>
|
|
|
----
|
|
|
- arch/mips/bcm63xx/Makefile | 6 +--
|
|
|
- arch/mips/bcm63xx/boards/board_bcm963xx.c | 20 --------
|
|
|
- arch/mips/bcm63xx/dev-dsp.c | 56 ----------------------
|
|
|
- .../include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h | 14 ------
|
|
|
- .../mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 5 --
|
|
|
- 5 files changed, 3 insertions(+), 98 deletions(-)
|
|
|
- delete mode 100644 arch/mips/bcm63xx/dev-dsp.c
|
|
|
- delete mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h
|
|
|
-
|
|
|
---- a/arch/mips/bcm63xx/Makefile
|
|
|
-+++ b/arch/mips/bcm63xx/Makefile
|
|
|
-@@ -1,8 +1,8 @@
|
|
|
- # SPDX-License-Identifier: GPL-2.0
|
|
|
- obj-y += clk.o cpu.o cs.o gpio.o irq.o nvram.o prom.o reset.o \
|
|
|
-- setup.o timer.o dev-dsp.o dev-enet.o dev-flash.o \
|
|
|
-- dev-pcmcia.o dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o \
|
|
|
-- dev-wdt.o dev-usb-usbd.o
|
|
|
-+ setup.o timer.o dev-enet.o dev-flash.o dev-pcmcia.o \
|
|
|
-+ dev-rng.o dev-spi.o dev-hsspi.o dev-uart.o dev-wdt.o \
|
|
|
-+ dev-usb-usbd.o
|
|
|
- obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
|
|
-
|
|
|
- obj-y += boards/
|
|
|
---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
|
|
-+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
|
|
|
-@@ -23,7 +23,6 @@
|
|
|
- #include <bcm63xx_nvram.h>
|
|
|
- #include <bcm63xx_dev_pci.h>
|
|
|
- #include <bcm63xx_dev_enet.h>
|
|
|
--#include <bcm63xx_dev_dsp.h>
|
|
|
- #include <bcm63xx_dev_flash.h>
|
|
|
- #include <bcm63xx_dev_hsspi.h>
|
|
|
- #include <bcm63xx_dev_pcmcia.h>
|
|
|
-@@ -289,14 +288,6 @@ static struct board_info __initdata boar
|
|
|
- .has_pccard = 1,
|
|
|
- .has_ehci0 = 1,
|
|
|
-
|
|
|
-- .has_dsp = 1,
|
|
|
-- .dsp = {
|
|
|
-- .gpio_rst = 6,
|
|
|
-- .gpio_int = 34,
|
|
|
-- .cs = 2,
|
|
|
-- .ext_irq = 2,
|
|
|
-- },
|
|
|
--
|
|
|
- .leds = {
|
|
|
- {
|
|
|
- .name = "adsl-fail",
|
|
|
-@@ -401,14 +392,6 @@ static struct board_info __initdata boar
|
|
|
-
|
|
|
- .has_ohci0 = 1,
|
|
|
-
|
|
|
-- .has_dsp = 1,
|
|
|
-- .dsp = {
|
|
|
-- .gpio_rst = 6,
|
|
|
-- .gpio_int = 34,
|
|
|
-- .ext_irq = 2,
|
|
|
-- .cs = 2,
|
|
|
-- },
|
|
|
--
|
|
|
- .leds = {
|
|
|
- {
|
|
|
- .name = "adsl-fail",
|
|
|
-@@ -898,9 +881,6 @@ int __init board_register_devices(void)
|
|
|
- if (board.has_usbd)
|
|
|
- bcm63xx_usbd_register(&board.usbd);
|
|
|
-
|
|
|
-- if (board.has_dsp)
|
|
|
-- bcm63xx_dsp_register(&board.dsp);
|
|
|
--
|
|
|
- /* Generate MAC address for WLAN and register our SPROM,
|
|
|
- * do this after registering enet devices
|
|
|
- */
|
|
|
---- a/arch/mips/bcm63xx/dev-dsp.c
|
|
|
-+++ /dev/null
|
|
|
-@@ -1,56 +0,0 @@
|
|
|
--/*
|
|
|
-- * Broadcom BCM63xx VoIP DSP registration
|
|
|
-- *
|
|
|
-- * This file is subject to the terms and conditions of the GNU General Public
|
|
|
-- * License. See the file "COPYING" in the main directory of this archive
|
|
|
-- * for more details.
|
|
|
-- *
|
|
|
-- * Copyright (C) 2009 Florian Fainelli <[email protected]>
|
|
|
-- */
|
|
|
--
|
|
|
--#include <linux/init.h>
|
|
|
--#include <linux/kernel.h>
|
|
|
--#include <linux/platform_device.h>
|
|
|
--
|
|
|
--#include <bcm63xx_cpu.h>
|
|
|
--#include <bcm63xx_dev_dsp.h>
|
|
|
--#include <bcm63xx_regs.h>
|
|
|
--#include <bcm63xx_io.h>
|
|
|
--
|
|
|
--static struct resource voip_dsp_resources[] = {
|
|
|
-- {
|
|
|
-- .start = -1, /* filled at runtime */
|
|
|
-- .end = -1, /* filled at runtime */
|
|
|
-- .flags = IORESOURCE_MEM,
|
|
|
-- },
|
|
|
-- {
|
|
|
-- .start = -1, /* filled at runtime */
|
|
|
-- .flags = IORESOURCE_IRQ,
|
|
|
-- },
|
|
|
--};
|
|
|
--
|
|
|
--static struct platform_device bcm63xx_voip_dsp_device = {
|
|
|
-- .name = "bcm63xx-voip-dsp",
|
|
|
-- .id = -1,
|
|
|
-- .num_resources = ARRAY_SIZE(voip_dsp_resources),
|
|
|
-- .resource = voip_dsp_resources,
|
|
|
--};
|
|
|
--
|
|
|
--int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd)
|
|
|
--{
|
|
|
-- struct bcm63xx_dsp_platform_data *dpd;
|
|
|
-- u32 val;
|
|
|
--
|
|
|
-- /* Get the memory window */
|
|
|
-- val = bcm_mpi_readl(MPI_CSBASE_REG(pd->cs - 1));
|
|
|
-- val &= MPI_CSBASE_BASE_MASK;
|
|
|
-- voip_dsp_resources[0].start = val;
|
|
|
-- voip_dsp_resources[0].end = val + 0xFFFFFFF;
|
|
|
-- voip_dsp_resources[1].start = pd->ext_irq;
|
|
|
--
|
|
|
-- /* copy given platform data */
|
|
|
-- dpd = bcm63xx_voip_dsp_device.dev.platform_data;
|
|
|
-- memcpy(dpd, pd, sizeof (*pd));
|
|
|
--
|
|
|
-- return platform_device_register(&bcm63xx_voip_dsp_device);
|
|
|
--}
|
|
|
---- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_dsp.h
|
|
|
-+++ /dev/null
|
|
|
-@@ -1,14 +0,0 @@
|
|
|
--/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
--#ifndef __BCM63XX_DSP_H
|
|
|
--#define __BCM63XX_DSP_H
|
|
|
--
|
|
|
--struct bcm63xx_dsp_platform_data {
|
|
|
-- unsigned gpio_rst;
|
|
|
-- unsigned gpio_int;
|
|
|
-- unsigned cs;
|
|
|
-- unsigned ext_irq;
|
|
|
--};
|
|
|
--
|
|
|
--int __init bcm63xx_dsp_register(const struct bcm63xx_dsp_platform_data *pd);
|
|
|
--
|
|
|
--#endif /* __BCM63XX_DSP_H */
|
|
|
---- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
|
|
|
-+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
|
|
|
-@@ -7,7 +7,6 @@
|
|
|
- #include <linux/leds.h>
|
|
|
- #include <bcm63xx_dev_enet.h>
|
|
|
- #include <bcm63xx_dev_usb_usbd.h>
|
|
|
--#include <bcm63xx_dev_dsp.h>
|
|
|
-
|
|
|
- /*
|
|
|
- * flash mapping
|
|
|
-@@ -31,7 +30,6 @@ struct board_info {
|
|
|
- unsigned int has_ohci0:1;
|
|
|
- unsigned int has_ehci0:1;
|
|
|
- unsigned int has_usbd:1;
|
|
|
-- unsigned int has_dsp:1;
|
|
|
- unsigned int has_uart0:1;
|
|
|
- unsigned int has_uart1:1;
|
|
|
-
|
|
|
-@@ -43,9 +41,6 @@ struct board_info {
|
|
|
- /* USB config */
|
|
|
- struct bcm63xx_usbd_platform_data usbd;
|
|
|
-
|
|
|
-- /* DSP config */
|
|
|
-- struct bcm63xx_dsp_platform_data dsp;
|
|
|
--
|
|
|
- /* GPIO LEDs */
|
|
|
- struct gpio_led leds[5];
|
|
|
-
|