kernel: bump kernel 4.4 to 4.4.129 for 17.01

* Refreshed patches

Compile-tested: ar71xx
Run-tested: ar71xx

Signed-off-by: Etienne Haarsma <bladeoner112@gmail.com>
This commit is contained in:
Etienne Haarsma 2018-04-28 21:51:24 +02:00 committed by John Crispin
parent afa8873887
commit 81573ea259
43 changed files with 136 additions and 136 deletions

View File

@ -3,10 +3,10 @@
LINUX_RELEASE?=1 LINUX_RELEASE?=1
LINUX_VERSION-3.18 = .43 LINUX_VERSION-3.18 = .43
LINUX_VERSION-4.4 = .126 LINUX_VERSION-4.4 = .129
LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c LINUX_KERNEL_HASH-3.18.43 = 1236e8123a6ce537d5029232560966feed054ae31776fe8481dd7d18cdd5492c
LINUX_KERNEL_HASH-4.4.126 = e9c8f4c4cda89124e7c53bda979db3f9c12f7c177bee90ddd3ab38d5ae99cd58 LINUX_KERNEL_HASH-4.4.129 = a165c4bada6a8d2355727ef6c97669e8c87c48f28bb410af34741c87fcf4712b
ifdef KERNEL_PATCHVER ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER))) LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))

View File

