From b4e11466792363a1b92aa9d0949d0f7e47e411b9 Mon Sep 17 00:00:00 2001 From: Dmitry Ermakov Date: Fri, 3 Jun 2022 00:27:07 +0300 Subject: [PATCH] Fix T10-T30 configs & patches ( thx @p0isk ) --- .../patches/0005-disable-i2c-clk-get.patch | 130 ++++++++++++++++++ .../t31/kernel/patches/0006-phy-connect.patch | 19 +++ .../t31/kernel/patches/0007-sfc-mtd.patch | 65 +++++++++ .../board/t31/kernel/t10.generic.config | 4 +- .../board/t31/kernel/t20.generic.config | 11 +- .../board/t31/kernel/t21.generic.config | 5 +- .../board/t31/kernel/t30.generic.config | 4 +- 7 files changed, 222 insertions(+), 16 deletions(-) create mode 100644 br-ext-chip-ingenic/board/t31/kernel/patches/0006-phy-connect.patch create mode 100644 br-ext-chip-ingenic/board/t31/kernel/patches/0007-sfc-mtd.patch diff --git a/br-ext-chip-ingenic/board/t31/kernel/patches/0005-disable-i2c-clk-get.patch b/br-ext-chip-ingenic/board/t31/kernel/patches/0005-disable-i2c-clk-get.patch index 9a8dbc8d..bde73a83 100644 --- a/br-ext-chip-ingenic/board/t31/kernel/patches/0005-disable-i2c-clk-get.patch +++ b/br-ext-chip-ingenic/board/t31/kernel/patches/0005-disable-i2c-clk-get.patch @@ -31,3 +31,133 @@ if(clk->parent == get_clk_from_id(CLK_ID_EXT1)) return clk->parent->rate; +--- a/arch/mips/xburst/soc-t21/common/clk/clk_cgu.c ++++ b/arch/mips/xburst/soc-t21/common/clk/clk_cgu.c +@@ -111,18 +111,19 @@ + unsigned long x; + unsigned long flags; + int no = CLK_CGU_NO(clk->flags); +- +- if (!(strcmp(clk->name, "cgu_i2s"))) { +- unsigned int reg_val = 0; +- int m = 0, n = 0; +- reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; +- n = reg_val & 0xfffff; +- m = (reg_val >> 20) & 0x1ff; +- +- printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", +- __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); +- return (clk->parent->rate * m) / n; +- } ++ ++// FixMe: This leads to hang during boot with GCC>5.5.0 ++// if (!(strcmp(clk->name, "cgu_i2s"))) { ++// unsigned int reg_val = 0; ++// int m = 0, n = 0; ++// reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; ++// n = reg_val & 0xfffff; ++// m = (reg_val >> 20) & 0x1ff; ++// ++// printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", ++// __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); ++// return (clk->parent->rate * m) / n; ++// } + + if(clk->parent == get_clk_from_id(CLK_ID_EXT1)) + return clk->parent->rate; +--- a/arch/mips/xburst/soc-t10/common/clk/clk_cgu.c ++++ b/arch/mips/xburst/soc-t10/common/clk/clk_cgu.c +@@ -99,17 +99,18 @@ + unsigned long flags; + int no = CLK_CGU_NO(clk->flags); + +- if (!(strcmp(clk->name, "cgu_i2s"))) { +- unsigned int reg_val = 0; +- int m = 0, n = 0; +- reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; +- n = reg_val & 0x1fff; +- m = (reg_val >> 13) & 0x1ff; +- +- printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", +- __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); +- return (clk->parent->rate * m) / n; +- } ++// FixMe: This leads to hang during boot with GCC>5.5.0 ++// if (!(strcmp(clk->name, "cgu_i2s"))) { ++// unsigned int reg_val = 0; ++// int m = 0, n = 0; ++// reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; ++// n = reg_val & 0x1fff; ++// m = (reg_val >> 13) & 0x1ff; ++// ++// printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", ++// __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); ++// return (clk->parent->rate * m) / n; ++// } + + if(clk->parent == get_clk_from_id(CLK_ID_EXT1)) + return clk->parent->rate; +--- a/arch/mips/xburst/soc-t20/common/clk/clk_cgu.c ++++ b/arch/mips/xburst/soc-t20/common/clk/clk_cgu.c +@@ -100,17 +100,18 @@ + unsigned long flags; + int no = CLK_CGU_NO(clk->flags); + +- if (!(strcmp(clk->name, "cgu_i2s"))) { +- unsigned int reg_val = 0; +- int m = 0, n = 0; +- reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; +- n = reg_val & 0x1fff; +- m = (reg_val >> 13) & 0x1ff; +- +- printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", +- __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); +- return (clk->parent->rate * m) / n; +- } ++// FixMe: This leads to hang during boot with GCC>5.5.0 ++// if (!(strcmp(clk->name, "cgu_i2s"))) { ++// unsigned int reg_val = 0; ++// int m = 0, n = 0; ++// reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; ++// n = reg_val & 0x1fff; ++// m = (reg_val >> 13) & 0x1ff; ++// ++// printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", ++// __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); ++// return (clk->parent->rate * m) / n; ++// } + + if(clk->parent == get_clk_from_id(CLK_ID_EXT1)) + return clk->parent->rate; +--- a/arch/mips/xburst/soc-t30/common/clk/clk_cgu.c ++++ b/arch/mips/xburst/soc-t30/common/clk/clk_cgu.c +@@ -112,17 +112,18 @@ + unsigned long flags; + int no = CLK_CGU_NO(clk->flags); + +- if (!(strcmp(clk->name, "cgu_i2s"))) { +- unsigned int reg_val = 0; +- int m = 0, n = 0; +- reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; +- n = reg_val & 0xfffff; +- m = (reg_val >> 20) & 0x1ff; +- +- printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", +- __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); +- return (clk->parent->rate * m) / n; +- } ++// FixMe: This leads to hang during boot with GCC>5.5.0 ++// if (!(strcmp(clk->name, "cgu_i2s"))) { ++// unsigned int reg_val = 0; ++// int m = 0, n = 0; ++// reg_val = cpm_inl(cgu_clks[no].off) & 0xf0000000; ++// n = reg_val & 0xfffff; ++// m = (reg_val >> 20) & 0x1ff; ++// ++// printk(KERN_DEBUG"%s, parent = %ld, rate = %ld, m = %d, n = %d, reg val = 0x%08x\n", ++// __func__, clk->parent->rate, clk->rate, m, n, cpm_inl(cgu_clks[no].off)); ++// return (clk->parent->rate * m) / n; ++// } + + if(clk->parent == get_clk_from_id(CLK_ID_EXT1)) + return clk->parent->rate; diff --git a/br-ext-chip-ingenic/board/t31/kernel/patches/0006-phy-connect.patch b/br-ext-chip-ingenic/board/t31/kernel/patches/0006-phy-connect.patch new file mode 100644 index 00000000..7e852dd5 --- /dev/null +++ b/br-ext-chip-ingenic/board/t31/kernel/patches/0006-phy-connect.patch @@ -0,0 +1,19 @@ +--- a/drivers/net/ethernet/ingenic/jz_mac_v13.c ++++ b/drivers/net/ethernet/ingenic/jz_mac_v13.c +@@ -875,13 +875,13 @@ + PHY_INTERFACE_MODE_RMII); + #elif defined(CONFIG_JZ_MAC_RGMII) + phydev = phy_connect(dev, dev_name(&phydev->dev), &jz_mac_adjust_link, +- 0, PHY_INTERFACE_MODE_RGMII); ++ PHY_INTERFACE_MODE_RGMII); + #elif defined(CONFIG_JZ_MAC_GMII) + phydev = phy_connect(dev, dev_name(&phydev->dev), &jz_mac_adjust_link, +- 0, PHY_INTERFACE_MODE_GMII); ++ PHY_INTERFACE_MODE_GMII); + #else + phydev = phy_connect(dev, dev_name(&phydev->dev), &jz_mac_adjust_link, +- 0, PHY_INTERFACE_MODE_MII); ++ PHY_INTERFACE_MODE_MII); + #endif + + if (IS_ERR(phydev)) { diff --git a/br-ext-chip-ingenic/board/t31/kernel/patches/0007-sfc-mtd.patch b/br-ext-chip-ingenic/board/t31/kernel/patches/0007-sfc-mtd.patch new file mode 100644 index 00000000..e3d26693 --- /dev/null +++ b/br-ext-chip-ingenic/board/t31/kernel/patches/0007-sfc-mtd.patch @@ -0,0 +1,65 @@ +--- a/drivers/mtd/devices/Kconfig ++++ b/drivers/mtd/devices/Kconfig +@@ -73,6 +73,11 @@ + help + Now support GD25LQ64C + ++config MTD_JZ_SFC_NORFLASH ++ bool "Support ingenic spi-mtd" ++ help ++ nothing ++ + config MTD_JZ_SFC + tristate "Ingenic JZ series SFC driver" + depends on MACH_XBURST +@@ -93,7 +98,7 @@ + + config SFC_DMA + bool "used dma" +- depends on MTD_JZ_SFC_NOR ++ depends on (MTD_JZ_SFC_NOR || MTD_JZ_SFC_NORFLASH) + help + used dma + +@@ -101,13 +106,13 @@ + int "JZ SFC speed in MHZ" + range 10 200 + default 50 +- depends on MTD_JZ_SFC ++ depends on (MTD_JZ_SFC || MTD_JZ_SFC_NORFLASH) + help + Select sfc speed. + Examples: + 50 => 50 MHZ + +-if MTD_JZ_SFC ++if (MTD_JZ_SFC || MTD_JZ_SFC_NORFLASH) + + choice + prompt "sfc Mode" +@@ -116,13 +121,13 @@ + + config SPI_STARDARD + bool "standard spi mode" +- depends on MTD_JZ_SFC ++ depends on (MTD_JZ_SFC || MTD_JZ_SFC_NORFLASH) + help + Say Y here to enable spi STANDARD MODE + + config SPI_QUAD + bool "quad spi mode" +- depends on MTD_JZ_SFC ++ depends on (MTD_JZ_SFC || MTD_JZ_SFC_NORFLASH) + help + Say Y Here to enable spi QUAD MODE + endchoice +--- a/drivers/mtd/devices/Makefile ++++ b/drivers/mtd/devices/Makefile +@@ -18,6 +18,7 @@ + obj-$(CONFIG_MTD_BCM47XXSFLASH) += bcm47xxsflash.o + obj-$(CONFIG_MTD_JZ_SPI_NORFLASH) += jz_spi_norflash.o + obj-$(CONFIG_MTD_JZ_SFC_NOR) += jz_sfc.o ++obj-$(CONFIG_MTD_JZ_SFC_NORFLASH) += jz_sfc.o + obj-$(CONFIG_MTD_JZ_SFC_NAND) += jz_sfc_common.o jz_sfc_nand.o nand_device/ + + diff --git a/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config index 624fa382..16381fca 100644 --- a/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config +++ b/br-ext-chip-ingenic/board/t31/kernel/t10.generic.config @@ -630,9 +630,7 @@ CONFIG_MTD_CFI_I2=y # Self-contained MTD device drivers # # CONFIG_MTD_JZ_SPI_NORFLASH is not set -CONFIG_MTD_JZ_SFC=y -CONFIG_MTD_JZ_SFC_NOR=y -# CONFIG_MTD_JZ_SFC_NAND is not set +CONFIG_MTD_JZ_SFC_NORFLASH=y CONFIG_SFC_DMA=y CONFIG_SFC_SPEED=50 CONFIG_SPI_STARDARD=y diff --git a/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config index 55427a72..e87e02a7 100644 --- a/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config +++ b/br-ext-chip-ingenic/board/t31/kernel/t20.generic.config @@ -633,9 +633,7 @@ CONFIG_MTD_CFI_I2=y # Self-contained MTD device drivers # # CONFIG_MTD_JZ_SPI_NORFLASH is not set -CONFIG_MTD_JZ_SFC=y -CONFIG_MTD_JZ_SFC_NOR=y -# CONFIG_MTD_JZ_SFC_NAND is not set +CONFIG_MTD_JZ_SFC_NORFLASH=y CONFIG_SFC_DMA=y CONFIG_SFC_SPEED=50 CONFIG_SPI_STARDARD=y @@ -1219,9 +1217,10 @@ CONFIG_JZ_IPU_V13=y # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # CONFIG_JZ_VPU_IRQ_TEST is not set # CONFIG_JZ_VPU is not set -CONFIG_AVPU=y -CONFIG_AVPU_NO_DMABUF=1 -CONFIG_AVPU_DRIVER=y +CONFIG_SOC_VPU=y +CONFIG_CHANNEL_NODE_NUM=4 +CONFIG_VPU_NODE_NUM=1 +CONFIG_JZ_NVPU=y CONFIG_SOUND=y CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y diff --git a/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config index bb2c8da7..f4fb60c7 100644 --- a/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config +++ b/br-ext-chip-ingenic/board/t31/kernel/t21.generic.config @@ -631,10 +631,7 @@ CONFIG_MTD_CFI_I2=y # # Self-contained MTD device drivers # -# CONFIG_MTD_JZ_SPI_NORFLASH is not set -CONFIG_MTD_JZ_SFC=y -CONFIG_MTD_JZ_SFC_NOR=y -# CONFIG_MTD_JZ_SFC_NAND is not set +CONFIG_MTD_JZ_SFC_NORFLASH=y CONFIG_SFC_DMA=y CONFIG_SFC_SPEED=50 CONFIG_SPI_STARDARD=y diff --git a/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config b/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config index a394f708..33c8f125 100644 --- a/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config +++ b/br-ext-chip-ingenic/board/t31/kernel/t30.generic.config @@ -631,9 +631,7 @@ CONFIG_MTD_CFI_I2=y # Self-contained MTD device drivers # # CONFIG_MTD_JZ_SPI_NORFLASH is not set -CONFIG_MTD_JZ_SFC=y -CONFIG_MTD_JZ_SFC_NOR=y -# CONFIG_MTD_JZ_SFC_NAND is not set +CONFIG_MTD_JZ_SFC_NORFLASH=y CONFIG_SFC_DMA=y CONFIG_SFC_SPEED=50 CONFIG_SPI_STARDARD=y