kernel: update kernel 4.4 to 4.4.59

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Hauke Mehrtens 2017-04-02 11:53:42 +02:00
parent 1adc6db036
commit 0dcc4d239d
68 changed files with 135 additions and 527 deletions

View File

@ -3,10 +3,10 @@
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)))

View File

@ -42,7 +42,7 @@
} 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));
}
@ -214,7 +214,7 @@
#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) {

View File

@ -27,8 +27,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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
@ -39,7 +37,4 @@ index 1099371..c17219e 100644
+KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
--
2.1.4
KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)

View File

@ -36,8 +36,6 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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
@ -48,7 +46,4 @@ index c17219e..1099371 100644
-KBUILD_AFLAGS += $(call cc-option,-fno-PIE)
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
--
2.1.4
KBUILD_CFLAGS += -Os $(EXTRA_OPTIMIZATION)

View File

@ -8,8 +8,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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)
@ -25,6 +23,3 @@ index cbfc8ba..14a491c 100644
DTC_FLAGS ?= -@ -H epapr
+ dts-dirs += overlays
endif
--
2.1.4

View File

@ -16,8 +16,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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 @@
@ -29,6 +27,3 @@ index c449493..a9fd97e 100644
};
clk_apb_p: clock@3 {
--
2.1.4

View File

@ -13,11 +13,9 @@ Format ioctls:
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;
@ -25,6 +23,3 @@ index a2cfff9..23ba458 100644
fps_param.num = 0; /* Select variable fps, and then use
* FPS_RANGE to select the actual limits.
--
2.1.4

View File

@ -11,8 +11,6 @@ Works on SPI2 for compute module
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
@ -23,11 +21,9 @@ index 57d60a4..c4186aa 100644
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
@ -38,7 +34,7 @@ index 35c0cec1..4a77ee6 100644
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>
@ -46,13 +42,9 @@ index 35c0cec1..4a77ee6 100644
+
+ 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 @@
@ -103,6 +95,3 @@ index 0000000..946c9d2
+ speed = <&eth1>, "spi-max-frequency:0";
+ };
+};
--
2.1.4

View File

@ -14,8 +14,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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 @@
@ -38,6 +36,3 @@ index 6132896..ebbf0d6 100644
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

View File

@ -15,8 +15,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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
@ -27,11 +25,9 @@ index c4186aa..bc7f4a9 100644
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
@ -41,7 +37,7 @@ index 4a77ee6..80ea3de 100644
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
@ -57,9 +53,6 @@ index 4a77ee6..80ea3de 100644
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 @@
@ -97,6 +90,3 @@ index 0000000..f6d134c
+ bmp280 = <&bmp280>,"status";
+ };
+};
--
2.1.4

View File

@ -8,8 +8,6 @@ We now create overlays as .dtbo files.
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:
@ -21,6 +19,3 @@ index 80ea3de..7aee1af 100644
default it will use GPIOs 17 (out) and 18 (in), but this can be modified using
DT parameters:
--
2.1.4

View File

@ -23,8 +23,6 @@ Signed-off-by: Jiri Kosina <jkosina@suse.cz>
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[] = {
@ -86,7 +84,7 @@ index 1d78ba3..ce06444 100644
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;
@ -99,6 +97,3 @@ index 1d78ba3..ce06444 100644
}
return rdesc;
}
--
2.1.4

View File

@ -8,11 +8,9 @@ Avoids the 0x40000 cycles of warmup again if firmware has already used it
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 */
@ -26,6 +24,3 @@ index 7192ec2..2ff49c1 100644
/* register driver */
err = hwrng_register(&bcm2835_rng_ops);
if (err) {
--
2.1.4

View File

@ -11,8 +11,6 @@ Print a logline when the kernel module is removed.
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 @@
@ -133,11 +131,9 @@ index 7cdfc29..5197e65 100644
- };
- };
};
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)
{
@ -146,6 +142,3 @@ index a3cd089..30903fcf 100644
if (pisnd_kobj) {
kobject_put(pisnd_kobj);
pisnd_kobj = NULL;
--
2.1.4

View File

@ -9,11 +9,9 @@ Subject: [PATCH] Add support for Silicon Labs Si7013/20/21
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
@ -23,8 +21,6 @@ index 7aee1af..44ad21f 100644
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 @@
@ -43,26 +39,14 @@ index f6d134c..31bda8d 100644
- #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>;
@ -70,6 +54,20 @@ index f6d134c..31bda8d 100644
- };
- };
- };
+ 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>;
@ -90,6 +88,3 @@ index f6d134c..31bda8d 100644
+ si7020 = <&si7020>,"status";
};
};
--
2.1.4

