BigW Consortium Gitlab

Commit e1cdd3e7 by jogo
parent 84bc72b3
......@@ -2,9 +2,9 @@
LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .14
LINUX_VERSION-3.18 = .16
LINUX_KERNEL_MD5SUM-3.18.14 = cb6f534b83333ba52f1fed7979824a1b
LINUX_KERNEL_MD5SUM-3.18.16 = 3b0e66fdf47b0660521d79b881eabf04
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
......
......@@ -40,7 +40,7 @@
};
struct at803x_context {
@@ -61,6 +71,43 @@ struct at803x_context {
@@ -61,6 +72,43 @@ struct at803x_context {
u16 led_control;
};
......@@ -84,7 +84,7 @@
/* save relevant PHY registers to private copy */
static void at803x_context_save(struct phy_device *phydev,
struct at803x_context *context)
@@ -208,8 +255,16 @@ static int at803x_probe(struct phy_devic
@@ -208,8 +256,16 @@ static int at803x_probe(struct phy_devic
return 0;
}
......@@ -101,7 +101,7 @@
int ret;
ret = genphy_config_init(phydev);
@@ -227,6 +282,26 @@ static int at803x_config_init(struct phy
@@ -227,6 +283,26 @@ static int at803x_config_init(struct phy
return ret;
}
......@@ -137,11 +137,10 @@
/*
* Conduct a hardware reset for AT8030 every time a link loss is
@@ -287,6 +365,26 @@ static void at803x_link_change_notify(st
} else {
@@ -288,6 +366,26 @@ static void at803x_link_change_notify(st
priv->phy_reset = false;
}
+ }
}
+ if (pdata->fixup_rgmii_tx_delay &&
+ phydev->speed != priv->prev_speed) {
+ switch (phydev->speed) {
......@@ -161,9 +160,10 @@
+ }
+
+ priv->prev_speed = phydev->speed;
}
+ }
}
static struct phy_driver at803x_driver[] = {
--- /dev/null
+++ b/include/linux/platform_data/phy-at803x.h
@@ -0,0 +1,11 @@
......
--- a/arch/mips/ath79/Kconfig
+++ b/arch/mips/ath79/Kconfig
@@ -687,6 +687,26 @@ config ATH79_MACH_OM5P
@@ -694,6 +694,26 @@ config ATH79_MACH_OM5P
select ATH79_DEV_M25P80
select ATH79_DEV_WMAC
......@@ -29,7 +29,7 @@
select SOC_AR934X
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -78,6 +78,8 @@ obj-$(CONFIG_ATH79_MACH_JA76PF) +
@@ -78,6 +78,8 @@ obj-$(CONFIG_ATH79_MACH_JA76PF) += mach
obj-$(CONFIG_ATH79_MACH_JWAP003) += mach-jwap003.o
obj-$(CONFIG_ATH79_MACH_HORNET_UB) += mach-hornet-ub.o
obj-$(CONFIG_ATH79_MACH_MC_MAC1200R) += mach-mc-mac1200r.o
......@@ -48,4 +48,4 @@
+ ATH79_MACH_MR16, /* Cisco Meraki MR16 */
ATH79_MACH_MR600V2, /* OpenMesh MR600v2 */
ATH79_MACH_MR600, /* OpenMesh MR600 */
ATH79_MACH_MR900, /* OpenMesh MR900 */
ATH79_MACH_MR900, /* OpenMesh MR900 */
......@@ -19,7 +19,7 @@
select SOC_AR934X
--- a/arch/mips/ath79/Makefile
+++ b/arch/mips/ath79/Makefile
@@ -96,6 +96,7 @@ obj-$(CONFIG_ATH79_MACH_R6100) += mach-
@@ -98,6 +98,7 @@ obj-$(CONFIG_ATH79_MACH_R6100) += mach-
obj-$(CONFIG_ATH79_MACH_RB4XX) += mach-rb4xx.o
obj-$(CONFIG_ATH79_MACH_RB750) += mach-rb750.o
obj-$(CONFIG_ATH79_MACH_RB91X) += mach-rb91x.o
......@@ -29,7 +29,7 @@
obj-$(CONFIG_ATH79_MACH_RBSXTLITE) += mach-rbsxtlite.o
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -103,6 +103,7 @@ enum ath79_mach_type {
@@ -105,6 +105,7 @@ enum ath79_mach_type {
ATH79_MACH_RB_750G_R3, /* MikroTik RouterBOARD 750GL */
ATH79_MACH_RB_751, /* MikroTik RouterBOARD 751 */
ATH79_MACH_RB_751G, /* Mikrotik RouterBOARD 751G */
......
--- a/arch/mips/ath79/machtypes.h
+++ b/arch/mips/ath79/machtypes.h
@@ -169,6 +169,7 @@ enum ath79_mach_type {
@@ -171,6 +171,7 @@ enum ath79_mach_type {
ATH79_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */
ATH79_MACH_UBNT_NANO_M_XW, /* Ubiquiti NanoStation M XW */
ATH79_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */
......
......@@ -16,8 +16,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm/mach-bcm/bcm_5301x.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-bcm/bcm_5301x.c b/arch/arm/mach-bcm/bcm_5301x.c
index e9bcbdb..7aef927 100644
--- a/arch/arm/mach-bcm/bcm_5301x.c
+++ b/arch/arm/mach-bcm/bcm_5301x.c
@@ -18,15 +18,16 @@ static bool first_fault = true;
......@@ -41,6 +39,3 @@ index e9bcbdb..7aef927 100644
/* Returning non-zero causes fault display and panic */
return 0;
--
1.8.4.5
......@@ -27,8 +27,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
14 files changed, 50 insertions(+), 6 deletions(-)
create mode 100644 arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
index 71cff8d..112a5a8 100644
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dts
@@ -10,6 +10,7 @@
......@@ -39,8 +37,6 @@ index 71cff8d..112a5a8 100644
/ {
compatible = "asus,rt-ac56u", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
index 8b62836..3600f56 100644
--- a/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
+++ b/arch/arm/boot/dts/bcm4708-asus-rt-ac68u.dts
@@ -10,6 +10,7 @@
......@@ -51,8 +47,6 @@ index 8b62836..3600f56 100644
/ {
compatible = "asus,rt-ac68u", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
index 78e95c0..24f0ab5 100644
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
@@ -10,6 +10,7 @@
......@@ -63,8 +57,6 @@ index 78e95c0..24f0ab5 100644
/ {
compatible = "buffalo,wzr-1750dhp", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
index 946c728..f039393 100644
--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
@@ -10,6 +10,7 @@
......@@ -90,8 +82,6 @@ index 946c728..f039393 100644
partition@0 {
label = "ubi";
reg = <0x00000000 0x08000000>;
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
index 2ed9e57..326ce8f 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6250.dts
@@ -10,6 +10,7 @@
......@@ -102,8 +92,6 @@ index 2ed9e57..326ce8f 100644
/ {
compatible = "netgear,r6250v1", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
index 3991042..3a94606 100644
--- a/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
+++ b/arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dts
@@ -10,6 +10,7 @@
......@@ -114,8 +102,6 @@ index 3991042..3a94606 100644
/ {
compatible = "netgear,r6300v2", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
index 66dfb53..d6a033b 100644
--- a/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
+++ b/arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts
@@ -10,6 +10,7 @@
......@@ -126,8 +112,6 @@ index 66dfb53..d6a033b 100644
/ {
compatible = "smartrg,sr400ac", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
index 0ee85ea..71b98cf 100644
--- a/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
+++ b/arch/arm/boot/dts/bcm47081-asus-rt-n18u.dts
@@ -10,6 +10,7 @@
......@@ -138,8 +122,6 @@ index 0ee85ea..71b98cf 100644
/ {
compatible = "asus,rt-n18u", "brcm,bcm47081", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
index db9131e..bb0cb0b 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-600dhp2.dts
@@ -10,6 +10,7 @@
......@@ -150,8 +132,6 @@ index db9131e..bb0cb0b 100644
/ {
compatible = "buffalo,wzr-600dhp2", "brcm,bcm47081", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
index 7d6868a..184fd92 100644
--- a/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
+++ b/arch/arm/boot/dts/bcm47081-buffalo-wzr-900dhp.dts
@@ -10,6 +10,7 @@
......@@ -162,8 +142,6 @@ index 7d6868a..184fd92 100644
/ {
compatible = "buffalo,wzr-900dhp", "brcm,bcm47081", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
index 548e93b..2a92e8d 100644
--- a/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
+++ b/arch/arm/boot/dts/bcm4709-buffalo-wxr-1900dhp.dts
@@ -10,6 +10,7 @@
......@@ -174,8 +152,6 @@ index 548e93b..2a92e8d 100644
/ {
compatible = "buffalo,wxr-1900dhp", "brcm,bcm4709", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
index ea26dd3..446c586 100644
--- a/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
+++ b/arch/arm/boot/dts/bcm4709-netgear-r8000.dts
@@ -10,6 +10,7 @@
......@@ -186,9 +162,6 @@ index ea26dd3..446c586 100644
/ {
compatible = "netgear,r8000", "brcm,bcm4709", "brcm,bcm4708";
diff --git a/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
new file mode 100644
index 0000000..d10781e
--- /dev/null
+++ b/arch/arm/boot/dts/bcm5301x-nand-cs0-bch8.dtsi
@@ -0,0 +1,24 @@
......@@ -216,8 +189,6 @@ index 0000000..d10781e
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 78aec62..a97f631 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -143,4 +143,16 @@
......@@ -237,6 +208,3 @@ index 78aec62..a97f631 100644
+ brcm,nand-has-wp;
+ };
};
--
1.8.4.5
......@@ -13,8 +13,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
arch/arm/boot/dts/bcm5301x.dtsi | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index a97f631..21fefd4 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -108,6 +108,30 @@
......@@ -48,6 +46,3 @@ index a97f631..21fefd4 100644
/* USB 2.0 Controller */
<0x00021000 0 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>,
--
1.8.4.5
......@@ -15,8 +15,6 @@ Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2 files changed, 66 insertions(+)
create mode 100644 arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 4802376..4e76f68 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -65,6 +65,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
......@@ -27,9 +25,6 @@ index 4802376..4e76f68 100644
bcm4709-buffalo-wxr-1900dhp.dtb \
bcm4709-netgear-r8000.dtb
dtb-$(CONFIG_ARCH_BCM_63XX) += bcm963138dvt.dtb
diff --git a/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
new file mode 100644
index 0000000..aedf3c4
--- /dev/null
+++ b/arch/arm/boot/dts/bcm4709-asus-rt-ac87u.dts
@@ -0,0 +1,65 @@
......@@ -98,6 +93,3 @@ index 0000000..aedf3c4
+ };
+ };
+};
--
1.8.4.5
......@@ -13,8 +13,6 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drivers/usb/host/bcma-hcd.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index cd6d0af..080587e 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -214,16 +214,11 @@ err_alloc:
......@@ -34,6 +32,3 @@ index cd6d0af..080587e 100644
/* TODO: Probably need checks here; is the core connected? */
--
1.8.4.5
......@@ -10,11 +10,9 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drivers/usb/host/bcma-hcd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index 080587e..853bf9d 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -233,7 +233,8 @@ static int bcma_hcd_probe(struct bcma_device *dev)
@@ -233,7 +233,8 @@ static int bcma_hcd_probe(struct bcma_de
/* In AI chips EHCI is addrspace 0, OHCI is 1 */
ohci_addr = dev->addr_s[0];
......@@ -24,6 +22,3 @@ index 080587e..853bf9d 100644
&& chipinfo->rev == 0)
ohci_addr = 0x18009000;
--
1.8.4.5
......@@ -11,11 +11,9 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drivers/usb/host/bcma-hcd.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index 853bf9d..d7ea50d 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -225,7 +225,8 @@ static int bcma_hcd_probe(struct bcma_device *dev)
@@ -225,7 +225,8 @@ static int bcma_hcd_probe(struct bcma_de
if (dma_set_mask_and_coherent(dev->dma_dev, DMA_BIT_MASK(32)))
return -EOPNOTSUPP;
......@@ -25,7 +23,7 @@ index 853bf9d..d7ea50d 100644
if (!usb_dev)
return -ENOMEM;
@@ -239,10 +240,8 @@ static int bcma_hcd_probe(struct bcma_device *dev)
@@ -239,10 +240,8 @@ static int bcma_hcd_probe(struct bcma_de
ohci_addr = 0x18009000;
usb_dev->ohci_dev = bcma_hcd_create_pdev(dev, true, ohci_addr);
......@@ -38,7 +36,7 @@ index 853bf9d..d7ea50d 100644
usb_dev->ehci_dev = bcma_hcd_create_pdev(dev, false, dev->addr);
if (IS_ERR(usb_dev->ehci_dev)) {
@@ -255,8 +254,6 @@ static int bcma_hcd_probe(struct bcma_device *dev)
@@ -255,8 +254,6 @@ static int bcma_hcd_probe(struct bcma_de
err_unregister_ohci_dev:
platform_device_unregister(usb_dev->ohci_dev);
......@@ -47,6 +45,3 @@ index 853bf9d..d7ea50d 100644
return err;
}
--
1.8.4.5
......@@ -11,11 +11,9 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drivers/usb/host/bcma-hcd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index d7ea50d..8a38313 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -169,7 +169,7 @@ static struct platform_device *bcma_hcd_create_pdev(struct bcma_device *dev, boo
@@ -169,7 +169,7 @@ static struct platform_device *bcma_hcd_
{
struct platform_device *hci_dev;
struct resource hci_res[2];
......@@ -24,7 +22,7 @@ index d7ea50d..8a38313 100644
memset(hci_res, 0, sizeof(hci_res));
@@ -183,7 +183,7 @@ static struct platform_device *bcma_hcd_create_pdev(struct bcma_device *dev, boo
@@ -183,7 +183,7 @@ static struct platform_device *bcma_hcd_
hci_dev = platform_device_alloc(ohci ? "ohci-platform" :
"ehci-platform" , 0);
if (!hci_dev)
......@@ -33,6 +31,3 @@ index d7ea50d..8a38313 100644
hci_dev->dev.parent = &dev->dev;
hci_dev->dev.dma_mask = &hci_dev->dev.coherent_dma_mask;
--
1.8.4.5
......@@ -13,8 +13,6 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drivers/usb/host/bcma-hcd.c | 81 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 78 insertions(+), 3 deletions(-)
diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index 8a38313..983bc67 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -2,7 +2,8 @@
......@@ -27,7 +25,7 @@ index 8a38313..983bc67 100644
*
* Based on ssb-ohci driver
* Copyright 2007 Michael Buesch <m@bues.ch>
@@ -88,7 +89,7 @@ static void bcma_hcd_4716wa(struct bcma_device *dev)
@@ -88,7 +89,7 @@ static void bcma_hcd_4716wa(struct bcma_
}
/* based on arch/mips/brcm-boards/bcm947xx/pcibios.c */
......@@ -36,7 +34,7 @@ index 8a38313..983bc67 100644
{
u32 tmp;
@@ -159,6 +160,70 @@ static void bcma_hcd_init_chip(struct bcma_device *dev)
@@ -159,6 +160,70 @@ static void bcma_hcd_init_chip(struct bc
}
}
......@@ -107,7 +105,7 @@ index 8a38313..983bc67 100644
static const struct usb_ehci_pdata ehci_pdata = {
};
@@ -230,7 +295,16 @@ static int bcma_hcd_probe(struct bcma_device *dev)
@@ -230,7 +295,16 @@ static int bcma_hcd_probe(struct bcma_de
if (!usb_dev)
return -ENOMEM;
......@@ -125,7 +123,7 @@ index 8a38313..983bc67 100644
/* In AI chips EHCI is addrspace 0, OHCI is 1 */
ohci_addr = dev->addr_s[0];
@@ -299,6 +373,7 @@ static int bcma_hcd_resume(struct bcma_device *dev)
@@ -299,6 +373,7 @@ static int bcma_hcd_resume(struct bcma_d
static const struct bcma_device_id bcma_hcd_table[] = {
BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_USB20_HOST, BCMA_ANY_REV, BCMA_ANY_CLASS),
......@@ -133,6 +131,3 @@ index 8a38313..983bc67 100644
BCMA_CORETABLE_END
};
MODULE_DEVICE_TABLE(bcma, bcma_hcd_table);
--
1.8.4.5
......@@ -12,8 +12,6 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
drivers/usb/host/bcma-hcd.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/drivers/usb/host/bcma-hcd.c b/drivers/usb/host/bcma-hcd.c
index 983bc67..a01c6ce 100644
--- a/drivers/usb/host/bcma-hcd.c
+++ b/drivers/usb/host/bcma-hcd.c
@@ -24,6 +24,8 @@
......@@ -25,7 +23,7 @@ index 983bc67..a01c6ce 100644
#include <linux/usb/ehci_pdriver.h>
#include <linux/usb/ohci_pdriver.h>
@@ -224,6 +226,23 @@ static void bcma_hcd_init_chip_arm(struct bcma_device *dev)
@@ -224,6 +226,23 @@ static void bcma_hcd_init_chip_arm(struc
}
}
......@@ -49,7 +47,7 @@ index 983bc67..a01c6ce 100644
static const struct usb_ehci_pdata ehci_pdata = {
};
@@ -295,6 +314,8 @@ static int bcma_hcd_probe(struct bcma_device *dev)
@@ -295,6 +314,8 @@ static int bcma_hcd_probe(struct bcma_de
if (!usb_dev)
return -ENOMEM;
......@@ -58,7 +56,7 @@ index 983bc67..a01c6ce 100644
switch (dev->id.id) {
case BCMA_CORE_NS_USB20:
bcma_hcd_init_chip_arm(dev);
@@ -347,6 +368,7 @@ static void bcma_hcd_remove(struct bcma_device *dev)
@@ -347,6 +368,7 @@ static void bcma_hcd_remove(struct bcma_
static void bcma_hcd_shutdown(struct bcma_device *dev)
{
......@@ -66,7 +64,7 @@ index 983bc67..a01c6ce 100644
bcma_core_disable(dev, 0);
}
@@ -354,6 +376,7 @@ static void bcma_hcd_shutdown(struct bcma_device *dev)
@@ -354,6 +376,7 @@ static void bcma_hcd_shutdown(struct bcm
static int bcma_hcd_suspend(struct bcma_device *dev)
{
......@@ -74,7 +72,7 @@ index 983bc67..a01c6ce 100644
bcma_core_disable(dev, 0);
return 0;
@@ -361,6 +384,7 @@ static int bcma_hcd_suspend(struct bcma_device *dev)
@@ -361,6 +384,7 @@ static int bcma_hcd_suspend(struct bcma_
static int bcma_hcd_resume(struct bcma_device *dev)
{
......@@ -82,6 +80,3 @@ index 983bc67..a01c6ce 100644
bcma_core_enable(dev, 0);
return 0;
--
1.8.4.5
......@@ -11,8 +11,6 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
arch/arm/boot/dts/bcm5301x.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index 21fefd4..58515f8 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -95,6 +95,10 @@
......@@ -26,6 +24,3 @@ index 21fefd4..58515f8 100644
axi@18000000 {
compatible = "brcm,bus-axi";
reg = <0x18000000 0x1000>;
--
1.8.4.5
......@@ -14,8 +14,6 @@ Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
index b84a503..413978a 100644
--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
+++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts
@@ -34,6 +34,18 @@
......@@ -37,6 +35,3 @@ index b84a503..413978a 100644
nand: nand@18028000 {
nandcs@0 {
partition@0 {
--
1.8.4.5
......@@ -19,8 +19,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm47xx/nvram.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c
index ba632ff..dee1c32 100644
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -98,7 +98,7 @@ found:
......@@ -54,6 +52,3 @@ index ba632ff..dee1c32 100644
}
err = mtd_read(mtd, 0, len, &bytes_read, dst);
--
1.8.4.5
......@@ -22,8 +22,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm47xx/nvram.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c
index dee1c32..95d028c 100644
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -171,7 +171,7 @@ static int nvram_init(void)
......@@ -35,7 +33,7 @@ index dee1c32..95d028c 100644
if (!name)
return -EINVAL;
@@ -184,19 +184,16 @@ int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len)
@@ -184,19 +184,16 @@ int bcm47xx_nvram_getenv(const char *nam
/* Look for name=value and return value */
var = &nvram_buf[sizeof(struct nvram_header)];
......@@ -59,6 +57,3 @@ index dee1c32..95d028c 100644
}
return -ENOENT;
}
--
1.8.4.5
......@@ -21,11 +21,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
include/linux/ssb/ssb.h | 5 ++++-
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c
index 68ebf23..4048083 100644
--- a/arch/mips/bcm47xx/sprom.c
+++ b/arch/mips/bcm47xx/sprom.c
@@ -201,6 +201,9 @@ static void bcm47xx_sprom_fill_auto(struct ssb_sprom *sprom,
@@ -201,6 +201,9 @@ static void bcm47xx_sprom_fill_auto(stru
bool fb = fallback;
ENTRY(0xfffffffe, u16, pre, "boardrev", board_rev, 0, true);
......
......@@ -21,8 +21,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
include/linux/ssb/ssb.h | 3 +++
2 files changed, 9 insertions(+)
diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c
index 4048083..92a6c9d 100644
--- a/arch/mips/bcm47xx/sprom.c
+++ b/arch/mips/bcm47xx/sprom.c
@@ -531,6 +531,8 @@ static int mac_addr_used = 2;
......@@ -34,7 +32,7 @@ index 4048083..92a6c9d 100644
nvram_read_macaddr(prefix, "et0macaddr", sprom->et0mac, fallback);
nvram_read_u8(prefix, NULL, "et0mdcport", &sprom->et0mdcport, 0,
fallback);
@@ -543,6 +545,10 @@ static void bcm47xx_fill_sprom_ethernet(struct ssb_sprom *sprom,
@@ -543,6 +545,10 @@ static void bcm47xx_fill_sprom_ethernet(
nvram_read_u8(prefix, NULL, "et1phyaddr", &sprom->et1phyaddr, 0,
fallback);
......
......@@ -27,8 +27,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/mach-bcm47xx/bcm47xx.h | 4 ---
3 files changed, 22 insertions(+), 29 deletions(-)
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c
index 82ff9fd..98c075f 100644
--- a/arch/mips/bcm47xx/setup.c
+++ b/arch/mips/bcm47xx/setup.c
@@ -206,9 +206,6 @@ void __init bcm47xx_bus_setup(void)
......@@ -41,11 +39,9 @@ index 82ff9fd..98c075f 100644
}
#endif
diff --git a/arch/mips/bcm47xx/sprom.c b/arch/mips/bcm47xx/sprom.c
index 92a6c9d..b0d62e7 100644
--- a/arch/mips/bcm47xx/sprom.c
+++ b/arch/mips/bcm47xx/sprom.c
@@ -640,19 +640,6 @@ void bcm47xx_fill_ssb_boardinfo(struct ssb_boardinfo *boardinfo,
@@ -640,19 +640,6 @@ void bcm47xx_fill_ssb_boardinfo(struct s
}
#endif
......@@ -65,7 +61,7 @@ index 92a6c9d..b0d62e7 100644
#if defined(CONFIG_BCM47XX_SSB)
static int bcm47xx_get_sprom_ssb(struct ssb_bus *bus, struct ssb_sprom *out)
{
@@ -707,33 +694,46 @@ static void bcm47xx_sprom_apply_prefix_alias(char *prefix, size_t prefix_size)
@@ -707,33 +694,46 @@ static void bcm47xx_sprom_apply_prefix_a
static int bcm47xx_get_sprom_bcma(struct bcma_bus *bus, struct ssb_sprom *out)
{
......@@ -121,11 +117,9 @@ index 92a6c9d..b0d62e7 100644
}
#endif
diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h
index 8ed77f6..1461c10 100644
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx.h
@@ -52,10 +52,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom *sprom, const char *prefix,
@@ -52,10 +52,6 @@ void bcm47xx_fill_sprom(struct ssb_sprom
void bcm47xx_fill_ssb_boardinfo(struct ssb_boardinfo *boardinfo,
const char *prefix);
#endif
......@@ -136,6 +130,3 @@ index 8ed77f6..1461c10 100644
void bcm47xx_set_system_type(u16 chip_id);
--
1.8.4.5
......@@ -25,8 +25,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/tlb-r4k.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c
index ab698ba..135a540 100644
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -126,7 +126,7 @@ void __init prom_free_prom_memory(void)
......@@ -38,8 +36,6 @@ index ab698ba..135a540 100644
{
write_c0_pagemask(PM_DEFAULT_MASK);
write_c0_wired(0);
diff --git a/arch/mips/include/asm/pgtable-32.h b/arch/mips/include/asm/pgtable-32.h
index 7d56686..832e216 100644
--- a/arch/mips/include/asm/pgtable-32.h
+++ b/arch/mips/include/asm/pgtable-32.h
@@ -18,7 +18,7 @@
......@@ -51,11 +47,9 @@ index 7d56686..832e216 100644
/*
* - add_temporary_entry() add a temporary TLB entry. We use TLB entries
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index 08318ec..5037d58 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -411,7 +411,7 @@ int __init has_transparent_hugepage(void)
@@ -411,7 +411,7 @@ int __init has_transparent_hugepage(void
* lifetime of the system
*/
......@@ -64,6 +58,3 @@ index 08318ec..5037d58 100644
__init int add_temporary_entry(unsigned long entrylo0, unsigned long entrylo1,
unsigned long entryhi, unsigned long pagemask)
--
1.8.4.5
......@@ -20,11 +20,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h | 2 ++
4 files changed, 28 insertions(+)
diff --git a/arch/mips/bcm47xx/board.c b/arch/mips/bcm47xx/board.c
index bd56415..a88975a 100644
--- a/arch/mips/bcm47xx/board.c
+++ b/arch/mips/bcm47xx/board.c
@@ -149,6 +149,7 @@ struct bcm47xx_board_type_list2 bcm47xx_board_list_boot_hw[] __initconst = {
@@ -149,6 +149,7 @@ struct bcm47xx_board_type_list2 bcm47xx_
/* board_id */
static const
struct bcm47xx_board_type_list1 bcm47xx_board_list_board_id[] __initconst = {
......@@ -32,11 +30,9 @@ index bd56415..a88975a 100644
{{BCM47XX_BOARD_NETGEAR_WGR614V8, "Netgear WGR614 V8"}, "U12H072T00_NETGEAR"},
{{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"},
{{BCM47XX_BOARD_NETGEAR_WGR614_V10, "Netgear WGR614 V10"}, "U12H139T01_NETGEAR"},
diff --git a/arch/mips/bcm47xx/buttons.c b/arch/mips/bcm47xx/buttons.c
index 276276a..08a4abf 100644
--- a/arch/mips/bcm47xx/buttons.c
+++ b/arch/mips/bcm47xx/buttons.c
@@ -299,6 +299,13 @@ bcm47xx_buttons_linksys_wrtsl54gs[] __initconst = {
@@ -299,6 +299,13 @@ bcm47xx_buttons_linksys_wrtsl54gs[] __in
BCM47XX_GPIO_KEY(6, KEY_RESTART),
};
......@@ -50,7 +46,7 @@ index 276276a..08a4abf 100644
/* Microsoft */
static const struct gpio_keys_button
@@ -555,6 +562,10 @@ int __init bcm47xx_buttons_register(void)
@@ -555,6 +562,10 @@ int __init bcm47xx_buttons_register(void
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrtsl54gs);
break;
......@@ -61,11 +57,9 @@ index 276276a..08a4abf 100644
case BCM47XX_BOARD_MICROSOFT_MN700:
err = bcm47xx_copy_bdata(bcm47xx_buttons_microsoft_nm700);
break;
diff --git a/arch/mips/bcm47xx/leds.c b/arch/mips/bcm47xx/leds.c
index 0e4ade3..d20ae63 100644
--- a/arch/mips/bcm47xx/leds.c
+++ b/arch/mips/bcm47xx/leds.c
@@ -370,6 +370,16 @@ bcm47xx_leds_linksys_wrtsl54gs[] __initconst = {
@@ -370,6 +370,16 @@ bcm47xx_leds_linksys_wrtsl54gs[] __initc
BCM47XX_GPIO_LED(7, "orange", "wps", 1, LEDS_GPIO_DEFSTATE_OFF),
};
......@@ -93,8 +87,6 @@ index 0e4ade3..d20ae63 100644
case BCM47XX_BOARD_MICROSOFT_MN700:
bcm47xx_set_pdata(bcm47xx_leds_microsoft_nm700);
break;
diff --git a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
index c41d1dc..2afb840 100644
--- a/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
+++ b/arch/mips/include/asm/mach-bcm47xx/bcm47xx_board.h
@@ -80,6 +80,8 @@ enum bcm47xx_board {
......@@ -106,6 +98,3 @@ index c41d1dc..2afb840 100644
BCM47XX_BOARD_MICROSOFT_MN700,
BCM47XX_BOARD_MOTOROLA_WE800G,
--
1.8.4.5
......@@ -22,11 +22,9 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
include/linux/bcm47xx_nvram.h | 15 +++++++++++
2 files changed, 60 insertions(+), 15 deletions(-)
diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c
index 95d028c..2ed762e 100644
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -94,17 +94,22 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim)
@@ -94,17 +94,22 @@ static int nvram_find_and_copy(void __io
return -ENXIO;
found:
......@@ -94,7 +92,7 @@ index 95d028c..2ed762e 100644
return 0;
}
#endif
@@ -219,3 +226,26 @@ int bcm47xx_nvram_gpio_pin(const char *name)
@@ -219,3 +226,26 @@ int bcm47xx_nvram_gpio_pin(const char *n
return -ENOENT;
}
EXPORT_SYMBOL(bcm47xx_nvram_gpio_pin);
......@@ -121,8 +119,6 @@ index 95d028c..2ed762e 100644
+ return nvram;
+}
+EXPORT_SYMBOL(bcm47xx_nvram_get_contents);
diff --git a/include/linux/bcm47xx_nvram.h b/include/linux/bcm47xx_nvram.h
index b12b07e..c73927c 100644
--- a/include/linux/bcm47xx_nvram.h
+++ b/include/linux/bcm47xx_nvram.h
@@ -10,11 +10,17 @@
......@@ -143,7 +139,7 @@ index b12b07e..c73927c 100644
#else
static inline int bcm47xx_nvram_init_from_mem(u32 base, u32 lim)
{
@@ -29,6 +35,15 @@ static inline int bcm47xx_nvram_gpio_pin(const char *name)
@@ -29,6 +35,15 @@ static inline int bcm47xx_nvram_gpio_pin
{
return -ENOTSUPP;
};
......@@ -159,6 +155,3 @@ index b12b07e..c73927c 100644
#endif
#endif /* __BCM47XX_NVRAM_H */
--
1.8.4.5
......@@ -24,8 +24,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm47xx/nvram.c | 37 ++++++++++++++++---------------------
1 file changed, 16 insertions(+), 21 deletions(-)
diff --git a/arch/mips/bcm47xx/nvram.c b/arch/mips/bcm47xx/nvram.c
index 2ed762e..9ccdce8 100644
--- a/arch/mips/bcm47xx/nvram.c
+++ b/arch/mips/bcm47xx/nvram.c
@@ -35,6 +35,7 @@ struct nvram_header {
......@@ -36,7 +34,7 @@ index 2ed762e..9ccdce8 100644
static const u32 nvram_sizes[] = {0x8000, 0xF000, 0x10000};
static u32 find_nvram_size(void __iomem *end)
@@ -60,7 +61,7 @@ static int nvram_find_and_copy(void __iomem *iobase, u32 lim)
@@ -60,7 +61,7 @@ static int nvram_find_and_copy(void __io
u32 *src, *dst;
u32 size;
......@@ -103,7 +101,7 @@ index 2ed762e..9ccdce8 100644
}
#endif
@@ -183,7 +180,7 @@ int bcm47xx_nvram_getenv(const char *name, char *val, size_t val_len)
@@ -183,7 +180,7 @@ int bcm47xx_nvram_getenv(const char *nam
if (!name)
return -EINVAL;
......@@ -112,7 +110,7 @@ index 2ed762e..9ccdce8 100644
err = nvram_init();
if (err)
return err;
@@ -231,16 +228,14 @@ char *bcm47xx_nvram_get_contents(size_t *nvram_size)
@@ -231,16 +228,14 @@ char *bcm47xx_nvram_get_contents(size_t
{
int err;
char *nvram;
......@@ -131,6 +129,3 @@ index 2ed762e..9ccdce8 100644
nvram = vmalloc(*nvram_size);
if (!nvram)
return NULL;
--
1.8.4.5
......@@ -18,8 +18,6 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/bcm47xx/Kconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/mips/bcm47xx/Kconfig b/arch/mips/bcm47xx/Kconfig
index fc21d36..51ed599 100644
--- a/arch/mips/bcm47xx/Kconfig
+++ b/arch/mips/bcm47xx/Kconfig
@@ -25,7 +25,6 @@ config BCM47XX_BCMA
......@@ -30,6 +28,3 @@ index fc21d36..51ed599 100644
select BCMA_DRIVER_PCI_HOSTMODE if PCI
select BCMA_DRIVER_GPIO
default y
--
1.8.4.5
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -1928,6 +1928,53 @@
.spis = DGND3700v1_3800B_spi_devices,
@@ -1930,6 +1930,53 @@ static struct board_info __initdata boar
.num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
+};
+
};
+static struct board_info __initdata board_HG655b = {
+ .name = "HW65x",
+ .expected_cpu_id = 0x6368,
......@@ -51,10 +49,12 @@
+ },
+ },
+ },
};
+};
+
static struct sprom_fixup __initdata vr3025u_fixups[] = {
@@ -2380,6 +2427,7 @@
{ .offset = 97, .value = 0xfeb3 },
{ .offset = 98, .value = 0x1618 },
@@ -2380,6 +2427,7 @@ static const struct board_info __initcon
&board_96368mvwg,
&board_96368mvngr,
&board_DGND3700v1_3800B,
......@@ -62,7 +62,7 @@
&board_P870HW51A_V2,
&board_VR3025u,
&board_VR3025un,
@@ -2483,6 +2531,7 @@
@@ -2483,6 +2531,7 @@ static struct of_device_id const bcm963x
{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
......
......@@ -45,53 +45,53 @@ Miklos
--- a/fs/overlayfs/copy_up.c
+++ b/fs/overlayfs/copy_up.c
@@ -300,6 +300,9 @@ int ovl_copy_up_one(struct dentry *paren
struct cred *override_cred;
char *link = NULL;
struct cred *override_cred;
char *link = NULL;
+ if (WARN_ON(!workdir))
+ return -EROFS;
+
ovl_path_upper(parent, &parentpath);
upperdir = parentpath.dentry;
ovl_path_upper(parent, &parentpath);
upperdir = parentpath.dentry;
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -222,6 +222,9 @@ static struct dentry *ovl_clear_empty(st
struct kstat stat;
int err;
struct kstat stat;
int err;
+ if (WARN_ON(!workdir))
+ return ERR_PTR(-EROFS);
+
err = ovl_lock_rename_workdir(workdir, upperdir);
if (err)
goto out;
err = ovl_lock_rename_workdir(workdir, upperdir);
if (err)
goto out;
@@ -322,6 +325,9 @@ static int ovl_create_over_whiteout(stru
struct dentry *newdentry;
int err;
struct dentry *newdentry;
int err;
+ if (WARN_ON(!workdir))
+ return -EROFS;
+
err = ovl_lock_rename_workdir(workdir, upperdir);
if (err)
goto out;
err = ovl_lock_rename_workdir(workdir, upperdir);
if (err)
goto out;
@@ -506,6 +512,9 @@ static int ovl_remove_and_whiteout(struc
struct dentry *opaquedir = NULL;
int err;
struct dentry *opaquedir = NULL;
int err;
+ if (WARN_ON(!workdir))
+ return -EROFS;
+
if (is_dir) {
opaquedir = ovl_check_empty_and_clear(dentry);
err = PTR_ERR(opaquedir);
if (is_dir) {
opaquedir = ovl_check_empty_and_clear(dentry);
err = PTR_ERR(opaquedir);
--- a/fs/overlayfs/super.c
+++ b/fs/overlayfs/super.c
@@ -740,9 +740,15 @@ static int ovl_fill_super(struct super_b
ufs->workdir = ovl_workdir_create(ufs->upper_mnt, workpath.dentry);
err = PTR_ERR(ufs->workdir);
if (IS_ERR(ufs->workdir)) {
ufs->workdir = ovl_workdir_create(ufs->upper_mnt, workpath.dentry);
err = PTR_ERR(ufs->workdir);
if (IS_ERR(ufs->workdir)) {
- pr_err("overlayfs: failed to create directory %s/%s\n",
- ufs->config.workdir, OVL_WORKDIR_NAME);
- goto out_put_lower_mnt;
......@@ -104,6 +104,6 @@ Miklos
+ ufs->config.workdir, OVL_WORKDIR_NAME);
+ goto out_put_lower_mnt;
+ }
}
/*
}
/*
......@@ -10,7 +10,7 @@
{USB_DEVICE(0x0af0, 0xd155)},
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1323,6 +1323,12 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
@@ -1330,6 +1330,12 @@ UNUSUAL_DEV( 0x0af0, 0x8304, 0x0000, 0x0
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
0 ),
......
......@@ -138,7 +138,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
/*
* Define if arch has non-standard setup. This is a _PCI_ standard
@@ -862,6 +865,12 @@ struct ata_port {
@@ -871,6 +874,12 @@ struct ata_port {
#ifdef CONFIG_ATA_ACPI
struct ata_acpi_gtm __acpi_init_gtm; /* use ata_acpi_init_gtm() */
#endif
......
......@@ -15,9 +15,6 @@ Signed-off-by: Lee Jones <lee.jones@linaro.org>
create mode 100644 Documentation/devicetree/bindings/mfd/qcom-rpm.txt
create mode 100644 include/dt-bindings/mfd/qcom-rpm.h
diff --git a/Documentation/devicetree/bindings/mfd/qcom-rpm.txt b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
new file mode 100644
index 0000000..85e3198
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/qcom-rpm.txt
@@ -0,0 +1,70 @@
......@@ -91,9 +88,6 @@ index 0000000..85e3198
+ #size-cells = <0>;
+ };
+
diff --git a/include/dt-bindings/mfd/qcom-rpm.h b/include/dt-bindings/mfd/qcom-rpm.h
new file mode 100644
index 0000000..388a6f3
--- /dev/null
+++ b/include/dt-bindings/mfd/qcom-rpm.h
@@ -0,0 +1,154 @@
......@@ -251,6 +245,3 @@ index 0000000..388a6f3
+#define QCOM_RPM_FORCE_MODE_BYPASS 4
+
+#endif
--
2.1.4
......@@ -193,7 +193,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
if (ltq_pci_plat_arch_init)
return ltq_pci_plat_arch_init(dev);
@@ -25,5 +31,10 @@
@@ -25,5 +31,10 @@ int pcibios_plat_dev_init(struct pci_dev
int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
{
......
......@@ -140,9 +140,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name)
{
struct gpio_chip *chip;
unsigned long flags;
int status;
@@ -557,6 +557,8 @@ int gpiod_export(struct gpio_desc *desc,
@@ -566,6 +566,8 @@ int gpiod_export(struct gpio_desc *desc,
offset = gpio_chip_hwgpio(desc);
if (desc->chip->names && desc->chip->names[offset])
ioname = desc->chip->names[offset];
......@@ -151,7 +151,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
dev = device_create_with_groups(&gpio_class, desc->chip->dev,
MKDEV(0, 0), desc, gpio_groups,
@@ -593,6 +595,12 @@ fail_unlock:
@@ -602,6 +604,12 @@ fail_unlock:
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
return status;
}
......
......@@ -10,8 +10,6 @@ Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Acked-by: John Crispin <blogic@openwrt.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
diff --git a/drivers/gpio/gpio-stp-xway.c b/drivers/gpio/gpio-stp-xway.c
index 202361e..6d4148f 100644
--- a/drivers/gpio/gpio-stp-xway.c
+++ b/drivers/gpio/gpio-stp-xway.c
@@ -58,7 +58,7 @@
......
......@@ -9,16 +9,16 @@
#include "ifxmips_pcie.h"
#include "ifxmips_pcie_reg.h"
@@ -1048,7 +1050,7 @@ pcie_rc_initialize(int pcie_port)
extern int (*ltq_pci_plat_arch_init)(struct pci_dev *dev);
extern int (*ltq_pci_map_irq)(const struct pci_dev *dev, u8 slot, u8 pin);
@@ -1045,7 +1047,7 @@ pcie_rc_initialize(int pcie_port)
return 0;
}
-static int __init ifx_pcie_bios_init(void)
+static int __init ifx_pcie_bios_probe(struct platform_device *pdev)
{
void __iomem *io_map_base;
int pcie_port;
@@ -1090,6 +1092,30 @@ static int __init ifx_pcie_bios_init(voi
@@ -1083,6 +1085,30 @@ static int __init ifx_pcie_bios_init(voi
return 0;
}
......
......@@ -81,7 +81,7 @@ Signed-off-by: Jason Cooper <jason@lakedaemon.net>
marvell,function = "gpio";
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -77,7 +77,7 @@
@@ -81,7 +81,7 @@
serial@12100 {
status = "okay";
};
......
......@@ -231,7 +231,7 @@ Signed-off-by: Jason Cooper <jason@lakedaemon.net>
+};
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -77,12 +77,7 @@
@@ -81,12 +81,7 @@
serial@12100 {
status = "okay";
};
......@@ -245,7 +245,7 @@ Signed-off-by: Jason Cooper <jason@lakedaemon.net>
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
@@ -187,3 +182,10 @@
@@ -191,3 +186,10 @@
};
};
};
......
This patch is a partial backport of commit ef01c6c36bb8 ("ARM: mvebu:
remove Armada 375 Z1 workaround for I/O coherency"). This commit was
merged in v3.19, so kernel versions later than v3.19 are not affected
by the problem that this commit fixes.
It does not make a lot of sense to backport this commit entirely,
since it is mainly removing some no longer useful code. However, this
commit is also making sure that the bus_register_notifier that
register the custom DMA operations that should be used for HW I/O
coherency does not get registered when said HW I/O coherency is not
enabled.
This is particularly critical since we have decided to disable HW I/O
coherency completely in all kernels < 4.0, to be on the safe side,
while experimenting a new implementation of the HW I/O coherency in >=
4.0.
Without this commit, kernels earlier than 3.18 have the custom DMA
operations normally used for HW I/O coherency registered (they don't
do cache maintenance operations), while HW I/O coherency is
disabled. It essentially causes every DMA transfer to transfer
garbage.
The issue fixed by this commit was introduced by 5ab5afd8ba83 ("ARM:
mvebu: implement Armada 375 coherency workaround"), but it was not
visible until now since it didn't cause any problem when HW I/O
coherency is enabled.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: <stable@vger.kernel.org> v3.16..v3.18
---
arch/arm/mach-mvebu/coherency.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/arch/arm/mach-mvebu/coherency.c
+++ b/arch/arm/mach-mvebu/coherency.c
@@ -391,8 +391,9 @@ static int __init coherency_late_init(vo
armada_375_coherency_init_wa();
}
- bus_register_notifier(&platform_bus_type,
- &mvebu_hwcc_nb);
+ if (coherency_available())
+ bus_register_notifier(&platform_bus_type,
+ &mvebu_hwcc_nb);
return 0;
}
--- a/arch/arm/boot/dts/imx23-olinuxino.dts
+++ b/arch/arm/boot/dts/imx23-olinuxino.dts
@@ -88,6 +88,25 @@
@@ -89,6 +89,25 @@
usbphy0: usbphy@8007c000 {
status = "okay";
};
......@@ -26,8 +26,8 @@
};
};
@@ -125,4 +144,10 @@
gpios = <&gpio2 1 1>;
@@ -127,4 +146,10 @@
gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
};
};
+
......
......@@ -55,7 +55,7 @@
status = "disabled";
--- a/arch/arm/boot/dts/imx23-olinuxino.dts
+++ b/arch/arm/boot/dts/imx23-olinuxino.dts
@@ -73,6 +73,12 @@
@@ -74,6 +74,12 @@
status = "okay";
};
......@@ -68,7 +68,7 @@
duart: serial@80070000 {
pinctrl-names = "default";
pinctrl-0 = <&duart_pins_a>;
@@ -88,7 +94,7 @@
@@ -89,7 +95,7 @@
usbphy0: usbphy@8007c000 {
status = "okay";
};
......
......@@ -36,7 +36,7 @@
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -891,6 +891,8 @@ struct ata_port_operations {
@@ -900,6 +900,8 @@ struct ata_port_operations {
void (*qc_prep)(struct ata_queued_cmd *qc);
unsigned int (*qc_issue)(struct ata_queued_cmd *qc);
bool (*qc_fill_rtf)(struct ata_queued_cmd *qc);
......@@ -45,7 +45,7 @@
/*
* Configuration and exception handling
@@ -981,6 +983,9 @@ struct ata_port_operations {
@@ -990,6 +992,9 @@ struct ata_port_operations {
void (*phy_reset)(struct ata_port *ap);
void (*eng_timeout)(struct ata_port *ap);
......
......@@ -140,9 +140,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
-int gpiod_export(struct gpio_desc *desc, bool direction_may_change)
+int __gpiod_export(struct gpio_desc *desc, bool direction_may_change, const char *name)
{
struct gpio_chip *chip;
unsigned long flags;
int status;
@@ -557,6 +557,8 @@ int gpiod_export(struct gpio_desc *desc,
@@ -566,6 +566,8 @@ int gpiod_export(struct gpio_desc *desc,
offset = gpio_chip_hwgpio(desc);
if (desc->chip->names && desc->chip->names[offset])
ioname = desc->chip->names[offset];
......@@ -151,7 +151,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
dev = device_create_with_groups(&gpio_class, desc->chip->dev,
MKDEV(0, 0), desc, gpio_groups,
@@ -593,6 +595,12 @@ fail_unlock:
@@ -602,6 +604,12 @@ fail_unlock:
gpiod_dbg(desc, "%s: status %d\n", __func__, status);
return status;
}
......
......@@ -5089,7 +5089,7 @@
return 1;
}
@@ -2805,6 +2809,7 @@ static int prepare_ring(struct xhci_hcd
@@ -2810,6 +2814,7 @@ static int prepare_ring(struct xhci_hcd
next = ring->enqueue;
while (last_trb(xhci, ring, ring->enq_seg, next)) {
......@@ -5097,7 +5097,7 @@
/* If we're not dealing with 0.95 hardware or isoc rings
* on AMD 0.96 host, clear the chain bit.
*/
@@ -2814,6 +2819,9 @@ static int prepare_ring(struct xhci_hcd
@@ -2819,6 +2824,9 @@ static int prepare_ring(struct xhci_hcd
next->link.control &= cpu_to_le32(~TRB_CHAIN);
else
next->link.control |= cpu_to_le32(TRB_CHAIN);
......@@ -5107,7 +5107,7 @@
wmb();
next->link.control ^= cpu_to_le32(TRB_CYCLE);
@@ -2944,6 +2952,9 @@ static void giveback_first_trb(struct xh
@@ -2949,6 +2957,9 @@ static void giveback_first_trb(struct xh
start_trb->field[3] |= cpu_to_le32(start_cycle);
else
start_trb->field[3] &= cpu_to_le32(~TRB_CYCLE);
......@@ -5117,7 +5117,7 @@
xhci_ring_ep_doorbell(xhci, slot_id, ep_index, stream_id);
}
@@ -2999,6 +3010,29 @@ static u32 xhci_td_remainder(unsigned in
@@ -3004,6 +3015,29 @@ static u32 xhci_td_remainder(unsigned in
return (remainder >> 10) << 17;
}
......@@ -5147,7 +5147,7 @@
/*
* For xHCI 1.0 host controllers, TD size is the number of max packet sized
* packets remaining in the TD (*not* including this TRB).
@@ -3136,6 +3170,7 @@ static int queue_bulk_sg_tx(struct xhci_
@@ -3141,6 +3175,7 @@ static int queue_bulk_sg_tx(struct xhci_
}
/* Set the TRB length, TD size, and interrupter fields. */
......@@ -5155,7 +5155,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
@@ -3145,6 +3180,12 @@ static int queue_bulk_sg_tx(struct xhci_
@@ -3150,6 +3185,12 @@ static int queue_bulk_sg_tx(struct xhci_
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
......@@ -5168,7 +5168,7 @@
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
@@ -3207,6 +3248,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3212,6 +3253,9 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
int running_total, trb_buff_len, ret;
unsigned int total_packet_count;
u64 addr;
......@@ -5178,7 +5178,7 @@
if (urb->num_sgs)
return queue_bulk_sg_tx(xhci, mem_flags, urb, slot_id, ep_index);
@@ -3232,6 +3276,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3237,6 +3281,25 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
running_total += TRB_MAX_BUFF_SIZE;
}
/* FIXME: this doesn't deal with URB_ZERO_PACKET - need one more */
......@@ -5204,7 +5204,7 @@
ret = prepare_transfer(xhci, xhci->devs[slot_id],
ep_index, urb->stream_id,
@@ -3291,6 +3354,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3296,6 +3359,7 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
field |= TRB_ISP;
/* Set the TRB length, TD size, and interrupter fields. */
......@@ -5212,7 +5212,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
urb->transfer_buffer_length -
@@ -3300,6 +3364,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
@@ -3305,6 +3369,10 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
trb_buff_len, total_packet_count, urb,
num_trbs - 1);
}
......@@ -5223,7 +5223,7 @@
length_field = TRB_LEN(trb_buff_len) |
remainder |
TRB_INTR_TARGET(0);
@@ -3389,7 +3457,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3394,7 +3462,11 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field |= 0x1;
/* xHCI 1.0 6.4.1.2.1: Transfer Type field */
......@@ -5235,7 +5235,7 @@
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
field |= TRB_TX_TYPE(TRB_DATA_IN);
@@ -3413,7 +3485,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
@@ -3418,7 +3490,12 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
field = TRB_TYPE(TRB_DATA);
length_field = TRB_LEN(urb->transfer_buffer_length) |
......@@ -5248,7 +5248,7 @@
TRB_INTR_TARGET(0);
if (urb->transfer_buffer_length > 0) {
if (setup->bRequestType & USB_DIR_IN)
@@ -3536,6 +3613,9 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3541,6 +3618,9 @@ static int xhci_queue_isoc_tx(struct xhc
u64 start_addr, addr;
int i, j;
bool more_trbs_coming;
......@@ -5258,7 +5258,7 @@
ep_ring = xhci->devs[slot_id]->eps[ep_index].ring;
@@ -3549,6 +3629,21 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3554,6 +3634,21 @@ static int xhci_queue_isoc_tx(struct xhc
start_trb = &ep_ring->enqueue->generic;
start_cycle = ep_ring->cycle_state;
......@@ -5280,7 +5280,7 @@
urb_priv = urb->hcpriv;
/* Queue the first TRB, even if it's zero-length */
for (i = 0; i < num_tds; i++) {
@@ -3620,9 +3715,13 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3625,9 +3720,13 @@ static int xhci_queue_isoc_tx(struct xhc
} else {
td->last_trb = ep_ring->enqueue;
field |= TRB_IOC;
......@@ -5294,7 +5294,7 @@
/* Set BEI bit except for the last td */
if (i < num_tds - 1)
field |= TRB_BEI;
@@ -3637,6 +3736,7 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3642,6 +3741,7 @@ static int xhci_queue_isoc_tx(struct xhc
trb_buff_len = td_remain_len;
/* Set the TRB length, TD size, & interrupter fields. */
......@@ -5302,7 +5302,7 @@
if (xhci->hci_version < 0x100) {
remainder = xhci_td_remainder(
td_len - running_total);
@@ -3646,6 +3746,10 @@ static int xhci_queue_isoc_tx(struct xhc
@@ -3651,6 +3751,10 @@ static int xhci_queue_isoc_tx(struct xhc
total_packet_count, urb,
(trbs_per_td - j - 1));
}
......
--- a/arch/mips/ralink/Kconfig
+++ b/arch/mips/ralink/Kconfig
@@ -13,9 +13,9 @@
@@ -13,9 +13,9 @@ config CLKEVT_RT3352
select CEVT_SYSTICK_QUIRK
config RALINK_ILL_ACC
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment