[source] kernel: update bcma backporting changes up to 4.8

LEDE Commits lede-commits at lists.infradead.org
Wed Jul 20 04:44:16 PDT 2016


rmilecki pushed a commit to source.git, branch master:
https://git.lede-project.org/?p=source.git;a=commitdiff;h=60d26202537d95aeda2d9903ab8668ce9cc7326b

commit 60d26202537d95aeda2d9903ab8668ce9cc7326b
Author: Rafał Miłecki <zajec5 at gmail.com>
AuthorDate: Wed Jul 20 13:41:42 2016 +0200

    kernel: update bcma backporting changes up to 4.8
    
    This allows building bcm47xxsflash on ARM.
    
    Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
---
 target/linux/bcm53xx/config-4.4                    |  1 +
 .../generic/patches-4.4/021-bcma-from-4.6.patch    | 49 +++++++++++++++++++-
 .../generic/patches-4.4/022-bcma-from-4.8.patch    | 52 ++++++++++++++++++++++
 ...sflash-use-ioremap_cache-instead-of-KSEG0.patch |  2 +-
 4 files changed, 101 insertions(+), 3 deletions(-)

diff --git a/target/linux/bcm53xx/config-4.4 b/target/linux/bcm53xx/config-4.4
index b158031..2082752 100644
--- a/target/linux/bcm53xx/config-4.4
+++ b/target/linux/bcm53xx/config-4.4
@@ -66,6 +66,7 @@ CONFIG_BCMA_DRIVER_PCI=y
 CONFIG_BCMA_HOST_PCI=y
 CONFIG_BCMA_HOST_PCI_POSSIBLE=y
 CONFIG_BCMA_HOST_SOC=y
+# CONFIG_BCMA_SFLASH is not set
 CONFIG_BGMAC=y
 CONFIG_BOUNCE=y
 CONFIG_CACHE_L2X0=y
diff --git a/target/linux/generic/patches-4.4/021-bcma-from-4.6.patch b/target/linux/generic/patches-4.4/021-bcma-from-4.6.patch
index b09f4e7..8d90369 100644
--- a/target/linux/generic/patches-4.4/021-bcma-from-4.6.patch
+++ b/target/linux/generic/patches-4.4/021-bcma-from-4.6.patch
@@ -618,12 +618,13 @@
  }
 --- a/drivers/bcma/host_pci.c
 +++ b/drivers/bcma/host_pci.c
-@@ -294,7 +294,7 @@ static const struct pci_device_id bcma_p
+@@ -294,7 +294,8 @@ static const struct pci_device_id bcma_p
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4358) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4359) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4360) },
 -	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4365) },
 +	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_BROADCOM, 0x4365, PCI_VENDOR_ID_DELL, 0x0016) },
++	{ PCI_DEVICE_SUB(PCI_VENDOR_ID_BROADCOM, 0x4365, PCI_VENDOR_ID_FOXCONN, 0xe092) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a0) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43a9) },
  	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x43aa) },
@@ -705,7 +706,51 @@
 +}
 --- a/drivers/bcma/main.c
 +++ b/drivers/bcma/main.c