View File

@ -15,8 +15,6 @@ Signed-off-by: Giedrius Trainavicius <giedrius@blokas.io>
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 @@
@ -37,7 +35,7 @@ index 30903fcf..d317eb9 100644
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;
@ -52,7 +50,7 @@ index 30903fcf..d317eb9 100644
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()
@ -60,7 +58,7 @@ index 30903fcf..d317eb9 100644
);
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. */
@ -84,7 +82,7 @@ index 30903fcf..d317eb9 100644
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
{},
};
@ -183,7 +181,7 @@ index 30903fcf..d317eb9 100644
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,
};
@ -200,7 +198,7 @@ index 30903fcf..d317eb9 100644
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;
@ -226,7 +224,7 @@ index 30903fcf..d317eb9 100644
);
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);
@ -294,6 +292,3 @@ index 30903fcf..d317eb9 100644
NULL
};
--
2.1.4

View File

@ -10,11 +10,9 @@ and other Kodi based OSs
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",
@ -22,11 +20,9 @@ index 8fd50db..05a224e 100644
.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",
@ -34,6 +30,3 @@ index 91acb66..abfdc5c 100644
.owner = THIS_MODULE,
.dai_link = snd_rpi_justboom_digi_dai,
.num_links = ARRAY_SIZE(snd_rpi_justboom_digi_dai),
--
2.1.4

View File

