LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .43
-LINUX_VERSION-4.4 = .52
+LINUX_VERSION-4.4 = .59
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
-LINUX_KERNEL_HASH-4.4.52 = e8d2ddaece73e1a34e045bbdcdcc1383f658e24537797f8d8e0dd520cf1b1f06
+LINUX_KERNEL_HASH-4.4.59 = 64e9523c4c7fdaf391a16dd19541bb58e39943cb2151aa0c3d15b6aeaba996ca
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
} while (word != stop);
return csum_fold(csum);
-@@ -212,73 +216,6 @@ static inline __sum16 ip_compute_csum(co
+@@ -214,73 +218,6 @@ static inline __sum16 ip_compute_csum(co
return csum_fold(csum_partial(buff, len, 0));
}
#include <linux/uaccess.h>
#include <linux/ipv6.h>
#include <linux/icmpv6.h>
-@@ -779,10 +780,10 @@ static void tcp_v6_send_response(const s
+@@ -781,10 +782,10 @@ static void tcp_v6_send_response(const s
topt = (__be32 *)(t1 + 1);
if (tsecr) {
Makefile | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/Makefile b/Makefile
-index 1099371..c17219e 100644
--- a/Makefile
+++ b/Makefile
@@ -619,6 +619,8 @@ include arch/$(SRCARCH)/Makefile
+KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- KBUILD_CFLAGS += -Os
---
-2.1.4
-
+ KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)
Makefile | 2 --
1 file changed, 2 deletions(-)
-diff --git a/Makefile b/Makefile
-index c17219e..1099371 100644
--- a/Makefile
+++ b/Makefile
@@ -619,8 +619,6 @@ include arch/$(SRCARCH)/Makefile
-KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
- KBUILD_CFLAGS += -Os
---
-2.1.4
-
+ KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)
arch/arm/boot/dts/Makefile | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index cbfc8ba..14a491c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -806,10 +806,11 @@ dtstree := $(srctree)/$(src)
DTC_FLAGS ?= -@ -H epapr
+ dts-dirs += overlays
endif
---
-2.1.4
-
arch/arm/boot/dts/bcm2708_common.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm/boot/dts/bcm2708_common.dtsi b/arch/arm/boot/dts/bcm2708_common.dtsi
-index c449493..a9fd97e 100644
--- a/arch/arm/boot/dts/bcm2708_common.dtsi
+++ b/arch/arm/boot/dts/bcm2708_common.dtsi
@@ -456,7 +456,7 @@
};
clk_apb_p: clock@3 {
---
-2.1.4
-
drivers/media/platform/bcm2835/bcm2835-camera.c | 1 +
1 file changed, 1 insertion(+)
-diff --git a/drivers/media/platform/bcm2835/bcm2835-camera.c b/drivers/media/platform/bcm2835/bcm2835-camera.c
-index a2cfff9..23ba458 100644
--- a/drivers/media/platform/bcm2835/bcm2835-camera.c
+++ b/drivers/media/platform/bcm2835/bcm2835-camera.c
-@@ -1397,6 +1397,7 @@ static int vidioc_s_parm(struct file *file, void *priv,
+@@ -1397,6 +1397,7 @@ static int vidioc_s_parm(struct file *fi
dev->capture.timeperframe = tpf;
parm->parm.capture.timeperframe = tpf;
parm->parm.capture.readbuffers = 1;
fps_param.num = 0; /* Select variable fps, and then use
* FPS_RANGE to select the actual limits.
---
-2.1.4
-
3 files changed, 57 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index 57d60a4..c4186aa 100644
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -28,6 +28,7 @@ dtbo-$(RPI_DT_OVERLAYS) += dpi24.dtbo
dtbo-$(RPI_DT_OVERLAYS) += gpio-ir.dtbo
dtbo-$(RPI_DT_OVERLAYS) += gpio-poweroff.dtbo
dtbo-$(RPI_DT_OVERLAYS) += hifiberry-amp.dtbo
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index 35c0cec1..4a77ee6 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
-@@ -344,13 +344,21 @@ Params: dr_mode Dual role mode: "host", "peripheral" or "otg"
+@@ -344,12 +344,20 @@ Params: dr_mode Dual rol
Name: enc28j60
speed SPI bus speed (default 12000000)
-
++
+Name: enc28j60-spi2
+Info: Overlay for the Microchip ENC28J60 Ethernet Controller on SPI2
+Load: dtoverlay=enc28j60-spi2,<param>=<val>
+
+ speed SPI bus speed (default 12000000)
+
-+
+
Name: gpio-ir
Info: Use GPIO pin as rc-core style infrared receiver input. The rc-core-
- based gpio_ir_recv driver maps received keys directly to a
-diff --git a/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts b/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
-new file mode 100644
-index 0000000..946c9d2
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/enc28j60-spi2-overlay.dts
@@ -0,0 +1,47 @@
+ speed = <ð1>, "spi-max-frequency:0";
+ };
+};
---
-2.1.4
-
drivers/staging/media/lirc/lirc_rpi.c | 6 ------
1 file changed, 6 deletions(-)
-diff --git a/drivers/staging/media/lirc/lirc_rpi.c b/drivers/staging/media/lirc/lirc_rpi.c
-index 6132896..ebbf0d6 100644
--- a/drivers/staging/media/lirc/lirc_rpi.c
+++ b/drivers/staging/media/lirc/lirc_rpi.c
@@ -64,8 +64,6 @@
module_param(sense, int, S_IRUGO);
MODULE_PARM_DESC(sense, "Override autodetection of IR receiver circuit"
" (0 = active high, 1 = active low )");
---
-2.1.4
-
3 files changed, 45 insertions(+), 2 deletions(-)
create mode 100644 arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index c4186aa..bc7f4a9 100644
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -42,6 +42,7 @@ dtbo-$(RPI_DT_OVERLAYS) += i2c-gpio.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c0-bcm2708.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2c1-bcm2708.dtbo
dtbo-$(RPI_DT_OVERLAYS) += i2s-gpio28-31.dtbo
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index 4a77ee6..80ea3de 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
-@@ -283,8 +283,7 @@ Params: swap_lr Reverse the channel allocation, which will also
+@@ -283,8 +283,7 @@ Params: swap_lr Reverse
Name: bmp085_i2c-sensor
Load: dtoverlay=bmp085_i2c-sensor
Params: <None>
-@@ -536,6 +535,15 @@ Params: abx80x Select one of the ABx80x family:
+@@ -536,6 +535,15 @@ Params: abx80x Select o
source
Name: i2c0-bcm2708
Info: Enable the i2c_bcm2708 driver for the i2c0 bus. Not all pin combinations
are usable on all platforms.
-diff --git a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
-new file mode 100644
-index 0000000..f6d134c
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
@@ -0,0 +1,34 @@
+ bmp280 = <&bmp280>,"status";
+ };
+};
---
-2.1.4
-
arch/arm/boot/dts/overlays/README | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index 80ea3de..7aee1af 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -61,7 +61,7 @@ this becomes a line in config.txt:
default it will use GPIOs 17 (out) and 18 (in), but this can be modified using
DT parameters:
---
-2.1.4
-
drivers/hid/hid-dr.c | 58 ----------------------------------------------------
1 file changed, 58 deletions(-)
-diff --git a/drivers/hid/hid-dr.c b/drivers/hid/hid-dr.c
-index 1d78ba3..ce06444 100644
--- a/drivers/hid/hid-dr.c
+++ b/drivers/hid/hid-dr.c
@@ -234,58 +234,6 @@ static __u8 pid0011_rdesc_fixed[] = {
static __u8 *dr_report_fixup(struct hid_device *hdev, __u8 *rdesc,
unsigned int *rsize)
{
-@@ -296,12 +244,6 @@ static __u8 *dr_report_fixup(struct hid_device *hdev, __u8 *rdesc,
+@@ -296,12 +244,6 @@ static __u8 *dr_report_fixup(struct hid_
*rsize = sizeof(pid0011_rdesc_fixed);
}
break;
}
return rdesc;
}
---
-2.1.4
-
drivers/char/hw_random/bcm2835-rng.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
-diff --git a/drivers/char/hw_random/bcm2835-rng.c b/drivers/char/hw_random/bcm2835-rng.c
-index 7192ec2..2ff49c1 100644
--- a/drivers/char/hw_random/bcm2835-rng.c
+++ b/drivers/char/hw_random/bcm2835-rng.c
-@@ -62,9 +62,10 @@ static int bcm2835_rng_probe(struct platform_device *pdev)
+@@ -62,9 +62,10 @@ static int bcm2835_rng_probe(struct plat
bcm2835_rng_ops.priv = (unsigned long)rng_base;
/* set warm-up count & enable */
/* register driver */
err = hwrng_register(&bcm2835_rng_ops);
if (err) {
---
-2.1.4
-
sound/soc/bcm/pisound.c | 2 +
2 files changed, 52 insertions(+), 44 deletions(-)
-diff --git a/arch/arm/boot/dts/overlays/pisound-overlay.dts b/arch/arm/boot/dts/overlays/pisound-overlay.dts
-index 7cdfc29..5197e65 100644
--- a/arch/arm/boot/dts/overlays/pisound-overlay.dts
+++ b/arch/arm/boot/dts/overlays/pisound-overlay.dts
@@ -26,6 +26,54 @@
- };
- };
};
-diff --git a/sound/soc/bcm/pisound.c b/sound/soc/bcm/pisound.c
-index a3cd089..30903fcf 100644
--- a/sound/soc/bcm/pisound.c
+++ b/sound/soc/bcm/pisound.c
-@@ -954,6 +954,8 @@ static int pisnd_probe(struct platform_device *pdev)
+@@ -954,6 +954,8 @@ static int pisnd_probe(struct platform_d
static int pisnd_remove(struct platform_device *pdev)
{
if (pisnd_kobj) {
kobject_put(pisnd_kobj);
pisnd_kobj = NULL;
---
-2.1.4
-
arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts | 49 +++++++++++++----------
2 files changed, 31 insertions(+), 21 deletions(-)
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index 7aee1af..44ad21f 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
-@@ -543,6 +543,9 @@ Params: bmp085 Select the Bosch sensortronic BMP085
+@@ -543,6 +543,9 @@ Params: bmp085 Select t
bmp280 Select the Bosch sensortronic BMP280
Name: i2c0-bcm2708
Info: Enable the i2c_bcm2708 driver for the i2c0 bus. Not all pin combinations
-diff --git a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
-index f6d134c..31bda8d 100644
--- a/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
+++ b/arch/arm/boot/dts/overlays/i2c-sensor-overlay.dts
@@ -1,34 +1,41 @@
- #address-cells = <1>;
- #size-cells = <0>;
- status = "okay";
-+ fragment@0 {
-+ target = <&i2c_arm>;
-+ __overlay__ {
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+ status = "okay";
-
+-
- bmp085: bmp085@77 {
- compatible = "bosch,bmp085";
- reg = <0x77>;
- default-oversampling = <3>;
- status = "disable";
- };
-+ bmp085: bmp085@77 {
-+ compatible = "bosch,bmp085";
-+ reg = <0x77>;
-+ default-oversampling = <3>;
-+ status = "disable";
-+ };
-
+-
- bmp280: bmp280@76 {
- compatible = "bosch,bmp280";
- reg = <0x76>;
- };
- };
- };
++ fragment@0 {
++ target = <&i2c_arm>;
++ __overlay__ {
++ #address-cells = <1>;
++ #size-cells = <0>;
++ status = "okay";
++
++ bmp085: bmp085@77 {
++ compatible = "bosch,bmp085";
++ reg = <0x77>;
++ default-oversampling = <3>;
++ status = "disable";
++ };
++
+ bmp280: bmp280@76 {
+ compatible = "bosch,bmp280";
+ reg = <0x76>;
+ si7020 = <&si7020>,"status";
};
};
---
-2.1.4
-
sound/soc/bcm/pisound.c | 175 ++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 154 insertions(+), 21 deletions(-)
-diff --git a/sound/soc/bcm/pisound.c b/sound/soc/bcm/pisound.c
-index 30903fcf..d317eb9 100644
--- a/sound/soc/bcm/pisound.c
+++ b/sound/soc/bcm/pisound.c
@@ -36,6 +36,7 @@
DEFINE_KFIFO(spi_fifo_in, uint8_t, FIFO_SIZE);
DEFINE_KFIFO(spi_fifo_out, uint8_t, FIFO_SIZE);
-@@ -396,8 +400,13 @@ static void pisnd_work_handler(struct work_struct *work)
+@@ -396,8 +400,13 @@ static void pisnd_work_handler(struct wo
val = 0;
tx = 0;
rx = spi_transfer16(tx);
-@@ -410,6 +419,7 @@ static void pisnd_work_handler(struct work_struct *work)
+@@ -410,6 +419,7 @@ static void pisnd_work_handler(struct wo
} while (rx != 0
|| !kfifo_is_empty(&spi_fifo_out)
|| pisnd_spi_has_more()
);
if (!kfifo_is_empty(&spi_fifo_in) && g_recvCallback)
-@@ -569,7 +579,7 @@ static int pisnd_spi_init(struct device *dev)
+@@ -569,7 +579,7 @@ static int pisnd_spi_init(struct device
}
/* Flash the LEDs. */
static void pisnd_spi_send(uint8_t val)
{
kfifo_put(&spi_fifo_out, val);
-@@ -658,6 +676,83 @@ static const struct of_device_id pisound_of_match[] = {
+@@ -658,6 +676,83 @@ static const struct of_device_id pisound
{},
};
printd("rate = %d\n", params_rate(params));
printd("ch = %d\n", params_channels(params));
printd("bits = %u\n",
-@@ -711,16 +814,6 @@ static struct snd_pcm_hw_constraint_list constraints_rates = {
+@@ -711,16 +814,6 @@ static struct snd_pcm_hw_constraint_list
.mask = 0,
};
static int pisnd_startup(struct snd_pcm_substream *substream)
{
int err = snd_pcm_hw_constraint_list(
-@@ -733,11 +826,21 @@ static int pisnd_startup(struct snd_pcm_substream *substream)
+@@ -733,11 +826,21 @@ static int pisnd_startup(struct snd_pcm_
if (err < 0)
return err;
);
if (err < 0)
-@@ -771,14 +874,23 @@ static int pisnd_card_probe(struct snd_soc_card *card)
+@@ -771,14 +874,23 @@ static int pisnd_card_probe(struct snd_s
{
int err = pisnd_midi_init(card->snd_card);
NULL
};
---
-2.1.4
-
sound/soc/bcm/justboom-digi.c | 1 +
2 files changed, 2 insertions(+)
-diff --git a/sound/soc/bcm/justboom-dac.c b/sound/soc/bcm/justboom-dac.c
-index 8fd50db..05a224e 100644
--- a/sound/soc/bcm/justboom-dac.c
+++ b/sound/soc/bcm/justboom-dac.c
-@@ -98,6 +98,7 @@ static struct snd_soc_dai_link snd_rpi_justboom_dac_dai[] = {
+@@ -98,6 +98,7 @@ static struct snd_soc_dai_link snd_rpi_j
/* audio machine driver */
static struct snd_soc_card snd_rpi_justboom_dac = {
.name = "snd_rpi_justboom_dac",
.owner = THIS_MODULE,
.dai_link = snd_rpi_justboom_dac_dai,
.num_links = ARRAY_SIZE(snd_rpi_justboom_dac_dai),
-diff --git a/sound/soc/bcm/justboom-digi.c b/sound/soc/bcm/justboom-digi.c
-index 91acb66..abfdc5c 100644
--- a/sound/soc/bcm/justboom-digi.c
+++ b/sound/soc/bcm/justboom-digi.c
-@@ -154,6 +154,7 @@ static struct snd_soc_dai_link snd_rpi_justboom_digi_dai[] = {
+@@ -154,6 +154,7 @@ static struct snd_soc_dai_link snd_rpi_j
/* audio machine driver */
static struct snd_soc_card snd_rpi_justboom_digi = {
.name = "snd_rpi_justboom_digi",
.owner = THIS_MODULE,
.dai_link = snd_rpi_justboom_digi_dai,
.num_links = ARRAY_SIZE(snd_rpi_justboom_digi_dai),
---
-2.1.4
-
sound/soc/bcm/bcm2835-i2s.c | 54 +++++++++++++++++++++++++++++++--------------
1 file changed, 38 insertions(+), 16 deletions(-)
-diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c
-index aedb01f..d2b0801 100644
--- a/sound/soc/bcm/bcm2835-i2s.c
+++ b/sound/soc/bcm/bcm2835-i2s.c
-@@ -310,6 +310,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -310,6 +310,7 @@ static int bcm2835_i2s_hw_params(struct
unsigned int sampling_rate = params_rate(params);
unsigned int data_length, data_delay, bclk_ratio;
unsigned int ch1pos, ch2pos, mode, format;
unsigned int mash = BCM2835_CLK_MASH_1;
unsigned int divi, divf, target_frequency;
int clk_src = -1;
-@@ -320,6 +321,7 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -320,6 +321,7 @@ static int bcm2835_i2s_hw_params(struct
bool frame_master = (master == SND_SOC_DAIFMT_CBS_CFS
|| master == SND_SOC_DAIFMT_CBM_CFS);
uint32_t csreg;
/*
* If a stream is already enabled,
-@@ -465,26 +467,46 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -465,26 +467,46 @@ static int bcm2835_i2s_hw_params(struct
return -EINVAL;
}
}
mode |= BCM2835_I2S_FLEN(bclk_ratio - 1);
---
-2.1.4
-
3 files changed, 20 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index bc7f4a9..05eda03 100644
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -61,6 +61,7 @@ dtbo-$(RPI_DT_OVERLAYS) += mmc.dtbo
dtbo-$(RPI_DT_OVERLAYS) += pi3-miniuart-bt.dtbo
dtbo-$(RPI_DT_OVERLAYS) += piscreen.dtbo
dtbo-$(RPI_DT_OVERLAYS) += piscreen2r.dtbo
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index 44ad21f..adb86bc 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -793,6 +793,12 @@ Load: dtoverlay=pi3-disable-bt
Name: pi3-miniuart-bt
Info: Switch Pi3 Bluetooth function to use the mini-UART (ttyS0) and restore
UART0/ttyAMA0 over GPIOs 14 & 15. Note that this may reduce the maximum
-diff --git a/arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts b/arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
-new file mode 100644
-index 0000000..0171995
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/pi3-disable-wifi-overlay.dts
@@ -0,0 +1,13 @@
+ };
+ };
+};
---
-2.1.4
-
fs/configfs/file.c | 2 --
1 file changed, 2 deletions(-)
-diff --git a/fs/configfs/file.c b/fs/configfs/file.c
-index 3687187..6e322f2 100644
--- a/fs/configfs/file.c
+++ b/fs/configfs/file.c
-@@ -357,8 +357,6 @@ configfs_write_bin_file(struct file *file, const char __user *buf,
+@@ -357,8 +357,6 @@ configfs_write_bin_file(struct file *fil
len = simple_write_to_buffer(buffer->bin_buffer,
buffer->bin_buffer_size, ppos, buf, count);
out:
mutex_unlock(&buffer->mutex);
return len;
---
-2.1.4
-
arch/arm/configs/bcmrpi_defconfig | 1 +
2 files changed, 2 insertions(+)
-diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
-index c7606f2..0d07eed 100644
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -438,6 +438,7 @@ CONFIG_BLK_DEV_DM=m
CONFIG_DM_MIRROR=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_RAID=m
-diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
-index 8121ad2..51640cb 100644
--- a/arch/arm/configs/bcmrpi_defconfig
+++ b/arch/arm/configs/bcmrpi_defconfig
@@ -431,6 +431,7 @@ CONFIG_BLK_DEV_DM=m
CONFIG_DM_MIRROR=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_RAID=m
---
-2.1.4
-
3 files changed, 38 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/boot/dts/overlays/spi0-cs-overlay.dts
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index 05eda03..72f2d90a 100644
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -93,6 +93,7 @@ dtbo-$(RPI_DT_OVERLAYS) += smi-dev.dtbo
dtbo-$(RPI_DT_OVERLAYS) += spi0-hw-cs.dtbo
dtbo-$(RPI_DT_OVERLAYS) += spi1-1cs.dtbo
dtbo-$(RPI_DT_OVERLAYS) += spi1-2cs.dtbo
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index adb86bc..7f4bd29 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1131,7 +1131,7 @@ Params: <None>
Name: spi0-hw-cs
Info: Re-enables hardware CS/CE (chip selects) for SPI0
Load: dtoverlay=spi0-hw-cs
-diff --git a/arch/arm/boot/dts/overlays/spi0-cs-overlay.dts b/arch/arm/boot/dts/overlays/spi0-cs-overlay.dts
-new file mode 100644
-index 0000000..7f79029
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/spi0-cs-overlay.dts
@@ -0,0 +1,29 @@
+ <&frag1>,"cs-gpios:16";
+ };
+};
---
-2.1.4
-
sound/soc/bcm/bcm2835-i2s.c | 54 ++++++++++++++-------------------------------
1 file changed, 16 insertions(+), 38 deletions(-)
-diff --git a/sound/soc/bcm/bcm2835-i2s.c b/sound/soc/bcm/bcm2835-i2s.c
-index d2b0801..aedb01f 100644
--- a/sound/soc/bcm/bcm2835-i2s.c
+++ b/sound/soc/bcm/bcm2835-i2s.c
-@@ -310,7 +310,6 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -310,7 +310,6 @@ static int bcm2835_i2s_hw_params(struct
unsigned int sampling_rate = params_rate(params);
unsigned int data_length, data_delay, bclk_ratio;
unsigned int ch1pos, ch2pos, mode, format;
unsigned int mash = BCM2835_CLK_MASH_1;
unsigned int divi, divf, target_frequency;
int clk_src = -1;
-@@ -321,7 +320,6 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -321,7 +320,6 @@ static int bcm2835_i2s_hw_params(struct
bool frame_master = (master == SND_SOC_DAIFMT_CBS_CFS
|| master == SND_SOC_DAIFMT_CBM_CFS);
uint32_t csreg;
/*
* If a stream is already enabled,
-@@ -467,46 +465,26 @@ static int bcm2835_i2s_hw_params(struct snd_pcm_substream *substream,
+@@ -467,46 +465,26 @@ static int bcm2835_i2s_hw_params(struct
return -EINVAL;
}
}
mode |= BCM2835_I2S_FLEN(bclk_ratio - 1);
---
-2.1.4
-
arch/arm/boot/dts/bcm2710-rpi-cm3.dts | 4 ++++
1 file changed, 4 insertions(+)
-diff --git a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
-index 98e6f92..7ceb16b 100644
--- a/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
+++ b/arch/arm/boot/dts/bcm2710-rpi-cm3.dts
@@ -7,6 +7,10 @@
&gpio {
sdhost_pins: sdhost_pins {
brcm,pins = <48 49 50 51 52 53>;
---
-2.1.4
-
arch/arm/configs/bcmrpi_defconfig | 2 ++
2 files changed, 4 insertions(+)
-diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
-index 0d07eed..1085058 100644
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -407,7 +407,9 @@ CONFIG_DMA_CMA=y
CONFIG_MTD_UBI=m
CONFIG_OF_CONFIGFS=y
CONFIG_ZRAM=m
-diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
-index 51640cb..ca52c36 100644
--- a/arch/arm/configs/bcmrpi_defconfig
+++ b/arch/arm/configs/bcmrpi_defconfig
@@ -400,7 +400,9 @@ CONFIG_DMA_CMA=y
CONFIG_MTD_UBI=m
CONFIG_OF_CONFIGFS=y
CONFIG_ZRAM=m
---
-2.1.4
-
arch/arm/configs/bcm2709_defconfig | 15 +++++++++++++++
1 file changed, 15 insertions(+)
-diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
-index 1085058..19daca4 100644
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -969,6 +969,7 @@ CONFIG_USB_MICROTEK=m
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_BCM2835=y
---
-2.1.4
-
arch/arm/boot/dts/bcm2708-rpi-cm.dtsi | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
-index 0a3a962..ba0f316 100644
--- a/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
+++ b/arch/arm/boot/dts/bcm2708-rpi-cm.dtsi
@@ -36,6 +36,11 @@
/ {
__overrides__ {
core_freq = <&clk_core>,"clock-frequency:0";
---
-2.1.4
-
3 files changed, 215 insertions(+)
create mode 100755 arch/arm/boot/dts/overlays/mcp3008-overlay.dts
-diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
-index 72f2d90a..b13e340 100644
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -57,6 +57,7 @@ dtbo-$(RPI_DT_OVERLAYS) += mcp23017.dtbo
dtbo-$(RPI_DT_OVERLAYS) += mmc.dtbo
dtbo-$(RPI_DT_OVERLAYS) += mz61581.dtbo
dtbo-$(RPI_DT_OVERLAYS) += pi3-act-led.dtbo
-diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README
-index 7f4bd29..72601f8 100644
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
-@@ -736,6 +736,15 @@ Params: oscillator Clock frequency for the CAN controller (Hz)
+@@ -736,6 +736,15 @@ Params: oscillator Clock fr
interrupt GPIO for interrupt signal
Name: mmc
Info: Selects the bcm2835-mmc SD/MMC driver, optionally with overclock
Load: dtoverlay=mmc,<param>=<val>
-diff --git a/arch/arm/boot/dts/overlays/mcp3008-overlay.dts b/arch/arm/boot/dts/overlays/mcp3008-overlay.dts
-new file mode 100755
-index 0000000..06bf426
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/mcp3008-overlay.dts
@@ -0,0 +1,205 @@
+ spi2-2-speed = <&mcp3008_22>, "spi-max-frequency:0";
+ };
+};
---
-2.1.4
-
arch/x86/kernel/apic/io_apic.c | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index 8ca533b..1e5d2f0 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
-@@ -1875,6 +1875,7 @@ static struct irq_chip ioapic_chip __read_mostly = {
+@@ -1875,6 +1875,7 @@ static struct irq_chip ioapic_chip __rea
.irq_ack = irq_chip_ack_parent,
.irq_eoi = ioapic_ack_level,
.irq_set_affinity = ioapic_set_affinity,
.flags = IRQCHIP_SKIP_SET_WAKE,
};
-@@ -1886,6 +1887,7 @@ static struct irq_chip ioapic_ir_chip __read_mostly = {
+@@ -1886,6 +1887,7 @@ static struct irq_chip ioapic_ir_chip __
.irq_ack = irq_chip_ack_parent,
.irq_eoi = ioapic_ir_ack_level,
.irq_set_affinity = ioapic_set_affinity,
.flags = IRQCHIP_SKIP_SET_WAKE,
};
---
-2.1.4
-
arch/arm/configs/bcmrpi_defconfig | 1 +
2 files changed, 2 insertions(+)
-diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig
-index 19daca4..783d2c2 100644
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -358,6 +358,7 @@ CONFIG_BAYCOM_SER_HDX=m
CONFIG_CAN_MCP251X=m
CONFIG_IRDA=m
CONFIG_IRLAN=m
-diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig
-index ca52c36..be7bf41 100644
--- a/arch/arm/configs/bcmrpi_defconfig
+++ b/arch/arm/configs/bcmrpi_defconfig
@@ -351,6 +351,7 @@ CONFIG_BAYCOM_SER_HDX=m
CONFIG_CAN_MCP251X=m
CONFIG_IRDA=m
CONFIG_IRLAN=m
---
-2.1.4
-
drivers/gpu/drm/vc4/vc4_firmware_kms.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
-diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c
-index a1b6511..8f74382 100644
--- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c
+++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c
-@@ -312,6 +312,21 @@ static int vc4_crtc_atomic_check(struct drm_crtc *crtc,
+@@ -312,6 +312,21 @@ static int vc4_crtc_atomic_check(struct
static void vc4_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_crtc_state *old_state)
{
}
static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
---
-2.1.4
-
drivers/clk/bcm/clk-bcm2835.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index e9e8c25..3fbd2e8 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -1657,7 +1657,7 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1657,7 +1657,7 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_AUX,
.load_mask = CM_PLLH_LOADAUX,
.hold_mask = 0,
[BCM2835_PLLH_PIX] = REGISTER_PLL_DIV(
.name = "pllh_pix",
.source_pll = "pllh",
---
-2.1.4
-
drivers/clk/bcm/clk-bcm2835.c | 67 ++++++++++++++++++++++++++++++++++++++++---
1 file changed, 63 insertions(+), 4 deletions(-)
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index 3fbd2e8..5f0e2f3 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -457,6 +457,9 @@ struct bcm2835_clock_data {
struct clk_hw *parent, *best_parent = NULL;
bool current_parent_is_pllc;
unsigned long rate, best_rate = 0;
-@@ -1086,9 +1139,8 @@ static int bcm2835_clock_determine_rate(struct clk_hw *hw,
+@@ -1086,9 +1139,8 @@ static int bcm2835_clock_determine_rate(
if (bcm2835_clk_is_pllc(parent) && !current_parent_is_pllc)
continue;
if (rate > best_rate && rate <= req->rate) {
best_parent = parent;
best_prate = prate;
-@@ -1308,6 +1360,13 @@ static struct clk *bcm2835_register_clock(struct bcm2835_cprman *cprman,
+@@ -1308,6 +1360,13 @@ static struct clk *bcm2835_register_cloc
if ((cprman_read(cprman, data->ctl_reg) & CM_ENABLE) == 0)
init.flags &= ~CLK_IS_CRITICAL;
if (data->is_vpu_clock) {
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
---
-2.1.4
-
drivers/clk/bcm/clk-bcm2835.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index 5f0e2f3..d023e4a 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -1920,7 +1920,12 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1920,7 +1920,12 @@ static const struct bcm2835_clk_desc clk
.ctl_reg = CM_VECCTL,
.div_reg = CM_VECDIV,
.int_bits = 4,
/* dsi clocks */
[BCM2835_CLOCK_DSI0E] = REGISTER_PER_CLK(
---
-2.1.4
-
drivers/clk/bcm/clk-bcm2835.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index d023e4a..89dad97 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
-@@ -1067,7 +1067,7 @@ static unsigned long bcm2835_clock_choose_div_and_prate(struct clk_hw *hw,
+@@ -1067,7 +1067,7 @@ static unsigned long bcm2835_clock_choos
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data;
u32 curdiv, mindiv, maxdiv;
struct clk_hw *parent;
---
-2.1.4
-
drivers/clk/bcm/clk-bcm2835.c | 42 ++++++++++++++++++++++++++++--------------
1 file changed, 28 insertions(+), 14 deletions(-)
-diff --git a/drivers/clk/bcm/clk-bcm2835.c b/drivers/clk/bcm/clk-bcm2835.c
-index 89dad97..54cb4e1 100644
--- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -449,6 +449,7 @@ struct bcm2835_pll_divider_data {
};
struct bcm2835_clock_data {
-@@ -1286,7 +1287,7 @@ bcm2835_register_pll_divider(struct bcm2835_cprman *cprman,
+@@ -1286,7 +1287,7 @@ bcm2835_register_pll_divider(struct bcm2
init.num_parents = 1;
init.name = divider_name;
init.ops = &bcm2835_pll_divider_clk_ops;
divider = devm_kzalloc(cprman->dev, sizeof(*divider), GFP_KERNEL);
if (!divider)
-@@ -1525,7 +1526,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1525,7 +1526,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLA_CORE,
.load_mask = CM_PLLA_LOADCORE,
.hold_mask = CM_PLLA_HOLDCORE,
[BCM2835_PLLA_PER] = REGISTER_PLL_DIV(
.name = "plla_per",
.source_pll = "plla",
-@@ -1533,7 +1535,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1533,7 +1535,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLA_PER,
.load_mask = CM_PLLA_LOADPER,
.hold_mask = CM_PLLA_HOLDPER,
[BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV(
.name = "plla_dsi0",
.source_pll = "plla",
-@@ -1549,7 +1552,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1549,7 +1552,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLA_CCP2,
.load_mask = CM_PLLA_LOADCCP2,
.hold_mask = CM_PLLA_HOLDCCP2,
/* PLLB is used for the ARM's clock. */
[BCM2835_PLLB] = REGISTER_PLL(
-@@ -1573,7 +1577,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1573,7 +1577,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLB_ARM,
.load_mask = CM_PLLB_LOADARM,
.hold_mask = CM_PLLB_HOLDARM,
/*
* PLLC is the core PLL, used to drive the core VPU clock.
-@@ -1602,7 +1607,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1602,7 +1607,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_CORE0,
.load_mask = CM_PLLC_LOADCORE0,
.hold_mask = CM_PLLC_HOLDCORE0,
[BCM2835_PLLC_CORE1] = REGISTER_PLL_DIV(
.name = "pllc_core1",
.source_pll = "pllc",
-@@ -1610,7 +1616,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1610,7 +1616,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_CORE1,
.load_mask = CM_PLLC_LOADCORE1,
.hold_mask = CM_PLLC_HOLDCORE1,
[BCM2835_PLLC_CORE2] = REGISTER_PLL_DIV(
.name = "pllc_core2",
.source_pll = "pllc",
-@@ -1618,7 +1625,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1618,7 +1625,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_CORE2,
.load_mask = CM_PLLC_LOADCORE2,
.hold_mask = CM_PLLC_HOLDCORE2,
[BCM2835_PLLC_PER] = REGISTER_PLL_DIV(
.name = "pllc_per",
.source_pll = "pllc",
-@@ -1626,7 +1634,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1626,7 +1634,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_PER,
.load_mask = CM_PLLC_LOADPER,
.hold_mask = CM_PLLC_HOLDPER,
/*
* PLLD is the display PLL, used to drive DSI display panels.
-@@ -1655,7 +1664,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1655,7 +1664,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLD_CORE,
.load_mask = CM_PLLD_LOADCORE,
.hold_mask = CM_PLLD_HOLDCORE,
[BCM2835_PLLD_PER] = REGISTER_PLL_DIV(
.name = "plld_per",
.source_pll = "plld",
-@@ -1663,7 +1673,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1663,7 +1673,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLD_PER,
.load_mask = CM_PLLD_LOADPER,
.hold_mask = CM_PLLD_HOLDPER,
[BCM2835_PLLD_DSI0] = REGISTER_PLL_DIV(
.name = "plld_dsi0",
.source_pll = "plld",
-@@ -1708,7 +1719,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1708,7 +1719,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_RCAL,
.load_mask = CM_PLLH_LOADRCAL,
.hold_mask = 0,
[BCM2835_PLLH_AUX] = REGISTER_PLL_DIV(
.name = "pllh_aux",
.source_pll = "pllh",
-@@ -1716,7 +1728,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1716,7 +1728,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_AUX,
.load_mask = CM_PLLH_LOADAUX,
.hold_mask = 0,
[BCM2835_PLLH_PIX] = REGISTER_PLL_DIV(
.name = "pllh_pix",
.source_pll = "pllh",
-@@ -1724,7 +1737,8 @@ static const struct bcm2835_clk_desc clk_desc_array[] = {
+@@ -1724,7 +1737,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_PIX,
.load_mask = CM_PLLH_LOADPIX,
.hold_mask = 0,
/* the clocks */
---
-2.1.4
-
drivers/char/broadcom/bcm2835-gpiomem.c | 2 --
1 file changed, 2 deletions(-)
-diff --git a/drivers/char/broadcom/bcm2835-gpiomem.c b/drivers/char/broadcom/bcm2835-gpiomem.c
-index 911f5b7..f5e7f1b 100644
--- a/drivers/char/broadcom/bcm2835-gpiomem.c
+++ b/drivers/char/broadcom/bcm2835-gpiomem.c
-@@ -76,8 +76,6 @@ static int bcm2835_gpiomem_open(struct inode *inode, struct file *file)
+@@ -76,8 +76,6 @@ static int bcm2835_gpiomem_open(struct i
int dev = iminor(inode);
int ret = 0;
if (dev != DEVICE_MINOR) {
dev_err(inst->dev, "Unknown minor device: %d", dev);
ret = -ENXIO;
---
-2.1.4
-
drivers/gpu/drm/vc4/vc4_bo.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
-diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
-index 56b779c..ce8a5fd 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
-@@ -208,22 +208,23 @@ struct drm_gem_object *vc4_create_object(struct drm_device *dev, size_t size)
+@@ -208,22 +208,23 @@ struct drm_gem_object *vc4_create_object
}
struct vc4_bo *vc4_bo_create(struct drm_device *dev, size_t unaligned_size,
}
/* Otherwise, make a new BO. */
---
-2.1.4
-
drivers/gpu/drm/vc4/vc4_bo.c | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c
-index ce8a5fd..d7474dd 100644
--- a/drivers/gpu/drm/vc4/vc4_bo.c
+++ b/drivers/gpu/drm/vc4/vc4_bo.c
-@@ -334,6 +334,14 @@ void vc4_free_object(struct drm_gem_object *gem_bo)
+@@ -334,6 +334,14 @@ void vc4_free_object(struct drm_gem_obje
goto out;
}
cache_list = vc4_get_cache_list_for_size(dev, gem_bo->size);
if (!cache_list) {
vc4_bo_destroy(bo);
---
-2.1.4
-
mm/cma.c | 2 ++
3 files changed, 21 insertions(+)
-diff --git a/drivers/base/dma-contiguous.c b/drivers/base/dma-contiguous.c
-index e167a1e1..60f5c25 100644
--- a/drivers/base/dma-contiguous.c
+++ b/drivers/base/dma-contiguous.c
@@ -35,6 +35,7 @@
/*
* Default global CMA area size can be defined in kernel's .config.
-diff --git a/drivers/gpu/drm/vc4/vc4_v3d.c b/drivers/gpu/drm/vc4/vc4_v3d.c
-index 7cc346a..1d9e5a6 100644
--- a/drivers/gpu/drm/vc4/vc4_v3d.c
+++ b/drivers/gpu/drm/vc4/vc4_v3d.c
@@ -16,7 +16,10 @@
#include "linux/pm_runtime.h"
#include "vc4_drv.h"
#include "vc4_regs.h"
-@@ -185,8 +188,23 @@ static int vc4_v3d_bind(struct device *dev, struct device *master, void *data)
+@@ -185,8 +188,23 @@ static int vc4_v3d_bind(struct device *d
struct drm_device *drm = dev_get_drvdata(master);
struct vc4_dev *vc4 = to_vc4_dev(drm);
struct vc4_v3d *v3d = NULL;
v3d = devm_kzalloc(&pdev->dev, sizeof(*v3d), GFP_KERNEL);
if (!v3d)
return -ENOMEM;
-diff --git a/mm/cma.c b/mm/cma.c
-index bd0e141..efac29b 100644
--- a/mm/cma.c
+++ b/mm/cma.c
-@@ -47,11 +47,13 @@ phys_addr_t cma_get_base(const struct cma *cma)
+@@ -47,11 +47,13 @@ phys_addr_t cma_get_base(const struct cm
{
return PFN_PHYS(cma->base_pfn);
}
static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
int align_order)
---
-2.1.4
-
arch/arm/vfp/vfpmodule.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
-diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
-index 2a61e4b..7675518 100644
--- a/arch/arm/vfp/vfpmodule.c
+++ b/arch/arm/vfp/vfpmodule.c
-@@ -183,8 +183,11 @@ static int vfp_notifier(struct notifier_block *self, unsigned long cmd, void *v)
+@@ -183,8 +183,11 @@ static int vfp_notifier(struct notifier_
* case the thread migrates to a different CPU. The
* restoring is done lazily.
*/
vfp_save_state(vfp_current_hw_state[ti->cpu], fpexc);
fmxr(FPEXC, fpexc);
#endif
-@@ -536,7 +542,8 @@ void vfp_sync_hwstate(struct thread_info *thread)
+@@ -536,7 +542,8 @@ void vfp_sync_hwstate(struct thread_info
/*
* Save the last VFP state on this CPU.
*/
vfp_save_state(&thread->vfpstate, fpexc | FPEXC_EN);
fmxr(FPEXC, fpexc);
}
-@@ -608,6 +615,7 @@ int vfp_restore_user_hwstate(struct user_vfp __user *ufp,
+@@ -608,6 +615,7 @@ int vfp_restore_user_hwstate(struct user
struct vfp_hard_struct *hwstate = &thread->vfpstate.hard;
unsigned long fpexc;
int err = 0;
/* Disable VFP to avoid corrupting the new thread state. */
vfp_flush_hwstate(thread);
-@@ -631,8 +639,12 @@ int vfp_restore_user_hwstate(struct user_vfp __user *ufp,
+@@ -631,8 +639,12 @@ int vfp_restore_user_hwstate(struct user
/* Ensure the VFP is enabled. */
fpexc |= FPEXC_EN;
/*
* Save the userland NEON/VFP state. Under UP,
---
-2.1.4
-
drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
-index 2ceed42..5011750 100644
--- a/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
+++ b/drivers/usb/host/dwc_otg/dwc_otg_hcd_linux.c
-@@ -325,10 +325,12 @@ static int _complete(dwc_otg_hcd_t * hcd, void *urb_handle,
+@@ -325,10 +325,12 @@ static int _complete(dwc_otg_hcd_t * hcd
int i;
urb->error_count = dwc_otg_hcd_urb_get_error_count(dwc_otg_urb);
urb->iso_frame_desc[i].status =
dwc_otg_hcd_urb_get_iso_desc_status(dwc_otg_urb, i);
}
---
-2.1.4
-
2 files changed, 201 insertions(+)
create mode 100644 arch/arm/boot/dts/bcm2708-rpi-0-w.dts
-diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
-index 14a491c..bd963ef 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -2,6 +2,7 @@ ifeq ($(CONFIG_OF),y)
dtb-$(CONFIG_ARCH_BCM2708) += bcm2708-rpi-cm.dtb
dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-cm.dtb
dtb-$(CONFIG_ARCH_BCM2709) += bcm2709-rpi-2-b.dtb
-diff --git a/arch/arm/boot/dts/bcm2708-rpi-0-w.dts b/arch/arm/boot/dts/bcm2708-rpi-0-w.dts
-new file mode 100644
-index 0000000..9f7de60
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2708-rpi-0-w.dts
@@ -0,0 +1,200 @@
+ sd_debug = <&sdhost>,"brcm,debug";
+ };
+};
---
-2.1.4
-
{{BCM47XX_BOARD_NETGEAR_WGR614V9, "Netgear WGR614 V9"}, "U12H094T00_NETGEAR"},
--- a/arch/mips/bcm47xx/buttons.c
+++ b/arch/mips/bcm47xx/buttons.c
-@@ -302,6 +302,51 @@ bcm47xx_buttons_linksys_wrtsl54gs[] __in
+@@ -308,6 +308,51 @@ bcm47xx_buttons_linksys_wrtsl54gs[] __in
/* Luxul */
static const struct gpio_keys_button
bcm47xx_buttons_luxul_xwr_1750_v1[] = {
BCM47XX_GPIO_KEY(14, BTN_TASK),
};
-@@ -561,6 +606,33 @@ int __init bcm47xx_buttons_register(void
+@@ -567,6 +612,33 @@ int __init bcm47xx_buttons_register(void
err = bcm47xx_copy_bdata(bcm47xx_buttons_linksys_wrtsl54gs);
break;
+++ /dev/null
-From: Mirko Parthey <mirko.parthey@web.de>
-Subject: [PATCH] MIPS: bcm47xx: Fix button inversion for Asus WL-500W
-
-The Asus WL-500W buttons are active high,
-but the software treats them as active low.
-Fix the inverted logic.
-
-Signed-off-by: Mirko Parthey <mirko.parthey@web.de>
----
- arch/mips/bcm47xx/buttons.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
---- a/arch/mips/bcm47xx/buttons.c
-+++ b/arch/mips/bcm47xx/buttons.c
-@@ -17,6 +17,12 @@
- .active_low = 1, \
- }
-
-+#define BCM47XX_GPIO_KEY_H(_gpio, _code) \
-+ { \
-+ .code = _code, \
-+ .gpio = _gpio, \
-+ }
-+
- /* Asus */
-
- static const struct gpio_keys_button
-@@ -79,8 +85,8 @@ bcm47xx_buttons_asus_wl500gpv2[] __initc
-
- static const struct gpio_keys_button
- bcm47xx_buttons_asus_wl500w[] __initconst = {
-- BCM47XX_GPIO_KEY(6, KEY_RESTART),
-- BCM47XX_GPIO_KEY(7, KEY_WPS_BUTTON),
-+ BCM47XX_GPIO_KEY_H(6, KEY_RESTART),
-+ BCM47XX_GPIO_KEY_H(7, KEY_WPS_BUTTON),
- };
-
- static const struct gpio_keys_button
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
-@@ -1966,7 +1966,8 @@ static void pcie_write_mrrs(struct pci_d
+@@ -1967,7 +1967,8 @@ static void pcie_write_mrrs(struct pci_d
/* In the "safe" case, do not configure the MRRS. There appear to be
* issues with setting MRRS to 0 on a number of devices.
*/
--- a/drivers/bcma/main.c
+++ b/drivers/bcma/main.c
-@@ -668,11 +668,36 @@ static int bcma_device_uevent(struct dev
+@@ -672,11 +672,36 @@ static int bcma_device_uevent(struct dev
core->id.rev, core->id.class);
}
if (err)
return err;
-@@ -691,7 +716,7 @@ static int __init bcma_modinit(void)
+@@ -695,7 +720,7 @@ static int __init bcma_modinit(void)
return err;
}
} else {
core->dev.dma_mask = &core->dev.coherent_dma_mask;
core->dma_dev = &core->dev;
-@@ -633,8 +634,11 @@ static int bcma_device_probe(struct devi
- drv);
- int err = 0;
-
-+ get_device(dev);
- if (adrv->probe)
- err = adrv->probe(core);
-+ if (err)
-+ put_device(dev);
-
- return err;
- }
-@@ -647,6 +651,7 @@ static int bcma_device_remove(struct dev
-
- if (adrv->remove)
- adrv->remove(core);
-+ put_device(dev);
-
- return 0;
- }
#include <asm/msa.h>
#include <asm/pgtable.h>
#include <asm/mipsregs.h>
-@@ -507,7 +508,19 @@ EXPORT_SYMBOL(unwind_stack_by_address);
+@@ -552,7 +553,19 @@ EXPORT_SYMBOL(unwind_stack_by_address);
unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
unsigned long pc, unsigned long *ra)
{
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
-@@ -217,11 +217,13 @@ EXPORT_SYMBOL_GPL(br_handle_frame_finish
+@@ -218,11 +218,13 @@ EXPORT_SYMBOL_GPL(br_handle_frame_finish
static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
{
struct net_bridge_port *p = br_port_get_rcu(skb->dev);
return 0; /* process further */
}
-@@ -296,6 +298,18 @@ rx_handler_result_t br_handle_frame(stru
+@@ -297,6 +299,18 @@ rx_handler_result_t br_handle_frame(stru
forward:
switch (p->state) {
if (!net_eq(dev_net(dev), sock_net(sk)))
goto drop;
-@@ -3111,6 +3113,7 @@ static int packet_create(struct net *net
+@@ -3115,6 +3117,7 @@ static int packet_create(struct net *net
mutex_init(&po->pg_vec_lock);
po->rollover = NULL;
po->prot_hook.func = packet_rcv;
if (sock->type == SOCK_PACKET)
po->prot_hook.func = packet_rcv_spkt;
-@@ -3733,6 +3736,16 @@ packet_setsockopt(struct socket *sock, i
+@@ -3737,6 +3740,16 @@ packet_setsockopt(struct socket *sock, i
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
return 0;
}
default:
return -ENOPROTOOPT;
}
-@@ -3785,6 +3798,13 @@ static int packet_getsockopt(struct sock
+@@ -3789,6 +3802,13 @@ static int packet_getsockopt(struct sock
case PACKET_VNET_HDR:
val = po->has_vnet_hdr;
break;
---
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
-@@ -168,7 +168,11 @@ int br_handle_frame_finish(struct net *n
+@@ -169,7 +169,11 @@ int br_handle_frame_finish(struct net *n
if (IS_ENABLED(CONFIG_INET) && skb->protocol == htons(ETH_P_ARP))
br_do_proxy_arp(skb, br, vid, p);
---
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
-@@ -152,7 +152,7 @@ int br_handle_frame_finish(struct net *n
+@@ -153,7 +153,7 @@ int br_handle_frame_finish(struct net *n
br_multicast_rcv(br, p, skb, vid))
goto drop;
--- a/net/bridge/br_input.c
+++ b/net/bridge/br_input.c
-@@ -191,8 +191,8 @@ int br_handle_frame_finish(struct net *n
+@@ -192,8 +192,8 @@ int br_handle_frame_finish(struct net *n
unicast = false;
br->dev->stats.multicast++;
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
-@@ -1812,27 +1812,7 @@ void netlink_detachskb(struct sock *sk,
+@@ -1187,24 +1187,7 @@ void netlink_detachskb(struct sock *sk,
static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
{
- int delta;
-
WARN_ON(skb->sk != NULL);
-- if (netlink_skb_is_mmaped(skb))
-- return skb;
--
- delta = skb->end - skb->tail;
- if (is_vmalloc_addr(skb->head) || delta * 2 < skb->truesize)
- return skb;
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -4219,6 +4219,9 @@ static enum gro_result dev_gro_receive(s
+@@ -4246,6 +4246,9 @@ static enum gro_result dev_gro_receive(s
enum gro_result ret;
int grow;
if (!(skb->dev->features & NETIF_F_GRO))
goto normal;
-@@ -5378,6 +5381,48 @@ static void __netdev_adjacent_dev_unlink
+@@ -5405,6 +5408,48 @@ static void __netdev_adjacent_dev_unlink
&upper_dev->adj_list.lower);
}
static int __netdev_upper_dev_link(struct net_device *dev,
struct net_device *upper_dev, bool master,
void *private)
-@@ -5449,6 +5494,7 @@ static int __netdev_upper_dev_link(struc
+@@ -5476,6 +5521,7 @@ static int __netdev_upper_dev_link(struc
goto rollback_lower_mesh;
}
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
return 0;
-@@ -5575,6 +5621,7 @@ void netdev_upper_dev_unlink(struct net_
+@@ -5602,6 +5648,7 @@ void netdev_upper_dev_unlink(struct net_
list_for_each_entry(i, &upper_dev->all_adj_list.upper, list)
__netdev_adjacent_dev_unlink(dev, i->dev, i->ref_nr);
call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
&changeupper_info.info);
}
-@@ -6115,6 +6162,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6142,6 +6189,7 @@ int dev_set_mac_address(struct net_devic
if (err)
return err;
dev->addr_assign_type = NET_ADDR_SET;
help
--- a/net/core/dev.c
+++ b/net/core/dev.c
-@@ -2708,10 +2708,20 @@ static int xmit_one(struct sk_buff *skb,
+@@ -2735,10 +2735,20 @@ static int xmit_one(struct sk_buff *skb,
if (!list_empty(&ptype_all) || !list_empty(&dev->ptype_all))
dev_queue_xmit_nit(skb, dev);
#endif /* __LINUX_USB_PCI_QUIRKS_H */
--- a/include/linux/usb/hcd.h
+++ b/include/linux/usb/hcd.h
-@@ -459,7 +459,14 @@ extern int usb_hcd_pci_probe(struct pci_
+@@ -460,7 +460,14 @@ extern int usb_hcd_pci_probe(struct pci_
extern void usb_hcd_pci_remove(struct pci_dev *dev);
extern void usb_hcd_pci_shutdown(struct pci_dev *dev);
obj-$(CONFIG_PROC_FS) += net-procfs.o
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -1469,9 +1469,11 @@ void sk_destruct(struct sock *sk)
+@@ -1474,9 +1474,11 @@ void sk_destruct(struct sock *sk)
static void __sk_free(struct sock *sk)
{
Support for UNIX socket monitoring interface used by the ss tool.
--- a/net/netlink/Kconfig
+++ b/net/netlink/Kconfig
-@@ -13,6 +13,7 @@ config NETLINK_MMAP
+@@ -4,6 +4,7 @@
config NETLINK_DIAG
tristate "NETLINK: socket monitoring interface"
goto err;
--- a/net/core/sock.c
+++ b/net/core/sock.c
-@@ -3036,6 +3036,8 @@ static __net_initdata struct pernet_oper
+@@ -3042,6 +3042,8 @@ static __net_initdata struct pernet_oper
static int __init proto_init(void)
{
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.c
-@@ -129,7 +129,7 @@ out:
+@@ -133,7 +133,7 @@ out:
s32 igb_read_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 *data)
{
struct e1000_phy_info *phy = &hw->phy;
s32 ret_val = 0;
if (offset > MAX_PHY_REG_ADDRESS) {
-@@ -142,11 +142,25 @@ s32 igb_read_phy_reg_mdic(struct e1000_h
+@@ -146,11 +146,25 @@ s32 igb_read_phy_reg_mdic(struct e1000_h
* Control register. The MAC will take care of interfacing with the
* PHY to retrieve the desired data.
*/
/* Poll the ready bit to see if the MDI read completed
* Increasing the time out as testing showed failures with
-@@ -171,6 +185,18 @@ s32 igb_read_phy_reg_mdic(struct e1000_h
+@@ -175,6 +189,18 @@ s32 igb_read_phy_reg_mdic(struct e1000_h
*data = (u16) mdic;
out:
return ret_val;
}
-@@ -185,7 +211,7 @@ out:
+@@ -189,7 +215,7 @@ out:
s32 igb_write_phy_reg_mdic(struct e1000_hw *hw, u32 offset, u16 data)
{
struct e1000_phy_info *phy = &hw->phy;
s32 ret_val = 0;
if (offset > MAX_PHY_REG_ADDRESS) {
-@@ -198,12 +224,27 @@ s32 igb_write_phy_reg_mdic(struct e1000_
+@@ -202,12 +228,27 @@ s32 igb_write_phy_reg_mdic(struct e1000_
* Control register. The MAC will take care of interfacing with the
* PHY to retrieve the desired data.
*/
/* Poll the ready bit to see if the MDI read completed
* Increasing the time out as testing showed failures with
-@@ -227,6 +268,18 @@ s32 igb_write_phy_reg_mdic(struct e1000_
+@@ -231,6 +272,18 @@ s32 igb_write_phy_reg_mdic(struct e1000_
}
out:
--- a/drivers/net/ethernet/intel/igb/e1000_phy.c
+++ b/drivers/net/ethernet/intel/igb/e1000_phy.c
-@@ -126,9 +126,8 @@ out:
+@@ -130,9 +130,8 @@ out:
* Reads the MDI control regsiter in the PHY at offset and stores the
* information read to data.
**/
u32 i, mdicnfg, mdic = 0;
s32 ret_val = 0;
-@@ -147,14 +146,14 @@ s32 igb_read_phy_reg_mdic(struct e1000_h
+@@ -151,14 +150,14 @@ s32 igb_read_phy_reg_mdic(struct e1000_h
case e1000_i211:
mdicnfg = rd32(E1000_MDICNFG);
mdicnfg &= ~(E1000_MDICNFG_PHY_MASK);
(E1000_MDIC_OP_READ));
break;
}
-@@ -208,9 +207,8 @@ out:
+@@ -212,9 +211,8 @@ out:
*
* Writes data to MDI control register in the PHY at offset.
**/
u32 i, mdicnfg, mdic = 0;
s32 ret_val = 0;
-@@ -229,7 +227,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_
+@@ -233,7 +231,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_
case e1000_i211:
mdicnfg = rd32(E1000_MDICNFG);
mdicnfg &= ~(E1000_MDICNFG_PHY_MASK);
wr32(E1000_MDICNFG, mdicnfg);
mdic = (((u32)data) |
(offset << E1000_MDIC_REG_SHIFT) |
-@@ -238,7 +236,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_
+@@ -242,7 +240,7 @@ s32 igb_write_phy_reg_mdic(struct e1000_
default:
mdic = (((u32)data) |
(offset << E1000_MDIC_REG_SHIFT) |
(E1000_MDIC_OP_WRITE));
break;
}
-@@ -458,7 +456,7 @@ s32 igb_read_phy_reg_igp(struct e1000_hw
+@@ -462,7 +460,7 @@ s32 igb_read_phy_reg_igp(struct e1000_hw
goto out;
if (offset > MAX_PHY_MULTI_PAGE_REG) {
IGP01E1000_PHY_PAGE_SELECT,
(u16)offset);
if (ret_val) {
-@@ -467,8 +465,8 @@ s32 igb_read_phy_reg_igp(struct e1000_hw
+@@ -471,8 +469,8 @@ s32 igb_read_phy_reg_igp(struct e1000_hw
}
}
hw->phy.ops.release(hw);
-@@ -497,7 +495,7 @@ s32 igb_write_phy_reg_igp(struct e1000_h
+@@ -501,7 +499,7 @@ s32 igb_write_phy_reg_igp(struct e1000_h
goto out;
if (offset > MAX_PHY_MULTI_PAGE_REG) {
IGP01E1000_PHY_PAGE_SELECT,
(u16)offset);
if (ret_val) {
-@@ -506,8 +504,8 @@ s32 igb_write_phy_reg_igp(struct e1000_h
+@@ -510,8 +508,8 @@ s32 igb_write_phy_reg_igp(struct e1000_h
}
}
hw->phy.ops.release(hw);
-@@ -2547,8 +2545,9 @@ out:
+@@ -2551,8 +2549,9 @@ out:
}
/**
* @offset: lower half is register offset to write to
* upper half is page to use.
* @data: data to write at register offset
-@@ -2556,7 +2555,7 @@ out:
+@@ -2560,7 +2559,7 @@ out:
* Acquires semaphore, if necessary, then writes the data to PHY register
* at the offset. Release any acquired semaphores before exiting.
**/
{
s32 ret_val;
u16 page = offset >> GS40G_PAGE_SHIFT;
-@@ -2566,10 +2565,10 @@ s32 igb_write_phy_reg_gs40g(struct e1000
+@@ -2570,10 +2569,10 @@ s32 igb_write_phy_reg_gs40g(struct e1000
if (ret_val)
return ret_val;
release:
hw->phy.ops.release(hw);
-@@ -2577,8 +2576,24 @@ release:
+@@ -2581,8 +2580,24 @@ release:
}
/**
* @offset: lower half is register offset to read to
* upper half is page to use.
* @data: data to read at register offset
-@@ -2586,7 +2601,7 @@ release:
+@@ -2590,7 +2605,7 @@ release:
* Acquires semaphore, if necessary, then reads the data in the PHY register
* at the offset. Release any acquired semaphores before exiting.
**/
{
s32 ret_val;
u16 page = offset >> GS40G_PAGE_SHIFT;
-@@ -2596,10 +2611,10 @@ s32 igb_read_phy_reg_gs40g(struct e1000_
+@@ -2600,10 +2615,10 @@ s32 igb_read_phy_reg_gs40g(struct e1000_
if (ret_val)
return ret_val;
release:
hw->phy.ops.release(hw);
-@@ -2607,6 +2622,21 @@ release:
+@@ -2611,6 +2626,21 @@ release:
}
/**
+++ /dev/null
-From: Felix Fietkau <nbd@nbd.name>
-Date: Thu, 19 Jan 2017 14:14:36 +0100
-Subject: [PATCH] MIPS: Lantiq: Keep ethernet enabled during boot
-
-Disabling ethernet during reboot (only to enable it again when the
-ethernet driver attaches) can put the chip into a faulty state where it
-corrupts the header of all incoming packets.
-
-This happens if packets arrive during the time window where the core is
-disabled, and it can be easily reproduced by rebooting while sending a
-flood ping to the broadcast address.
-
-Cc: john@phrozen.org
-Cc: hauke.mehrtens@lantiq.com
-Cc: stable@vger.kernel.org
-Fixes: 95135bfa7ead ("MIPS: Lantiq: Deactivate most of the devices by default")
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/arch/mips/lantiq/xway/sysctrl.c
-+++ b/arch/mips/lantiq/xway/sysctrl.c
-@@ -564,7 +564,7 @@ void __init ltq_soc_init(void)
- clkdev_add_pmu("1a800000.pcie", "msi", 1, 1, PMU1_PCIE2_MSI);
- clkdev_add_pmu("1a800000.pcie", "pdi", 1, 1, PMU1_PCIE2_PDI);
- clkdev_add_pmu("1a800000.pcie", "ctl", 1, 1, PMU1_PCIE2_CTL);
-- clkdev_add_pmu("1e108000.eth", NULL, 1, 0, PMU_SWITCH | PMU_PPE_DP);
-+ clkdev_add_pmu("1e108000.eth", NULL, 0, 0, PMU_SWITCH | PMU_PPE_DP);
- clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
- clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
- } else if (of_machine_is_compatible("lantiq,ar10")) {
-@@ -572,7 +572,7 @@ void __init ltq_soc_init(void)
- ltq_ar10_fpi_hz(), ltq_ar10_pp32_hz());
- clkdev_add_pmu("1e101000.usb", "ctl", 1, 0, PMU_USB0);
- clkdev_add_pmu("1e106000.usb", "ctl", 1, 0, PMU_USB1);
-- clkdev_add_pmu("1e108000.eth", NULL, 1, 0, PMU_SWITCH |
-+ clkdev_add_pmu("1e108000.eth", NULL, 0, 0, PMU_SWITCH |
- PMU_PPE_DP | PMU_PPE_TC);
- clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
- clkdev_add_pmu("1f203000.rcu", "gphy", 1, 0, PMU_GPHY);
-@@ -594,11 +594,11 @@ void __init ltq_soc_init(void)
- clkdev_add_pmu(NULL, "ahb", 1, 0, PMU_AHBM | PMU_AHBS);
-
- clkdev_add_pmu("1da00000.usif", "NULL", 1, 0, PMU_USIF);
-- clkdev_add_pmu("1e108000.eth", NULL, 1, 0,
-+ clkdev_add_pmu("1e108000.eth", NULL, 0, 0,
- PMU_SWITCH | PMU_PPE_DPLUS | PMU_PPE_DPLUM |
- PMU_PPE_EMA | PMU_PPE_TC | PMU_PPE_SLL01 |
- PMU_PPE_QSB | PMU_PPE_TOP);
-- clkdev_add_pmu("1f203000.rcu", "gphy", 1, 0, PMU_GPHY);
-+ clkdev_add_pmu("1f203000.rcu", "gphy", 0, 0, PMU_GPHY);
- clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO);
- clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
- clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
if (IS_ENABLED(CONFIG_USB) && is_mt76x8()) {
--- a/arch/mips/ralink/rt305x.c
+++ b/arch/mips/ralink/rt305x.c
-@@ -201,6 +201,7 @@ void __init ralink_clk_init(void)
+@@ -190,6 +190,7 @@ void __init ralink_clk_init(void)
ralink_clk_add("cpu", cpu_rate);
ralink_clk_add("sys", sys_rate);
ralink_clk_add("10000b00.spi", sys_rate);
ralink_clk_add("10000500.uart", uart_rate);
--- a/arch/mips/ralink/rt3883.c
+++ b/arch/mips/ralink/rt3883.c
-@@ -109,6 +109,7 @@ void __init ralink_clk_init(void)
+@@ -99,6 +99,7 @@ void __init ralink_clk_init(void)
ralink_clk_add("10000120.watchdog", sys_rate);
ralink_clk_add("10000500.uart", 40000000);
ralink_clk_add("10000b00.spi", sys_rate);
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -2559,6 +2559,18 @@ static struct usb_device_id uvc_ids[] =
+@@ -2665,6 +2665,18 @@ static struct usb_device_id uvc_ids[] =
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_QUIRK_FORCE_Y8 },
+++ /dev/null
---- a/arch/mips/ralink/prom.c
-+++ b/arch/mips/ralink/prom.c
-@@ -30,8 +30,10 @@ const char *get_system_type(void)
- return soc_info.sys_type;
- }
-
--static __init void prom_init_cmdline(int argc, char **argv)
-+static __init void prom_init_cmdline(void)
- {
-+ int argc;
-+ char **argv;
- int i;
-
- pr_debug("prom: fw_arg0=%08x fw_arg1=%08x fw_arg2=%08x fw_arg3=%08x\n",
-@@ -60,14 +62,11 @@ static __init void prom_init_cmdline(int
-
- void __init prom_init(void)
- {
-- int argc;
-- char **argv;
--
- prom_soc_init(&soc_info);
-
- pr_info("SoC Type: %s\n", get_system_type());
-
-- prom_init_cmdline(argc, argv);
-+ prom_init_cmdline();
- }
-
- void __init prom_free_prom_memory(void)
--- a/arch/mips/ralink/rt288x.c
+++ b/arch/mips/ralink/rt288x.c
-@@ -119,5 +119,5 @@ void prom_soc_init(struct ralink_soc_inf
+@@ -109,5 +109,5 @@ void prom_soc_init(struct ralink_soc_inf
soc_info->mem_size_max = RT2880_MEM_SIZE_MAX;
rt2880_pinmux_data = rt2880_pinmux_data_act;
ralink_clk_add("10000c00.uartlite", periph_rate);
--- a/arch/mips/ralink/rt288x.c
+++ b/arch/mips/ralink/rt288x.c
-@@ -75,6 +75,7 @@ void __init ralink_clk_init(void)
+@@ -65,6 +65,7 @@ void __init ralink_clk_init(void)
ralink_clk_add("300100.timer", cpu_rate / 2);
ralink_clk_add("300120.watchdog", cpu_rate / 2);
ralink_clk_add("300500.uart", cpu_rate / 2);
ralink_clk_add("480000.wmac", wmac_rate);
--- a/arch/mips/ralink/rt305x.c
+++ b/arch/mips/ralink/rt305x.c
-@@ -200,6 +200,8 @@ void __init ralink_clk_init(void)
+@@ -189,6 +189,8 @@ void __init ralink_clk_init(void)
ralink_clk_add("cpu", cpu_rate);
ralink_clk_add("sys", sys_rate);
ralink_clk_add("10000100.timer", wdt_rate);
--- a/arch/mips/ralink/rt3883.c
+++ b/arch/mips/ralink/rt3883.c
-@@ -108,6 +108,8 @@ void __init ralink_clk_init(void)
+@@ -98,6 +98,8 @@ void __init ralink_clk_init(void)
ralink_clk_add("10000100.timer", sys_rate);
ralink_clk_add("10000120.watchdog", sys_rate);
ralink_clk_add("10000500.uart", 40000000);