@ -30,7 +30,7 @@
#endif #endif
} }
@@ -2587,7 +2596,7 @@ static int emac_init_config(struct emac_ @@ -2605,7 +2614,7 @@ static int emac_init_config(struct emac_
if (of_device_is_compatible(np, "ibm,emac-apm821xx")) { if (of_device_is_compatible(np, "ibm,emac-apm821xx")) {
dev->features |= (EMAC_APM821XX_REQ_JUMBO_FRAME_SIZE | dev->features |= (EMAC_APM821XX_REQ_JUMBO_FRAME_SIZE |
EMAC_FTR_APM821XX_NO_HALF_DUPLEX | EMAC_FTR_APM821XX_NO_HALF_DUPLEX |

View File

@ -18,7 +18,7 @@ Subject: [PATCH] phy device tree support for emac
#include <linux/slab.h> #include <linux/slab.h>
#include <asm/processor.h> #include <asm/processor.h>
@@ -2392,6 +2393,246 @@ static int emac_read_uint_prop(struct de @@ -2410,6 +2411,246 @@ static int emac_read_uint_prop(struct de
return 0; return 0;
} }
@ -265,7 +265,7 @@ Subject: [PATCH] phy device tree support for emac
static int emac_init_phy(struct emac_instance *dev) static int emac_init_phy(struct emac_instance *dev)
{ {
struct device_node *np = dev->ofdev->dev.of_node; struct device_node *np = dev->ofdev->dev.of_node;
@@ -2462,6 +2703,18 @@ static int emac_init_phy(struct emac_ins @@ -2480,6 +2721,18 @@ static int emac_init_phy(struct emac_ins
emac_configure(dev); emac_configure(dev);
@ -284,7 +284,7 @@ Subject: [PATCH] phy device tree support for emac
if (dev->phy_address != 0xffffffff) if (dev->phy_address != 0xffffffff)
phy_map = ~(1 << dev->phy_address); phy_map = ~(1 << dev->phy_address);
@@ -2489,6 +2742,7 @@ static int emac_init_phy(struct emac_ins @@ -2507,6 +2760,7 @@ static int emac_init_phy(struct emac_ins
return -ENXIO; return -ENXIO;
} }
@ -292,7 +292,7 @@ Subject: [PATCH] phy device tree support for emac
/* Init PHY */ /* Init PHY */
if (dev->phy.def->ops->init) if (dev->phy.def->ops->init)
dev->phy.def->ops->init(&dev->phy); dev->phy.def->ops->init(&dev->phy);
@@ -2907,6 +3161,8 @@ static int emac_probe(struct platform_de @@ -2925,6 +3179,8 @@ static int emac_probe(struct platform_de
/* I have a bad feeling about this ... */ /* I have a bad feeling about this ... */
err_detach_tah: err_detach_tah:
@ -301,7 +301,7 @@ Subject: [PATCH] phy device tree support for emac
if (emac_has_feature(dev, EMAC_FTR_HAS_TAH)) if (emac_has_feature(dev, EMAC_FTR_HAS_TAH))
tah_detach(dev->tah_dev, dev->tah_port); tah_detach(dev->tah_dev, dev->tah_port);
err_detach_rgmii: err_detach_rgmii:
@@ -2957,6 +3213,11 @@ static int emac_remove(struct platform_d @@ -2975,6 +3231,11 @@ static int emac_remove(struct platform_d
if (emac_has_feature(dev, EMAC_FTR_HAS_ZMII)) if (emac_has_feature(dev, EMAC_FTR_HAS_ZMII))
zmii_detach(dev->zmii_dev, dev->zmii_port); zmii_detach(dev->zmii_dev, dev->zmii_port);

View File

@ -12,7 +12,7 @@
# ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.) # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
--- a/lib/Makefile --- a/lib/Makefile
+++ b/lib/Makefile +++ b/lib/Makefile
@@ -110,6 +110,7 @@ obj-$(CONFIG_XZ_DEC) += xz/ @@ -108,6 +108,7 @@ obj-$(CONFIG_XZ_DEC) += xz/
obj-$(CONFIG_RAID6_PQ) += raid6/ obj-$(CONFIG_RAID6_PQ) += raid6/
obj-$(CONFIG_LZMA_COMPRESS) += lzma/ obj-$(CONFIG_LZMA_COMPRESS) += lzma/
obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/ obj-$(CONFIG_LZMA_DECOMPRESS) += lzma/

View File

@ -267,7 +267,7 @@
case IPV6_2292HOPOPTS: case IPV6_2292HOPOPTS:
--- a/net/ipv6/ip6_gre.c --- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c
@@ -395,7 +395,7 @@ static void ip6gre_err(struct sk_buff *s @@ -397,7 +397,7 @@ static void ip6gre_err(struct sk_buff *s
return; return;
ipv6h = (const struct ipv6hdr *)skb->data; ipv6h = (const struct ipv6hdr *)skb->data;
greh = (const struct gre_base_hdr *)(skb->data + offset); greh = (const struct gre_base_hdr *)(skb->data + offset);
@ -276,7 +276,7 @@
t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr, t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
key, greh->protocol); key, greh->protocol);
@@ -482,11 +482,11 @@ static int ip6gre_rcv(struct sk_buff *sk @@ -484,11 +484,11 @@ static int ip6gre_rcv(struct sk_buff *sk
offset += 4; offset += 4;
} }
if (flags&GRE_KEY) { if (flags&GRE_KEY) {
@ -290,7 +290,7 @@
offset += 4; offset += 4;
} }
} }
@@ -748,7 +748,7 @@ static netdev_tx_t ip6gre_xmit2(struct s @@ -750,7 +750,7 @@ static netdev_tx_t ip6gre_xmit2(struct s
if (tunnel->parms.o_flags&GRE_SEQ) { if (tunnel->parms.o_flags&GRE_SEQ) {
++tunnel->o_seqno; ++tunnel->o_seqno;
@ -299,7 +299,7 @@
ptr--; ptr--;
} }
if (tunnel->parms.o_flags&GRE_KEY) { if (tunnel->parms.o_flags&GRE_KEY) {
@@ -844,7 +844,7 @@ static inline int ip6gre_xmit_ipv6(struc @@ -846,7 +846,7 @@ static inline int ip6gre_xmit_ipv6(struc
dsfield = ipv6_get_dsfield(ipv6h); dsfield = ipv6_get_dsfield(ipv6h);
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS) if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
@ -310,7 +310,7 @@
if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
--- a/net/ipv6/ip6_tunnel.c --- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c
@@ -1307,7 +1307,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str @@ -1310,7 +1310,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
dsfield = ipv6_get_dsfield(ipv6h); dsfield = ipv6_get_dsfield(ipv6h);
if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS) if (t->parms.flags & IP6_TNL_F_USE_ORIG_TCLASS)
@ -838,7 +838,7 @@
--- a/net/ipv4/tcp_input.c --- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c
@@ -3818,14 +3818,16 @@ static bool tcp_parse_aligned_timestamp( @@ -3820,14 +3820,16 @@ static bool tcp_parse_aligned_timestamp(
{ {
const __be32 *ptr = (const __be32 *)(th + 1); const __be32 *ptr = (const __be32 *)(th + 1);

View File

@ -16,7 +16,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1170,22 +1170,24 @@ static int bcm2835_clock_is_on(struct cl @@ -1172,22 +1172,24 @@ static int bcm2835_clock_is_on(struct cl
static u32 bcm2835_clock_choose_div(struct clk_hw *hw, static u32 bcm2835_clock_choose_div(struct clk_hw *hw,
unsigned long rate, unsigned long rate,
@ -49,7 +49,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
/* clamp to min divider of 1 */ /* clamp to min divider of 1 */
div = max_t(u32, div, 1 << CM_DIV_FRAC_BITS); div = max_t(u32, div, 1 << CM_DIV_FRAC_BITS);
@@ -1225,7 +1227,7 @@ static long bcm2835_clock_round_rate(str @@ -1227,7 +1229,7 @@ static long bcm2835_clock_round_rate(str
unsigned long *parent_rate) unsigned long *parent_rate)
{ {
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
@ -58,7 +58,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
return bcm2835_clock_rate_from_divisor(clock, *parent_rate, div); return bcm2835_clock_rate_from_divisor(clock, *parent_rate, div);
} }
@@ -1294,7 +1296,7 @@ static int bcm2835_clock_set_rate(struct @@ -1296,7 +1298,7 @@ static int bcm2835_clock_set_rate(struct
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman; struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data; const struct bcm2835_clock_data *data = clock->data;

View File

@ -24,7 +24,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1222,16 +1222,6 @@ static long bcm2835_clock_rate_from_divi @@ -1224,16 +1224,6 @@ static long bcm2835_clock_rate_from_divi
return temp; return temp;
} }
@ -41,7 +41,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
static unsigned long bcm2835_clock_get_rate(struct clk_hw *hw, static unsigned long bcm2835_clock_get_rate(struct clk_hw *hw,
unsigned long parent_rate) unsigned long parent_rate)
{ {
@@ -1303,13 +1293,75 @@ static int bcm2835_clock_set_rate(struct @@ -1305,13 +1295,75 @@ static int bcm2835_clock_set_rate(struct
return 0; return 0;
} }
@ -118,7 +118,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
}; };
static int bcm2835_vpu_clock_is_on(struct clk_hw *hw) static int bcm2835_vpu_clock_is_on(struct clk_hw *hw)
@@ -1325,7 +1377,9 @@ static const struct clk_ops bcm2835_vpu_ @@ -1327,7 +1379,9 @@ static const struct clk_ops bcm2835_vpu_
.is_prepared = bcm2835_vpu_clock_is_on, .is_prepared = bcm2835_vpu_clock_is_on,
.recalc_rate = bcm2835_clock_get_rate, .recalc_rate = bcm2835_clock_get_rate,
.set_rate = bcm2835_clock_set_rate, .set_rate = bcm2835_clock_set_rate,
@ -129,7 +129,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
}; };
static struct clk *bcm2835_register_pll(struct bcm2835_cprman *cprman, static struct clk *bcm2835_register_pll(struct bcm2835_cprman *cprman,
@@ -1419,45 +1473,23 @@ static struct clk *bcm2835_register_cloc @@ -1421,45 +1475,23 @@ static struct clk *bcm2835_register_cloc
{ {
struct bcm2835_clock *clock; struct bcm2835_clock *clock;
struct clk_init_data init; struct clk_init_data init;

View File

@ -33,7 +33,7 @@ Signed-off-by: Michael Turquette <mturquette@baylibre.com>
struct bcm2835_pll { struct bcm2835_pll {
struct clk_hw hw; struct clk_hw hw;
struct bcm2835_cprman *cprman; struct bcm2835_cprman *cprman;
@@ -1607,6 +1617,9 @@ static int bcm2835_clk_probe(struct plat @@ -1609,6 +1619,9 @@ static int bcm2835_clk_probe(struct plat
cprman->regs + CM_PERIICTL, CM_GATE_BIT, cprman->regs + CM_PERIICTL, CM_GATE_BIT,
0, &cprman->regs_lock); 0, &cprman->regs_lock);

View File

@ -66,7 +66,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
}; };
struct bcm2835_pll { struct bcm2835_pll {
@@ -1202,7 +1206,7 @@ static u32 bcm2835_clock_choose_div(stru @@ -1204,7 +1208,7 @@ static u32 bcm2835_clock_choose_div(stru
GENMASK(CM_DIV_FRAC_BITS - data->frac_bits, 0) >> 1; GENMASK(CM_DIV_FRAC_BITS - data->frac_bits, 0) >> 1;
u64 temp = (u64)parent_rate << CM_DIV_FRAC_BITS; u64 temp = (u64)parent_rate << CM_DIV_FRAC_BITS;
u64 rem; u64 rem;
@ -75,7 +75,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
rem = do_div(temp, rate); rem = do_div(temp, rate);
div = temp; div = temp;
@@ -1212,11 +1216,23 @@ static u32 bcm2835_clock_choose_div(stru @@ -1214,11 +1218,23 @@ static u32 bcm2835_clock_choose_div(stru
div += unused_frac_mask + 1; div += unused_frac_mask + 1;
div &= ~unused_frac_mask; div &= ~unused_frac_mask;
@ -104,7 +104,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
return div; return div;
} }
@@ -1310,9 +1326,26 @@ static int bcm2835_clock_set_rate(struct @@ -1312,9 +1328,26 @@ static int bcm2835_clock_set_rate(struct
struct bcm2835_cprman *cprman = clock->cprman; struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data; const struct bcm2835_clock_data *data = clock->data;
u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false); u32 div = bcm2835_clock_choose_div(hw, rate, parent_rate, false);

View File

@ -33,7 +33,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
const char *osc_name; const char *osc_name;
struct clk_onecell_data onecell; struct clk_onecell_data onecell;
@@ -1350,7 +1347,7 @@ static int bcm2835_clock_set_rate(struct @@ -1352,7 +1349,7 @@ static int bcm2835_clock_set_rate(struct
} }
static int bcm2835_clock_determine_rate(struct clk_hw *hw, static int bcm2835_clock_determine_rate(struct clk_hw *hw,
@ -42,7 +42,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
{ {
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct clk_hw *parent, *best_parent = NULL; struct clk_hw *parent, *best_parent = NULL;
@@ -1408,7 +1405,6 @@ static u8 bcm2835_clock_get_parent(struc @@ -1410,7 +1407,6 @@ static u8 bcm2835_clock_get_parent(struc
return (src & CM_SRC_MASK) >> CM_SRC_SHIFT; return (src & CM_SRC_MASK) >> CM_SRC_SHIFT;
} }

View File

@ -58,7 +58,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
/* /*
* These are fixed clocks. They're probably not all root clocks and it may * These are fixed clocks. They're probably not all root clocks and it may
* be possible to turn them on and off but until this is mapped out better * be possible to turn them on and off but until this is mapped out better
@@ -1048,6 +1070,36 @@ static int bcm2835_pll_set_rate(struct c @@ -1050,6 +1072,36 @@ static int bcm2835_pll_set_rate(struct c
return 0; return 0;
} }
@ -95,7 +95,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
static const struct clk_ops bcm2835_pll_clk_ops = { static const struct clk_ops bcm2835_pll_clk_ops = {
.is_prepared = bcm2835_pll_is_on, .is_prepared = bcm2835_pll_is_on,
.prepare = bcm2835_pll_on, .prepare = bcm2835_pll_on,
@@ -1055,6 +1107,7 @@ static const struct clk_ops bcm2835_pll_ @@ -1057,6 +1109,7 @@ static const struct clk_ops bcm2835_pll_
.recalc_rate = bcm2835_pll_get_rate, .recalc_rate = bcm2835_pll_get_rate,
.set_rate = bcm2835_pll_set_rate, .set_rate = bcm2835_pll_set_rate,
.round_rate = bcm2835_pll_round_rate, .round_rate = bcm2835_pll_round_rate,
@ -103,7 +103,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
}; };
struct bcm2835_pll_divider { struct bcm2835_pll_divider {
@@ -1157,6 +1210,26 @@ static int bcm2835_pll_divider_set_rate( @@ -1159,6 +1212,26 @@ static int bcm2835_pll_divider_set_rate(
return 0; return 0;
} }
@ -130,7 +130,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
static const struct clk_ops bcm2835_pll_divider_clk_ops = { static const struct clk_ops bcm2835_pll_divider_clk_ops = {
.is_prepared = bcm2835_pll_divider_is_on, .is_prepared = bcm2835_pll_divider_is_on,
.prepare = bcm2835_pll_divider_on, .prepare = bcm2835_pll_divider_on,
@@ -1164,6 +1237,7 @@ static const struct clk_ops bcm2835_pll_ @@ -1166,6 +1239,7 @@ static const struct clk_ops bcm2835_pll_
.recalc_rate = bcm2835_pll_divider_get_rate, .recalc_rate = bcm2835_pll_divider_get_rate,
.set_rate = bcm2835_pll_divider_set_rate, .set_rate = bcm2835_pll_divider_set_rate,
.round_rate = bcm2835_pll_divider_round_rate, .round_rate = bcm2835_pll_divider_round_rate,
@ -138,7 +138,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
}; };
/* /*
@@ -1405,6 +1479,31 @@ static u8 bcm2835_clock_get_parent(struc @@ -1407,6 +1481,31 @@ static u8 bcm2835_clock_get_parent(struc
return (src & CM_SRC_MASK) >> CM_SRC_SHIFT; return (src & CM_SRC_MASK) >> CM_SRC_SHIFT;
} }
@ -170,7 +170,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
static const struct clk_ops bcm2835_clock_clk_ops = { static const struct clk_ops bcm2835_clock_clk_ops = {
.is_prepared = bcm2835_clock_is_on, .is_prepared = bcm2835_clock_is_on,
.prepare = bcm2835_clock_on, .prepare = bcm2835_clock_on,
@@ -1414,6 +1513,7 @@ static const struct clk_ops bcm2835_cloc @@ -1416,6 +1515,7 @@ static const struct clk_ops bcm2835_cloc
.determine_rate = bcm2835_clock_determine_rate, .determine_rate = bcm2835_clock_determine_rate,
.set_parent = bcm2835_clock_set_parent, .set_parent = bcm2835_clock_set_parent,
.get_parent = bcm2835_clock_get_parent, .get_parent = bcm2835_clock_get_parent,
@ -178,7 +178,7 @@ Acked-by: Eric Anholt <eric@anholt.net>
}; };
static int bcm2835_vpu_clock_is_on(struct clk_hw *hw) static int bcm2835_vpu_clock_is_on(struct clk_hw *hw)
@@ -1432,6 +1532,7 @@ static const struct clk_ops bcm2835_vpu_ @@ -1434,6 +1534,7 @@ static const struct clk_ops bcm2835_vpu_
.determine_rate = bcm2835_clock_determine_rate, .determine_rate = bcm2835_clock_determine_rate,
.set_parent = bcm2835_clock_set_parent, .set_parent = bcm2835_clock_set_parent,
.get_parent = bcm2835_clock_get_parent, .get_parent = bcm2835_clock_get_parent,

View File

@ -56,7 +56,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
struct bcm2835_pll { struct bcm2835_pll {
struct clk_hw hw; struct clk_hw hw;
struct bcm2835_cprman *cprman; struct bcm2835_cprman *cprman;
@@ -1664,14 +1683,81 @@ static struct clk *bcm2835_register_cloc @@ -1666,14 +1685,81 @@ static struct clk *bcm2835_register_cloc
return devm_clk_register(cprman->dev, &clock->hw); return devm_clk_register(cprman->dev, &clock->hw);
} }
@ -139,7 +139,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
if (!cprman) if (!cprman)
return -ENOMEM; return -ENOMEM;
@@ -1688,80 +1774,15 @@ static int bcm2835_clk_probe(struct plat @@ -1690,80 +1776,15 @@ static int bcm2835_clk_probe(struct plat
platform_set_drvdata(pdev, cprman); platform_set_drvdata(pdev, cprman);

View File

@ -473,7 +473,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
struct bcm2835_pll { struct bcm2835_pll {
struct clk_hw hw; struct clk_hw hw;
struct bcm2835_cprman *cprman; struct bcm2835_cprman *cprman;
@@ -1600,7 +1183,7 @@ bcm2835_register_pll_divider(struct bcm2 @@ -1602,7 +1185,7 @@ bcm2835_register_pll_divider(struct bcm2
memset(&init, 0, sizeof(init)); memset(&init, 0, sizeof(init));
@ -482,7 +482,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
init.num_parents = 1; init.num_parents = 1;
init.name = divider_name; init.name = divider_name;
init.ops = &bcm2835_pll_divider_clk_ops; init.ops = &bcm2835_pll_divider_clk_ops;
@@ -1699,50 +1282,401 @@ struct bcm2835_clk_desc { @@ -1701,50 +1284,401 @@ struct bcm2835_clk_desc {
const void *data; const void *data;
}; };

View File

@ -17,7 +17,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1644,6 +1644,13 @@ static const struct bcm2835_clk_desc clk @@ -1646,6 +1646,13 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_HSMDIV, .div_reg = CM_HSMDIV,
.int_bits = 4, .int_bits = 4,
.frac_bits = 8), .frac_bits = 8),

View File

@ -14,7 +14,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1393,6 +1393,22 @@ static const struct bcm2835_clk_desc clk @@ -1395,6 +1395,22 @@ static const struct bcm2835_clk_desc clk
.load_mask = CM_PLLA_LOADPER, .load_mask = CM_PLLA_LOADPER,
.hold_mask = CM_PLLA_HOLDPER, .hold_mask = CM_PLLA_HOLDPER,
.fixed_divider = 1), .fixed_divider = 1),
@ -37,7 +37,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
/* PLLB is used for the ARM's clock. */ /* PLLB is used for the ARM's clock. */
[BCM2835_PLLB] = REGISTER_PLL( [BCM2835_PLLB] = REGISTER_PLL(
@@ -1507,6 +1523,22 @@ static const struct bcm2835_clk_desc clk @@ -1509,6 +1525,22 @@ static const struct bcm2835_clk_desc clk
.load_mask = CM_PLLD_LOADPER, .load_mask = CM_PLLD_LOADPER,
.hold_mask = CM_PLLD_HOLDPER, .hold_mask = CM_PLLD_HOLDPER,
.fixed_divider = 1), .fixed_divider = 1),

View File

@ -26,7 +26,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
#define CM_EMMCCTL 0x1c0 #define CM_EMMCCTL 0x1c0
#define CM_EMMCDIV 0x1c4 #define CM_EMMCDIV 0x1c4
@@ -1616,6 +1618,12 @@ static const struct bcm2835_clk_desc clk @@ -1618,6 +1620,12 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_TSENSDIV, .div_reg = CM_TSENSDIV,
.int_bits = 5, .int_bits = 5,
.frac_bits = 0), .frac_bits = 0),
@ -39,7 +39,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
/* clocks with vpu parent mux */ /* clocks with vpu parent mux */
[BCM2835_CLOCK_H264] = REGISTER_VPU_CLK( [BCM2835_CLOCK_H264] = REGISTER_VPU_CLK(
@@ -1630,6 +1638,7 @@ static const struct bcm2835_clk_desc clk @@ -1632,6 +1640,7 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_ISPDIV, .div_reg = CM_ISPDIV,
.int_bits = 4, .int_bits = 4,
.frac_bits = 8), .frac_bits = 8),
@ -47,7 +47,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
/* /*
* Secondary SDRAM clock. Used for low-voltage modes when the PLL * Secondary SDRAM clock. Used for low-voltage modes when the PLL
* in the SDRAM controller can't be used. * in the SDRAM controller can't be used.
@@ -1661,6 +1670,36 @@ static const struct bcm2835_clk_desc clk @@ -1663,6 +1672,36 @@ static const struct bcm2835_clk_desc clk
.is_vpu_clock = true), .is_vpu_clock = true),
/* clocks with per parent mux */ /* clocks with per parent mux */
@ -84,7 +84,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
/* Arasan EMMC clock */ /* Arasan EMMC clock */
[BCM2835_CLOCK_EMMC] = REGISTER_PER_CLK( [BCM2835_CLOCK_EMMC] = REGISTER_PER_CLK(
@@ -1669,6 +1708,29 @@ static const struct bcm2835_clk_desc clk @@ -1671,6 +1710,29 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_EMMCDIV, .div_reg = CM_EMMCDIV,
.int_bits = 4, .int_bits = 4,
.frac_bits = 8), .frac_bits = 8),
@ -114,7 +114,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
/* HDMI state machine */ /* HDMI state machine */
[BCM2835_CLOCK_HSM] = REGISTER_PER_CLK( [BCM2835_CLOCK_HSM] = REGISTER_PER_CLK(
.name = "hsm", .name = "hsm",
@@ -1690,12 +1752,26 @@ static const struct bcm2835_clk_desc clk @@ -1692,12 +1754,26 @@ static const struct bcm2835_clk_desc clk
.int_bits = 12, .int_bits = 12,
.frac_bits = 12, .frac_bits = 12,
.is_mash_clock = true), .is_mash_clock = true),
@ -141,7 +141,7 @@ Reviewed-by: Eric Anholt <eric@anholt.net>
/* TV encoder clock. Only operating frequency is 108Mhz. */ /* TV encoder clock. Only operating frequency is 108Mhz. */
[BCM2835_CLOCK_VEC] = REGISTER_PER_CLK( [BCM2835_CLOCK_VEC] = REGISTER_PER_CLK(
.name = "vec", .name = "vec",
@@ -1704,6 +1780,20 @@ static const struct bcm2835_clk_desc clk @@ -1706,6 +1782,20 @@ static const struct bcm2835_clk_desc clk
.int_bits = 4, .int_bits = 4,
.frac_bits = 0), .frac_bits = 0),

View File

@ -27,7 +27,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
bool is_vpu_clock; bool is_vpu_clock;
bool is_mash_clock; bool is_mash_clock;
}; };
@@ -1248,7 +1250,7 @@ static struct clk *bcm2835_register_cloc @@ -1250,7 +1252,7 @@ static struct clk *bcm2835_register_cloc
init.parent_names = parents; init.parent_names = parents;
init.num_parents = data->num_mux_parents; init.num_parents = data->num_mux_parents;
init.name = data->name; init.name = data->name;
@ -36,7 +36,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
if (data->is_vpu_clock) { if (data->is_vpu_clock) {
init.ops = &bcm2835_vpu_clock_clk_ops; init.ops = &bcm2835_vpu_clock_clk_ops;
@@ -1667,6 +1669,7 @@ static const struct bcm2835_clk_desc clk @@ -1669,6 +1671,7 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_VPUDIV, .div_reg = CM_VPUDIV,
.int_bits = 12, .int_bits = 12,
.frac_bits = 8, .frac_bits = 8,

View File

@ -19,7 +19,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1252,6 +1252,15 @@ static struct clk *bcm2835_register_cloc @@ -1254,6 +1254,15 @@ static struct clk *bcm2835_register_cloc
init.name = data->name; init.name = data->name;
init.flags = data->flags | CLK_IGNORE_UNUSED; init.flags = data->flags | CLK_IGNORE_UNUSED;
@ -35,7 +35,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
if (data->is_vpu_clock) { if (data->is_vpu_clock) {
init.ops = &bcm2835_vpu_clock_clk_ops; init.ops = &bcm2835_vpu_clock_clk_ops;
} else { } else {
@@ -1726,13 +1735,15 @@ static const struct bcm2835_clk_desc clk @@ -1728,13 +1737,15 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_GP1DIV, .div_reg = CM_GP1DIV,
.int_bits = 12, .int_bits = 12,
.frac_bits = 12, .frac_bits = 12,

View File

@ -22,7 +22,7 @@ Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1026,16 +1026,28 @@ static int bcm2835_clock_set_rate(struct @@ -1028,16 +1028,28 @@ static int bcm2835_clock_set_rate(struct
return 0; return 0;
} }
@ -51,7 +51,7 @@ Fixes: 41691b8862e2 ("clk: bcm2835: Add support for programming the audio domain
/* /*
* Select parent clock that results in the closest but lower rate * Select parent clock that results in the closest but lower rate
*/ */
@@ -1043,6 +1055,17 @@ static int bcm2835_clock_determine_rate( @@ -1045,6 +1057,17 @@ static int bcm2835_clock_determine_rate(
parent = clk_hw_get_parent_by_index(hw, i); parent = clk_hw_get_parent_by_index(hw, i);
if (!parent) if (!parent)
continue; continue;

View File

@ -26,7 +26,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
#include <linux/clk/bcm2835.h> #include <linux/clk/bcm2835.h>
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/module.h> #include <linux/module.h>
@@ -1845,6 +1846,25 @@ static const struct bcm2835_clk_desc clk @@ -1847,6 +1848,25 @@ static const struct bcm2835_clk_desc clk
.ctl_reg = CM_PERIICTL), .ctl_reg = CM_PERIICTL),
}; };
@ -52,7 +52,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
static int bcm2835_clk_probe(struct platform_device *pdev) static int bcm2835_clk_probe(struct platform_device *pdev)
{ {
struct device *dev = &pdev->dev; struct device *dev = &pdev->dev;
@@ -1854,6 +1874,7 @@ static int bcm2835_clk_probe(struct plat @@ -1856,6 +1876,7 @@ static int bcm2835_clk_probe(struct plat
const struct bcm2835_clk_desc *desc; const struct bcm2835_clk_desc *desc;
const size_t asize = ARRAY_SIZE(clk_desc_array); const size_t asize = ARRAY_SIZE(clk_desc_array);
size_t i; size_t i;
@ -60,7 +60,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
cprman = devm_kzalloc(dev, cprman = devm_kzalloc(dev,
sizeof(*cprman) + asize * sizeof(*clks), sizeof(*cprman) + asize * sizeof(*clks),
@@ -1884,6 +1905,10 @@ static int bcm2835_clk_probe(struct plat @@ -1886,6 +1907,10 @@ static int bcm2835_clk_probe(struct plat
clks[i] = desc->clk_register(cprman, desc->data); clks[i] = desc->clk_register(cprman, desc->data);
} }

View File

@ -16,7 +16,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1215,7 +1215,7 @@ bcm2835_register_pll_divider(struct bcm2 @@ -1217,7 +1217,7 @@ bcm2835_register_pll_divider(struct bcm2
init.num_parents = 1; init.num_parents = 1;
init.name = divider_name; init.name = divider_name;
init.ops = &bcm2835_pll_divider_clk_ops; init.ops = &bcm2835_pll_divider_clk_ops;

View File

@ -64,7 +64,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
struct clk_onecell_data onecell; struct clk_onecell_data onecell;
struct clk *clks[]; struct clk *clks[];
@@ -1174,7 +1192,7 @@ static struct clk *bcm2835_register_pll( @@ -1176,7 +1194,7 @@ static struct clk *bcm2835_register_pll(
memset(&init, 0, sizeof(init)); memset(&init, 0, sizeof(init));
/* All of the PLLs derive from the external oscillator. */ /* All of the PLLs derive from the external oscillator. */
@ -73,7 +73,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
init.num_parents = 1; init.num_parents = 1;
init.name = data->name; init.name = data->name;
init.ops = &bcm2835_pll_clk_ops; init.ops = &bcm2835_pll_clk_ops;
@@ -1257,17 +1275,21 @@ static struct clk *bcm2835_register_cloc @@ -1259,17 +1277,21 @@ static struct clk *bcm2835_register_cloc
struct bcm2835_clock *clock; struct bcm2835_clock *clock;
struct clk_init_data init; struct clk_init_data init;
const char *parents[1 << CM_SRC_BITS]; const char *parents[1 << CM_SRC_BITS];
@ -102,7 +102,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
} }
memset(&init, 0, sizeof(init)); memset(&init, 0, sizeof(init));
@@ -1889,8 +1911,18 @@ static int bcm2835_clk_probe(struct plat @@ -1891,8 +1913,18 @@ static int bcm2835_clk_probe(struct plat
if (IS_ERR(cprman->regs)) if (IS_ERR(cprman->regs))
return PTR_ERR(cprman->regs); return PTR_ERR(cprman->regs);

View File

@ -11,7 +11,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -940,6 +940,9 @@ static long bcm2835_clock_rate_from_divi @@ -942,6 +942,9 @@ static long bcm2835_clock_rate_from_divi
const struct bcm2835_clock_data *data = clock->data; const struct bcm2835_clock_data *data = clock->data;
u64 temp; u64 temp;
@ -21,7 +21,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
/* /*
* The divisor is a 12.12 fixed point field, but only some of * The divisor is a 12.12 fixed point field, but only some of
* the bits are populated in any given clock. * the bits are populated in any given clock.
@@ -963,7 +966,12 @@ static unsigned long bcm2835_clock_get_r @@ -965,7 +968,12 @@ static unsigned long bcm2835_clock_get_r
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman; struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data; const struct bcm2835_clock_data *data = clock->data;
@ -35,7 +35,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
return bcm2835_clock_rate_from_divisor(clock, parent_rate, div); return bcm2835_clock_rate_from_divisor(clock, parent_rate, div);
} }
@@ -1409,6 +1417,28 @@ static const char *const bcm2835_clock_v @@ -1411,6 +1419,28 @@ static const char *const bcm2835_clock_v
__VA_ARGS__) __VA_ARGS__)
/* /*
@ -64,7 +64,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
* the real definition of all the pll, pll_dividers and clocks * the real definition of all the pll, pll_dividers and clocks
* these make use of the above REGISTER_* macros * these make use of the above REGISTER_* macros
*/ */
@@ -1853,7 +1883,12 @@ static const struct bcm2835_clk_desc clk @@ -1855,7 +1885,12 @@ static const struct bcm2835_clk_desc clk
.div_reg = CM_DSI1EDIV, .div_reg = CM_DSI1EDIV,
.int_bits = 4, .int_bits = 4,
.frac_bits = 8), .frac_bits = 8),

View File

@ -27,7 +27,7 @@ Signed-off-by: Eric Anholt <eric@anholt.net>
bcm2835_pll_choose_ndiv_and_fdiv(rate, *parent_rate, &ndiv, &fdiv); bcm2835_pll_choose_ndiv_and_fdiv(rate, *parent_rate, &ndiv, &fdiv);
return bcm2835_pll_rate_from_divisors(*parent_rate, ndiv, fdiv, 1); return bcm2835_pll_rate_from_divisors(*parent_rate, ndiv, fdiv, 1);
@@ -631,13 +635,6 @@ static int bcm2835_pll_set_rate(struct c @@ -633,13 +637,6 @@ static int bcm2835_pll_set_rate(struct c
u32 ana[4]; u32 ana[4];
int i; int i;

View File

@ -16,7 +16,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1661,7 +1661,7 @@ static const struct bcm2835_clk_desc clk @@ -1663,7 +1663,7 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_AUX, .a2w_reg = A2W_PLLH_AUX,
.load_mask = CM_PLLH_LOADAUX, .load_mask = CM_PLLH_LOADAUX,
.hold_mask = 0, .hold_mask = 0,

View File

@ -34,7 +34,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
u32 ctl_reg; u32 ctl_reg;
u32 div_reg; u32 div_reg;
@@ -1059,10 +1062,60 @@ bcm2835_clk_is_pllc(struct clk_hw *hw) @@ -1061,10 +1064,60 @@ bcm2835_clk_is_pllc(struct clk_hw *hw)
return strncmp(clk_hw_get_name(hw), "pllc", 4) == 0; return strncmp(clk_hw_get_name(hw), "pllc", 4) == 0;
} }
@ -96,7 +96,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
struct clk_hw *parent, *best_parent = NULL; struct clk_hw *parent, *best_parent = NULL;
bool current_parent_is_pllc; bool current_parent_is_pllc;
unsigned long rate, best_rate = 0; unsigned long rate, best_rate = 0;
@@ -1090,9 +1143,8 @@ static int bcm2835_clock_determine_rate( @@ -1092,9 +1145,8 @@ static int bcm2835_clock_determine_rate(
if (bcm2835_clk_is_pllc(parent) && !current_parent_is_pllc) if (bcm2835_clk_is_pllc(parent) && !current_parent_is_pllc)
continue; continue;
@ -108,7 +108,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
if (rate > best_rate && rate <= req->rate) { if (rate > best_rate && rate <= req->rate) {
best_parent = parent; best_parent = parent;
best_prate = prate; best_prate = prate;
@@ -1312,6 +1364,13 @@ static struct clk *bcm2835_register_cloc @@ -1314,6 +1366,13 @@ static struct clk *bcm2835_register_cloc
if ((cprman_read(cprman, data->ctl_reg) & CM_ENABLE) == 0) if ((cprman_read(cprman, data->ctl_reg) & CM_ENABLE) == 0)
init.flags &= ~CLK_IS_CRITICAL; init.flags &= ~CLK_IS_CRITICAL;

View File

@ -19,7 +19,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1924,7 +1924,12 @@ static const struct bcm2835_clk_desc clk @@ -1926,7 +1926,12 @@ static const struct bcm2835_clk_desc clk
.ctl_reg = CM_VECCTL, .ctl_reg = CM_VECCTL,
.div_reg = CM_VECDIV, .div_reg = CM_VECDIV,
.int_bits = 4, .int_bits = 4,

View File

@ -18,7 +18,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
--- a/drivers/clk/bcm/clk-bcm2835.c --- a/drivers/clk/bcm/clk-bcm2835.c
+++ b/drivers/clk/bcm/clk-bcm2835.c +++ b/drivers/clk/bcm/clk-bcm2835.c
@@ -1071,7 +1071,7 @@ static unsigned long bcm2835_clock_choos @@ -1073,7 +1073,7 @@ static unsigned long bcm2835_clock_choos
struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw);
struct bcm2835_cprman *cprman = clock->cprman; struct bcm2835_cprman *cprman = clock->cprman;
const struct bcm2835_clock_data *data = clock->data; const struct bcm2835_clock_data *data = clock->data;

View File

@ -31,7 +31,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
}; };
struct bcm2835_clock_data { struct bcm2835_clock_data {
@@ -1290,7 +1291,7 @@ bcm2835_register_pll_divider(struct bcm2 @@ -1292,7 +1293,7 @@ bcm2835_register_pll_divider(struct bcm2
init.num_parents = 1; init.num_parents = 1;
init.name = divider_name; init.name = divider_name;
init.ops = &bcm2835_pll_divider_clk_ops; init.ops = &bcm2835_pll_divider_clk_ops;
@ -40,7 +40,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
divider = devm_kzalloc(cprman->dev, sizeof(*divider), GFP_KERNEL); divider = devm_kzalloc(cprman->dev, sizeof(*divider), GFP_KERNEL);
if (!divider) if (!divider)
@@ -1529,7 +1530,8 @@ static const struct bcm2835_clk_desc clk @@ -1531,7 +1532,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLA_CORE, .a2w_reg = A2W_PLLA_CORE,
.load_mask = CM_PLLA_LOADCORE, .load_mask = CM_PLLA_LOADCORE,
.hold_mask = CM_PLLA_HOLDCORE, .hold_mask = CM_PLLA_HOLDCORE,
@ -50,7 +50,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLA_PER] = REGISTER_PLL_DIV( [BCM2835_PLLA_PER] = REGISTER_PLL_DIV(
.name = "plla_per", .name = "plla_per",
.source_pll = "plla", .source_pll = "plla",
@@ -1537,7 +1539,8 @@ static const struct bcm2835_clk_desc clk @@ -1539,7 +1541,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLA_PER, .a2w_reg = A2W_PLLA_PER,
.load_mask = CM_PLLA_LOADPER, .load_mask = CM_PLLA_LOADPER,
.hold_mask = CM_PLLA_HOLDPER, .hold_mask = CM_PLLA_HOLDPER,
@ -60,7 +60,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV( [BCM2835_PLLA_DSI0] = REGISTER_PLL_DIV(
.name = "plla_dsi0", .name = "plla_dsi0",
.source_pll = "plla", .source_pll = "plla",
@@ -1553,7 +1556,8 @@ static const struct bcm2835_clk_desc clk @@ -1555,7 +1558,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLA_CCP2, .a2w_reg = A2W_PLLA_CCP2,
.load_mask = CM_PLLA_LOADCCP2, .load_mask = CM_PLLA_LOADCCP2,
.hold_mask = CM_PLLA_HOLDCCP2, .hold_mask = CM_PLLA_HOLDCCP2,
@ -70,7 +70,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
/* PLLB is used for the ARM's clock. */ /* PLLB is used for the ARM's clock. */
[BCM2835_PLLB] = REGISTER_PLL( [BCM2835_PLLB] = REGISTER_PLL(
@@ -1577,7 +1581,8 @@ static const struct bcm2835_clk_desc clk @@ -1579,7 +1583,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLB_ARM, .a2w_reg = A2W_PLLB_ARM,
.load_mask = CM_PLLB_LOADARM, .load_mask = CM_PLLB_LOADARM,
.hold_mask = CM_PLLB_HOLDARM, .hold_mask = CM_PLLB_HOLDARM,
@ -80,7 +80,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
/* /*
* PLLC is the core PLL, used to drive the core VPU clock. * PLLC is the core PLL, used to drive the core VPU clock.
@@ -1606,7 +1611,8 @@ static const struct bcm2835_clk_desc clk @@ -1608,7 +1613,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_CORE0, .a2w_reg = A2W_PLLC_CORE0,
.load_mask = CM_PLLC_LOADCORE0, .load_mask = CM_PLLC_LOADCORE0,
.hold_mask = CM_PLLC_HOLDCORE0, .hold_mask = CM_PLLC_HOLDCORE0,
@ -90,7 +90,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLC_CORE1] = REGISTER_PLL_DIV( [BCM2835_PLLC_CORE1] = REGISTER_PLL_DIV(
.name = "pllc_core1", .name = "pllc_core1",
.source_pll = "pllc", .source_pll = "pllc",
@@ -1614,7 +1620,8 @@ static const struct bcm2835_clk_desc clk @@ -1616,7 +1622,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_CORE1, .a2w_reg = A2W_PLLC_CORE1,
.load_mask = CM_PLLC_LOADCORE1, .load_mask = CM_PLLC_LOADCORE1,
.hold_mask = CM_PLLC_HOLDCORE1, .hold_mask = CM_PLLC_HOLDCORE1,
@ -100,7 +100,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLC_CORE2] = REGISTER_PLL_DIV( [BCM2835_PLLC_CORE2] = REGISTER_PLL_DIV(
.name = "pllc_core2", .name = "pllc_core2",
.source_pll = "pllc", .source_pll = "pllc",
@@ -1622,7 +1629,8 @@ static const struct bcm2835_clk_desc clk @@ -1624,7 +1631,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_CORE2, .a2w_reg = A2W_PLLC_CORE2,
.load_mask = CM_PLLC_LOADCORE2, .load_mask = CM_PLLC_LOADCORE2,
.hold_mask = CM_PLLC_HOLDCORE2, .hold_mask = CM_PLLC_HOLDCORE2,
@ -110,7 +110,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLC_PER] = REGISTER_PLL_DIV( [BCM2835_PLLC_PER] = REGISTER_PLL_DIV(
.name = "pllc_per", .name = "pllc_per",
.source_pll = "pllc", .source_pll = "pllc",
@@ -1630,7 +1638,8 @@ static const struct bcm2835_clk_desc clk @@ -1632,7 +1640,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLC_PER, .a2w_reg = A2W_PLLC_PER,
.load_mask = CM_PLLC_LOADPER, .load_mask = CM_PLLC_LOADPER,
.hold_mask = CM_PLLC_HOLDPER, .hold_mask = CM_PLLC_HOLDPER,
@ -120,7 +120,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
/* /*
* PLLD is the display PLL, used to drive DSI display panels. * PLLD is the display PLL, used to drive DSI display panels.
@@ -1659,7 +1668,8 @@ static const struct bcm2835_clk_desc clk @@ -1661,7 +1670,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLD_CORE, .a2w_reg = A2W_PLLD_CORE,
.load_mask = CM_PLLD_LOADCORE, .load_mask = CM_PLLD_LOADCORE,
.hold_mask = CM_PLLD_HOLDCORE, .hold_mask = CM_PLLD_HOLDCORE,
@ -130,7 +130,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLD_PER] = REGISTER_PLL_DIV( [BCM2835_PLLD_PER] = REGISTER_PLL_DIV(
.name = "plld_per", .name = "plld_per",
.source_pll = "plld", .source_pll = "plld",
@@ -1667,7 +1677,8 @@ static const struct bcm2835_clk_desc clk @@ -1669,7 +1679,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLD_PER, .a2w_reg = A2W_PLLD_PER,
.load_mask = CM_PLLD_LOADPER, .load_mask = CM_PLLD_LOADPER,
.hold_mask = CM_PLLD_HOLDPER, .hold_mask = CM_PLLD_HOLDPER,
@ -140,7 +140,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLD_DSI0] = REGISTER_PLL_DIV( [BCM2835_PLLD_DSI0] = REGISTER_PLL_DIV(
.name = "plld_dsi0", .name = "plld_dsi0",
.source_pll = "plld", .source_pll = "plld",
@@ -1712,7 +1723,8 @@ static const struct bcm2835_clk_desc clk @@ -1714,7 +1725,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_RCAL, .a2w_reg = A2W_PLLH_RCAL,
.load_mask = CM_PLLH_LOADRCAL, .load_mask = CM_PLLH_LOADRCAL,
.hold_mask = 0, .hold_mask = 0,
@ -150,7 +150,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLH_AUX] = REGISTER_PLL_DIV( [BCM2835_PLLH_AUX] = REGISTER_PLL_DIV(
.name = "pllh_aux", .name = "pllh_aux",
.source_pll = "pllh", .source_pll = "pllh",
@@ -1720,7 +1732,8 @@ static const struct bcm2835_clk_desc clk @@ -1722,7 +1734,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_AUX, .a2w_reg = A2W_PLLH_AUX,
.load_mask = CM_PLLH_LOADAUX, .load_mask = CM_PLLH_LOADAUX,
.hold_mask = 0, .hold_mask = 0,
@ -160,7 +160,7 @@ Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
[BCM2835_PLLH_PIX] = REGISTER_PLL_DIV( [BCM2835_PLLH_PIX] = REGISTER_PLL_DIV(
.name = "pllh_pix", .name = "pllh_pix",
.source_pll = "pllh", .source_pll = "pllh",
@@ -1728,7 +1741,8 @@ static const struct bcm2835_clk_desc clk @@ -1730,7 +1743,8 @@ static const struct bcm2835_clk_desc clk
.a2w_reg = A2W_PLLH_PIX, .a2w_reg = A2W_PLLH_PIX,
.load_mask = CM_PLLH_LOADPIX, .load_mask = CM_PLLH_LOADPIX,
.hold_mask = 0, .hold_mask = 0,

View File

@ -18,7 +18,7 @@ Signed-off-by: Richard Weinberger <richard@nod.at>
--- a/fs/ubifs/super.c --- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c +++ b/fs/ubifs/super.c
@@ -2107,8 +2107,9 @@ static struct dentry *ubifs_mount(struct @@ -2113,8 +2113,9 @@ static struct dentry *ubifs_mount(struct
*/ */
ubi = open_ubi(name, UBI_READONLY); ubi = open_ubi(name, UBI_READONLY);
if (IS_ERR(ubi)) { if (IS_ERR(ubi)) {

View File

@ -14,7 +14,7 @@ Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
--- a/drivers/usb/dwc2/hcd.c --- a/drivers/usb/dwc2/hcd.c
+++ b/drivers/usb/dwc2/hcd.c +++ b/drivers/usb/dwc2/hcd.c
@@ -3161,7 +3161,6 @@ error3: @@ -3164,7 +3164,6 @@ error3:
error2: error2:
usb_put_hcd(hcd); usb_put_hcd(hcd);
error1: error1:

View File

@ -11,7 +11,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
--- a/drivers/mtd/ubi/build.c --- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c
@@ -1203,6 +1203,49 @@ static struct mtd_info * __init open_mtd @@ -1214,6 +1214,49 @@ static struct mtd_info * __init open_mtd
return mtd; return mtd;
} }
@ -61,7 +61,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
static int __init ubi_init(void) static int __init ubi_init(void)
{ {
int err, i, k; int err, i, k;
@@ -1286,6 +1329,12 @@ static int __init ubi_init(void) @@ -1297,6 +1340,12 @@ static int __init ubi_init(void)
} }
} }

View File

@ -1081,7 +1081,7 @@
ifdef CONFIG_FUNCTION_TRACER ifdef CONFIG_FUNCTION_TRACER
ORIG_CFLAGS := $(KBUILD_CFLAGS) ORIG_CFLAGS := $(KBUILD_CFLAGS)
KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS)) KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
@@ -98,6 +108,8 @@ obj-$(CONFIG_LZ4HC_COMPRESS) += lz4/ @@ -96,6 +106,8 @@ obj-$(CONFIG_LZ4HC_COMPRESS) += lz4/
obj-$(CONFIG_LZ4_DECOMPRESS) += lz4/ obj-$(CONFIG_LZ4_DECOMPRESS) += lz4/
obj-$(CONFIG_XZ_DEC) += xz/ obj-$(CONFIG_XZ_DEC) += xz/
obj-$(CONFIG_RAID6_PQ) += raid6/ obj-$(CONFIG_RAID6_PQ) += raid6/

View File

@ -1,6 +1,6 @@
--- a/net/netlink/af_netlink.c --- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c
@@ -1231,24 +1231,7 @@ void netlink_detachskb(struct sock *sk, @@ -1234,24 +1234,7 @@ void netlink_detachskb(struct sock *sk,
static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation) static struct sk_buff *netlink_trim(struct sk_buff *skb, gfp_t allocation)
{ {

View File

@ -147,7 +147,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
} }
return &ip6n->tnls[prio][h]; return &ip6n->tnls[prio][h];
} }
@@ -369,6 +378,12 @@ ip6_tnl_dev_uninit(struct net_device *de @@ -372,6 +381,12 @@ ip6_tnl_dev_uninit(struct net_device *de
struct net *net = t->net; struct net *net = t->net;
struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id); struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
@ -160,7 +160,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (dev == ip6n->fb_tnl_dev) if (dev == ip6n->fb_tnl_dev)
RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL); RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL);
else else
@@ -765,6 +780,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, @@ -768,6 +783,108 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t,
} }
EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl); EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl);
@ -269,7 +269,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
/** /**
* ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally * ip6_tnl_rcv - decapsulate IPv6 packet and retransmit it locally
* @skb: received socket buffer * @skb: received socket buffer
@@ -810,6 +927,26 @@ static int ip6_tnl_rcv(struct sk_buff *s @@ -813,6 +930,26 @@ static int ip6_tnl_rcv(struct sk_buff *s
skb_reset_network_header(skb); skb_reset_network_header(skb);
skb->protocol = htons(protocol); skb->protocol = htons(protocol);
memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); memset(skb->cb, 0, sizeof(struct inet6_skb_parm));
@ -296,7 +296,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
__skb_tunnel_rx(skb, t->dev, t->net); __skb_tunnel_rx(skb, t->dev, t->net);
@@ -1145,6 +1282,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str @@ -1148,6 +1285,7 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
__u32 mtu; __u32 mtu;
u8 tproto; u8 tproto;
int err; int err;
@ -304,7 +304,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
tproto = ACCESS_ONCE(t->parms.proto); tproto = ACCESS_ONCE(t->parms.proto);
if ((tproto != IPPROTO_IPV6 && tproto != 0) || if ((tproto != IPPROTO_IPV6 && tproto != 0) ||
@@ -1175,6 +1313,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str @@ -1178,6 +1316,18 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, str
if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK) if (t->parms.flags & IP6_TNL_F_USE_ORIG_FWMARK)
fl6.flowi6_mark = skb->mark; fl6.flowi6_mark = skb->mark;
@ -323,7 +323,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu); err = ip6_tnl_xmit2(skb, dev, dsfield, &fl6, encap_limit, &mtu);
if (err != 0) { if (err != 0) {
if (err == -EMSGSIZE) if (err == -EMSGSIZE)
@@ -1289,6 +1439,14 @@ ip6_tnl_change(struct ip6_tnl *t, const @@ -1292,6 +1442,14 @@ ip6_tnl_change(struct ip6_tnl *t, const
t->parms.flowinfo = p->flowinfo; t->parms.flowinfo = p->flowinfo;
t->parms.link = p->link; t->parms.link = p->link;
t->parms.proto = p->proto; t->parms.proto = p->proto;
@ -338,7 +338,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
dst_cache_reset(&t->dst_cache); dst_cache_reset(&t->dst_cache);
ip6_tnl_link_config(t); ip6_tnl_link_config(t);
return 0; return 0;
@@ -1327,6 +1485,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ @@ -1330,6 +1488,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_
p->flowinfo = u->flowinfo; p->flowinfo = u->flowinfo;
p->link = u->link; p->link = u->link;
p->proto = u->proto; p->proto = u->proto;
@ -346,7 +346,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
memcpy(p->name, u->name, sizeof(u->name)); memcpy(p->name, u->name, sizeof(u->name));
} }
@@ -1622,6 +1781,15 @@ static int ip6_tnl_validate(struct nlatt @@ -1625,6 +1784,15 @@ static int ip6_tnl_validate(struct nlatt
return 0; return 0;
} }
@ -362,7 +362,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
static void ip6_tnl_netlink_parms(struct nlattr *data[], static void ip6_tnl_netlink_parms(struct nlattr *data[],
struct __ip6_tnl_parm *parms) struct __ip6_tnl_parm *parms)
{ {
@@ -1653,6 +1821,46 @@ static void ip6_tnl_netlink_parms(struct @@ -1656,6 +1824,46 @@ static void ip6_tnl_netlink_parms(struct
if (data[IFLA_IPTUN_PROTO]) if (data[IFLA_IPTUN_PROTO])
parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]); parms->proto = nla_get_u8(data[IFLA_IPTUN_PROTO]);
@ -409,7 +409,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
} }
static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev, static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev,
@@ -1705,6 +1913,12 @@ static void ip6_tnl_dellink(struct net_d @@ -1708,6 +1916,12 @@ static void ip6_tnl_dellink(struct net_d
static size_t ip6_tnl_get_size(const struct net_device *dev) static size_t ip6_tnl_get_size(const struct net_device *dev)
{ {
@ -422,7 +422,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
return return
/* IFLA_IPTUN_LINK */ /* IFLA_IPTUN_LINK */
nla_total_size(4) + nla_total_size(4) +
@@ -1722,6 +1936,24 @@ static size_t ip6_tnl_get_size(const str @@ -1725,6 +1939,24 @@ static size_t ip6_tnl_get_size(const str
nla_total_size(4) + nla_total_size(4) +
/* IFLA_IPTUN_PROTO */ /* IFLA_IPTUN_PROTO */
nla_total_size(1) + nla_total_size(1) +
@ -447,7 +447,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
0; 0;
} }
@@ -1729,6 +1961,9 @@ static int ip6_tnl_fill_info(struct sk_b @@ -1732,6 +1964,9 @@ static int ip6_tnl_fill_info(struct sk_b
{ {
struct ip6_tnl *tunnel = netdev_priv(dev); struct ip6_tnl *tunnel = netdev_priv(dev);
struct __ip6_tnl_parm *parm = &tunnel->parms; struct __ip6_tnl_parm *parm = &tunnel->parms;
@ -457,7 +457,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
@@ -1737,8 +1972,27 @@ static int ip6_tnl_fill_info(struct sk_b @@ -1740,8 +1975,27 @@ static int ip6_tnl_fill_info(struct sk_b
nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) || nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) ||
nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
@ -486,7 +486,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
return 0; return 0;
nla_put_failure: nla_put_failure:
@@ -1762,6 +2016,7 @@ static const struct nla_policy ip6_tnl_p @@ -1765,6 +2019,7 @@ static const struct nla_policy ip6_tnl_p
[IFLA_IPTUN_FLOWINFO] = { .type = NLA_U32 }, [IFLA_IPTUN_FLOWINFO] = { .type = NLA_U32 },
[IFLA_IPTUN_FLAGS] = { .type = NLA_U32 }, [IFLA_IPTUN_FLAGS] = { .type = NLA_U32 },
[IFLA_IPTUN_PROTO] = { .type = NLA_U8 }, [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },

View File

@ -143,7 +143,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
static const struct rt6_info ip6_blk_hole_entry_template = { static const struct rt6_info ip6_blk_hole_entry_template = {
.dst = { .dst = {
.__refcnt = ATOMIC_INIT(1), .__refcnt = ATOMIC_INIT(1),
@@ -1899,6 +1916,11 @@ static struct rt6_info *ip6_route_info_c @@ -1902,6 +1919,11 @@ static struct rt6_info *ip6_route_info_c
rt->dst.output = ip6_pkt_prohibit_out; rt->dst.output = ip6_pkt_prohibit_out;
rt->dst.input = ip6_pkt_prohibit; rt->dst.input = ip6_pkt_prohibit;
break; break;
@ -155,7 +155,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case RTN_THROW: case RTN_THROW:
case RTN_UNREACHABLE: case RTN_UNREACHABLE:
default: default:
@@ -2502,6 +2524,17 @@ static int ip6_pkt_prohibit_out(struct n @@ -2505,6 +2527,17 @@ static int ip6_pkt_prohibit_out(struct n
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
} }
@ -173,7 +173,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
/* /*
* Allocate a dst for local (unicast / anycast) address. * Allocate a dst for local (unicast / anycast) address.
*/ */
@@ -2744,7 +2777,8 @@ static int rtm_to_fib6_config(struct sk_ @@ -2747,7 +2780,8 @@ static int rtm_to_fib6_config(struct sk_
if (rtm->rtm_type == RTN_UNREACHABLE || if (rtm->rtm_type == RTN_UNREACHABLE ||
rtm->rtm_type == RTN_BLACKHOLE || rtm->rtm_type == RTN_BLACKHOLE ||
rtm->rtm_type == RTN_PROHIBIT || rtm->rtm_type == RTN_PROHIBIT ||
@ -183,7 +183,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
cfg->fc_flags |= RTF_REJECT; cfg->fc_flags |= RTF_REJECT;
if (rtm->rtm_type == RTN_LOCAL) if (rtm->rtm_type == RTN_LOCAL)
@@ -3097,6 +3131,9 @@ static int rt6_fill_node(struct net *net @@ -3100,6 +3134,9 @@ static int rt6_fill_node(struct net *net
case -EACCES: case -EACCES:
rtm->rtm_type = RTN_PROHIBIT; rtm->rtm_type = RTN_PROHIBIT;
break; break;
@ -193,7 +193,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
case -EAGAIN: case -EAGAIN:
rtm->rtm_type = RTN_THROW; rtm->rtm_type = RTN_THROW;
break; break;
@@ -3376,6 +3413,8 @@ static int ip6_route_dev_notify(struct n @@ -3379,6 +3416,8 @@ static int ip6_route_dev_notify(struct n
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
net->ipv6.ip6_prohibit_entry->dst.dev = dev; net->ipv6.ip6_prohibit_entry->dst.dev = dev;
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
net->ipv6.ip6_blk_hole_entry->dst.dev = dev; net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
#endif #endif
@@ -3602,6 +3641,17 @@ static int __net_init ip6_route_net_init @@ -3605,6 +3644,17 @@ static int __net_init ip6_route_net_init
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
ip6_template_metrics, true); ip6_template_metrics, true);
@ -220,7 +220,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#endif #endif
net->ipv6.sysctl.flush_delay = 0; net->ipv6.sysctl.flush_delay = 0;
@@ -3620,6 +3670,8 @@ out: @@ -3623,6 +3673,8 @@ out:
return ret; return ret;
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@ -229,7 +229,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
out_ip6_prohibit_entry: out_ip6_prohibit_entry:
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
out_ip6_null_entry: out_ip6_null_entry:
@@ -3637,6 +3689,7 @@ static void __net_exit ip6_route_net_exi @@ -3640,6 +3692,7 @@ static void __net_exit ip6_route_net_exi
#ifdef CONFIG_IPV6_MULTIPLE_TABLES #ifdef CONFIG_IPV6_MULTIPLE_TABLES
kfree(net->ipv6.ip6_prohibit_entry); kfree(net->ipv6.ip6_prohibit_entry);
kfree(net->ipv6.ip6_blk_hole_entry); kfree(net->ipv6.ip6_blk_hole_entry);
@ -237,7 +237,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
#endif #endif
dst_entries_destroy(&net->ipv6.ip6_dst_ops); dst_entries_destroy(&net->ipv6.ip6_dst_ops);
} }
@@ -3710,6 +3763,9 @@ void __init ip6_route_init_special_entri @@ -3713,6 +3766,9 @@ void __init ip6_route_init_special_entri
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

View File

@ -1,6 +1,6 @@
--- a/drivers/net/phy/phy.c --- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c
@@ -385,6 +385,50 @@ int phy_ethtool_gset(struct phy_device * @@ -391,6 +391,50 @@ int phy_ethtool_gset(struct phy_device *
} }
EXPORT_SYMBOL(phy_ethtool_gset); EXPORT_SYMBOL(phy_ethtool_gset);

View File

@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/phy.c --- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c
@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc @@ -896,7 +896,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */ /* If the link is down, give up on negotiation for now */
if (!phydev->link) { if (!phydev->link) {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
break; break;
} }
@@ -982,7 +983,8 @@ void phy_state_machine(struct work_struc @@ -988,7 +989,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev); netif_carrier_on(phydev->attached_dev);
} else { } else {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
} }
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
@@ -994,7 +996,8 @@ void phy_state_machine(struct work_struc @@ -1000,7 +1002,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED: case PHY_HALTED:
if (phydev->link) { if (phydev->link) {
phydev->link = 0; phydev->link = 0;

View File

@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/phy.c --- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c
@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc @@ -896,7 +896,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */ /* If the link is down, give up on negotiation for now */
if (!phydev->link) { if (!phydev->link) {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
break; break;
} }
@@ -982,7 +983,8 @@ void phy_state_machine(struct work_struc @@ -988,7 +989,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev); netif_carrier_on(phydev->attached_dev);
} else { } else {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
} }
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
@@ -994,7 +996,8 @@ void phy_state_machine(struct work_struc @@ -1000,7 +1002,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED: case PHY_HALTED:
if (phydev->link) { if (phydev->link) {
phydev->link = 0; phydev->link = 0;

View File

@ -22,7 +22,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
--- a/drivers/net/phy/phy.c --- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c
@@ -849,6 +849,16 @@ void phy_start(struct phy_device *phydev @@ -855,6 +855,16 @@ void phy_start(struct phy_device *phydev
} }
EXPORT_SYMBOL(phy_start); EXPORT_SYMBOL(phy_start);
@ -39,7 +39,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
/** /**
* phy_state_machine - Handle the state machine * phy_state_machine - Handle the state machine
* @work: work_struct that describes the work to be done * @work: work_struct that describes the work to be done
@@ -890,8 +900,7 @@ void phy_state_machine(struct work_struc @@ -896,8 +906,7 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */ /* If the link is down, give up on negotiation for now */
if (!phydev->link) { if (!phydev->link) {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -49,7 +49,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
break; break;
} }
@@ -903,9 +912,7 @@ void phy_state_machine(struct work_struc @@ -909,9 +918,7 @@ void phy_state_machine(struct work_struc
/* If AN is done, we're running */ /* If AN is done, we're running */
if (err > 0) { if (err > 0) {
phydev->state = PHY_RUNNING; phydev->state = PHY_RUNNING;
@ -60,7 +60,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
} else if (0 == phydev->link_timeout--) } else if (0 == phydev->link_timeout--)
needs_aneg = true; needs_aneg = true;
break; break;
@@ -930,8 +937,7 @@ void phy_state_machine(struct work_struc @@ -936,8 +943,7 @@ void phy_state_machine(struct work_struc
} }
} }
phydev->state = PHY_RUNNING; phydev->state = PHY_RUNNING;
@ -70,7 +70,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
} }
break; break;
case PHY_FORCING: case PHY_FORCING:
@@ -941,13 +947,12 @@ void phy_state_machine(struct work_struc @@ -947,13 +953,12 @@ void phy_state_machine(struct work_struc
if (phydev->link) { if (phydev->link) {
phydev->state = PHY_RUNNING; phydev->state = PHY_RUNNING;
@ -86,7 +86,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
break; break;
case PHY_RUNNING: case PHY_RUNNING:
/* Only register a CHANGE if we are polling or ignoring /* Only register a CHANGE if we are polling or ignoring
@@ -979,14 +984,12 @@ void phy_state_machine(struct work_struc @@ -985,14 +990,12 @@ void phy_state_machine(struct work_struc
if (phydev->link) { if (phydev->link) {
phydev->state = PHY_RUNNING; phydev->state = PHY_RUNNING;
@ -103,7 +103,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
if (phy_interrupt_is_valid(phydev)) if (phy_interrupt_is_valid(phydev))
err = phy_config_interrupt(phydev, err = phy_config_interrupt(phydev,
PHY_INTERRUPT_ENABLED); PHY_INTERRUPT_ENABLED);
@@ -994,8 +997,7 @@ void phy_state_machine(struct work_struc @@ -1000,8 +1003,7 @@ void phy_state_machine(struct work_struc
case PHY_HALTED: case PHY_HALTED:
if (phydev->link) { if (phydev->link) {
phydev->link = 0; phydev->link = 0;
@ -113,7 +113,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
do_suspend = true; do_suspend = true;
} }
break; break;
@@ -1015,11 +1017,11 @@ void phy_state_machine(struct work_struc @@ -1021,11 +1023,11 @@ void phy_state_machine(struct work_struc
if (phydev->link) { if (phydev->link) {
phydev->state = PHY_RUNNING; phydev->state = PHY_RUNNING;
@ -127,7 +127,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
} else { } else {
phydev->state = PHY_AN; phydev->state = PHY_AN;
phydev->link_timeout = PHY_AN_TIMEOUT; phydev->link_timeout = PHY_AN_TIMEOUT;
@@ -1031,11 +1033,11 @@ void phy_state_machine(struct work_struc @@ -1037,11 +1039,11 @@ void phy_state_machine(struct work_struc
if (phydev->link) { if (phydev->link) {
phydev->state = PHY_RUNNING; phydev->state = PHY_RUNNING;

View File

@ -15,7 +15,7 @@ Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
--- a/drivers/net/phy/phy.c --- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c
@@ -568,6 +568,7 @@ void phy_start_machine(struct phy_device @@ -574,6 +574,7 @@ void phy_start_machine(struct phy_device
{ {
queue_delayed_work(system_power_efficient_wq, &phydev->state_queue, HZ); queue_delayed_work(system_power_efficient_wq, &phydev->state_queue, HZ);
} }

View File

@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
#include <linux/usb/hcd.h> #include <linux/usb/hcd.h>
#include <linux/usb/ch11.h> #include <linux/usb/ch11.h>
@@ -3003,6 +3004,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso @@ -3006,6 +3007,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
retval = -ENOMEM; retval = -ENOMEM;

View File

@ -11,7 +11,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
--- a/drivers/net/phy/phy.c --- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c
@@ -890,7 +890,8 @@ void phy_state_machine(struct work_struc @@ -896,7 +896,8 @@ void phy_state_machine(struct work_struc
/* If the link is down, give up on negotiation for now */ /* If the link is down, give up on negotiation for now */
if (!phydev->link) { if (!phydev->link) {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
break; break;
} }
@@ -982,7 +983,8 @@ void phy_state_machine(struct work_struc @@ -988,7 +989,8 @@ void phy_state_machine(struct work_struc
netif_carrier_on(phydev->attached_dev); netif_carrier_on(phydev->attached_dev);
} else { } else {
phydev->state = PHY_NOLINK; phydev->state = PHY_NOLINK;
@ -31,7 +31,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
} }
phydev->adjust_link(phydev->attached_dev); phydev->adjust_link(phydev->attached_dev);
@@ -994,7 +996,8 @@ void phy_state_machine(struct work_struc @@ -1000,7 +1002,8 @@ void phy_state_machine(struct work_struc
case PHY_HALTED: case PHY_HALTED:
if (phydev->link) { if (phydev->link) {
phydev->link = 0; phydev->link = 0;