@ -13,11 +13,9 @@ Signed-off-by: Giedrius Trainavicius <giedrius@blokas.io>
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;
@ -25,7 +23,7 @@ index aedb01f..d2b0801 100644
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;
@ -33,7 +31,7 @@ index aedb01f..d2b0801 100644
/*
* 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;
}
@ -96,6 +94,3 @@ index aedb01f..d2b0801 100644
}
mode |= BCM2835_I2S_FLEN(bclk_ratio - 1);
--
2.1.4

View File

@ -13,8 +13,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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
@ -25,8 +23,6 @@ index bc7f4a9..05eda03 100644
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
@ -42,9 +38,6 @@ index 44ad21f..adb86bc 100644
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 @@
@ -61,6 +54,3 @@ index 0000000..0171995
+ };
+ };
+};
--
2.1.4

View File

@ -36,11 +36,9 @@ Cc: Pantelis Antoniou <pantelis.antoniou@konsulko.com>
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);
@ -49,6 +47,3 @@ index 3687187..6e322f2 100644
out:
mutex_unlock(&buffer->mutex);
return len;
--
2.1.4

View File

@ -9,8 +9,6 @@ Subject: [PATCH] config: Add CONFIG_DM_CACHE See:
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
@ -21,8 +19,6 @@ index c7606f2..0d07eed 100644
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
@ -33,6 +29,3 @@ index 8121ad2..51640cb 100644
CONFIG_DM_MIRROR=m
CONFIG_DM_LOG_USERSPACE=m
CONFIG_DM_RAID=m
--
2.1.4

View File

@ -12,8 +12,6 @@ using the cs0_pin and cs1_pin parameters.
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
@ -24,8 +22,6 @@ index 05eda03..72f2d90a 100644
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>
@ -51,9 +47,6 @@ index adb86bc..7f4bd29 100644
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 @@
@ -86,6 +79,3 @@ index 0000000..7f79029
+ <&frag1>,"cs-gpios:16";
+ };
+};
--
2.1.4

View File

@ -13,11 +13,9 @@ See: https://github.com/raspberrypi/linux/issues/1799
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;
@ -25,7 +23,7 @@ index d2b0801..aedb01f 100644
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;
@ -33,7 +31,7 @@ index d2b0801..aedb01f 100644
/*
* 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;
}
@ -96,6 +94,3 @@ index d2b0801..aedb01f 100644
}
mode |= BCM2835_I2S_FLEN(bclk_ratio - 1);
--
2.1.4

View File

@ -8,8 +8,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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 @@
@ -23,6 +21,3 @@ index 98e6f92..7ceb16b 100644
&gpio {
sdhost_pins: sdhost_pins {
brcm,pins = <48 49 50 51 52 53>;
--
2.1.4

View File

@ -11,8 +11,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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
@ -25,8 +23,6 @@ index 0d07eed..1085058 100644
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
@ -39,6 +35,3 @@ index 51640cb..ca52c36 100644
CONFIG_MTD_UBI=m
CONFIG_OF_CONFIGFS=y
CONFIG_ZRAM=m
--
2.1.4

View File

@ -15,8 +15,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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
@ -48,6 +46,3 @@ index 1085058..19daca4 100644
CONFIG_MMC=y
CONFIG_MMC_BLOCK_MINORS=32
CONFIG_MMC_BCM2835=y
--
2.1.4

View File

@ -12,8 +12,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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 @@
@ -28,6 +26,3 @@ index 0a3a962..ba0f316 100644
/ {
__overrides__ {
core_freq = <&clk_core>,"clock-frequency:0";
--
2.1.4

View File

@ -43,8 +43,6 @@ dtoverlay=mcp3008:spi0-0-present,spi0-0-speed=2000000
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
@ -55,11 +53,9 @@ index 72f2d90a..b13e340 100644
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
@ -75,9 +71,6 @@ index 7f4bd29..72601f8 100644
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 @@
@ -286,6 +279,3 @@ index 0000000..06bf426
+ spi2-2-speed = <&mcp3008_22>, "spi-max-frequency:0";
+ };
+};
--
2.1.4

View File

@ -26,11 +26,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
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,
@ -38,7 +36,7 @@ index 8ca533b..1e5d2f0 100644
.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,
@ -46,6 +44,3 @@ index 8ca533b..1e5d2f0 100644
.flags = IRQCHIP_SKIP_SET_WAKE,
};
--
2.1.4

View File

@ -9,8 +9,6 @@ See: https://github.com/raspberrypi/linux/issues/1819
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
@ -21,8 +19,6 @@ index 19daca4..783d2c2 100644
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
@ -33,6 +29,3 @@ index ca52c36..be7bf41 100644
CONFIG_CAN_MCP251X=m
CONFIG_IRDA=m
CONFIG_IRLAN=m
--
2.1.4

View File

@ -16,11 +16,9 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
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)
{
@ -42,6 +40,3 @@ index a1b6511..8f74382 100644
}
static void vc4_crtc_handle_page_flip(struct vc4_crtc *vc4_crtc)
--
2.1.4

View File

@ -14,11 +14,9 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
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,
@ -27,6 +25,3 @@ index e9e8c25..3fbd2e8 100644
[BCM2835_PLLH_PIX] = REGISTER_PLL_DIV(
.name = "pllh_pix",
.source_pll = "pllh",
--
2.1.4

View File

@ -22,8 +22,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
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 {
@ -98,7 +96,7 @@ index 3fbd2e8..5f0e2f3 100644
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;
@ -110,7 +108,7 @@ index 3fbd2e8..5f0e2f3 100644
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;
@ -124,6 +122,3 @@ index 3fbd2e8..5f0e2f3 100644
if (data->is_vpu_clock) {
init.ops = &bcm2835_vpu_clock_clk_ops;
} else {
--
2.1.4

View File

@ -17,11 +17,9 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
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,
@ -35,6 +33,3 @@ index 5f0e2f3..d023e4a 100644
/* dsi clocks */
[BCM2835_CLOCK_DSI0E] = REGISTER_PER_CLK(
--
2.1.4

View File

@ -16,11 +16,9 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
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;
@ -29,6 +27,3 @@ index d023e4a..89dad97 100644
u32 curdiv, mindiv, maxdiv;
struct clk_hw *parent;
--
2.1.4

View File

@ -21,8 +21,6 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
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 {
@ -33,7 +31,7 @@ index 89dad97..54cb4e1 100644
};
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;
@ -42,7 +40,7 @@ index 89dad97..54cb4e1 100644
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,
@ -52,7 +50,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -62,7 +60,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -72,7 +70,7 @@ index 89dad97..54cb4e1 100644
/* 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,
@ -82,7 +80,7 @@ index 89dad97..54cb4e1 100644
/*
* 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,
@ -92,7 +90,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -102,7 +100,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -112,7 +110,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -122,7 +120,7 @@ index 89dad97..54cb4e1 100644
/*
* 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,
@ -132,7 +130,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -142,7 +140,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -152,7 +150,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -162,7 +160,7 @@ index 89dad97..54cb4e1 100644
[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,
@ -172,6 +170,3 @@ index 89dad97..54cb4e1 100644
/* the clocks */
--
2.1.4

View File

@ -9,11 +9,9 @@ called, so have removed call completely.
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;
@ -22,6 +20,3 @@ index 911f5b7..f5e7f1b 100644
if (dev != DEVICE_MINOR) {
dev_err(inst->dev, "Unknown minor device: %d", dev);
ret = -ENXIO;
--
2.1.4

View File

@ -20,11 +20,9 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
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,
@ -54,6 +52,3 @@ index 56b779c..ce8a5fd 100644
}
/* Otherwise, make a new BO. */
--
2.1.4

View File

@ -15,11 +15,9 @@ Fixes: c826a6e10644 ("drm/vc4: Add a BO cache.")
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;
}
@ -34,6 +32,3 @@ index ce8a5fd..d7474dd 100644
cache_list = vc4_get_cache_list_for_size(dev, gem_bo->size);
if (!cache_list) {
vc4_bo_destroy(bo);
--
2.1.4

View File

@ -14,8 +14,6 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
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 @@
@ -26,8 +24,6 @@ index e167a1e1..60f5c25 100644
/*
* 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 @@
@ -41,7 +37,7 @@ index 7cc346a..1d9e5a6 100644
#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;
@ -65,11 +61,9 @@ index 7cc346a..1d9e5a6 100644
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);
}
@ -83,6 +77,3 @@ index bd0e141..efac29b 100644
static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
int align_order)
--
2.1.4

View File

@ -59,11 +59,9 @@ Signed-off-by: Christopher Alexander Tobias Schulze <cat.schulze@alice-dsl.net>
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.
*/
@ -95,7 +93,7 @@ index 2a61e4b..7675518 100644
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.
*/
@ -105,7 +103,7 @@ index 2a61e4b..7675518 100644
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;
@ -113,7 +111,7 @@ index 2a61e4b..7675518 100644
/* 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;
@ -138,6 +136,3 @@ index 2a61e4b..7675518 100644
/*
* Save the userland NEON/VFP state. Under UP,
--
2.1.4

View File

@ -11,11 +11,9 @@ in urb->actual_length. Fixes raspberrypi/linux#903
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);
@ -28,6 +26,3 @@ index 2ceed42..5011750 100644
urb->iso_frame_desc[i].status =
dwc_otg_hcd_urb_get_iso_desc_status(dwc_otg_urb, i);
}
--
2.1.4

View File

@ -13,8 +13,6 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
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)
@ -25,9 +23,6 @@ index 14a491c..bd963ef 100644
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 @@
@ -231,6 +226,3 @@ index 0000000..9f7de60
+ sd_debug = <&sdhost>,"brcm,debug";
+ };
+};
--
2.1.4

View File

@ -43,7 +43,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
{{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
@ -95,7 +95,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
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;

View File

@ -1,38 +0,0 @@
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

View File

@ -1,6 +1,6 @@
--- 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.
*/

View File

@ -1,6 +1,6 @@
--- 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);
}
@ -38,7 +38,7 @@
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;
}