-@@ -350,7 +350,7 @@ static int bcma_register_devices(struct
+@@ -136,7 +136,6 @@ static bool bcma_is_core_needed_early(u1
+ 	return false;
+ }
+ 
+-#if defined(CONFIG_OF) && defined(CONFIG_OF_ADDRESS)
+ static struct device_node *bcma_of_find_child_device(struct platform_device *parent,
+ 						     struct bcma_device *core)
+ {
+@@ -184,7 +183,7 @@ static unsigned int bcma_of_get_irq(stru
+ 	struct of_phandle_args out_irq;
+ 	int ret;
+ 
+-	if (!parent || !parent->dev.of_node)
++	if (!IS_ENABLED(CONFIG_OF_IRQ) || !parent || !parent->dev.of_node)
+ 		return 0;
+ 
+ 	ret = bcma_of_irq_parse(parent, core, &out_irq, num);
+@@ -202,23 +201,15 @@ static void bcma_of_fill_device(struct p
+ {
+ 	struct device_node *node;
+ 
++	if (!IS_ENABLED(CONFIG_OF_IRQ))
++		return;
++
+ 	node = bcma_of_find_child_device(parent, core);
+ 	if (node)
+ 		core->dev.of_node = node;
+ 
+ 	core->irq = bcma_of_get_irq(parent, core, 0);
+ }
+-#else
+-static void bcma_of_fill_device(struct platform_device *parent,
+-				struct bcma_device *core)
+-{
+-}
+-static inline unsigned int bcma_of_get_irq(struct platform_device *parent,
+-					   struct bcma_device *core, int num)
+-{
+-	return 0;
+-}
+-#endif /* CONFIG_OF */
+ 
+ unsigned int bcma_core_irq(struct bcma_device *core, int num)
+ {
+@@ -350,7 +341,7 @@ static int bcma_register_devices(struct
  		bcma_register_core(bus, core);
  	}
  
diff --git a/target/linux/generic/patches-4.4/022-bcma-from-4.8.patch b/target/linux/generic/patches-4.4/022-bcma-from-4.8.patch
new file mode 100644
index 0000000..3ff4e94
--- /dev/null
+++ b/target/linux/generic/patches-4.4/022-bcma-from-4.8.patch
@@ -0,0 +1,52 @@
+--- a/drivers/bcma/Kconfig
++++ b/drivers/bcma/Kconfig
+@@ -76,9 +76,16 @@ config BCMA_PFLASH
+ 	default y
+ 
+ config BCMA_SFLASH
+-	bool
+-	depends on BCMA_DRIVER_MIPS
++	bool "ChipCommon-attached serial flash support"
++	depends on BCMA_HOST_SOC
+ 	default y
++	help
++	  Some cheap devices have serial flash connected to the ChipCommon
++	  instead of independent SPI controller. It requires using a separated
++	  driver that implements ChipCommon specific interface communication.
++
++	  Enabling this symbol will let bcma recognize serial flash and register
++	  it as platform device.
+ 
+ config BCMA_NFLASH
+ 	bool
+--- a/drivers/bcma/driver_chipcommon_b.c
++++ b/drivers/bcma/driver_chipcommon_b.c
+@@ -33,11 +33,12 @@ static bool bcma_wait_reg(struct bcma_bu
+ void bcma_chipco_b_mii_write(struct bcma_drv_cc_b *ccb, u32 offset, u32 value)
+ {
+ 	struct bcma_bus *bus = ccb->core->bus;
++	void __iomem *mii = ccb->mii;
+ 
+-	writel(offset, ccb->mii + 0x00);
+-	bcma_wait_reg(bus, ccb->mii + 0x00, 0x0100, 0x0000, 100);
+-	writel(value, ccb->mii + 0x04);
+-	bcma_wait_reg(bus, ccb->mii + 0x00, 0x0100, 0x0000, 100);
++	writel(offset, mii + BCMA_CCB_MII_MNG_CTL);
++	bcma_wait_reg(bus, mii + BCMA_CCB_MII_MNG_CTL, 0x0100, 0x0000, 100);
++	writel(value, mii + BCMA_CCB_MII_MNG_CMD_DATA);
++	bcma_wait_reg(bus, mii + BCMA_CCB_MII_MNG_CTL, 0x0100, 0x0000, 100);
+ }
+ EXPORT_SYMBOL_GPL(bcma_chipco_b_mii_write);
+ 
+--- a/include/linux/bcma/bcma_driver_chipcommon.h
++++ b/include/linux/bcma/bcma_driver_chipcommon.h
+@@ -504,6 +504,9 @@
+ #define BCMA_CC_PMU1_PLL0_PC2_NDIV_INT_MASK	0x1ff00000
+ #define BCMA_CC_PMU1_PLL0_PC2_NDIV_INT_SHIFT	20
+ 
++#define BCMA_CCB_MII_MNG_CTL		0x0000
++#define BCMA_CCB_MII_MNG_CMD_DATA	0x0004
++
+ /* BCM4331 ChipControl numbers. */
+ #define BCMA_CHIPCTL_4331_BT_COEXIST		BIT(0)	/* 0 disable */
+ #define BCMA_CHIPCTL_4331_SECI			BIT(1)	/* 0 SECI is disabled (JATG functional) */
diff --git a/target/linux/generic/patches-4.4/042-0001-mtd-bcm47xxsflash-use-ioremap_cache-instead-of-KSEG0.patch b/target/linux/generic/patches-4.4/042-0001-mtd-bcm47xxsflash-use-ioremap_cache-instead-of-KSEG0.patch
index a401e55..89f1e5e 100644
--- a/target/linux/generic/patches-4.4/042-0001-mtd-bcm47xxsflash-use-ioremap_cache-instead-of-KSEG0.patch
+++ b/target/linux/generic/patches-4.4/042-0001-mtd-bcm47xxsflash-use-ioremap_cache-instead-of-KSEG0.patch
@@ -128,7 +128,7 @@ Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
  	u32 size;
 --- a/include/linux/bcma/bcma_driver_chipcommon.h
 +++ b/include/linux/bcma/bcma_driver_chipcommon.h
-@@ -585,7 +585,6 @@ struct bcma_pflash {
+@@ -588,7 +588,6 @@ struct bcma_pflash {
  #ifdef CONFIG_BCMA_SFLASH
  struct bcma_sflash {
  	bool present;



More information about the lede-commits mailing list