View File

@ -83,23 +83,3 @@
} 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;
}

View File

@ -19,7 +19,7 @@ Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
#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)
{

View File

@ -15,7 +15,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- 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);
@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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) {

View File

@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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;
@ -91,7 +91,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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;
}
@ -108,7 +108,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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;

View File

@ -8,7 +8,7 @@ each other via bridges.
---
--- 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);

View File

@ -6,7 +6,7 @@ issues with WDS.
---
--- 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;

View File

@ -48,7 +48,7 @@ Isolating individual bridge ports
--- 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++;

View File

@ -1,15 +1,12 @@
--- 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;

View File

@ -17,7 +17,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- 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;
@ -27,7 +27,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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);
}
@ -76,7 +76,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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;
}
@ -84,7 +84,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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);
@ -92,7 +92,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
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;

View File

@ -86,7 +86,7 @@
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);

View File

@ -84,7 +84,7 @@
#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);

View File

@ -25,7 +25,7 @@
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)
{
@ -59,7 +59,7 @@
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"

View File

@ -173,7 +173,7 @@
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)
{

View File

@ -10,7 +10,7 @@ Date: Thu May 15 00:12:26 2014 -0700
--- 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;
@ -19,7 +19,7 @@ Date: Thu May 15 00:12:26 2014 -0700
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.
*/
@ -48,7 +48,7 @@ Date: Thu May 15 00:12:26 2014 -0700
/* 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:
@ -67,7 +67,7 @@ Date: Thu May 15 00:12:26 2014 -0700
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;
@ -76,7 +76,7 @@ Date: Thu May 15 00:12:26 2014 -0700
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.
*/
@ -108,7 +108,7 @@ Date: Thu May 15 00:12:26 2014 -0700
/* 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:

View File

@ -36,7 +36,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
--- 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.
**/
@ -47,7 +47,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
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);
@ -64,7 +64,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
(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.
**/
@ -75,7 +75,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
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);
@ -84,7 +84,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
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) |
@ -93,7 +93,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
(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) {
@ -102,7 +102,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
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
}
}
@ -113,7 +113,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
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) {
@ -122,7 +122,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
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
}
}
@ -133,7 +133,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
hw->phy.ops.release(hw);
@@ -2547,8 +2545,9 @@ out:
@@ -2551,8 +2549,9 @@ out:
}
/**
@ -144,7 +144,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
* @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.
**/
@ -153,7 +153,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
{
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;
@ -166,7 +166,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
release:
hw->phy.ops.release(hw);
@@ -2577,8 +2576,24 @@ release:
@@ -2581,8 +2580,24 @@ release:
}
/**
@ -192,7 +192,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
* @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.
**/
@ -201,7 +201,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
{
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;
@ -214,7 +214,7 @@ Signed-off-by: Tim Harvey <tharvey@gateworks.com>
release:
hw->phy.ops.release(hw);
@@ -2607,6 +2622,21 @@ release:
@@ -2611,6 +2626,21 @@ release:
}
/**

View File

@ -1,53 +0,0 @@
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);

View File

@ -28,7 +28,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
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);
@ -38,7 +38,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
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);

View File

@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- 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 },

View File

@ -1,30 +0,0 @@
--- 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)

View File

@ -16,7 +16,7 @@ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
--- 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;

View File

@ -35,7 +35,7 @@
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);
@ -45,7 +45,7 @@
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);
@ -56,7 +56,7 @@
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);