generic: 5.15: refresh backport patch

Use 'make target/linux/refresh' to refresh backport patches.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
This commit is contained in:
Ansuel Smith 2022-03-21 15:21:24 +01:00 committed by Daniel Golle
parent 49d9d2b210
commit 39a7c8d809
68 changed files with 293 additions and 543 deletions

View file

@ -10,12 +10,12 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -507,7 +507,7 @@ KBUILD_LDFLAGS_MODULE := @@ -523,7 +523,7 @@ KBUILD_LDFLAGS_MODULE :=
KBUILD_LDFLAGS := KBUILD_LDFLAGS :=
CLANG_FLAGS := CLANG_FLAGS :=
-export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC -export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
+export ARCH SRCARCH SUBARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC +export ARCH SRCARCH SUBARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD

View file

@ -14,7 +14,7 @@ Signed-off-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
--- a/MAINTAINERS --- a/MAINTAINERS
+++ b/MAINTAINERS +++ b/MAINTAINERS
@@ -3294,6 +3294,7 @@ S: Supported @@ -3428,6 +3428,7 @@ S: Supported
F: arch/arm64/net/ F: arch/arm64/net/
BPF JIT for MIPS (32-BIT AND 64-BIT) BPF JIT for MIPS (32-BIT AND 64-BIT)
@ -24,7 +24,7 @@ Signed-off-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
L: bpf@vger.kernel.org L: bpf@vger.kernel.org
--- a/arch/mips/Kconfig --- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig +++ b/arch/mips/Kconfig
@@ -49,7 +49,6 @@ config MIPS @@ -57,7 +57,6 @@ config MIPS
select HAVE_ARCH_TRACEHOOK select HAVE_ARCH_TRACEHOOK
select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES select HAVE_ARCH_TRANSPARENT_HUGEPAGE if CPU_SUPPORTS_HUGEPAGES
select HAVE_ASM_MODVERSIONS select HAVE_ASM_MODVERSIONS
@ -32,7 +32,7 @@ Signed-off-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
select HAVE_CONTEXT_TRACKING select HAVE_CONTEXT_TRACKING
select HAVE_TIF_NOHZ select HAVE_TIF_NOHZ
select HAVE_C_RECORDMCOUNT select HAVE_C_RECORDMCOUNT
@@ -57,7 +56,10 @@ config MIPS @@ -65,7 +64,10 @@ config MIPS
select HAVE_DEBUG_STACKOVERFLOW select HAVE_DEBUG_STACKOVERFLOW
select HAVE_DMA_CONTIGUOUS select HAVE_DMA_CONTIGUOUS
select HAVE_DYNAMIC_FTRACE select HAVE_DYNAMIC_FTRACE

View file

@ -19,7 +19,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
--- a/drivers/base/regmap/regmap.c --- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c
@@ -842,6 +842,7 @@ struct regmap *__regmap_init(struct devi @@ -877,6 +877,7 @@ struct regmap *__regmap_init(struct devi
if (!bus) { if (!bus) {
map->reg_read = config->reg_read; map->reg_read = config->reg_read;
map->reg_write = config->reg_write; map->reg_write = config->reg_write;
@ -29,7 +29,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
goto skip_format_initialization; goto skip_format_initialization;
--- a/include/linux/regmap.h --- a/include/linux/regmap.h
+++ b/include/linux/regmap.h +++ b/include/linux/regmap.h
@@ -289,6 +289,11 @@ typedef void (*regmap_unlock)(void *); @@ -290,6 +290,11 @@ typedef void (*regmap_unlock)(void *);
* read operation on a bus such as SPI, I2C, etc. Most of the * read operation on a bus such as SPI, I2C, etc. Most of the
* devices do not need this. * devices do not need this.
* @reg_write: Same as above for writing. * @reg_write: Same as above for writing.
@ -41,7 +41,7 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
* @fast_io: Register IO is fast. Use a spinlock instead of a mutex * @fast_io: Register IO is fast. Use a spinlock instead of a mutex
* to perform locking. This field is ignored if custom lock/unlock * to perform locking. This field is ignored if custom lock/unlock
* functions are used (see fields lock/unlock of struct regmap_config). * functions are used (see fields lock/unlock of struct regmap_config).
@@ -366,6 +371,8 @@ struct regmap_config { @@ -372,6 +377,8 @@ struct regmap_config {
int (*reg_read)(void *context, unsigned int reg, unsigned int *val); int (*reg_read)(void *context, unsigned int reg, unsigned int *val);
int (*reg_write)(void *context, unsigned int reg, unsigned int val); int (*reg_write)(void *context, unsigned int reg, unsigned int val);

View file

@ -26,11 +26,9 @@ Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++-- drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 8476a8ac4451..a42ff4b22a04 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c --- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -1157,7 +1157,7 @@ static int msm_gpio_irq_set_affinity(struct irq_data *d, @@ -1157,7 +1157,7 @@ static int msm_gpio_irq_set_affinity(str
if (d->parent_data && test_bit(d->hwirq, pctrl->skip_wake_irqs)) if (d->parent_data && test_bit(d->hwirq, pctrl->skip_wake_irqs))
return irq_chip_set_affinity_parent(d, dest, force); return irq_chip_set_affinity_parent(d, dest, force);
@ -39,7 +37,7 @@ index 8476a8ac4451..a42ff4b22a04 100644
} }
static int msm_gpio_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu_info) static int msm_gpio_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu_info)
@@ -1168,7 +1168,7 @@ static int msm_gpio_irq_set_vcpu_affinity(struct irq_data *d, void *vcpu_info) @@ -1168,7 +1168,7 @@ static int msm_gpio_irq_set_vcpu_affinit
if (d->parent_data && test_bit(d->hwirq, pctrl->skip_wake_irqs)) if (d->parent_data && test_bit(d->hwirq, pctrl->skip_wake_irqs))
return irq_chip_set_vcpu_affinity_parent(d, vcpu_info); return irq_chip_set_vcpu_affinity_parent(d, vcpu_info);

View file

@ -10,7 +10,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/nf_flow_table_core.c --- a/net/netfilter/nf_flow_table_core.c
+++ b/net/netfilter/nf_flow_table_core.c +++ b/net/netfilter/nf_flow_table_core.c
@@ -576,13 +576,41 @@ void nf_flow_table_free(struct nf_flowta @@ -646,13 +646,41 @@ void nf_flow_table_free(struct nf_flowta
} }
EXPORT_SYMBOL_GPL(nf_flow_table_free); EXPORT_SYMBOL_GPL(nf_flow_table_free);
@ -55,7 +55,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
--- a/net/netfilter/nft_flow_offload.c --- a/net/netfilter/nft_flow_offload.c
+++ b/net/netfilter/nft_flow_offload.c +++ b/net/netfilter/nft_flow_offload.c
@@ -237,47 +237,14 @@ static struct nft_expr_type nft_flow_off @@ -438,47 +438,14 @@ static struct nft_expr_type nft_flow_off
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };

View file

@ -67,11 +67,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/switch.c | 14 +++++++++++ net/dsa/switch.c | 14 +++++++++++
4 files changed, 96 insertions(+), 4 deletions(-) 4 files changed, 96 insertions(+), 4 deletions(-)
diff --git a/include/net/dsa.h b/include/net/dsa.h
index bdf308a5c55ee..8b496c7e62ef8 100644
--- a/include/net/dsa.h --- a/include/net/dsa.h
+++ b/include/net/dsa.h +++ b/include/net/dsa.h
@@ -82,12 +82,15 @@ enum dsa_tag_protocol { @@ -80,12 +80,15 @@ enum dsa_tag_protocol {
}; };
struct dsa_switch; struct dsa_switch;
@ -87,7 +85,7 @@ index bdf308a5c55ee..8b496c7e62ef8 100644
unsigned int needed_headroom; unsigned int needed_headroom;
unsigned int needed_tailroom; unsigned int needed_tailroom;
const char *name; const char *name;
@@ -337,6 +340,8 @@ struct dsa_switch { @@ -329,6 +332,8 @@ struct dsa_switch {
*/ */
void *priv; void *priv;
@ -96,7 +94,7 @@ index bdf308a5c55ee..8b496c7e62ef8 100644
/* /*
* Configuration data for this switch. * Configuration data for this switch.
*/ */
@@ -689,6 +694,13 @@ struct dsa_switch_ops { @@ -584,6 +589,13 @@ struct dsa_switch_ops {
enum dsa_tag_protocol mprot); enum dsa_tag_protocol mprot);
int (*change_tag_protocol)(struct dsa_switch *ds, int port, int (*change_tag_protocol)(struct dsa_switch *ds, int port,
enum dsa_tag_protocol proto); enum dsa_tag_protocol proto);
@ -110,11 +108,9 @@ index bdf308a5c55ee..8b496c7e62ef8 100644
/* Optional switch-wide initialization and destruction methods */ /* Optional switch-wide initialization and destruction methods */
int (*setup)(struct dsa_switch *ds); int (*setup)(struct dsa_switch *ds);
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 8814fa0e44c84..cf65661686209 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -248,8 +248,12 @@ static struct dsa_switch_tree *dsa_tree_alloc(int index) @@ -230,8 +230,12 @@ static struct dsa_switch_tree *dsa_tree_
static void dsa_tree_free(struct dsa_switch_tree *dst) static void dsa_tree_free(struct dsa_switch_tree *dst)
{ {
@ -128,16 +124,16 @@ index 8814fa0e44c84..cf65661686209 100644
list_del(&dst->list); list_del(&dst->list);
kfree(dst); kfree(dst);
} }
@@ -822,7 +826,7 @@ static int dsa_switch_setup_tag_protocol(struct dsa_switch *ds) @@ -805,7 +809,7 @@ static int dsa_switch_setup_tag_protocol
int err; int port, err;
if (tag_ops->proto == dst->default_proto) if (tag_ops->proto == dst->default_proto)
- return 0; - return 0;
+ goto connect; + goto connect;
dsa_switch_for_each_cpu_port(cpu_dp, ds) { for (port = 0; port < ds->num_ports; port++) {
rtnl_lock(); if (!dsa_is_cpu_port(ds, port))
@@ -836,6 +840,17 @@ static int dsa_switch_setup_tag_protocol(struct dsa_switch *ds) @@ -821,6 +825,17 @@ static int dsa_switch_setup_tag_protocol
} }
} }
@ -155,7 +151,7 @@ index 8814fa0e44c84..cf65661686209 100644
return 0; return 0;
} }
@@ -1136,6 +1151,46 @@ static void dsa_tree_teardown(struct dsa_switch_tree *dst) @@ -1132,6 +1147,46 @@ static void dsa_tree_teardown(struct dsa
dst->setup = false; dst->setup = false;
} }
@ -202,7 +198,7 @@ index 8814fa0e44c84..cf65661686209 100644
/* Since the dsa/tagging sysfs device attribute is per master, the assumption /* Since the dsa/tagging sysfs device attribute is per master, the assumption
* is that all DSA switches within a tree share the same tagger, otherwise * is that all DSA switches within a tree share the same tagger, otherwise
* they would have formed disjoint trees (different "dsa,member" values). * they would have formed disjoint trees (different "dsa,member" values).
@@ -1168,12 +1223,15 @@ int dsa_tree_change_tag_proto(struct dsa_switch_tree *dst, @@ -1164,12 +1219,15 @@ int dsa_tree_change_tag_proto(struct dsa
goto out_unlock; goto out_unlock;
} }
@ -220,7 +216,7 @@ index 8814fa0e44c84..cf65661686209 100644
rtnl_unlock(); rtnl_unlock();
@@ -1260,6 +1318,7 @@ static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master, @@ -1257,6 +1315,7 @@ static int dsa_port_parse_cpu(struct dsa
struct dsa_switch_tree *dst = ds->dst; struct dsa_switch_tree *dst = ds->dst;
const struct dsa_device_ops *tag_ops; const struct dsa_device_ops *tag_ops;
enum dsa_tag_protocol default_proto; enum dsa_tag_protocol default_proto;
@ -228,7 +224,7 @@ index 8814fa0e44c84..cf65661686209 100644
/* Find out which protocol the switch would prefer. */ /* Find out which protocol the switch would prefer. */
default_proto = dsa_get_tag_protocol(dp, master); default_proto = dsa_get_tag_protocol(dp, master);
@@ -1307,6 +1366,12 @@ static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master, @@ -1304,6 +1363,12 @@ static int dsa_port_parse_cpu(struct dsa
*/ */
dsa_tag_driver_put(tag_ops); dsa_tag_driver_put(tag_ops);
} else { } else {
@ -241,8 +237,6 @@ index 8814fa0e44c84..cf65661686209 100644
dst->tag_ops = tag_ops; dst->tag_ops = tag_ops;
} }
diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h
index 38ce5129a33dc..0db2b26b0c83c 100644
--- a/net/dsa/dsa_priv.h --- a/net/dsa/dsa_priv.h
+++ b/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h
@@ -37,6 +37,7 @@ enum { @@ -37,6 +37,7 @@ enum {
@ -253,11 +247,9 @@ index 38ce5129a33dc..0db2b26b0c83c 100644
DSA_NOTIFIER_MRP_ADD, DSA_NOTIFIER_MRP_ADD,
DSA_NOTIFIER_MRP_DEL, DSA_NOTIFIER_MRP_DEL,
DSA_NOTIFIER_MRP_ADD_RING_ROLE, DSA_NOTIFIER_MRP_ADD_RING_ROLE,
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index 9c92edd969612..06948f5368296 100644
--- a/net/dsa/switch.c --- a/net/dsa/switch.c
+++ b/net/dsa/switch.c +++ b/net/dsa/switch.c
@@ -647,6 +647,17 @@ static int dsa_switch_change_tag_proto(struct dsa_switch *ds, @@ -616,6 +616,17 @@ static int dsa_switch_change_tag_proto(s
return 0; return 0;
} }
@ -275,7 +267,7 @@ index 9c92edd969612..06948f5368296 100644
static int dsa_switch_mrp_add(struct dsa_switch *ds, static int dsa_switch_mrp_add(struct dsa_switch *ds,
struct dsa_notifier_mrp_info *info) struct dsa_notifier_mrp_info *info)
{ {
@@ -766,6 +777,9 @@ static int dsa_switch_event(struct notifier_block *nb, @@ -735,6 +746,9 @@ static int dsa_switch_event(struct notif
case DSA_NOTIFIER_TAG_PROTO: case DSA_NOTIFIER_TAG_PROTO:
err = dsa_switch_change_tag_proto(ds, info); err = dsa_switch_change_tag_proto(ds, info);
break; break;
@ -285,6 +277,3 @@ index 9c92edd969612..06948f5368296 100644
case DSA_NOTIFIER_MRP_ADD: case DSA_NOTIFIER_MRP_ADD:
err = dsa_switch_mrp_add(ds, info); err = dsa_switch_mrp_add(ds, info);
break; break;
--
cgit 1.2.3-1.el7

View file

@ -65,11 +65,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_sja1105.c | 67 ++++++++++++++++------------------------------ net/dsa/tag_sja1105.c | 67 ++++++++++++++++------------------------------
6 files changed, 109 insertions(+), 113 deletions(-) 6 files changed, 109 insertions(+), 113 deletions(-)
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 64d71968aa91a..f16959444ae12 100644
--- a/include/net/dsa.h --- a/include/net/dsa.h
+++ b/include/net/dsa.h +++ b/include/net/dsa.h
@@ -82,15 +82,14 @@ enum dsa_tag_protocol { @@ -80,15 +80,14 @@ enum dsa_tag_protocol {
}; };
struct dsa_switch; struct dsa_switch;
@ -87,11 +85,9 @@ index 64d71968aa91a..f16959444ae12 100644
unsigned int needed_headroom; unsigned int needed_headroom;
unsigned int needed_tailroom; unsigned int needed_tailroom;
const char *name; const char *name;
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index cf65661686209..c18b22c0bf55e 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -248,12 +248,8 @@ static struct dsa_switch_tree *dsa_tree_alloc(int index) @@ -230,12 +230,8 @@ static struct dsa_switch_tree *dsa_tree_
static void dsa_tree_free(struct dsa_switch_tree *dst) static void dsa_tree_free(struct dsa_switch_tree *dst)
{ {
@ -105,7 +101,7 @@ index cf65661686209..c18b22c0bf55e 100644
list_del(&dst->list); list_del(&dst->list);
kfree(dst); kfree(dst);
} }
@@ -841,17 +837,29 @@ static int dsa_switch_setup_tag_protocol(struct dsa_switch *ds) @@ -826,17 +822,29 @@ static int dsa_switch_setup_tag_protocol
} }
connect: connect:
@ -136,7 +132,7 @@ index cf65661686209..c18b22c0bf55e 100644
} }
static int dsa_switch_setup(struct dsa_switch *ds) static int dsa_switch_setup(struct dsa_switch *ds)
@@ -1160,13 +1168,6 @@ static int dsa_tree_bind_tag_proto(struct dsa_switch_tree *dst, @@ -1156,13 +1164,6 @@ static int dsa_tree_bind_tag_proto(struc
dst->tag_ops = tag_ops; dst->tag_ops = tag_ops;
@ -150,7 +146,7 @@ index cf65661686209..c18b22c0bf55e 100644
/* Notify the switches from this tree about the connection /* Notify the switches from this tree about the connection
* to the new tagger * to the new tagger
*/ */
@@ -1176,16 +1177,14 @@ static int dsa_tree_bind_tag_proto(struct dsa_switch_tree *dst, @@ -1172,16 +1173,14 @@ static int dsa_tree_bind_tag_proto(struc
goto out_disconnect; goto out_disconnect;
/* Notify the old tagger about the disconnection from this tree */ /* Notify the old tagger about the disconnection from this tree */
@ -171,7 +167,7 @@ index cf65661686209..c18b22c0bf55e 100644
dst->tag_ops = old_tag_ops; dst->tag_ops = old_tag_ops;
return err; return err;
@@ -1318,7 +1317,6 @@ static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master, @@ -1315,7 +1314,6 @@ static int dsa_port_parse_cpu(struct dsa
struct dsa_switch_tree *dst = ds->dst; struct dsa_switch_tree *dst = ds->dst;
const struct dsa_device_ops *tag_ops; const struct dsa_device_ops *tag_ops;
enum dsa_tag_protocol default_proto; enum dsa_tag_protocol default_proto;
@ -179,7 +175,7 @@ index cf65661686209..c18b22c0bf55e 100644
/* Find out which protocol the switch would prefer. */ /* Find out which protocol the switch would prefer. */
default_proto = dsa_get_tag_protocol(dp, master); default_proto = dsa_get_tag_protocol(dp, master);
@@ -1366,12 +1364,6 @@ static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master, @@ -1363,12 +1361,6 @@ static int dsa_port_parse_cpu(struct dsa
*/ */
dsa_tag_driver_put(tag_ops); dsa_tag_driver_put(tag_ops);
} else { } else {
@ -192,8 +188,6 @@ index cf65661686209..c18b22c0bf55e 100644
dst->tag_ops = tag_ops; dst->tag_ops = tag_ops;
} }
diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h
index 0db2b26b0c83c..edfaae7b59672 100644
--- a/net/dsa/dsa_priv.h --- a/net/dsa/dsa_priv.h
+++ b/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h
@@ -38,6 +38,7 @@ enum { @@ -38,6 +38,7 @@ enum {
@ -204,11 +198,9 @@ index 0db2b26b0c83c..edfaae7b59672 100644
DSA_NOTIFIER_MRP_ADD, DSA_NOTIFIER_MRP_ADD,
DSA_NOTIFIER_MRP_DEL, DSA_NOTIFIER_MRP_DEL,
DSA_NOTIFIER_MRP_ADD_RING_ROLE, DSA_NOTIFIER_MRP_ADD_RING_ROLE,
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index 06948f5368296..393f2d8a860a9 100644
--- a/net/dsa/switch.c --- a/net/dsa/switch.c
+++ b/net/dsa/switch.c +++ b/net/dsa/switch.c
@@ -647,15 +647,58 @@ static int dsa_switch_change_tag_proto(struct dsa_switch *ds, @@ -616,15 +616,58 @@ static int dsa_switch_change_tag_proto(s
return 0; return 0;
} }
@ -270,7 +262,7 @@ index 06948f5368296..393f2d8a860a9 100644
} }
static int dsa_switch_mrp_add(struct dsa_switch *ds, static int dsa_switch_mrp_add(struct dsa_switch *ds,
@@ -780,6 +823,9 @@ static int dsa_switch_event(struct notifier_block *nb, @@ -749,6 +792,9 @@ static int dsa_switch_event(struct notif
case DSA_NOTIFIER_TAG_PROTO_CONNECT: case DSA_NOTIFIER_TAG_PROTO_CONNECT:
err = dsa_switch_connect_tag_proto(ds, info); err = dsa_switch_connect_tag_proto(ds, info);
break; break;
@ -280,6 +272,3 @@ index 06948f5368296..393f2d8a860a9 100644
case DSA_NOTIFIER_MRP_ADD: case DSA_NOTIFIER_MRP_ADD:
err = dsa_switch_mrp_add(ds, info); err = dsa_switch_mrp_add(ds, info);
break; break;
--
cgit 1.2.3-1.el7

View file

@ -17,7 +17,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -1328,6 +1328,19 @@ static struct phy_driver at803x_driver[] @@ -1420,6 +1420,19 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}, }; }, };
module_phy_driver(at803x_driver); module_phy_driver(at803x_driver);
@@ -1338,6 +1351,8 @@ static struct mdio_device_id __maybe_unu @@ -1430,6 +1443,8 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH8032_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },

View file

@ -22,7 +22,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/b53/b53_common.c --- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c
@@ -2288,7 +2288,7 @@ static const struct b53_chip_data b53_sw @@ -2302,7 +2302,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM5325_DEVICE_ID, .chip_id = BCM5325_DEVICE_ID,
.dev_name = "BCM5325", .dev_name = "BCM5325",
.vlans = 16, .vlans = 16,
@ -31,7 +31,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 2, .arl_bins = 2,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 5, .imp_port = 5,
@@ -2299,7 +2299,7 @@ static const struct b53_chip_data b53_sw @@ -2313,7 +2313,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM5365_DEVICE_ID, .chip_id = BCM5365_DEVICE_ID,
.dev_name = "BCM5365", .dev_name = "BCM5365",
.vlans = 256, .vlans = 256,
@ -40,7 +40,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 2, .arl_bins = 2,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 5, .imp_port = 5,
@@ -2310,7 +2310,7 @@ static const struct b53_chip_data b53_sw @@ -2324,7 +2324,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM5389_DEVICE_ID, .chip_id = BCM5389_DEVICE_ID,
.dev_name = "BCM5389", .dev_name = "BCM5389",
.vlans = 4096, .vlans = 4096,
@ -49,7 +49,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2324,7 +2324,7 @@ static const struct b53_chip_data b53_sw @@ -2338,7 +2338,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM5395_DEVICE_ID, .chip_id = BCM5395_DEVICE_ID,
.dev_name = "BCM5395", .dev_name = "BCM5395",
.vlans = 4096, .vlans = 4096,
@ -58,7 +58,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2338,7 +2338,7 @@ static const struct b53_chip_data b53_sw @@ -2352,7 +2352,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM5397_DEVICE_ID, .chip_id = BCM5397_DEVICE_ID,
.dev_name = "BCM5397", .dev_name = "BCM5397",
.vlans = 4096, .vlans = 4096,
@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2352,7 +2352,7 @@ static const struct b53_chip_data b53_sw @@ -2366,7 +2366,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM5398_DEVICE_ID, .chip_id = BCM5398_DEVICE_ID,
.dev_name = "BCM5398", .dev_name = "BCM5398",
.vlans = 4096, .vlans = 4096,
@ -76,7 +76,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2366,7 +2366,7 @@ static const struct b53_chip_data b53_sw @@ -2380,7 +2380,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM53115_DEVICE_ID, .chip_id = BCM53115_DEVICE_ID,
.dev_name = "BCM53115", .dev_name = "BCM53115",
.vlans = 4096, .vlans = 4096,
@ -85,7 +85,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
@@ -2380,7 +2380,7 @@ static const struct b53_chip_data b53_sw @@ -2394,7 +2394,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM53125_DEVICE_ID, .chip_id = BCM53125_DEVICE_ID,
.dev_name = "BCM53125", .dev_name = "BCM53125",
.vlans = 4096, .vlans = 4096,
@ -94,7 +94,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2422,7 +2422,7 @@ static const struct b53_chip_data b53_sw @@ -2436,7 +2436,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM53010_DEVICE_ID, .chip_id = BCM53010_DEVICE_ID,
.dev_name = "BCM53010", .dev_name = "BCM53010",
.vlans = 4096, .vlans = 4096,
@ -103,7 +103,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2464,7 +2464,7 @@ static const struct b53_chip_data b53_sw @@ -2478,7 +2478,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM53018_DEVICE_ID, .chip_id = BCM53018_DEVICE_ID,
.dev_name = "BCM53018", .dev_name = "BCM53018",
.vlans = 4096, .vlans = 4096,
@ -112,7 +112,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2478,7 +2478,7 @@ static const struct b53_chip_data b53_sw @@ -2492,7 +2492,7 @@ static const struct b53_chip_data b53_sw
.chip_id = BCM53019_DEVICE_ID, .chip_id = BCM53019_DEVICE_ID,
.dev_name = "BCM53019", .dev_name = "BCM53019",
.vlans = 4096, .vlans = 4096,
@ -121,7 +121,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@@ -2605,7 +2605,6 @@ static int b53_switch_init(struct b53_de @@ -2634,7 +2634,6 @@ static int b53_switch_init(struct b53_de
dev->cpu_port = 5; dev->cpu_port = 5;
} }

View file

@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/b53/b53_common.c --- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c
@@ -1256,12 +1256,6 @@ static void b53_adjust_link(struct dsa_s @@ -1291,12 +1291,6 @@ static void b53_adjust_link(struct dsa_s
return; return;
} }
} }

View file

@ -21,7 +21,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/b53/b53_common.c --- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c
@@ -1187,7 +1187,7 @@ static void b53_adjust_link(struct dsa_s @@ -1222,7 +1222,7 @@ static void b53_adjust_link(struct dsa_s
return; return;
/* Enable flow control on BCM5301x's CPU port */ /* Enable flow control on BCM5301x's CPU port */

View file

@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
--- a/drivers/net/dsa/b53/b53_common.c --- a/drivers/net/dsa/b53/b53_common.c
+++ b/drivers/net/dsa/b53/b53_common.c +++ b/drivers/net/dsa/b53/b53_common.c
@@ -2286,7 +2286,6 @@ static const struct b53_chip_data b53_sw @@ -2300,7 +2300,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 2, .arl_bins = 2,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 5, .imp_port = 5,
@ -27,7 +27,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.duplex_reg = B53_DUPLEX_STAT_FE, .duplex_reg = B53_DUPLEX_STAT_FE,
}, },
{ {
@@ -2297,7 +2296,6 @@ static const struct b53_chip_data b53_sw @@ -2311,7 +2310,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 2, .arl_bins = 2,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 5, .imp_port = 5,
@ -35,7 +35,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.duplex_reg = B53_DUPLEX_STAT_FE, .duplex_reg = B53_DUPLEX_STAT_FE,
}, },
{ {
@@ -2308,7 +2306,6 @@ static const struct b53_chip_data b53_sw @@ -2322,7 +2320,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -43,7 +43,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2322,7 +2319,6 @@ static const struct b53_chip_data b53_sw @@ -2336,7 +2333,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -51,7 +51,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2336,7 +2332,6 @@ static const struct b53_chip_data b53_sw @@ -2350,7 +2346,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -59,7 +59,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS_9798, .vta_regs = B53_VTA_REGS_9798,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2350,7 +2345,6 @@ static const struct b53_chip_data b53_sw @@ -2364,7 +2359,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS_9798, .vta_regs = B53_VTA_REGS_9798,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2365,7 +2359,6 @@ static const struct b53_chip_data b53_sw @@ -2379,7 +2373,6 @@ static const struct b53_chip_data b53_sw
.arl_buckets = 1024, .arl_buckets = 1024,
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.imp_port = 8, .imp_port = 8,
@ -75,7 +75,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
.jumbo_size_reg = B53_JUMBO_MAX_SIZE, .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
@@ -2378,7 +2371,6 @@ static const struct b53_chip_data b53_sw @@ -2392,7 +2385,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -83,7 +83,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2392,7 +2384,6 @@ static const struct b53_chip_data b53_sw @@ -2406,7 +2398,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -91,7 +91,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2406,7 +2397,6 @@ static const struct b53_chip_data b53_sw @@ -2420,7 +2411,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -99,7 +99,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS_63XX, .vta_regs = B53_VTA_REGS_63XX,
.duplex_reg = B53_DUPLEX_STAT_63XX, .duplex_reg = B53_DUPLEX_STAT_63XX,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX, .jumbo_pm_reg = B53_JUMBO_PORT_MASK_63XX,
@@ -2420,7 +2410,6 @@ static const struct b53_chip_data b53_sw @@ -2434,7 +2424,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2434,7 +2423,6 @@ static const struct b53_chip_data b53_sw @@ -2448,7 +2437,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -115,7 +115,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2448,7 +2436,6 @@ static const struct b53_chip_data b53_sw @@ -2462,7 +2450,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -123,7 +123,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2462,7 +2449,6 @@ static const struct b53_chip_data b53_sw @@ -2476,7 +2463,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -131,7 +131,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2476,7 +2462,6 @@ static const struct b53_chip_data b53_sw @@ -2490,7 +2476,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -139,7 +139,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2490,7 +2475,6 @@ static const struct b53_chip_data b53_sw @@ -2504,7 +2489,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -147,7 +147,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2504,7 +2488,6 @@ static const struct b53_chip_data b53_sw @@ -2518,7 +2502,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -155,7 +155,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2518,7 +2501,6 @@ static const struct b53_chip_data b53_sw @@ -2547,7 +2530,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 1024, .arl_buckets = 1024,
.imp_port = 8, .imp_port = 8,
@ -163,7 +163,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2532,7 +2514,6 @@ static const struct b53_chip_data b53_sw @@ -2561,7 +2543,6 @@ static const struct b53_chip_data b53_sw
.arl_bins = 4, .arl_bins = 4,
.arl_buckets = 256, .arl_buckets = 256,
.imp_port = 8, .imp_port = 8,
@ -171,7 +171,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
.vta_regs = B53_VTA_REGS, .vta_regs = B53_VTA_REGS,
.duplex_reg = B53_DUPLEX_STAT_GE, .duplex_reg = B53_DUPLEX_STAT_GE,
.jumbo_pm_reg = B53_JUMBO_PORT_MASK, .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
@@ -2558,7 +2539,6 @@ static int b53_switch_init(struct b53_de @@ -2587,7 +2568,6 @@ static int b53_switch_init(struct b53_de
dev->vta_regs[2] = chip->vta_regs[2]; dev->vta_regs[2] = chip->vta_regs[2];
dev->jumbo_pm_reg = chip->jumbo_pm_reg; dev->jumbo_pm_reg = chip->jumbo_pm_reg;
dev->imp_port = chip->imp_port; dev->imp_port = chip->imp_port;
@ -179,7 +179,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
dev->num_vlans = chip->vlans; dev->num_vlans = chip->vlans;
dev->num_arl_bins = chip->arl_bins; dev->num_arl_bins = chip->arl_bins;
dev->num_arl_buckets = chip->arl_buckets; dev->num_arl_buckets = chip->arl_buckets;
@@ -2590,13 +2570,6 @@ static int b53_switch_init(struct b53_de @@ -2619,13 +2599,6 @@ static int b53_switch_init(struct b53_de
break; break;
#endif #endif
} }
@ -195,7 +195,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
dev->num_ports = fls(dev->enabled_ports); dev->num_ports = fls(dev->enabled_ports);
--- a/drivers/net/dsa/b53/b53_priv.h --- a/drivers/net/dsa/b53/b53_priv.h
+++ b/drivers/net/dsa/b53/b53_priv.h +++ b/drivers/net/dsa/b53/b53_priv.h
@@ -123,7 +123,6 @@ struct b53_device { @@ -124,7 +124,6 @@ struct b53_device {
/* used ports mask */ /* used ports mask */
u16 enabled_ports; u16 enabled_ports;
unsigned int imp_port; unsigned int imp_port;

View file

@ -16,9 +16,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -148,7 +148,8 @@ @@ -150,7 +150,8 @@
#define AT803X_PAGE_FIBER 0 #define ATH8035_PHY_ID 0x004dd072
#define AT803X_PAGE_COPPER 1 #define AT8030_PHY_ID_MASK 0xffffffef
-#define QCA8327_PHY_ID 0x004dd034 -#define QCA8327_PHY_ID 0x004dd034
+#define QCA8327_A_PHY_ID 0x004dd033 +#define QCA8327_A_PHY_ID 0x004dd033
@ -26,7 +26,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#define QCA8337_PHY_ID 0x004dd036 #define QCA8337_PHY_ID 0x004dd036
#define QCA8K_PHY_ID_MASK 0xffffffff #define QCA8K_PHY_ID_MASK 0xffffffff
@@ -1329,10 +1330,23 @@ static struct phy_driver at803x_driver[] @@ -1421,10 +1422,23 @@ static struct phy_driver at803x_driver[]
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
}, { }, {
@ -53,7 +53,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
.probe = at803x_probe, .probe = at803x_probe,
.flags = PHY_IS_INTERNAL, .flags = PHY_IS_INTERNAL,
@@ -1352,7 +1366,8 @@ static struct mdio_device_id __maybe_unu @@ -1444,7 +1458,8 @@ static struct mdio_device_id __maybe_unu
{ PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH8035_PHY_ID) },
{ PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) }, { PHY_ID_MATCH_EXACT(ATH9331_PHY_ID) },
{ PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) }, { PHY_ID_MATCH_EXACT(QCA8337_PHY_ID) },

View file

@ -16,7 +16,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -1329,6 +1329,8 @@ static struct phy_driver at803x_driver[] @@ -1421,6 +1421,8 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
@ -25,7 +25,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}, { }, {
/* QCA8327-A from switch QCA8327-AL1A */ /* QCA8327-A from switch QCA8327-AL1A */
.phy_id = QCA8327_A_PHY_ID, .phy_id = QCA8327_A_PHY_ID,
@@ -1342,6 +1344,8 @@ static struct phy_driver at803x_driver[] @@ -1434,6 +1436,8 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
@ -34,7 +34,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}, { }, {
/* QCA8327-B from switch QCA8327-BL1A */ /* QCA8327-B from switch QCA8327-BL1A */
.phy_id = QCA8327_B_PHY_ID, .phy_id = QCA8327_B_PHY_ID,
@@ -1355,6 +1359,8 @@ static struct phy_driver at803x_driver[] @@ -1447,6 +1451,8 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,

View file

@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -1318,47 +1318,47 @@ static struct phy_driver at803x_driver[] @@ -1410,47 +1410,47 @@ static struct phy_driver at803x_driver[]
.config_aneg = at803x_config_aneg, .config_aneg = at803x_config_aneg,
}, { }, {
/* QCA8337 */ /* QCA8337 */

View file

@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#define AT803X_DEBUG_REG_1F 0x1F #define AT803X_DEBUG_REG_1F 0x1F
#define AT803X_DEBUG_PLL_ON BIT(2) #define AT803X_DEBUG_PLL_ON BIT(2)
@@ -1220,6 +1225,58 @@ static int qca83xx_config_init(struct ph @@ -1312,6 +1317,58 @@ static int qca83xx_config_init(struct ph
return 0; return 0;
} }
@ -96,7 +96,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static struct phy_driver at803x_driver[] = { static struct phy_driver at803x_driver[] = {
{ {
/* Qualcomm Atheros AR8035 */ /* Qualcomm Atheros AR8035 */
@@ -1329,8 +1386,8 @@ static struct phy_driver at803x_driver[] @@ -1421,8 +1478,8 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
@ -107,7 +107,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}, { }, {
/* QCA8327-A from switch QCA8327-AL1A */ /* QCA8327-A from switch QCA8327-AL1A */
.phy_id = QCA8327_A_PHY_ID, .phy_id = QCA8327_A_PHY_ID,
@@ -1344,8 +1401,8 @@ static struct phy_driver at803x_driver[] @@ -1436,8 +1493,8 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,
@ -118,7 +118,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
}, { }, {
/* QCA8327-B from switch QCA8327-BL1A */ /* QCA8327-B from switch QCA8327-BL1A */
.phy_id = QCA8327_B_PHY_ID, .phy_id = QCA8327_B_PHY_ID,
@@ -1359,8 +1416,8 @@ static struct phy_driver at803x_driver[] @@ -1451,8 +1508,8 @@ static struct phy_driver at803x_driver[]
.get_sset_count = at803x_get_sset_count, .get_sset_count = at803x_get_sset_count,
.get_strings = at803x_get_strings, .get_strings = at803x_get_strings,
.get_stats = at803x_get_stats, .get_stats = at803x_get_stats,

View file

@ -19,7 +19,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -87,6 +87,8 @@ @@ -87,6 +87,8 @@
#define AT803X_PSSR_MR_AN_COMPLETE 0x0200 #define AT803X_PSSR_MR_AN_COMPLETE 0x0200
#define AT803X_DEBUG_REG_0 0x00 #define AT803X_DEBUG_REG_0 0x00
+#define QCA8327_DEBUG_MANU_CTRL_EN BIT(2) +#define QCA8327_DEBUG_MANU_CTRL_EN BIT(2)
@ -27,7 +27,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#define AT803X_DEBUG_RX_CLK_DLY_EN BIT(15) #define AT803X_DEBUG_RX_CLK_DLY_EN BIT(15)
#define AT803X_DEBUG_REG_5 0x05 #define AT803X_DEBUG_REG_5 0x05
@@ -1222,9 +1224,37 @@ static int qca83xx_config_init(struct ph @@ -1314,9 +1316,37 @@ static int qca83xx_config_init(struct ph
break; break;
} }
@ -65,7 +65,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
static int qca83xx_resume(struct phy_device *phydev) static int qca83xx_resume(struct phy_device *phydev)
{ {
int ret, val; int ret, val;
@@ -1379,6 +1409,7 @@ static struct phy_driver at803x_driver[] @@ -1471,6 +1501,7 @@ static struct phy_driver at803x_driver[]
.phy_id_mask = QCA8K_PHY_ID_MASK, .phy_id_mask = QCA8K_PHY_ID_MASK,
.name = "Qualcomm Atheros 8337 internal PHY", .name = "Qualcomm Atheros 8337 internal PHY",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
@ -73,7 +73,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.probe = at803x_probe, .probe = at803x_probe,
.flags = PHY_IS_INTERNAL, .flags = PHY_IS_INTERNAL,
.config_init = qca83xx_config_init, .config_init = qca83xx_config_init,
@@ -1394,6 +1425,7 @@ static struct phy_driver at803x_driver[] @@ -1486,6 +1517,7 @@ static struct phy_driver at803x_driver[]
.phy_id_mask = QCA8K_PHY_ID_MASK, .phy_id_mask = QCA8K_PHY_ID_MASK,
.name = "Qualcomm Atheros 8327-A internal PHY", .name = "Qualcomm Atheros 8327-A internal PHY",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */
@ -81,7 +81,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.probe = at803x_probe, .probe = at803x_probe,
.flags = PHY_IS_INTERNAL, .flags = PHY_IS_INTERNAL,
.config_init = qca83xx_config_init, .config_init = qca83xx_config_init,
@@ -1409,6 +1441,7 @@ static struct phy_driver at803x_driver[] @@ -1501,6 +1533,7 @@ static struct phy_driver at803x_driver[]
.phy_id_mask = QCA8K_PHY_ID_MASK, .phy_id_mask = QCA8K_PHY_ID_MASK,
.name = "Qualcomm Atheros 8327-B internal PHY", .name = "Qualcomm Atheros 8327-B internal PHY",
/* PHY_GBIT_FEATURES */ /* PHY_GBIT_FEATURES */

View file

@ -15,7 +15,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -1233,6 +1233,9 @@ static int qca83xx_config_init(struct ph @@ -1325,6 +1325,9 @@ static int qca83xx_config_init(struct ph
at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0, at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0,
QCA8327_DEBUG_MANU_CTRL_EN, 0); QCA8327_DEBUG_MANU_CTRL_EN, 0);

View file

@ -16,8 +16,8 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
--- a/drivers/net/phy/at803x.c --- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c +++ b/drivers/net/phy/at803x.c
@@ -86,12 +86,12 @@ @@ -86,12 +86,12 @@
#define AT803X_PSSR 0x11 /*PHY-Specific Status Register*/ #define AT803X_PSSR 0x11 /*PHY-Specific Status Register*/
#define AT803X_PSSR_MR_AN_COMPLETE 0x0200 #define AT803X_PSSR_MR_AN_COMPLETE 0x0200
-#define AT803X_DEBUG_REG_0 0x00 -#define AT803X_DEBUG_REG_0 0x00
+#define AT803X_DEBUG_ANALOG_TEST_CTRL 0x00 +#define AT803X_DEBUG_ANALOG_TEST_CTRL 0x00
@ -39,7 +39,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
#define AT803X_DEBUG_GATE_CLK_IN1000 BIT(6) #define AT803X_DEBUG_GATE_CLK_IN1000 BIT(6)
#define AT803X_DEBUG_REG_1F 0x1F #define AT803X_DEBUG_REG_1F 0x1F
@@ -274,25 +274,25 @@ static int at803x_read_page(struct phy_d @@ -284,25 +284,25 @@ static int at803x_read_page(struct phy_d
static int at803x_enable_rx_delay(struct phy_device *phydev) static int at803x_enable_rx_delay(struct phy_device *phydev)
{ {
@ -69,7 +69,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
AT803X_DEBUG_TX_CLK_DLY_EN, 0); AT803X_DEBUG_TX_CLK_DLY_EN, 0);
} }
@@ -1208,9 +1208,9 @@ static int qca83xx_config_init(struct ph @@ -1300,9 +1300,9 @@ static int qca83xx_config_init(struct ph
switch (switch_revision) { switch (switch_revision) {
case 1: case 1:
/* For 100M waveform */ /* For 100M waveform */
@ -81,7 +81,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
break; break;
case 2: case 2:
@@ -1218,8 +1218,8 @@ static int qca83xx_config_init(struct ph @@ -1310,8 +1310,8 @@ static int qca83xx_config_init(struct ph
fallthrough; fallthrough;
case 4: case 4:
phy_write_mmd(phydev, MDIO_MMD_PCS, MDIO_AZ_DEBUG, 0x803f); phy_write_mmd(phydev, MDIO_MMD_PCS, MDIO_AZ_DEBUG, 0x803f);
@ -92,7 +92,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_3C, 0x6000); at803x_debug_reg_write(phydev, AT803X_DEBUG_REG_3C, 0x6000);
break; break;
} }
@@ -1230,7 +1230,7 @@ static int qca83xx_config_init(struct ph @@ -1322,7 +1322,7 @@ static int qca83xx_config_init(struct ph
*/ */
if (phydev->drv->phy_id == QCA8327_A_PHY_ID || if (phydev->drv->phy_id == QCA8327_A_PHY_ID ||
phydev->drv->phy_id == QCA8327_B_PHY_ID) phydev->drv->phy_id == QCA8327_B_PHY_ID)
@ -101,7 +101,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
QCA8327_DEBUG_MANU_CTRL_EN, 0); QCA8327_DEBUG_MANU_CTRL_EN, 0);
/* Following original QCA sourcecode set port to prefer master */ /* Following original QCA sourcecode set port to prefer master */
@@ -1248,12 +1248,12 @@ static void qca83xx_link_change_notify(s @@ -1340,12 +1340,12 @@ static void qca83xx_link_change_notify(s
/* Set DAC Amplitude adjustment to +6% for 100m on link running */ /* Set DAC Amplitude adjustment to +6% for 100m on link running */
if (phydev->state == PHY_RUNNING) { if (phydev->state == PHY_RUNNING) {
if (phydev->speed == SPEED_100) if (phydev->speed == SPEED_100)
@ -116,7 +116,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
QCA8327_DEBUG_MANU_CTRL_EN, 0); QCA8327_DEBUG_MANU_CTRL_EN, 0);
} }
} }
@@ -1300,7 +1300,7 @@ static int qca83xx_suspend(struct phy_de @@ -1392,7 +1392,7 @@ static int qca83xx_suspend(struct phy_de
phy_modify(phydev, MII_BMCR, mask, 0); phy_modify(phydev, MII_BMCR, mask, 0);
} }

View file

@ -42,7 +42,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
if (ret) if (ret)
return ret; return ret;
} }
@@ -2098,7 +2105,12 @@ static int qca8k_resume(struct device *d @@ -2105,7 +2112,12 @@ static int qca8k_resume(struct device *d
static SIMPLE_DEV_PM_OPS(qca8k_pm_ops, static SIMPLE_DEV_PM_OPS(qca8k_pm_ops,
qca8k_suspend, qca8k_resume); qca8k_suspend, qca8k_resume);
@ -56,7 +56,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
.id = QCA8K_ID_QCA8327, .id = QCA8K_ID_QCA8327,
}; };
@@ -2107,7 +2119,8 @@ static const struct qca8k_match_data qca @@ -2114,7 +2126,8 @@ static const struct qca8k_match_data qca
}; };
static const struct of_device_id qca8k_of_match[] = { static const struct of_device_id qca8k_of_match[] = {

View file

@ -18,11 +18,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 12 ++++++------ drivers/net/dsa/qca8k.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-) 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index a429c9750add1b..d7bcecbc1c5300 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1433,6 +1433,12 @@ qca8k_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, @@ -1433,6 +1433,12 @@ qca8k_phylink_mac_config(struct dsa_swit
qca8k_write(priv, QCA8K_REG_SGMII_CTRL, val); qca8k_write(priv, QCA8K_REG_SGMII_CTRL, val);
@ -35,7 +33,7 @@ index a429c9750add1b..d7bcecbc1c5300 100644
/* For qca8327/qca8328/qca8334/qca8338 sgmii is unique and /* For qca8327/qca8328/qca8334/qca8338 sgmii is unique and
* falling edge is set writing in the PORT0 PAD reg * falling edge is set writing in the PORT0 PAD reg
*/ */
@@ -1455,12 +1461,6 @@ qca8k_phylink_mac_config(struct dsa_switch *ds, int port, unsigned int mode, @@ -1455,12 +1461,6 @@ qca8k_phylink_mac_config(struct dsa_swit
QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE, QCA8K_PORT0_PAD_SGMII_TXCLK_FALLING_EDGE,
val); val);

View file

@ -28,8 +28,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 6 +++++- drivers/net/dsa/qca8k.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-) 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index d7bcecbc1c5300..147ca39531a3bb 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1256,8 +1256,12 @@ qca8k_setup(struct dsa_switch *ds) @@ -1256,8 +1256,12 @@ qca8k_setup(struct dsa_switch *ds)

View file

@ -16,11 +16,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 2 +- drivers/net/dsa/qca8k.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index a429c9750add1..bfffc1fb7016d 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -983,7 +983,7 @@ qca8k_parse_port_config(struct qca8k_priv *priv) @@ -983,7 +983,7 @@ qca8k_parse_port_config(struct qca8k_pri
u32 delay; u32 delay;
/* We have 2 CPU port. Check them */ /* We have 2 CPU port. Check them */
@ -29,6 +27,3 @@ index a429c9750add1..bfffc1fb7016d 100644
/* Skip every other port */ /* Skip every other port */
if (port != 0 && port != 6) if (port != 0 && port != 6)
continue; continue;
--
cgit 1.2.3-1.el7

View file

@ -14,8 +14,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 153 ++++++++++++++++++++++++++---------------------- drivers/net/dsa/qca8k.h | 153 ++++++++++++++++++++++++++----------------------
2 files changed, 130 insertions(+), 121 deletions(-) 2 files changed, 130 insertions(+), 121 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index bfffc1fb7016d..0eceb9cba2dc8 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -9,6 +9,7 @@ @@ -9,6 +9,7 @@
@ -26,7 +24,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
#include <net/dsa.h> #include <net/dsa.h>
#include <linux/of_net.h> #include <linux/of_net.h>
#include <linux/of_mdio.h> #include <linux/of_mdio.h>
@@ -319,18 +320,18 @@ qca8k_fdb_read(struct qca8k_priv *priv, struct qca8k_fdb *fdb) @@ -319,18 +320,18 @@ qca8k_fdb_read(struct qca8k_priv *priv,
} }
/* vid - 83:72 */ /* vid - 83:72 */
@ -54,7 +52,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
return 0; return 0;
} }
@@ -343,18 +344,18 @@ qca8k_fdb_write(struct qca8k_priv *priv, u16 vid, u8 port_mask, const u8 *mac, @@ -343,18 +344,18 @@ qca8k_fdb_write(struct qca8k_priv *priv,
int i; int i;
/* vid - 83:72 */ /* vid - 83:72 */
@ -82,7 +80,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
/* load the array into the ARL table */ /* load the array into the ARL table */
for (i = 0; i < 3; i++) for (i = 0; i < 3; i++)
@@ -372,7 +373,7 @@ qca8k_fdb_access(struct qca8k_priv *priv, enum qca8k_fdb_cmd cmd, int port) @@ -372,7 +373,7 @@ qca8k_fdb_access(struct qca8k_priv *priv
reg |= cmd; reg |= cmd;
if (port >= 0) { if (port >= 0) {
reg |= QCA8K_ATU_FUNC_PORT_EN; reg |= QCA8K_ATU_FUNC_PORT_EN;
@ -91,7 +89,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
} }
/* Write the function register triggering the table access */ /* Write the function register triggering the table access */
@@ -454,7 +455,7 @@ qca8k_vlan_access(struct qca8k_priv *priv, enum qca8k_vlan_cmd cmd, u16 vid) @@ -454,7 +455,7 @@ qca8k_vlan_access(struct qca8k_priv *pri
/* Set the command and VLAN index */ /* Set the command and VLAN index */
reg = QCA8K_VTU_FUNC1_BUSY; reg = QCA8K_VTU_FUNC1_BUSY;
reg |= cmd; reg |= cmd;
@ -100,7 +98,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
/* Write the function register triggering the table access */ /* Write the function register triggering the table access */
ret = qca8k_write(priv, QCA8K_REG_VTU_FUNC1, reg); ret = qca8k_write(priv, QCA8K_REG_VTU_FUNC1, reg);
@@ -500,13 +501,11 @@ qca8k_vlan_add(struct qca8k_priv *priv, u8 port, u16 vid, bool untagged) @@ -500,13 +501,11 @@ qca8k_vlan_add(struct qca8k_priv *priv,
if (ret < 0) if (ret < 0)
goto out; goto out;
reg |= QCA8K_VTU_FUNC0_VALID | QCA8K_VTU_FUNC0_IVL_EN; reg |= QCA8K_VTU_FUNC0_VALID | QCA8K_VTU_FUNC0_IVL_EN;
@ -117,7 +115,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
ret = qca8k_write(priv, QCA8K_REG_VTU_FUNC0, reg); ret = qca8k_write(priv, QCA8K_REG_VTU_FUNC0, reg);
if (ret) if (ret)
@@ -534,15 +533,13 @@ qca8k_vlan_del(struct qca8k_priv *priv, u8 port, u16 vid) @@ -534,15 +533,13 @@ qca8k_vlan_del(struct qca8k_priv *priv,
ret = qca8k_read(priv, QCA8K_REG_VTU_FUNC0, &reg); ret = qca8k_read(priv, QCA8K_REG_VTU_FUNC0, &reg);
if (ret < 0) if (ret < 0)
goto out; goto out;
@ -136,7 +134,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
if ((reg & mask) != mask) { if ((reg & mask) != mask) {
del = false; del = false;
@@ -1014,7 +1011,7 @@ qca8k_parse_port_config(struct qca8k_priv *priv) @@ -1014,7 +1011,7 @@ qca8k_parse_port_config(struct qca8k_pri
mode == PHY_INTERFACE_MODE_RGMII_TXID) mode == PHY_INTERFACE_MODE_RGMII_TXID)
delay = 1; delay = 1;
@ -145,7 +143,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
dev_err(priv->dev, "rgmii tx delay is limited to a max value of 3ns, setting to the max value"); dev_err(priv->dev, "rgmii tx delay is limited to a max value of 3ns, setting to the max value");
delay = 3; delay = 3;
} }
@@ -1030,7 +1027,7 @@ qca8k_parse_port_config(struct qca8k_priv *priv) @@ -1030,7 +1027,7 @@ qca8k_parse_port_config(struct qca8k_pri
mode == PHY_INTERFACE_MODE_RGMII_RXID) mode == PHY_INTERFACE_MODE_RGMII_RXID)
delay = 2; delay = 2;
@ -209,7 +207,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
QCA8K_PORT_HOL_CTRL1_EG_PRI_BUF_EN | QCA8K_PORT_HOL_CTRL1_EG_PRI_BUF_EN |
QCA8K_PORT_HOL_CTRL1_EG_PORT_BUF_EN | QCA8K_PORT_HOL_CTRL1_EG_PORT_BUF_EN |
QCA8K_PORT_HOL_CTRL1_WRED_EN, QCA8K_PORT_HOL_CTRL1_WRED_EN,
@@ -1265,8 +1260,8 @@ qca8k_setup(struct dsa_switch *ds) @@ -1269,8 +1264,8 @@ qca8k_setup(struct dsa_switch *ds)
mask = QCA8K_GLOBAL_FC_GOL_XON_THRES(288) | mask = QCA8K_GLOBAL_FC_GOL_XON_THRES(288) |
QCA8K_GLOBAL_FC_GOL_XOFF_THRES(496); QCA8K_GLOBAL_FC_GOL_XOFF_THRES(496);
qca8k_rmw(priv, QCA8K_REG_GLOBAL_FC_THRESH, qca8k_rmw(priv, QCA8K_REG_GLOBAL_FC_THRESH,
@ -220,7 +218,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
mask); mask);
} }
@@ -1912,11 +1907,11 @@ qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, @@ -1916,11 +1911,11 @@ qca8k_port_vlan_filtering(struct dsa_swi
if (vlan_filtering) { if (vlan_filtering) {
ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(port), ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(port),
@ -234,7 +232,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
QCA8K_PORT_LOOKUP_VLAN_MODE_NONE); QCA8K_PORT_LOOKUP_VLAN_MODE_NONE);
} }
@@ -1940,10 +1935,9 @@ qca8k_port_vlan_add(struct dsa_switch *ds, int port, @@ -1944,10 +1939,9 @@ qca8k_port_vlan_add(struct dsa_switch *d
} }
if (pvid) { if (pvid) {
@ -247,7 +245,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
if (ret) if (ret)
return ret; return ret;
@@ -2037,7 +2031,7 @@ static int qca8k_read_switch_id(struct qca8k_priv *priv) @@ -2041,7 +2035,7 @@ static int qca8k_read_switch_id(struct q
if (ret < 0) if (ret < 0)
return -ENODEV; return -ENODEV;
@ -256,7 +254,7 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
if (id != data->id) { if (id != data->id) {
dev_err(priv->dev, "Switch id detected %x but expected %x", id, data->id); dev_err(priv->dev, "Switch id detected %x but expected %x", id, data->id);
return -ENODEV; return -ENODEV;
@@ -2046,7 +2040,7 @@ static int qca8k_read_switch_id(struct qca8k_priv *priv) @@ -2050,7 +2044,7 @@ static int qca8k_read_switch_id(struct q
priv->switch_id = id; priv->switch_id = id;
/* Save revision to communicate to the internal PHY driver */ /* Save revision to communicate to the internal PHY driver */
@ -265,8 +263,6 @@ index bfffc1fb7016d..0eceb9cba2dc8 100644
return 0; return 0;
} }
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 128b8cf85e080..085885275398b 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -30,9 +30,9 @@ @@ -30,9 +30,9 @@
@ -509,6 +505,3 @@ index 128b8cf85e080..085885275398b 100644
#define QCA8K_EGRESS_VLAN(x) (0x0c70 + (4 * (x / 2))) #define QCA8K_EGRESS_VLAN(x) (0x0c70 + (4 * (x / 2)))
/* L3 registers */ /* L3 registers */
--
cgit 1.2.3-1.el7

View file

@ -12,8 +12,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 2 -- drivers/net/dsa/qca8k.c | 2 --
1 file changed, 2 deletions(-) 1 file changed, 2 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 0eceb9cba2dc8..ae02043a52079 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1086,8 +1086,6 @@ qca8k_setup(struct dsa_switch *ds) @@ -1086,8 +1086,6 @@ qca8k_setup(struct dsa_switch *ds)
@ -25,6 +23,3 @@ index 0eceb9cba2dc8..ae02043a52079 100644
/* Start by setting up the register mapping */ /* Start by setting up the register mapping */
priv->regmap = devm_regmap_init(ds->dev, NULL, priv, priv->regmap = devm_regmap_init(ds->dev, NULL, priv,
&qca8k_regmap_config); &qca8k_regmap_config);
--
cgit 1.2.3-1.el7

View file

@ -14,8 +14,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 14 ++++++++------ drivers/net/dsa/qca8k.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-) 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index ae02043a52079..f63a432916360 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1086,12 +1086,6 @@ qca8k_setup(struct dsa_switch *ds) @@ -1086,12 +1086,6 @@ qca8k_setup(struct dsa_switch *ds)
@ -31,7 +29,7 @@ index ae02043a52079..f63a432916360 100644
ret = qca8k_setup_mdio_bus(priv); ret = qca8k_setup_mdio_bus(priv);
if (ret) if (ret)
return ret; return ret;
@@ -2073,6 +2067,14 @@ qca8k_sw_probe(struct mdio_device *mdiodev) @@ -2077,6 +2071,14 @@ qca8k_sw_probe(struct mdio_device *mdiod
gpiod_set_value_cansleep(priv->reset_gpio, 0); gpiod_set_value_cansleep(priv->reset_gpio, 0);
} }
@ -46,6 +44,3 @@ index ae02043a52079..f63a432916360 100644
/* Check the detected switch id */ /* Check the detected switch id */
ret = qca8k_read_switch_id(priv); ret = qca8k_read_switch_id(priv);
if (ret) if (ret)
--
cgit 1.2.3-1.el7

View file

@ -23,8 +23,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 107 +++++++++++++++++++++--------------------------- drivers/net/dsa/qca8k.c | 107 +++++++++++++++++++++---------------------------
1 file changed, 47 insertions(+), 60 deletions(-) 1 file changed, 47 insertions(+), 60 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index f63a432916360..d64a9af186beb 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -10,6 +10,7 @@ @@ -10,6 +10,7 @@
@ -35,7 +33,7 @@ index f63a432916360..d64a9af186beb 100644
#include <net/dsa.h> #include <net/dsa.h>
#include <linux/of_net.h> #include <linux/of_net.h>
#include <linux/of_mdio.h> #include <linux/of_mdio.h>
@@ -152,6 +153,25 @@ qca8k_set_page(struct mii_bus *bus, u16 page) @@ -152,6 +153,25 @@ qca8k_set_page(struct mii_bus *bus, u16
static int static int
qca8k_read(struct qca8k_priv *priv, u32 reg, u32 *val) qca8k_read(struct qca8k_priv *priv, u32 reg, u32 *val)
{ {
@ -118,7 +116,7 @@ index f63a432916360..d64a9af186beb 100644
static const struct regmap_range qca8k_readable_ranges[] = { static const struct regmap_range qca8k_readable_ranges[] = {
regmap_reg_range(0x0000, 0x00e4), /* Global control */ regmap_reg_range(0x0000, 0x00e4), /* Global control */
regmap_reg_range(0x0100, 0x0168), /* EEE control */ regmap_reg_range(0x0100, 0x0168), /* EEE control */
@@ -282,26 +276,19 @@ static struct regmap_config qca8k_regmap_config = { @@ -282,26 +276,19 @@ static struct regmap_config qca8k_regmap
.max_register = 0x16ac, /* end MIB - Port6 range */ .max_register = 0x16ac, /* end MIB - Port6 range */
.reg_read = qca8k_regmap_read, .reg_read = qca8k_regmap_read,
.reg_write = qca8k_regmap_write, .reg_write = qca8k_regmap_write,
@ -168,7 +166,7 @@ index f63a432916360..d64a9af186beb 100644
if (ret) if (ret)
goto exit; goto exit;
@@ -597,9 +584,9 @@ qca8k_port_set_status(struct qca8k_priv *priv, int port, int enable) @@ -597,9 +584,9 @@ qca8k_port_set_status(struct qca8k_priv
mask |= QCA8K_PORT_STATUS_LINK_AUTO; mask |= QCA8K_PORT_STATUS_LINK_AUTO;
if (enable) if (enable)
@ -180,7 +178,7 @@ index f63a432916360..d64a9af186beb 100644
} }
static u32 static u32
@@ -861,8 +848,8 @@ qca8k_setup_mdio_bus(struct qca8k_priv *priv) @@ -861,8 +848,8 @@ qca8k_setup_mdio_bus(struct qca8k_priv *
* a dt-overlay and driver reload changed the configuration * a dt-overlay and driver reload changed the configuration
*/ */
@ -223,7 +221,7 @@ index f63a432916360..d64a9af186beb 100644
if (ret) if (ret)
return ret; return ret;
@@ -1741,9 +1728,9 @@ qca8k_port_bridge_join(struct dsa_switch *ds, int port, struct net_device *br) @@ -1745,9 +1732,9 @@ qca8k_port_bridge_join(struct dsa_switch
/* Add this port to the portvlan mask of the other ports /* Add this port to the portvlan mask of the other ports
* in the bridge * in the bridge
*/ */
@ -236,7 +234,7 @@ index f63a432916360..d64a9af186beb 100644
if (ret) if (ret)
return ret; return ret;
if (i != port) if (i != port)
@@ -1773,9 +1760,9 @@ qca8k_port_bridge_leave(struct dsa_switch *ds, int port, struct net_device *br) @@ -1777,9 +1764,9 @@ qca8k_port_bridge_leave(struct dsa_switc
/* Remove this port to the portvlan mask of the other ports /* Remove this port to the portvlan mask of the other ports
* in the bridge * in the bridge
*/ */
@ -249,6 +247,3 @@ index f63a432916360..d64a9af186beb 100644
} }
/* Set the cpu port to be the only one in the portvlan mask of /* Set the cpu port to be the only one in the portvlan mask of
--
cgit 1.2.3-1.el7

View file

@ -17,11 +17,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 4 ++++ drivers/net/dsa/qca8k.h | 4 ++++
2 files changed, 24 insertions(+), 3 deletions(-) 2 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index d64a9af186beb..bedaaa6b9a1df 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -70,6 +70,8 @@ static const struct qca8k_mib_desc ar8327_mib[] = { @@ -70,6 +70,8 @@ static const struct qca8k_mib_desc ar832
MIB_DESC(1, 0x9c, "TxExcDefer"), MIB_DESC(1, 0x9c, "TxExcDefer"),
MIB_DESC(1, 0xa0, "TxDefer"), MIB_DESC(1, 0xa0, "TxDefer"),
MIB_DESC(1, 0xa4, "TxLateCol"), MIB_DESC(1, 0xa4, "TxLateCol"),
@ -30,7 +28,7 @@ index d64a9af186beb..bedaaa6b9a1df 100644
}; };
/* The 32bit switch registers are accessed indirectly. To achieve this we need /* The 32bit switch registers are accessed indirectly. To achieve this we need
@@ -1601,12 +1603,16 @@ qca8k_phylink_mac_link_up(struct dsa_switch *ds, int port, unsigned int mode, @@ -1605,12 +1607,16 @@ qca8k_phylink_mac_link_up(struct dsa_swi
static void static void
qca8k_get_strings(struct dsa_switch *ds, int port, u32 stringset, uint8_t *data) qca8k_get_strings(struct dsa_switch *ds, int port, u32 stringset, uint8_t *data)
{ {
@ -48,7 +46,7 @@ index d64a9af186beb..bedaaa6b9a1df 100644
strncpy(data + i * ETH_GSTRING_LEN, ar8327_mib[i].name, strncpy(data + i * ETH_GSTRING_LEN, ar8327_mib[i].name,
ETH_GSTRING_LEN); ETH_GSTRING_LEN);
} }
@@ -1616,12 +1622,15 @@ qca8k_get_ethtool_stats(struct dsa_switch *ds, int port, @@ -1620,12 +1626,15 @@ qca8k_get_ethtool_stats(struct dsa_switc
uint64_t *data) uint64_t *data)
{ {
struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv;
@ -65,7 +63,7 @@ index d64a9af186beb..bedaaa6b9a1df 100644
mib = &ar8327_mib[i]; mib = &ar8327_mib[i];
reg = QCA8K_PORT_MIB_COUNTER(port) + mib->offset; reg = QCA8K_PORT_MIB_COUNTER(port) + mib->offset;
@@ -1644,10 +1653,15 @@ qca8k_get_ethtool_stats(struct dsa_switch *ds, int port, @@ -1648,10 +1657,15 @@ qca8k_get_ethtool_stats(struct dsa_switc
static int static int
qca8k_get_sset_count(struct dsa_switch *ds, int port, int sset) qca8k_get_sset_count(struct dsa_switch *ds, int port, int sset)
{ {
@ -82,7 +80,7 @@ index d64a9af186beb..bedaaa6b9a1df 100644
} }
static int static int
@@ -2150,14 +2164,17 @@ static SIMPLE_DEV_PM_OPS(qca8k_pm_ops, @@ -2154,14 +2168,17 @@ static SIMPLE_DEV_PM_OPS(qca8k_pm_ops,
static const struct qca8k_match_data qca8327 = { static const struct qca8k_match_data qca8327 = {
.id = QCA8K_ID_QCA8327, .id = QCA8K_ID_QCA8327,
.reduced_package = true, .reduced_package = true,
@ -100,8 +98,6 @@ index d64a9af186beb..bedaaa6b9a1df 100644
}; };
static const struct of_device_id qca8k_of_match[] = { static const struct of_device_id qca8k_of_match[] = {
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 085885275398b..91c94dfc9789d 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -21,6 +21,9 @@ @@ -21,6 +21,9 @@
@ -122,6 +118,3 @@ index 085885275398b..91c94dfc9789d 100644
}; };
enum { enum {
--
cgit 1.2.3-1.el7

View file

@ -14,11 +14,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 1 + drivers/net/dsa/qca8k.h | 1 +
2 files changed, 12 insertions(+) 2 files changed, 12 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index bedaaa6b9a1df..d988df913ae02 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1786,6 +1786,16 @@ qca8k_port_bridge_leave(struct dsa_switch *ds, int port, struct net_device *br) @@ -1790,6 +1790,16 @@ qca8k_port_bridge_leave(struct dsa_switc
QCA8K_PORT_LOOKUP_MEMBER, BIT(cpu_port)); QCA8K_PORT_LOOKUP_MEMBER, BIT(cpu_port));
} }
@ -35,7 +33,7 @@ index bedaaa6b9a1df..d988df913ae02 100644
static int static int
qca8k_port_enable(struct dsa_switch *ds, int port, qca8k_port_enable(struct dsa_switch *ds, int port,
struct phy_device *phy) struct phy_device *phy)
@@ -1994,6 +2004,7 @@ static const struct dsa_switch_ops qca8k_switch_ops = { @@ -1998,6 +2008,7 @@ static const struct dsa_switch_ops qca8k
.port_stp_state_set = qca8k_port_stp_state_set, .port_stp_state_set = qca8k_port_stp_state_set,
.port_bridge_join = qca8k_port_bridge_join, .port_bridge_join = qca8k_port_bridge_join,
.port_bridge_leave = qca8k_port_bridge_leave, .port_bridge_leave = qca8k_port_bridge_leave,
@ -43,8 +41,6 @@ index bedaaa6b9a1df..d988df913ae02 100644
.port_fdb_add = qca8k_port_fdb_add, .port_fdb_add = qca8k_port_fdb_add,
.port_fdb_del = qca8k_port_fdb_del, .port_fdb_del = qca8k_port_fdb_del,
.port_fdb_dump = qca8k_port_fdb_dump, .port_fdb_dump = qca8k_port_fdb_dump,
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 91c94dfc9789d..a533b8cf143be 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -262,6 +262,7 @@ enum qca8k_fdb_cmd { @@ -262,6 +262,7 @@ enum qca8k_fdb_cmd {
@ -55,6 +51,3 @@ index 91c94dfc9789d..a533b8cf143be 100644
QCA8K_FDB_NEXT = 6, QCA8K_FDB_NEXT = 6,
QCA8K_FDB_SEARCH = 7, QCA8K_FDB_SEARCH = 7,
}; };
--
cgit 1.2.3-1.el7

View file

@ -16,11 +16,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 3 +++ drivers/net/dsa/qca8k.h | 3 +++
2 files changed, 28 insertions(+) 2 files changed, 28 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index d988df913ae02..45e769b9166b8 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1257,6 +1257,10 @@ qca8k_setup(struct dsa_switch *ds) @@ -1261,6 +1261,10 @@ qca8k_setup(struct dsa_switch *ds)
/* We don't have interrupts for link changes, so we need to poll */ /* We don't have interrupts for link changes, so we need to poll */
ds->pcs_poll = true; ds->pcs_poll = true;
@ -31,11 +29,10 @@ index d988df913ae02..45e769b9166b8 100644
return 0; return 0;
} }
@@ -1796,6 +1800,26 @@ qca8k_port_fast_age(struct dsa_switch *ds, int port) @@ -1801,6 +1805,26 @@ qca8k_port_fast_age(struct dsa_switch *d
mutex_unlock(&priv->reg_mutex);
} }
+static int static int
+qca8k_set_ageing_time(struct dsa_switch *ds, unsigned int msecs) +qca8k_set_ageing_time(struct dsa_switch *ds, unsigned int msecs)
+{ +{
+ struct qca8k_priv *priv = ds->priv; + struct qca8k_priv *priv = ds->priv;
@ -55,10 +52,11 @@ index d988df913ae02..45e769b9166b8 100644
+ QCA8K_ATU_AGE_TIME(val)); + QCA8K_ATU_AGE_TIME(val));
+} +}
+ +
static int +static int
qca8k_port_enable(struct dsa_switch *ds, int port, qca8k_port_enable(struct dsa_switch *ds, int port,
struct phy_device *phy) struct phy_device *phy)
@@ -1995,6 +2019,7 @@ static const struct dsa_switch_ops qca8k_switch_ops = { {
@@ -1999,6 +2023,7 @@ static const struct dsa_switch_ops qca8k
.get_strings = qca8k_get_strings, .get_strings = qca8k_get_strings,
.get_ethtool_stats = qca8k_get_ethtool_stats, .get_ethtool_stats = qca8k_get_ethtool_stats,
.get_sset_count = qca8k_get_sset_count, .get_sset_count = qca8k_get_sset_count,
@ -66,8 +64,6 @@ index d988df913ae02..45e769b9166b8 100644
.get_mac_eee = qca8k_get_mac_eee, .get_mac_eee = qca8k_get_mac_eee,
.set_mac_eee = qca8k_set_mac_eee, .set_mac_eee = qca8k_set_mac_eee,
.port_enable = qca8k_port_enable, .port_enable = qca8k_port_enable,
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index a533b8cf143be..40ec8012622f7 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -175,6 +175,9 @@ @@ -175,6 +175,9 @@
@ -80,6 +76,3 @@ index a533b8cf143be..40ec8012622f7 100644
#define QCA8K_REG_GLOBAL_FW_CTRL0 0x620 #define QCA8K_REG_GLOBAL_FW_CTRL0 0x620
#define QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN BIT(10) #define QCA8K_GLOBAL_FW_CTRL0_CPU_PORT_EN BIT(10)
#define QCA8K_REG_GLOBAL_FW_CTRL1 0x624 #define QCA8K_REG_GLOBAL_FW_CTRL1 0x624
--
cgit 1.2.3-1.el7

View file

@ -18,15 +18,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/net/dsa/qca8k.c | 99 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+) 1 file changed, 99 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 45e769b9166b8..67742fbd80409 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -435,6 +435,81 @@ qca8k_fdb_flush(struct qca8k_priv *priv) @@ -436,6 +436,81 @@ qca8k_fdb_flush(struct qca8k_priv *priv)
mutex_unlock(&priv->reg_mutex);
} }
+static int static int
+qca8k_fdb_search_and_insert(struct qca8k_priv *priv, u8 port_mask, +qca8k_fdb_search_and_insert(struct qca8k_priv *priv, u8 port_mask,
+ const u8 *mac, u16 vid) + const u8 *mac, u16 vid)
+{ +{
@ -101,14 +98,14 @@ index 45e769b9166b8..67742fbd80409 100644
+ return ret; + return ret;
+} +}
+ +
static int +static int
qca8k_vlan_access(struct qca8k_priv *priv, enum qca8k_vlan_cmd cmd, u16 vid) qca8k_vlan_access(struct qca8k_priv *priv, enum qca8k_vlan_cmd cmd, u16 vid)
{ {
@@ -1925,6 +2000,28 @@ qca8k_port_fdb_dump(struct dsa_switch *ds, int port, u32 reg;
return 0; @@ -1930,6 +2005,28 @@ qca8k_port_fdb_dump(struct dsa_switch *d
} }
+static int static int
+qca8k_port_mdb_add(struct dsa_switch *ds, int port, +qca8k_port_mdb_add(struct dsa_switch *ds, int port,
+ const struct switchdev_obj_port_mdb *mdb) + const struct switchdev_obj_port_mdb *mdb)
+{ +{
@ -130,10 +127,11 @@ index 45e769b9166b8..67742fbd80409 100644
+ return qca8k_fdb_search_and_del(priv, BIT(port), addr, vid); + return qca8k_fdb_search_and_del(priv, BIT(port), addr, vid);
+} +}
+ +
static int +static int
qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
@@ -2033,6 +2130,8 @@ static const struct dsa_switch_ops qca8k_switch_ops = { {
@@ -2037,6 +2134,8 @@ static const struct dsa_switch_ops qca8k
.port_fdb_add = qca8k_port_fdb_add, .port_fdb_add = qca8k_port_fdb_add,
.port_fdb_del = qca8k_port_fdb_del, .port_fdb_del = qca8k_port_fdb_del,
.port_fdb_dump = qca8k_port_fdb_dump, .port_fdb_dump = qca8k_port_fdb_dump,
@ -142,6 +140,3 @@ index 45e769b9166b8..67742fbd80409 100644
.port_vlan_filtering = qca8k_port_vlan_filtering, .port_vlan_filtering = qca8k_port_vlan_filtering,
.port_vlan_add = qca8k_port_vlan_add, .port_vlan_add = qca8k_port_vlan_add,
.port_vlan_del = qca8k_port_vlan_del, .port_vlan_del = qca8k_port_vlan_del,
--
cgit 1.2.3-1.el7

View file

@ -15,15 +15,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 4 +++ drivers/net/dsa/qca8k.h | 4 +++
2 files changed, 99 insertions(+) 2 files changed, 99 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 67742fbd80409..bd9d756f40011 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -2022,6 +2022,99 @@ qca8k_port_mdb_del(struct dsa_switch *ds, int port, @@ -2027,6 +2027,99 @@ qca8k_port_mdb_del(struct dsa_switch *ds
return qca8k_fdb_search_and_del(priv, BIT(port), addr, vid);
} }
+static int static int
+qca8k_port_mirror_add(struct dsa_switch *ds, int port, +qca8k_port_mirror_add(struct dsa_switch *ds, int port,
+ struct dsa_mall_mirror_tc_entry *mirror, + struct dsa_mall_mirror_tc_entry *mirror,
+ bool ingress) + bool ingress)
@ -116,10 +113,11 @@ index 67742fbd80409..bd9d756f40011 100644
+ dev_err(priv->dev, "Failed to del mirror port from %d", port); + dev_err(priv->dev, "Failed to del mirror port from %d", port);
+} +}
+ +
static int +static int
qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering, qca8k_port_vlan_filtering(struct dsa_switch *ds, int port, bool vlan_filtering,
struct netlink_ext_ack *extack) struct netlink_ext_ack *extack)
@@ -2132,6 +2225,8 @@ static const struct dsa_switch_ops qca8k_switch_ops = { {
@@ -2136,6 +2229,8 @@ static const struct dsa_switch_ops qca8k
.port_fdb_dump = qca8k_port_fdb_dump, .port_fdb_dump = qca8k_port_fdb_dump,
.port_mdb_add = qca8k_port_mdb_add, .port_mdb_add = qca8k_port_mdb_add,
.port_mdb_del = qca8k_port_mdb_del, .port_mdb_del = qca8k_port_mdb_del,
@ -128,8 +126,6 @@ index 67742fbd80409..bd9d756f40011 100644
.port_vlan_filtering = qca8k_port_vlan_filtering, .port_vlan_filtering = qca8k_port_vlan_filtering,
.port_vlan_add = qca8k_port_vlan_add, .port_vlan_add = qca8k_port_vlan_add,
.port_vlan_del = qca8k_port_vlan_del, .port_vlan_del = qca8k_port_vlan_del,
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 40ec8012622f7..7c87a968c0104 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -180,6 +180,7 @@ @@ -180,6 +180,7 @@
@ -157,6 +153,3 @@ index 40ec8012622f7..7c87a968c0104 100644
bool legacy_phy_port_mapping; bool legacy_phy_port_mapping;
struct qca8k_ports_config ports_config; struct qca8k_ports_config ports_config;
struct regmap *regmap; struct regmap *regmap;
--
cgit 1.2.3-1.el7

View file

@ -23,11 +23,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 33 +++++++++ drivers/net/dsa/qca8k.h | 33 +++++++++
2 files changed, 210 insertions(+) 2 files changed, 210 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index bd9d756f40011..6516df08a5d5f 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -1336,6 +1336,9 @@ qca8k_setup(struct dsa_switch *ds) @@ -1340,6 +1340,9 @@ qca8k_setup(struct dsa_switch *ds)
ds->ageing_time_min = 7000; ds->ageing_time_min = 7000;
ds->ageing_time_max = 458745000; ds->ageing_time_max = 458745000;
@ -37,7 +35,7 @@ index bd9d756f40011..6516df08a5d5f 100644
return 0; return 0;
} }
@@ -2203,6 +2206,178 @@ qca8k_get_tag_protocol(struct dsa_switch *ds, int port, @@ -2207,6 +2210,178 @@ qca8k_get_tag_protocol(struct dsa_switch
return DSA_TAG_PROTO_QCA; return DSA_TAG_PROTO_QCA;
} }
@ -216,7 +214,7 @@ index bd9d756f40011..6516df08a5d5f 100644
static const struct dsa_switch_ops qca8k_switch_ops = { static const struct dsa_switch_ops qca8k_switch_ops = {
.get_tag_protocol = qca8k_get_tag_protocol, .get_tag_protocol = qca8k_get_tag_protocol,
.setup = qca8k_setup, .setup = qca8k_setup,
@@ -2236,6 +2411,8 @@ static const struct dsa_switch_ops qca8k_switch_ops = { @@ -2240,6 +2415,8 @@ static const struct dsa_switch_ops qca8k
.phylink_mac_link_down = qca8k_phylink_mac_link_down, .phylink_mac_link_down = qca8k_phylink_mac_link_down,
.phylink_mac_link_up = qca8k_phylink_mac_link_up, .phylink_mac_link_up = qca8k_phylink_mac_link_up,
.get_phy_flags = qca8k_get_phy_flags, .get_phy_flags = qca8k_get_phy_flags,
@ -225,8 +223,6 @@ index bd9d756f40011..6516df08a5d5f 100644
}; };
static int qca8k_read_switch_id(struct qca8k_priv *priv) static int qca8k_read_switch_id(struct qca8k_priv *priv)
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 7c87a968c0104..ab4a417b25a9c 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -15,6 +15,8 @@ @@ -15,6 +15,8 @@
@ -290,6 +286,3 @@ index 7c87a968c0104..ab4a417b25a9c 100644
bool legacy_phy_port_mapping; bool legacy_phy_port_mapping;
struct qca8k_ports_config ports_config; struct qca8k_ports_config ports_config;
struct regmap *regmap; struct regmap *regmap;
--
cgit 1.2.3-1.el7

View file

@ -17,11 +17,9 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/qca8k.c | 4 ++-- drivers/net/dsa/qca8k.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 6516df08a5d5f..d04b25eca2503 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -2228,7 +2228,7 @@ qca8k_lag_can_offload(struct dsa_switch *ds, @@ -2232,7 +2232,7 @@ qca8k_lag_can_offload(struct dsa_switch
if (info->tx_type != NETDEV_LAG_TX_TYPE_HASH) if (info->tx_type != NETDEV_LAG_TX_TYPE_HASH)
return false; return false;
@ -30,7 +28,7 @@ index 6516df08a5d5f..d04b25eca2503 100644
info->hash_type != NETDEV_LAG_HASH_L23) info->hash_type != NETDEV_LAG_HASH_L23)
return false; return false;
@@ -2242,8 +2242,8 @@ qca8k_lag_setup_hash(struct dsa_switch *ds, @@ -2246,8 +2246,8 @@ qca8k_lag_setup_hash(struct dsa_switch *
{ {
struct qca8k_priv *priv = ds->priv; struct qca8k_priv *priv = ds->priv;
bool unique_lag = true; bool unique_lag = true;
@ -40,6 +38,3 @@ index 6516df08a5d5f..d04b25eca2503 100644
id = dsa_lag_id(ds->dst, lag); id = dsa_lag_id(ds->dst, lag);
--
cgit 1.2.3-1.el7

View file

@ -20,11 +20,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c | 14 +++++++------- net/dsa/slave.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-) 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 88f7b8686dac..88bcdba92fa7 100644
--- a/net/dsa/slave.c --- a/net/dsa/slave.c
+++ b/net/dsa/slave.c +++ b/net/dsa/slave.c
@@ -2011,13 +2011,6 @@ int dsa_slave_create(struct dsa_port *port) @@ -1986,13 +1986,6 @@ int dsa_slave_create(struct dsa_port *po
port->slave = slave_dev; port->slave = slave_dev;
dsa_slave_setup_tagger(slave_dev); dsa_slave_setup_tagger(slave_dev);
@ -38,20 +36,17 @@ index 88f7b8686dac..88bcdba92fa7 100644
netif_carrier_off(slave_dev); netif_carrier_off(slave_dev);
ret = dsa_slave_phy_setup(slave_dev); ret = dsa_slave_phy_setup(slave_dev);
@@ -2028,6 +2021,13 @@ int dsa_slave_create(struct dsa_port *port) @@ -2004,6 +1997,13 @@ int dsa_slave_create(struct dsa_port *po
goto out_gcells;
} }
+ rtnl_lock(); rtnl_lock();
+ ret = dsa_slave_change_mtu(slave_dev, ETH_DATA_LEN); + ret = dsa_slave_change_mtu(slave_dev, ETH_DATA_LEN);
+ rtnl_unlock(); + rtnl_unlock();
+ if (ret && ret != -EOPNOTSUPP) + if (ret && ret != -EOPNOTSUPP)
+ dev_warn(ds->dev, "nonfatal error %d setting MTU to %d on port %d\n", + dev_warn(ds->dev, "nonfatal error %d setting MTU to %d on port %d\n",
+ ret, ETH_DATA_LEN, port->index); + ret, ETH_DATA_LEN, port->index);
+ +
rtnl_lock(); + rtnl_lock();
ret = register_netdevice(slave_dev); ret = register_netdevice(slave_dev);
-- if (ret) {
2.34.1

View file

@ -14,11 +14,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c | 4 +--- net/dsa/slave.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-) 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 88bcdba92fa7..22241afcac81 100644
--- a/net/dsa/slave.c --- a/net/dsa/slave.c
+++ b/net/dsa/slave.c +++ b/net/dsa/slave.c
@@ -2022,14 +2022,12 @@ int dsa_slave_create(struct dsa_port *port) @@ -1997,14 +1997,12 @@ int dsa_slave_create(struct dsa_port *po
} }
rtnl_lock(); rtnl_lock();
@ -34,6 +32,3 @@ index 88bcdba92fa7..22241afcac81 100644
ret = register_netdevice(slave_dev); ret = register_netdevice(slave_dev);
if (ret) { if (ret) {
netdev_err(master, "error %d registering interface %s\n", netdev_err(master, "error %d registering interface %s\n",
--
2.34.1

View file

@ -35,11 +35,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/master.c | 25 +------------------------ net/dsa/master.c | 25 +------------------------
1 file changed, 1 insertion(+), 24 deletions(-) 1 file changed, 1 insertion(+), 24 deletions(-)
diff --git a/net/dsa/master.c b/net/dsa/master.c
index e8e19857621b..f4efb244f91d 100644
--- a/net/dsa/master.c --- a/net/dsa/master.c
+++ b/net/dsa/master.c +++ b/net/dsa/master.c
@@ -330,28 +330,13 @@ static const struct attribute_group dsa_group = { @@ -330,28 +330,13 @@ static const struct attribute_group dsa_
.attrs = dsa_slave_attrs, .attrs = dsa_slave_attrs,
}; };
@ -69,7 +67,7 @@ index e8e19857621b..f4efb244f91d 100644
/* The DSA master must use SET_NETDEV_DEV for this to work. */ /* The DSA master must use SET_NETDEV_DEV for this to work. */
consumer_link = device_link_add(ds->dev, dev->dev.parent, consumer_link = device_link_add(ds->dev, dev->dev.parent,
@@ -361,13 +346,6 @@ int dsa_master_setup(struct net_device *dev, struct dsa_port *cpu_dp) @@ -361,13 +346,6 @@ int dsa_master_setup(struct net_device *
"Failed to create a device link to DSA switch %s\n", "Failed to create a device link to DSA switch %s\n",
dev_name(ds->dev)); dev_name(ds->dev));
@ -83,7 +81,7 @@ index e8e19857621b..f4efb244f91d 100644
/* If we use a tagging format that doesn't have an ethertype /* If we use a tagging format that doesn't have an ethertype
* field, make sure that all packets from this point on get * field, make sure that all packets from this point on get
* sent to the tag format's receive function. * sent to the tag format's receive function.
@@ -405,7 +383,6 @@ void dsa_master_teardown(struct net_device *dev) @@ -405,7 +383,6 @@ void dsa_master_teardown(struct net_devi
sysfs_remove_group(&dev->dev.kobj, &dsa_group); sysfs_remove_group(&dev->dev.kobj, &dsa_group);
dsa_netdev_ops_set(dev, NULL); dsa_netdev_ops_set(dev, NULL);
dsa_master_ethtool_teardown(dev); dsa_master_ethtool_teardown(dev);
@ -91,6 +89,3 @@ index e8e19857621b..f4efb244f91d 100644
dsa_master_set_promiscuity(dev, -1); dsa_master_set_promiscuity(dev, -1);
dev->dsa_ptr = NULL; dev->dsa_ptr = NULL;
--
2.34.1

View file

@ -28,11 +28,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/master.c | 4 ++-- net/dsa/master.c | 4 ++--
2 files changed, 10 insertions(+), 2 deletions(-) 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index a0d84f9f864f..52fb1958b535 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -1038,6 +1038,8 @@ static int dsa_tree_setup_master(struct dsa_switch_tree *dst) @@ -1034,6 +1034,8 @@ static int dsa_tree_setup_master(struct
struct dsa_port *dp; struct dsa_port *dp;
int err; int err;
@ -41,7 +39,7 @@ index a0d84f9f864f..52fb1958b535 100644
list_for_each_entry(dp, &dst->ports, list) { list_for_each_entry(dp, &dst->ports, list) {
if (dsa_port_is_cpu(dp)) { if (dsa_port_is_cpu(dp)) {
err = dsa_master_setup(dp->master, dp); err = dsa_master_setup(dp->master, dp);
@@ -1046,6 +1048,8 @@ static int dsa_tree_setup_master(struct dsa_switch_tree *dst) @@ -1042,6 +1044,8 @@ static int dsa_tree_setup_master(struct
} }
} }
@ -50,7 +48,7 @@ index a0d84f9f864f..52fb1958b535 100644
return 0; return 0;
} }
@@ -1053,9 +1057,13 @@ static void dsa_tree_teardown_master(struct dsa_switch_tree *dst) @@ -1049,9 +1053,13 @@ static void dsa_tree_teardown_master(str
{ {
struct dsa_port *dp; struct dsa_port *dp;
@ -64,11 +62,9 @@ index a0d84f9f864f..52fb1958b535 100644
} }
static int dsa_tree_setup_lags(struct dsa_switch_tree *dst) static int dsa_tree_setup_lags(struct dsa_switch_tree *dst)
diff --git a/net/dsa/master.c b/net/dsa/master.c
index f4efb244f91d..2199104ca7df 100644
--- a/net/dsa/master.c --- a/net/dsa/master.c
+++ b/net/dsa/master.c +++ b/net/dsa/master.c
@@ -267,9 +267,9 @@ static void dsa_master_set_promiscuity(struct net_device *dev, int inc) @@ -267,9 +267,9 @@ static void dsa_master_set_promiscuity(s
if (!ops->promisc_on_master) if (!ops->promisc_on_master)
return; return;
@ -80,6 +76,3 @@ index f4efb244f91d..2199104ca7df 100644
} }
static ssize_t tagging_show(struct device *d, struct device_attribute *attr, static ssize_t tagging_show(struct device *d, struct device_attribute *attr,
--
2.34.1

View file

@ -25,11 +25,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/dsa2.c | 50 +++++++++++++++++++++++++++++++++++++------------- net/dsa/dsa2.c | 50 +++++++++++++++++++++++++++++++++++++-------------
1 file changed, 37 insertions(+), 13 deletions(-) 1 file changed, 37 insertions(+), 13 deletions(-)
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 52fb1958b535..ea0f02a24b8b 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -1003,23 +1003,28 @@ static void dsa_tree_teardown_switches(struct dsa_switch_tree *dst) @@ -999,23 +999,28 @@ static void dsa_tree_teardown_switches(s
dsa_switch_teardown(dp->ds); dsa_switch_teardown(dp->ds);
} }
@ -68,7 +66,7 @@ index 52fb1958b535..ea0f02a24b8b 100644
} }
} }
@@ -1028,7 +1033,21 @@ static int dsa_tree_setup_switches(struct dsa_switch_tree *dst) @@ -1024,7 +1029,21 @@ static int dsa_tree_setup_switches(struc
teardown: teardown:
dsa_tree_teardown_ports(dst); dsa_tree_teardown_ports(dst);
@ -91,7 +89,7 @@ index 52fb1958b535..ea0f02a24b8b 100644
return err; return err;
} }
@@ -1115,10 +1134,14 @@ static int dsa_tree_setup(struct dsa_switch_tree *dst) @@ -1111,10 +1130,14 @@ static int dsa_tree_setup(struct dsa_swi
if (err) if (err)
goto teardown_cpu_ports; goto teardown_cpu_ports;
@ -107,7 +105,7 @@ index 52fb1958b535..ea0f02a24b8b 100644
err = dsa_tree_setup_lags(dst); err = dsa_tree_setup_lags(dst);
if (err) if (err)
goto teardown_master; goto teardown_master;
@@ -1131,8 +1154,9 @@ static int dsa_tree_setup(struct dsa_switch_tree *dst) @@ -1127,8 +1150,9 @@ static int dsa_tree_setup(struct dsa_swi
teardown_master: teardown_master:
dsa_tree_teardown_master(dst); dsa_tree_teardown_master(dst);
@ -118,6 +116,3 @@ index 52fb1958b535..ea0f02a24b8b 100644
dsa_tree_teardown_switches(dst); dsa_tree_teardown_switches(dst);
teardown_cpu_ports: teardown_cpu_ports:
dsa_tree_teardown_cpu_ports(dst); dsa_tree_teardown_cpu_ports(dst);
--
2.34.1

View file

@ -41,11 +41,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/dsa2.c | 23 +++++++++++++---------- net/dsa/dsa2.c | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-) 1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index ea0f02a24b8b..3d21521453fe 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -561,6 +561,7 @@ static void dsa_port_teardown(struct dsa_port *dp) @@ -545,6 +545,7 @@ static void dsa_port_teardown(struct dsa
struct devlink_port *dlp = &dp->devlink_port; struct devlink_port *dlp = &dp->devlink_port;
struct dsa_switch *ds = dp->ds; struct dsa_switch *ds = dp->ds;
struct dsa_mac_addr *a, *tmp; struct dsa_mac_addr *a, *tmp;
@ -53,7 +51,7 @@ index ea0f02a24b8b..3d21521453fe 100644
if (!dp->setup) if (!dp->setup)
return; return;
@@ -582,9 +583,11 @@ static void dsa_port_teardown(struct dsa_port *dp) @@ -566,9 +567,11 @@ static void dsa_port_teardown(struct dsa
dsa_port_link_unregister_of(dp); dsa_port_link_unregister_of(dp);
break; break;
case DSA_PORT_TYPE_USER: case DSA_PORT_TYPE_USER:
@ -67,7 +65,7 @@ index ea0f02a24b8b..3d21521453fe 100644
} }
break; break;
} }
@@ -1134,17 +1137,17 @@ static int dsa_tree_setup(struct dsa_switch_tree *dst) @@ -1130,17 +1133,17 @@ static int dsa_tree_setup(struct dsa_swi
if (err) if (err)
goto teardown_cpu_ports; goto teardown_cpu_ports;
@ -89,7 +87,7 @@ index ea0f02a24b8b..3d21521453fe 100644
dst->setup = true; dst->setup = true;
@@ -1152,10 +1155,10 @@ static int dsa_tree_setup(struct dsa_switch_tree *dst) @@ -1148,10 +1151,10 @@ static int dsa_tree_setup(struct dsa_swi
return 0; return 0;
@ -102,7 +100,7 @@ index ea0f02a24b8b..3d21521453fe 100644
teardown_switches: teardown_switches:
dsa_tree_teardown_switches(dst); dsa_tree_teardown_switches(dst);
teardown_cpu_ports: teardown_cpu_ports:
@@ -1173,10 +1176,10 @@ static void dsa_tree_teardown(struct dsa_switch_tree *dst) @@ -1169,10 +1172,10 @@ static void dsa_tree_teardown(struct dsa
dsa_tree_teardown_lags(dst); dsa_tree_teardown_lags(dst);
@ -115,6 +113,3 @@ index ea0f02a24b8b..3d21521453fe 100644
dsa_tree_teardown_switches(dst); dsa_tree_teardown_switches(dst);
dsa_tree_teardown_cpu_ports(dst); dsa_tree_teardown_cpu_ports(dst);
--
2.34.1

View file

@ -42,11 +42,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/switch.c | 15 +++++++++++++++ net/dsa/switch.c | 15 +++++++++++++++
5 files changed, 123 insertions(+) 5 files changed, 123 insertions(+)
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 57b3e4e7413b..43c4153ef53a 100644
--- a/include/net/dsa.h --- a/include/net/dsa.h
+++ b/include/net/dsa.h +++ b/include/net/dsa.h
@@ -278,6 +278,10 @@ struct dsa_port { @@ -291,6 +291,10 @@ struct dsa_port {
struct list_head mdbs; struct list_head mdbs;
bool setup; bool setup;
@ -57,7 +55,7 @@ index 57b3e4e7413b..43c4153ef53a 100644
}; };
/* TODO: ideally DSA ports would have a single dp->link_dp member, /* TODO: ideally DSA ports would have a single dp->link_dp member,
@@ -478,6 +482,12 @@ static inline bool dsa_port_is_unused(struct dsa_port *dp) @@ -456,6 +460,12 @@ static inline bool dsa_port_is_unused(st
return dp->type == DSA_PORT_TYPE_UNUSED; return dp->type == DSA_PORT_TYPE_UNUSED;
} }
@ -70,7 +68,7 @@ index 57b3e4e7413b..43c4153ef53a 100644
static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p) static inline bool dsa_is_unused_port(struct dsa_switch *ds, int p)
{ {
return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_UNUSED; return dsa_to_port(ds, p)->type == DSA_PORT_TYPE_UNUSED;
@@ -1036,6 +1046,13 @@ struct dsa_switch_ops { @@ -916,6 +926,13 @@ struct dsa_switch_ops {
int (*tag_8021q_vlan_add)(struct dsa_switch *ds, int port, u16 vid, int (*tag_8021q_vlan_add)(struct dsa_switch *ds, int port, u16 vid,
u16 flags); u16 flags);
int (*tag_8021q_vlan_del)(struct dsa_switch *ds, int port, u16 vid); int (*tag_8021q_vlan_del)(struct dsa_switch *ds, int port, u16 vid);
@ -84,11 +82,9 @@ index 57b3e4e7413b..43c4153ef53a 100644
}; };
#define DSA_DEVLINK_PARAM_DRIVER(_id, _name, _type, _cmodes) \ #define DSA_DEVLINK_PARAM_DRIVER(_id, _name, _type, _cmodes) \
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 3d21521453fe..ff998c0ede02 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -1279,6 +1279,52 @@ int dsa_tree_change_tag_proto(struct dsa_switch_tree *dst, @@ -1275,6 +1275,52 @@ out_unlock:
return err; return err;
} }
@ -141,19 +137,17 @@ index 3d21521453fe..ff998c0ede02 100644
static struct dsa_port *dsa_port_touch(struct dsa_switch *ds, int index) static struct dsa_port *dsa_port_touch(struct dsa_switch *ds, int index)
{ {
struct dsa_switch_tree *dst = ds->dst; struct dsa_switch_tree *dst = ds->dst;
diff --git a/net/dsa/dsa_priv.h b/net/dsa/dsa_priv.h
index 760306f0012f..2bbfa9efe9f8 100644
--- a/net/dsa/dsa_priv.h --- a/net/dsa/dsa_priv.h
+++ b/net/dsa/dsa_priv.h +++ b/net/dsa/dsa_priv.h
@@ -40,6 +40,7 @@ enum { @@ -45,6 +45,7 @@ enum {
DSA_NOTIFIER_TAG_PROTO_DISCONNECT, DSA_NOTIFIER_MRP_DEL_RING_ROLE,
DSA_NOTIFIER_TAG_8021Q_VLAN_ADD, DSA_NOTIFIER_TAG_8021Q_VLAN_ADD,
DSA_NOTIFIER_TAG_8021Q_VLAN_DEL, DSA_NOTIFIER_TAG_8021Q_VLAN_DEL,
+ DSA_NOTIFIER_MASTER_STATE_CHANGE, + DSA_NOTIFIER_MASTER_STATE_CHANGE,
}; };
/* DSA_NOTIFIER_AGEING_TIME */ /* DSA_NOTIFIER_AGEING_TIME */
@@ -109,6 +110,12 @@ struct dsa_notifier_tag_8021q_vlan_info { @@ -127,6 +128,12 @@ struct dsa_notifier_tag_8021q_vlan_info
u16 vid; u16 vid;
}; };
@ -166,7 +160,7 @@ index 760306f0012f..2bbfa9efe9f8 100644
struct dsa_switchdev_event_work { struct dsa_switchdev_event_work {
struct dsa_switch *ds; struct dsa_switch *ds;
int port; int port;
@@ -482,6 +489,12 @@ int dsa_tree_change_tag_proto(struct dsa_switch_tree *dst, @@ -548,6 +555,12 @@ int dsa_tree_change_tag_proto(struct dsa
struct net_device *master, struct net_device *master,
const struct dsa_device_ops *tag_ops, const struct dsa_device_ops *tag_ops,
const struct dsa_device_ops *old_tag_ops); const struct dsa_device_ops *old_tag_ops);
@ -179,11 +173,9 @@ index 760306f0012f..2bbfa9efe9f8 100644
int dsa_bridge_num_get(const struct net_device *bridge_dev, int max); int dsa_bridge_num_get(const struct net_device *bridge_dev, int max);
void dsa_bridge_num_put(const struct net_device *bridge_dev, int bridge_num); void dsa_bridge_num_put(const struct net_device *bridge_dev, int bridge_num);
diff --git a/net/dsa/slave.c b/net/dsa/slave.c
index 22241afcac81..2b5b0f294233 100644
--- a/net/dsa/slave.c --- a/net/dsa/slave.c
+++ b/net/dsa/slave.c +++ b/net/dsa/slave.c
@@ -2346,6 +2346,36 @@ static int dsa_slave_netdevice_event(struct notifier_block *nb, @@ -2320,6 +2320,36 @@ static int dsa_slave_netdevice_event(str
err = dsa_port_lag_change(dp, info->lower_state_info); err = dsa_port_lag_change(dp, info->lower_state_info);
return notifier_from_errno(err); return notifier_from_errno(err);
} }
@ -220,20 +212,18 @@ index 22241afcac81..2b5b0f294233 100644
case NETDEV_GOING_DOWN: { case NETDEV_GOING_DOWN: {
struct dsa_port *dp, *cpu_dp; struct dsa_port *dp, *cpu_dp;
struct dsa_switch_tree *dst; struct dsa_switch_tree *dst;
@@ -2357,6 +2387,8 @@ static int dsa_slave_netdevice_event(struct notifier_block *nb, @@ -2331,6 +2361,8 @@ static int dsa_slave_netdevice_event(str
cpu_dp = dev->dsa_ptr; cpu_dp = dev->dsa_ptr;
dst = cpu_dp->ds->dst; dst = cpu_dp->ds->dst;
+ dsa_tree_master_admin_state_change(dst, dev, false); + dsa_tree_master_admin_state_change(dst, dev, false);
+ +
list_for_each_entry(dp, &dst->ports, list) { list_for_each_entry(dp, &dst->ports, list) {
if (!dsa_port_is_user(dp)) if (!dsa_is_user_port(dp->ds, dp->index))
continue; continue;
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index 517cc83d13cc..4866b58649e4 100644
--- a/net/dsa/switch.c --- a/net/dsa/switch.c
+++ b/net/dsa/switch.c +++ b/net/dsa/switch.c
@@ -697,6 +697,18 @@ dsa_switch_disconnect_tag_proto(struct dsa_switch *ds, @@ -722,6 +722,18 @@ dsa_switch_mrp_del_ring_role(struct dsa_
return 0; return 0;
} }
@ -252,7 +242,7 @@ index 517cc83d13cc..4866b58649e4 100644
static int dsa_switch_event(struct notifier_block *nb, static int dsa_switch_event(struct notifier_block *nb,
unsigned long event, void *info) unsigned long event, void *info)
{ {
@@ -770,6 +782,9 @@ static int dsa_switch_event(struct notifier_block *nb, @@ -813,6 +825,9 @@ static int dsa_switch_event(struct notif
case DSA_NOTIFIER_TAG_8021Q_VLAN_DEL: case DSA_NOTIFIER_TAG_8021Q_VLAN_DEL:
err = dsa_switch_tag_8021q_vlan_del(ds, info); err = dsa_switch_tag_8021q_vlan_del(ds, info);
break; break;
@ -262,6 +252,3 @@ index 517cc83d13cc..4866b58649e4 100644
default: default:
err = -EOPNOTSUPP; err = -EOPNOTSUPP;
break; break;
--
2.34.1

View file

@ -34,8 +34,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/dsa2.c | 28 ++++++++++++++++++++++++---- net/dsa/dsa2.c | 28 ++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-) 1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index ff998c0ede02..909b045c9b11 100644
--- a/net/dsa/dsa2.c --- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c +++ b/net/dsa/dsa2.c
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
@ -46,7 +44,7 @@ index ff998c0ede02..909b045c9b11 100644
#include "dsa_priv.h" #include "dsa_priv.h"
@@ -1064,9 +1065,18 @@ static int dsa_tree_setup_master(struct dsa_switch_tree *dst) @@ -1060,9 +1061,18 @@ static int dsa_tree_setup_master(struct
list_for_each_entry(dp, &dst->ports, list) { list_for_each_entry(dp, &dst->ports, list) {
if (dsa_port_is_cpu(dp)) { if (dsa_port_is_cpu(dp)) {
@ -66,7 +64,7 @@ index ff998c0ede02..909b045c9b11 100644
} }
} }
@@ -1081,9 +1091,19 @@ static void dsa_tree_teardown_master(struct dsa_switch_tree *dst) @@ -1077,9 +1087,19 @@ static void dsa_tree_teardown_master(str
rtnl_lock(); rtnl_lock();
@ -89,6 +87,3 @@ index ff998c0ede02..909b045c9b11 100644
rtnl_unlock(); rtnl_unlock();
} }
--
2.34.1

View file

@ -13,8 +13,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_qca.c | 34 +++++++++++++++------------------- net/dsa/tag_qca.c | 34 +++++++++++++++-------------------
1 file changed, 15 insertions(+), 19 deletions(-) 1 file changed, 15 insertions(+), 19 deletions(-)
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index 1ea9401b8ace..55fa6b96b4eb 100644
--- a/net/dsa/tag_qca.c --- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c
@@ -4,29 +4,24 @@ @@ -4,29 +4,24 @@
@ -39,15 +37,14 @@ index 1ea9401b8ace..55fa6b96b4eb 100644
+#define QCA_HDR_RECV_TYPE GENMASK(10, 6) +#define QCA_HDR_RECV_TYPE GENMASK(10, 6)
#define QCA_HDR_RECV_FRAME_IS_TAGGED BIT(3) #define QCA_HDR_RECV_FRAME_IS_TAGGED BIT(3)
-#define QCA_HDR_RECV_SOURCE_PORT_MASK GENMASK(2, 0) -#define QCA_HDR_RECV_SOURCE_PORT_MASK GENMASK(2, 0)
- +#define QCA_HDR_RECV_SOURCE_PORT GENMASK(2, 0)
-#define QCA_HDR_XMIT_VERSION_MASK GENMASK(15, 14) -#define QCA_HDR_XMIT_VERSION_MASK GENMASK(15, 14)
-#define QCA_HDR_XMIT_VERSION_S 14 -#define QCA_HDR_XMIT_VERSION_S 14
-#define QCA_HDR_XMIT_PRIORITY_MASK GENMASK(13, 11) -#define QCA_HDR_XMIT_PRIORITY_MASK GENMASK(13, 11)
-#define QCA_HDR_XMIT_PRIORITY_S 11 -#define QCA_HDR_XMIT_PRIORITY_S 11
-#define QCA_HDR_XMIT_CONTROL_MASK GENMASK(10, 8) -#define QCA_HDR_XMIT_CONTROL_MASK GENMASK(10, 8)
-#define QCA_HDR_XMIT_CONTROL_S 8 -#define QCA_HDR_XMIT_CONTROL_S 8
+#define QCA_HDR_RECV_SOURCE_PORT GENMASK(2, 0)
+
+#define QCA_HDR_XMIT_VERSION GENMASK(15, 14) +#define QCA_HDR_XMIT_VERSION GENMASK(15, 14)
+#define QCA_HDR_XMIT_PRIORITY GENMASK(13, 11) +#define QCA_HDR_XMIT_PRIORITY GENMASK(13, 11)
+#define QCA_HDR_XMIT_CONTROL GENMASK(10, 8) +#define QCA_HDR_XMIT_CONTROL GENMASK(10, 8)
@ -57,7 +54,7 @@ index 1ea9401b8ace..55fa6b96b4eb 100644
static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
@@ -40,8 +35,9 @@ static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) @@ -40,8 +35,9 @@ static struct sk_buff *qca_tag_xmit(stru
phdr = dsa_etype_header_pos_tx(skb); phdr = dsa_etype_header_pos_tx(skb);
/* Set the version field, and set destination port information */ /* Set the version field, and set destination port information */
@ -69,7 +66,7 @@ index 1ea9401b8ace..55fa6b96b4eb 100644
*phdr = htons(hdr); *phdr = htons(hdr);
@@ -62,7 +58,7 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -62,7 +58,7 @@ static struct sk_buff *qca_tag_rcv(struc
hdr = ntohs(*phdr); hdr = ntohs(*phdr);
/* Make sure the version is correct */ /* Make sure the version is correct */
@ -78,7 +75,7 @@ index 1ea9401b8ace..55fa6b96b4eb 100644
if (unlikely(ver != QCA_HDR_VERSION)) if (unlikely(ver != QCA_HDR_VERSION))
return NULL; return NULL;
@@ -71,7 +67,7 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -71,7 +67,7 @@ static struct sk_buff *qca_tag_rcv(struc
dsa_strip_etype_header(skb, QCA_HDR_LEN); dsa_strip_etype_header(skb, QCA_HDR_LEN);
/* Get source port information */ /* Get source port information */
@ -87,6 +84,3 @@ index 1ea9401b8ace..55fa6b96b4eb 100644
skb->dev = dsa_master_find_slave(dev, 0, port); skb->dev = dsa_master_find_slave(dev, 0, port);
if (!skb->dev) if (!skb->dev)
--
2.34.1

View file

@ -17,9 +17,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
2 files changed, 22 insertions(+), 15 deletions(-) 2 files changed, 22 insertions(+), 15 deletions(-)
create mode 100644 include/linux/dsa/tag_qca.h create mode 100644 include/linux/dsa/tag_qca.h
diff --git a/include/linux/dsa/tag_qca.h b/include/linux/dsa/tag_qca.h
new file mode 100644
index 000000000000..c02d2d39ff4a
--- /dev/null --- /dev/null
+++ b/include/linux/dsa/tag_qca.h +++ b/include/linux/dsa/tag_qca.h
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@ -44,8 +41,6 @@ index 000000000000..c02d2d39ff4a
+#define QCA_HDR_XMIT_DP_BIT GENMASK(6, 0) +#define QCA_HDR_XMIT_DP_BIT GENMASK(6, 0)
+ +
+#endif /* __TAG_QCA_H */ +#endif /* __TAG_QCA_H */
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index 55fa6b96b4eb..34e565e00ece 100644
--- a/net/dsa/tag_qca.c --- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c
@@ -5,24 +5,10 @@ @@ -5,24 +5,10 @@
@ -74,6 +69,3 @@ index 55fa6b96b4eb..34e565e00ece 100644
static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
struct dsa_port *dp = dsa_slave_to_port(dev); struct dsa_port *dp = dsa_slave_to_port(dev);
--
2.34.1

View file

@ -15,11 +15,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_qca.c | 1 + net/dsa/tag_qca.c | 1 +
1 file changed, 1 insertion(+) 1 file changed, 1 insertion(+)
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index 34e565e00ece..f8df49d5956f 100644
--- a/net/dsa/tag_qca.c --- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c
@@ -68,6 +68,7 @@ static const struct dsa_device_ops qca_netdev_ops = { @@ -68,6 +68,7 @@ static const struct dsa_device_ops qca_n
.xmit = qca_tag_xmit, .xmit = qca_tag_xmit,
.rcv = qca_tag_rcv, .rcv = qca_tag_rcv,
.needed_headroom = QCA_HDR_LEN, .needed_headroom = QCA_HDR_LEN,
@ -27,6 +25,3 @@ index 34e565e00ece..f8df49d5956f 100644
}; };
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
--
2.34.1

View file

@ -19,8 +19,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_qca.c | 15 ++++++++++--- net/dsa/tag_qca.c | 15 ++++++++++---
2 files changed, 56 insertions(+), 3 deletions(-) 2 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/include/linux/dsa/tag_qca.h b/include/linux/dsa/tag_qca.h
index c02d2d39ff4a..f366422ab7a0 100644
--- a/include/linux/dsa/tag_qca.h --- a/include/linux/dsa/tag_qca.h
+++ b/include/linux/dsa/tag_qca.h +++ b/include/linux/dsa/tag_qca.h
@@ -12,10 +12,54 @@ @@ -12,10 +12,54 @@
@ -78,11 +76,9 @@ index c02d2d39ff4a..f366422ab7a0 100644
+} __packed; +} __packed;
+ +
#endif /* __TAG_QCA_H */ #endif /* __TAG_QCA_H */
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index f8df49d5956f..f17ed5be20c2 100644
--- a/net/dsa/tag_qca.c --- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c
@@ -32,10 +32,12 @@ static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) @@ -32,10 +32,12 @@ static struct sk_buff *qca_tag_xmit(stru
static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev)
{ {
@ -98,7 +94,7 @@ index f8df49d5956f..f17ed5be20c2 100644
if (unlikely(!pskb_may_pull(skb, QCA_HDR_LEN))) if (unlikely(!pskb_may_pull(skb, QCA_HDR_LEN)))
return NULL; return NULL;
@@ -48,6 +50,13 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -48,6 +50,13 @@ static struct sk_buff *qca_tag_rcv(struc
if (unlikely(ver != QCA_HDR_VERSION)) if (unlikely(ver != QCA_HDR_VERSION))
return NULL; return NULL;
@ -112,6 +108,3 @@ index f8df49d5956f..f17ed5be20c2 100644
/* Remove QCA tag and recalculate checksum */ /* Remove QCA tag and recalculate checksum */
skb_pull_rcsum(skb, QCA_HDR_LEN); skb_pull_rcsum(skb, QCA_HDR_LEN);
dsa_strip_etype_header(skb, QCA_HDR_LEN); dsa_strip_etype_header(skb, QCA_HDR_LEN);
--
2.34.1

View file

@ -13,8 +13,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_qca.c | 4 ++++ net/dsa/tag_qca.c | 4 ++++
2 files changed, 14 insertions(+) 2 files changed, 14 insertions(+)
diff --git a/include/linux/dsa/tag_qca.h b/include/linux/dsa/tag_qca.h
index f366422ab7a0..1fff57f2937b 100644
--- a/include/linux/dsa/tag_qca.h --- a/include/linux/dsa/tag_qca.h
+++ b/include/linux/dsa/tag_qca.h +++ b/include/linux/dsa/tag_qca.h
@@ -62,4 +62,14 @@ struct qca_mgmt_ethhdr { @@ -62,4 +62,14 @@ struct qca_mgmt_ethhdr {
@ -32,11 +30,9 @@ index f366422ab7a0..1fff57f2937b 100644
+} __packed; +} __packed;
+ +
#endif /* __TAG_QCA_H */ #endif /* __TAG_QCA_H */
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index f17ed5be20c2..be792cf687d9 100644
--- a/net/dsa/tag_qca.c --- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c
@@ -57,6 +57,10 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -57,6 +57,10 @@ static struct sk_buff *qca_tag_rcv(struc
if (pk_type == QCA_HDR_RECV_TYPE_RW_REG_ACK) if (pk_type == QCA_HDR_RECV_TYPE_RW_REG_ACK)
return NULL; return NULL;
@ -47,6 +43,3 @@ index f17ed5be20c2..be792cf687d9 100644
/* Remove QCA tag and recalculate checksum */ /* Remove QCA tag and recalculate checksum */
skb_pull_rcsum(skb, QCA_HDR_LEN); skb_pull_rcsum(skb, QCA_HDR_LEN);
dsa_strip_etype_header(skb, QCA_HDR_LEN); dsa_strip_etype_header(skb, QCA_HDR_LEN);
--
2.34.1

View file

@ -17,8 +17,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_qca.c | 39 ++++++++++++++++++++++++++++++++++--- net/dsa/tag_qca.c | 39 ++++++++++++++++++++++++++++++++++---
2 files changed, 43 insertions(+), 3 deletions(-) 2 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/include/linux/dsa/tag_qca.h b/include/linux/dsa/tag_qca.h
index 1fff57f2937b..4359fb0221cf 100644
--- a/include/linux/dsa/tag_qca.h --- a/include/linux/dsa/tag_qca.h
+++ b/include/linux/dsa/tag_qca.h +++ b/include/linux/dsa/tag_qca.h
@@ -72,4 +72,11 @@ struct mib_ethhdr { @@ -72,4 +72,11 @@ struct mib_ethhdr {
@ -33,8 +31,6 @@ index 1fff57f2937b..4359fb0221cf 100644
+}; +};
+ +
#endif /* __TAG_QCA_H */ #endif /* __TAG_QCA_H */
diff --git a/net/dsa/tag_qca.c b/net/dsa/tag_qca.c
index be792cf687d9..57d2e00f1e5d 100644
--- a/net/dsa/tag_qca.c --- a/net/dsa/tag_qca.c
+++ b/net/dsa/tag_qca.c +++ b/net/dsa/tag_qca.c
@@ -5,6 +5,7 @@ @@ -5,6 +5,7 @@
@ -45,7 +41,7 @@ index be792cf687d9..57d2e00f1e5d 100644
#include <linux/dsa/tag_qca.h> #include <linux/dsa/tag_qca.h>
#include "dsa_priv.h" #include "dsa_priv.h"
@@ -32,6 +33,9 @@ static struct sk_buff *qca_tag_xmit(struct sk_buff *skb, struct net_device *dev) @@ -32,6 +33,9 @@ static struct sk_buff *qca_tag_xmit(stru
static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev)
{ {
@ -55,7 +51,7 @@ index be792cf687d9..57d2e00f1e5d 100644
u8 ver, pk_type; u8 ver, pk_type;
__be16 *phdr; __be16 *phdr;
int port; int port;
@@ -39,6 +43,8 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -39,6 +43,8 @@ static struct sk_buff *qca_tag_rcv(struc
BUILD_BUG_ON(sizeof(struct qca_mgmt_ethhdr) != QCA_HDR_MGMT_HEADER_LEN + QCA_HDR_LEN); BUILD_BUG_ON(sizeof(struct qca_mgmt_ethhdr) != QCA_HDR_MGMT_HEADER_LEN + QCA_HDR_LEN);
@ -64,7 +60,7 @@ index be792cf687d9..57d2e00f1e5d 100644
if (unlikely(!pskb_may_pull(skb, QCA_HDR_LEN))) if (unlikely(!pskb_may_pull(skb, QCA_HDR_LEN)))
return NULL; return NULL;
@@ -53,13 +59,19 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -53,13 +59,19 @@ static struct sk_buff *qca_tag_rcv(struc
/* Get pk type */ /* Get pk type */
pk_type = FIELD_GET(QCA_HDR_RECV_TYPE, hdr); pk_type = FIELD_GET(QCA_HDR_RECV_TYPE, hdr);
@ -87,7 +83,7 @@ index be792cf687d9..57d2e00f1e5d 100644
/* Remove QCA tag and recalculate checksum */ /* Remove QCA tag and recalculate checksum */
skb_pull_rcsum(skb, QCA_HDR_LEN); skb_pull_rcsum(skb, QCA_HDR_LEN);
@@ -75,9 +87,30 @@ static struct sk_buff *qca_tag_rcv(struct sk_buff *skb, struct net_device *dev) @@ -75,9 +87,30 @@ static struct sk_buff *qca_tag_rcv(struc
return skb; return skb;
} }
@ -118,6 +114,3 @@ index be792cf687d9..57d2e00f1e5d 100644
.xmit = qca_tag_xmit, .xmit = qca_tag_xmit,
.rcv = qca_tag_rcv, .rcv = qca_tag_rcv,
.needed_headroom = QCA_HDR_LEN, .needed_headroom = QCA_HDR_LEN,
--
2.34.1

View file

@ -24,11 +24,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 1 + drivers/net/dsa/qca8k.h | 1 +
2 files changed, 16 insertions(+) 2 files changed, 16 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 039694518788..ec062b9a918d 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -2383,6 +2383,20 @@ qca8k_port_lag_leave(struct dsa_switch *ds, int port, @@ -2382,6 +2382,20 @@ qca8k_port_lag_leave(struct dsa_switch *
return qca8k_lag_refresh_portmap(ds, port, lag, true); return qca8k_lag_refresh_portmap(ds, port, lag, true);
} }
@ -49,7 +47,7 @@ index 039694518788..ec062b9a918d 100644
static const struct dsa_switch_ops qca8k_switch_ops = { static const struct dsa_switch_ops qca8k_switch_ops = {
.get_tag_protocol = qca8k_get_tag_protocol, .get_tag_protocol = qca8k_get_tag_protocol,
.setup = qca8k_setup, .setup = qca8k_setup,
@@ -2418,6 +2432,7 @@ static const struct dsa_switch_ops qca8k_switch_ops = { @@ -2417,6 +2431,7 @@ static const struct dsa_switch_ops qca8k
.get_phy_flags = qca8k_get_phy_flags, .get_phy_flags = qca8k_get_phy_flags,
.port_lag_join = qca8k_port_lag_join, .port_lag_join = qca8k_port_lag_join,
.port_lag_leave = qca8k_port_lag_leave, .port_lag_leave = qca8k_port_lag_leave,
@ -57,8 +55,6 @@ index 039694518788..ec062b9a918d 100644
}; };
static int qca8k_read_switch_id(struct qca8k_priv *priv) static int qca8k_read_switch_id(struct qca8k_priv *priv)
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index ab4a417b25a9..b81aad98a116 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -353,6 +353,7 @@ struct qca8k_priv { @@ -353,6 +353,7 @@ struct qca8k_priv {
@ -69,6 +65,3 @@ index ab4a417b25a9..b81aad98a116 100644
}; };
struct qca8k_mib_desc { struct qca8k_mib_desc {
--
2.34.1

View file

@ -41,8 +41,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 13 +++ drivers/net/dsa/qca8k.h | 13 +++
2 files changed, 238 insertions(+) 2 files changed, 238 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index ec062b9a918d..e3a215f04559 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -20,6 +20,7 @@ @@ -20,6 +20,7 @@
@ -53,7 +51,7 @@ index ec062b9a918d..e3a215f04559 100644
#include "qca8k.h" #include "qca8k.h"
@@ -170,6 +171,194 @@ qca8k_rmw(struct qca8k_priv *priv, u32 reg, u32 mask, u32 write_val) @@ -170,6 +171,194 @@ qca8k_rmw(struct qca8k_priv *priv, u32 r
return regmap_update_bits(priv->regmap, reg, mask, write_val); return regmap_update_bits(priv->regmap, reg, mask, write_val);
} }
@ -248,7 +246,7 @@ index ec062b9a918d..e3a215f04559 100644
static int static int
qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val) qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val)
{ {
@@ -178,6 +367,9 @@ qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val) @@ -178,6 +367,9 @@ qca8k_regmap_read(void *ctx, uint32_t re
u16 r1, r2, page; u16 r1, r2, page;
int ret; int ret;
@ -258,7 +256,7 @@ index ec062b9a918d..e3a215f04559 100644
qca8k_split_addr(reg, &r1, &r2, &page); qca8k_split_addr(reg, &r1, &r2, &page);
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@@ -201,6 +393,9 @@ qca8k_regmap_write(void *ctx, uint32_t reg, uint32_t val) @@ -201,6 +393,9 @@ qca8k_regmap_write(void *ctx, uint32_t r
u16 r1, r2, page; u16 r1, r2, page;
int ret; int ret;
@ -268,7 +266,7 @@ index ec062b9a918d..e3a215f04559 100644
qca8k_split_addr(reg, &r1, &r2, &page); qca8k_split_addr(reg, &r1, &r2, &page);
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@@ -225,6 +420,9 @@ qca8k_regmap_update_bits(void *ctx, uint32_t reg, uint32_t mask, uint32_t write_ @@ -225,6 +420,9 @@ qca8k_regmap_update_bits(void *ctx, uint
u32 val; u32 val;
int ret; int ret;
@ -278,7 +276,7 @@ index ec062b9a918d..e3a215f04559 100644
qca8k_split_addr(reg, &r1, &r2, &page); qca8k_split_addr(reg, &r1, &r2, &page);
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@@ -2394,7 +2592,30 @@ qca8k_master_change(struct dsa_switch *ds, const struct net_device *master, @@ -2393,7 +2591,30 @@ qca8k_master_change(struct dsa_switch *d
if (dp->index != 0) if (dp->index != 0)
return; return;
@ -309,7 +307,7 @@ index ec062b9a918d..e3a215f04559 100644
} }
static const struct dsa_switch_ops qca8k_switch_ops = { static const struct dsa_switch_ops qca8k_switch_ops = {
@@ -2433,6 +2654,7 @@ static const struct dsa_switch_ops qca8k_switch_ops = { @@ -2432,6 +2653,7 @@ static const struct dsa_switch_ops qca8k
.port_lag_join = qca8k_port_lag_join, .port_lag_join = qca8k_port_lag_join,
.port_lag_leave = qca8k_port_lag_leave, .port_lag_leave = qca8k_port_lag_leave,
.master_state_change = qca8k_master_change, .master_state_change = qca8k_master_change,
@ -317,7 +315,7 @@ index ec062b9a918d..e3a215f04559 100644
}; };
static int qca8k_read_switch_id(struct qca8k_priv *priv) static int qca8k_read_switch_id(struct qca8k_priv *priv)
@@ -2512,6 +2734,9 @@ qca8k_sw_probe(struct mdio_device *mdiodev) @@ -2511,6 +2733,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
if (!priv->ds) if (!priv->ds)
return -ENOMEM; return -ENOMEM;
@ -327,8 +325,6 @@ index ec062b9a918d..e3a215f04559 100644
priv->ds->dev = &mdiodev->dev; priv->ds->dev = &mdiodev->dev;
priv->ds->num_ports = QCA8K_NUM_PORTS; priv->ds->num_ports = QCA8K_NUM_PORTS;
priv->ds->priv = priv; priv->ds->priv = priv;
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index b81aad98a116..75c28689a652 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -11,6 +11,10 @@ @@ -11,6 +11,10 @@
@ -365,6 +361,3 @@ index b81aad98a116..75c28689a652 100644
}; };
struct qca8k_mib_desc { struct qca8k_mib_desc {
--
2.34.1

View file

@ -24,8 +24,6 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 17 ++++++- drivers/net/dsa/qca8k.h | 17 ++++++-
2 files changed, 121 insertions(+), 2 deletions(-) 2 files changed, 121 insertions(+), 2 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index e3a215f04559..199cf4f761c0 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -830,7 +830,10 @@ qca8k_mib_init(struct qca8k_priv *priv) @@ -830,7 +830,10 @@ qca8k_mib_init(struct qca8k_priv *priv)
@ -40,7 +38,7 @@ index e3a215f04559..199cf4f761c0 100644
if (ret) if (ret)
goto exit; goto exit;
@@ -1901,6 +1904,97 @@ qca8k_get_strings(struct dsa_switch *ds, int port, u32 stringset, uint8_t *data) @@ -1901,6 +1904,97 @@ qca8k_get_strings(struct dsa_switch *ds,
ETH_GSTRING_LEN); ETH_GSTRING_LEN);
} }
@ -138,7 +136,7 @@ index e3a215f04559..199cf4f761c0 100644
static void static void
qca8k_get_ethtool_stats(struct dsa_switch *ds, int port, qca8k_get_ethtool_stats(struct dsa_switch *ds, int port,
uint64_t *data) uint64_t *data)
@@ -1912,6 +2006,10 @@ qca8k_get_ethtool_stats(struct dsa_switch *ds, int port, @@ -1912,6 +2006,10 @@ qca8k_get_ethtool_stats(struct dsa_switc
u32 hi = 0; u32 hi = 0;
int ret; int ret;
@ -149,7 +147,7 @@ index e3a215f04559..199cf4f761c0 100644
match_data = of_device_get_match_data(priv->dev); match_data = of_device_get_match_data(priv->dev);
for (i = 0; i < match_data->mib_count; i++) { for (i = 0; i < match_data->mib_count; i++) {
@@ -2593,9 +2691,11 @@ qca8k_master_change(struct dsa_switch *ds, const struct net_device *master, @@ -2592,9 +2690,11 @@ qca8k_master_change(struct dsa_switch *d
return; return;
mutex_lock(&priv->mgmt_eth_data.mutex); mutex_lock(&priv->mgmt_eth_data.mutex);
@ -161,7 +159,7 @@ index e3a215f04559..199cf4f761c0 100644
mutex_unlock(&priv->mgmt_eth_data.mutex); mutex_unlock(&priv->mgmt_eth_data.mutex);
} }
@@ -2609,6 +2709,7 @@ static int qca8k_connect_tag_protocol(struct dsa_switch *ds, @@ -2608,6 +2708,7 @@ static int qca8k_connect_tag_protocol(st
tagger_data = ds->tagger_data; tagger_data = ds->tagger_data;
tagger_data->rw_reg_ack_handler = qca8k_rw_reg_ack_handler; tagger_data->rw_reg_ack_handler = qca8k_rw_reg_ack_handler;
@ -169,7 +167,7 @@ index e3a215f04559..199cf4f761c0 100644
break; break;
default: default:
@@ -2737,6 +2838,9 @@ qca8k_sw_probe(struct mdio_device *mdiodev) @@ -2736,6 +2837,9 @@ qca8k_sw_probe(struct mdio_device *mdiod
mutex_init(&priv->mgmt_eth_data.mutex); mutex_init(&priv->mgmt_eth_data.mutex);
init_completion(&priv->mgmt_eth_data.rw_done); init_completion(&priv->mgmt_eth_data.rw_done);
@ -179,8 +177,6 @@ index e3a215f04559..199cf4f761c0 100644
priv->ds->dev = &mdiodev->dev; priv->ds->dev = &mdiodev->dev;
priv->ds->num_ports = QCA8K_NUM_PORTS; priv->ds->num_ports = QCA8K_NUM_PORTS;
priv->ds->priv = priv; priv->ds->priv = priv;
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 75c28689a652..2d7d084db089 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -67,7 +67,7 @@ @@ -67,7 +67,7 @@
@ -228,6 +224,3 @@ index 75c28689a652..2d7d084db089 100644
}; };
struct qca8k_mib_desc { struct qca8k_mib_desc {
--
2.34.1

View file

@ -15,11 +15,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 1 + drivers/net/dsa/qca8k.h | 1 +
2 files changed, 217 insertions(+) 2 files changed, 217 insertions(+)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 199cf4f761c0..0ce5b7ca0b7f 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -867,6 +867,199 @@ qca8k_port_set_status(struct qca8k_priv *priv, int port, int enable) @@ -867,6 +867,199 @@ qca8k_port_set_status(struct qca8k_priv
regmap_clear_bits(priv->regmap, QCA8K_REG_PORT_STATUS(port), mask); regmap_clear_bits(priv->regmap, QCA8K_REG_PORT_STATUS(port), mask);
} }
@ -219,7 +217,7 @@ index 199cf4f761c0..0ce5b7ca0b7f 100644
static u32 static u32
qca8k_port_to_phy(int port) qca8k_port_to_phy(int port)
{ {
@@ -989,6 +1182,12 @@ qca8k_internal_mdio_write(struct mii_bus *slave_bus, int phy, int regnum, u16 da @@ -989,6 +1182,12 @@ qca8k_internal_mdio_write(struct mii_bus
{ {
struct qca8k_priv *priv = slave_bus->priv; struct qca8k_priv *priv = slave_bus->priv;
struct mii_bus *bus = priv->bus; struct mii_bus *bus = priv->bus;
@ -232,7 +230,7 @@ index 199cf4f761c0..0ce5b7ca0b7f 100644
return qca8k_mdio_write(bus, phy, regnum, data); return qca8k_mdio_write(bus, phy, regnum, data);
} }
@@ -998,6 +1197,12 @@ qca8k_internal_mdio_read(struct mii_bus *slave_bus, int phy, int regnum) @@ -998,6 +1197,12 @@ qca8k_internal_mdio_read(struct mii_bus
{ {
struct qca8k_priv *priv = slave_bus->priv; struct qca8k_priv *priv = slave_bus->priv;
struct mii_bus *bus = priv->bus; struct mii_bus *bus = priv->bus;
@ -253,7 +251,7 @@ index 199cf4f761c0..0ce5b7ca0b7f 100644
/* Check if the legacy mapping should be used and the /* Check if the legacy mapping should be used and the
* port is not correctly mapped to the right PHY in the * port is not correctly mapped to the right PHY in the
@@ -1014,6 +1220,11 @@ qca8k_phy_write(struct dsa_switch *ds, int port, int regnum, u16 data) @@ -1014,6 +1220,11 @@ qca8k_phy_write(struct dsa_switch *ds, i
if (priv->legacy_phy_port_mapping) if (priv->legacy_phy_port_mapping)
port = qca8k_port_to_phy(port) % PHY_MAX_ADDR; port = qca8k_port_to_phy(port) % PHY_MAX_ADDR;
@ -265,7 +263,7 @@ index 199cf4f761c0..0ce5b7ca0b7f 100644
return qca8k_mdio_write(priv->bus, port, regnum, data); return qca8k_mdio_write(priv->bus, port, regnum, data);
} }
@@ -1030,6 +1241,11 @@ qca8k_phy_read(struct dsa_switch *ds, int port, int regnum) @@ -1030,6 +1241,11 @@ qca8k_phy_read(struct dsa_switch *ds, in
if (priv->legacy_phy_port_mapping) if (priv->legacy_phy_port_mapping)
port = qca8k_port_to_phy(port) % PHY_MAX_ADDR; port = qca8k_port_to_phy(port) % PHY_MAX_ADDR;
@ -277,8 +275,6 @@ index 199cf4f761c0..0ce5b7ca0b7f 100644
ret = qca8k_mdio_read(priv->bus, port, regnum); ret = qca8k_mdio_read(priv->bus, port, regnum);
if (ret < 0) if (ret < 0)
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 2d7d084db089..c6f6abd2108e 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -14,6 +14,7 @@ @@ -14,6 +14,7 @@
@ -289,6 +285,3 @@ index 2d7d084db089..c6f6abd2108e 100644
#define QCA8K_ETHERNET_TIMEOUT 100 #define QCA8K_ETHERNET_TIMEOUT 100
#define QCA8K_NUM_PORTS 7 #define QCA8K_NUM_PORTS 7
--
2.34.1

View file

@ -14,11 +14,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 9 +++++++++ drivers/net/dsa/qca8k.h | 9 +++++++++
2 files changed, 29 insertions(+), 22 deletions(-) 2 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 0ce5b7ca0b7f..86d3742b1038 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -75,12 +75,6 @@ static const struct qca8k_mib_desc ar8327_mib[] = { @@ -75,12 +75,6 @@ static const struct qca8k_mib_desc ar832
MIB_DESC(1, 0xac, "TXUnicast"), MIB_DESC(1, 0xac, "TXUnicast"),
}; };
@ -31,7 +29,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
static void static void
qca8k_split_addr(u32 regaddr, u16 *r1, u16 *r2, u16 *page) qca8k_split_addr(u32 regaddr, u16 *r1, u16 *r2, u16 *page)
{ {
@@ -134,11 +128,13 @@ qca8k_mii_write32(struct mii_bus *bus, int phy_id, u32 regnum, u32 val) @@ -134,11 +128,13 @@ qca8k_mii_write32(struct mii_bus *bus, i
} }
static int static int
@ -47,7 +45,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
return 0; return 0;
ret = bus->write(bus, 0x18, 0, page); ret = bus->write(bus, 0x18, 0, page);
@@ -148,7 +144,7 @@ qca8k_set_page(struct mii_bus *bus, u16 page) @@ -148,7 +144,7 @@ qca8k_set_page(struct mii_bus *bus, u16
return ret; return ret;
} }
@ -56,7 +54,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
usleep_range(1000, 2000); usleep_range(1000, 2000);
return 0; return 0;
} }
@@ -374,7 +370,7 @@ qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val) @@ -374,7 +370,7 @@ qca8k_regmap_read(void *ctx, uint32_t re
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@ -65,7 +63,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
if (ret < 0) if (ret < 0)
goto exit; goto exit;
@@ -400,7 +396,7 @@ qca8k_regmap_write(void *ctx, uint32_t reg, uint32_t val) @@ -400,7 +396,7 @@ qca8k_regmap_write(void *ctx, uint32_t r
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@ -74,7 +72,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
if (ret < 0) if (ret < 0)
goto exit; goto exit;
@@ -427,7 +423,7 @@ qca8k_regmap_update_bits(void *ctx, uint32_t reg, uint32_t mask, uint32_t write_ @@ -427,7 +423,7 @@ qca8k_regmap_update_bits(void *ctx, uint
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@ -83,7 +81,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
if (ret < 0) if (ret < 0)
goto exit; goto exit;
@@ -1098,8 +1094,9 @@ qca8k_mdio_busy_wait(struct mii_bus *bus, u32 reg, u32 mask) @@ -1098,8 +1094,9 @@ qca8k_mdio_busy_wait(struct mii_bus *bus
} }
static int static int
@ -94,7 +92,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
u16 r1, r2, page; u16 r1, r2, page;
u32 val; u32 val;
int ret; int ret;
@@ -1116,7 +1113,7 @@ qca8k_mdio_write(struct mii_bus *bus, int phy, int regnum, u16 data) @@ -1116,7 +1113,7 @@ qca8k_mdio_write(struct mii_bus *bus, in
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@ -103,7 +101,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
if (ret) if (ret)
goto exit; goto exit;
@@ -1135,8 +1132,9 @@ qca8k_mdio_write(struct mii_bus *bus, int phy, int regnum, u16 data) @@ -1135,8 +1132,9 @@ exit:
} }
static int static int
@ -114,7 +112,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
u16 r1, r2, page; u16 r1, r2, page;
u32 val; u32 val;
int ret; int ret;
@@ -1152,7 +1150,7 @@ qca8k_mdio_read(struct mii_bus *bus, int phy, int regnum) @@ -1152,7 +1150,7 @@ qca8k_mdio_read(struct mii_bus *bus, int
mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED); mutex_lock_nested(&bus->mdio_lock, MDIO_MUTEX_NESTED);
@ -131,7 +129,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
int ret; int ret;
/* Use mdio Ethernet when available, fallback to legacy one on error */ /* Use mdio Ethernet when available, fallback to legacy one on error */
@@ -1189,14 +1186,13 @@ qca8k_internal_mdio_write(struct mii_bus *slave_bus, int phy, int regnum, u16 da @@ -1189,14 +1186,13 @@ qca8k_internal_mdio_write(struct mii_bus
if (!ret) if (!ret)
return 0; return 0;
@ -147,7 +145,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
int ret; int ret;
/* Use mdio Ethernet when available, fallback to legacy one on error */ /* Use mdio Ethernet when available, fallback to legacy one on error */
@@ -1204,7 +1200,7 @@ qca8k_internal_mdio_read(struct mii_bus *slave_bus, int phy, int regnum) @@ -1204,7 +1200,7 @@ qca8k_internal_mdio_read(struct mii_bus
if (ret >= 0) if (ret >= 0)
return ret; return ret;
@ -156,7 +154,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
} }
static int static int
@@ -1225,7 +1221,7 @@ qca8k_phy_write(struct dsa_switch *ds, int port, int regnum, u16 data) @@ -1225,7 +1221,7 @@ qca8k_phy_write(struct dsa_switch *ds, i
if (!ret) if (!ret)
return ret; return ret;
@ -165,7 +163,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
} }
static int static int
@@ -1246,7 +1242,7 @@ qca8k_phy_read(struct dsa_switch *ds, int port, int regnum) @@ -1246,7 +1242,7 @@ qca8k_phy_read(struct dsa_switch *ds, in
if (ret >= 0) if (ret >= 0)
return ret; return ret;
@ -174,7 +172,7 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
if (ret < 0) if (ret < 0)
return 0xffff; return 0xffff;
@@ -3042,6 +3038,8 @@ qca8k_sw_probe(struct mdio_device *mdiodev) @@ -3041,6 +3037,8 @@ qca8k_sw_probe(struct mdio_device *mdiod
return PTR_ERR(priv->regmap); return PTR_ERR(priv->regmap);
} }
@ -183,8 +181,6 @@ index 0ce5b7ca0b7f..86d3742b1038 100644
/* Check the detected switch id */ /* Check the detected switch id */
ret = qca8k_read_switch_id(priv); ret = qca8k_read_switch_id(priv);
if (ret) if (ret)
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index c6f6abd2108e..57368acae41b 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -363,6 +363,14 @@ struct qca8k_ports_config { @@ -363,6 +363,14 @@ struct qca8k_ports_config {
@ -210,6 +206,3 @@ index c6f6abd2108e..57368acae41b 100644
}; };
struct qca8k_mib_desc { struct qca8k_mib_desc {
--
2.34.1

View file

@ -15,15 +15,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.h | 5 ++++ drivers/net/dsa/qca8k.h | 5 ++++
2 files changed, 54 insertions(+), 12 deletions(-) 2 files changed, 54 insertions(+), 12 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 86d3742b1038..0cce3a6030af 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -88,6 +88,44 @@ qca8k_split_addr(u32 regaddr, u16 *r1, u16 *r2, u16 *page) @@ -89,6 +89,44 @@ qca8k_split_addr(u32 regaddr, u16 *r1, u
*page = regaddr & 0x3ff;
} }
+static int static int
+qca8k_set_lo(struct qca8k_priv *priv, int phy_id, u32 regnum, u16 lo) +qca8k_set_lo(struct qca8k_priv *priv, int phy_id, u32 regnum, u16 lo)
+{ +{
+ u16 *cached_lo = &priv->mdio_cache.lo; + u16 *cached_lo = &priv->mdio_cache.lo;
@ -61,10 +58,11 @@ index 86d3742b1038..0cce3a6030af 100644
+ return 0; + return 0;
+} +}
+ +
static int +static int
qca8k_mii_read32(struct mii_bus *bus, int phy_id, u32 regnum, u32 *val) qca8k_mii_read32(struct mii_bus *bus, int phy_id, u32 regnum, u32 *val)
{ {
@@ -111,7 +149,7 @@ qca8k_mii_read32(struct mii_bus *bus, int phy_id, u32 regnum, u32 *val) int ret;
@@ -111,7 +149,7 @@ qca8k_mii_read32(struct mii_bus *bus, in
} }
static void static void
@ -73,7 +71,7 @@ index 86d3742b1038..0cce3a6030af 100644
{ {
u16 lo, hi; u16 lo, hi;
int ret; int ret;
@@ -119,12 +157,9 @@ qca8k_mii_write32(struct mii_bus *bus, int phy_id, u32 regnum, u32 val) @@ -119,12 +157,9 @@ qca8k_mii_write32(struct mii_bus *bus, i
lo = val & 0xffff; lo = val & 0xffff;
hi = (u16)(val >> 16); hi = (u16)(val >> 16);
@ -88,7 +86,7 @@ index 86d3742b1038..0cce3a6030af 100644
} }
static int static int
@@ -400,7 +435,7 @@ qca8k_regmap_write(void *ctx, uint32_t reg, uint32_t val) @@ -400,7 +435,7 @@ qca8k_regmap_write(void *ctx, uint32_t r
if (ret < 0) if (ret < 0)
goto exit; goto exit;
@ -97,7 +95,7 @@ index 86d3742b1038..0cce3a6030af 100644
exit: exit:
mutex_unlock(&bus->mdio_lock); mutex_unlock(&bus->mdio_lock);
@@ -433,7 +468,7 @@ qca8k_regmap_update_bits(void *ctx, uint32_t reg, uint32_t mask, uint32_t write_ @@ -433,7 +468,7 @@ qca8k_regmap_update_bits(void *ctx, uint
val &= ~mask; val &= ~mask;
val |= write_val; val |= write_val;
@ -106,7 +104,7 @@ index 86d3742b1038..0cce3a6030af 100644
exit: exit:
mutex_unlock(&bus->mdio_lock); mutex_unlock(&bus->mdio_lock);
@@ -1117,14 +1152,14 @@ qca8k_mdio_write(struct qca8k_priv *priv, int phy, int regnum, u16 data) @@ -1117,14 +1152,14 @@ qca8k_mdio_write(struct qca8k_priv *priv
if (ret) if (ret)
goto exit; goto exit;
@ -123,7 +121,7 @@ index 86d3742b1038..0cce3a6030af 100644
mutex_unlock(&bus->mdio_lock); mutex_unlock(&bus->mdio_lock);
@@ -1154,7 +1189,7 @@ qca8k_mdio_read(struct qca8k_priv *priv, int phy, int regnum) @@ -1154,7 +1189,7 @@ qca8k_mdio_read(struct qca8k_priv *priv,
if (ret) if (ret)
goto exit; goto exit;
@ -132,7 +130,7 @@ index 86d3742b1038..0cce3a6030af 100644
ret = qca8k_mdio_busy_wait(bus, QCA8K_MDIO_MASTER_CTRL, ret = qca8k_mdio_busy_wait(bus, QCA8K_MDIO_MASTER_CTRL,
QCA8K_MDIO_MASTER_BUSY); QCA8K_MDIO_MASTER_BUSY);
@@ -1165,7 +1200,7 @@ qca8k_mdio_read(struct qca8k_priv *priv, int phy, int regnum) @@ -1165,7 +1200,7 @@ qca8k_mdio_read(struct qca8k_priv *priv,
exit: exit:
/* even if the busy_wait timeouts try to clear the MASTER_EN */ /* even if the busy_wait timeouts try to clear the MASTER_EN */
@ -141,7 +139,7 @@ index 86d3742b1038..0cce3a6030af 100644
mutex_unlock(&bus->mdio_lock); mutex_unlock(&bus->mdio_lock);
@@ -3039,6 +3074,8 @@ qca8k_sw_probe(struct mdio_device *mdiodev) @@ -3038,6 +3073,8 @@ qca8k_sw_probe(struct mdio_device *mdiod
} }
priv->mdio_cache.page = 0xffff; priv->mdio_cache.page = 0xffff;
@ -150,8 +148,6 @@ index 86d3742b1038..0cce3a6030af 100644
/* Check the detected switch id */ /* Check the detected switch id */
ret = qca8k_read_switch_id(priv); ret = qca8k_read_switch_id(priv);
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index 57368acae41b..c3d3c2269b1d 100644
--- a/drivers/net/dsa/qca8k.h --- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h +++ b/drivers/net/dsa/qca8k.h
@@ -369,6 +369,11 @@ struct qca8k_mdio_cache { @@ -369,6 +369,11 @@ struct qca8k_mdio_cache {
@ -166,6 +162,3 @@ index 57368acae41b..c3d3c2269b1d 100644
}; };
struct qca8k_priv { struct qca8k_priv {
--
2.34.1

View file

@ -28,11 +28,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 61 +++++++++++++++++++++++++++-------------- drivers/net/dsa/qca8k.c | 61 +++++++++++++++++++++++++++--------------
1 file changed, 41 insertions(+), 20 deletions(-) 1 file changed, 41 insertions(+), 20 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index 0cce3a6030af..a1b76dcd2eb6 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -222,7 +222,9 @@ static void qca8k_rw_reg_ack_handler(struct dsa_switch *ds, struct sk_buff *skb) @@ -222,7 +222,9 @@ static void qca8k_rw_reg_ack_handler(str
if (cmd == MDIO_READ) { if (cmd == MDIO_READ) {
mgmt_eth_data->data[0] = mgmt_ethhdr->mdio_data; mgmt_eth_data->data[0] = mgmt_ethhdr->mdio_data;
@ -43,7 +41,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
if (len > QCA_HDR_MGMT_DATA1_LEN) if (len > QCA_HDR_MGMT_DATA1_LEN)
memcpy(mgmt_eth_data->data + 1, skb->data, memcpy(mgmt_eth_data->data + 1, skb->data,
QCA_HDR_MGMT_DATA2_LEN); QCA_HDR_MGMT_DATA2_LEN);
@@ -232,16 +234,30 @@ static void qca8k_rw_reg_ack_handler(struct dsa_switch *ds, struct sk_buff *skb) @@ -232,16 +234,30 @@ static void qca8k_rw_reg_ack_handler(str
} }
static struct sk_buff *qca8k_alloc_mdio_header(enum mdio_cmd cmd, u32 reg, u32 *val, static struct sk_buff *qca8k_alloc_mdio_header(enum mdio_cmd cmd, u32 reg, u32 *val,
@ -75,7 +73,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
skb_reset_mac_header(skb); skb_reset_mac_header(skb);
skb_set_network_header(skb, skb->len); skb_set_network_header(skb, skb->len);
@@ -254,7 +270,7 @@ static struct sk_buff *qca8k_alloc_mdio_header(enum mdio_cmd cmd, u32 reg, u32 * @@ -254,7 +270,7 @@ static struct sk_buff *qca8k_alloc_mdio_
hdr |= FIELD_PREP(QCA_HDR_XMIT_CONTROL, QCA_HDR_XMIT_TYPE_RW_REG); hdr |= FIELD_PREP(QCA_HDR_XMIT_CONTROL, QCA_HDR_XMIT_TYPE_RW_REG);
mgmt_ethhdr->command = FIELD_PREP(QCA_HDR_MGMT_ADDR, reg); mgmt_ethhdr->command = FIELD_PREP(QCA_HDR_MGMT_ADDR, reg);
@ -84,7 +82,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
mgmt_ethhdr->command |= FIELD_PREP(QCA_HDR_MGMT_CMD, cmd); mgmt_ethhdr->command |= FIELD_PREP(QCA_HDR_MGMT_CMD, cmd);
mgmt_ethhdr->command |= FIELD_PREP(QCA_HDR_MGMT_CHECK_CODE, mgmt_ethhdr->command |= FIELD_PREP(QCA_HDR_MGMT_CHECK_CODE,
QCA_HDR_MGMT_CHECK_CODE_VAL); QCA_HDR_MGMT_CHECK_CODE_VAL);
@@ -264,7 +280,9 @@ static struct sk_buff *qca8k_alloc_mdio_header(enum mdio_cmd cmd, u32 reg, u32 * @@ -264,7 +280,9 @@ static struct sk_buff *qca8k_alloc_mdio_
mgmt_ethhdr->hdr = htons(hdr); mgmt_ethhdr->hdr = htons(hdr);
@ -95,7 +93,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
return skb; return skb;
} }
@@ -277,7 +295,7 @@ static void qca8k_mdio_header_fill_seq_num(struct sk_buff *skb, u32 seq_num) @@ -277,7 +295,7 @@ static void qca8k_mdio_header_fill_seq_n
mgmt_ethhdr->seq = FIELD_PREP(QCA_HDR_MGMT_SEQ_NUM, seq_num); mgmt_ethhdr->seq = FIELD_PREP(QCA_HDR_MGMT_SEQ_NUM, seq_num);
} }
@ -104,7 +102,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
{ {
struct qca8k_mgmt_eth_data *mgmt_eth_data = &priv->mgmt_eth_data; struct qca8k_mgmt_eth_data *mgmt_eth_data = &priv->mgmt_eth_data;
struct sk_buff *skb; struct sk_buff *skb;
@@ -285,7 +303,7 @@ static int qca8k_read_eth(struct qca8k_priv *priv, u32 reg, u32 *val) @@ -285,7 +303,7 @@ static int qca8k_read_eth(struct qca8k_p
int ret; int ret;
skb = qca8k_alloc_mdio_header(MDIO_READ, reg, NULL, skb = qca8k_alloc_mdio_header(MDIO_READ, reg, NULL,
@ -113,7 +111,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
@@ -313,6 +331,9 @@ static int qca8k_read_eth(struct qca8k_priv *priv, u32 reg, u32 *val) @@ -313,6 +331,9 @@ static int qca8k_read_eth(struct qca8k_p
msecs_to_jiffies(QCA8K_ETHERNET_TIMEOUT)); msecs_to_jiffies(QCA8K_ETHERNET_TIMEOUT));
*val = mgmt_eth_data->data[0]; *val = mgmt_eth_data->data[0];
@ -123,7 +121,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
ack = mgmt_eth_data->ack; ack = mgmt_eth_data->ack;
mutex_unlock(&mgmt_eth_data->mutex); mutex_unlock(&mgmt_eth_data->mutex);
@@ -326,15 +347,15 @@ static int qca8k_read_eth(struct qca8k_priv *priv, u32 reg, u32 *val) @@ -326,15 +347,15 @@ static int qca8k_read_eth(struct qca8k_p
return 0; return 0;
} }
@ -142,7 +140,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
if (!skb) if (!skb)
return -ENOMEM; return -ENOMEM;
@@ -380,14 +401,14 @@ qca8k_regmap_update_bits_eth(struct qca8k_priv *priv, u32 reg, u32 mask, u32 wri @@ -380,14 +401,14 @@ qca8k_regmap_update_bits_eth(struct qca8
u32 val = 0; u32 val = 0;
int ret; int ret;
@ -159,7 +157,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
} }
static int static int
@@ -398,7 +419,7 @@ qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val) @@ -398,7 +419,7 @@ qca8k_regmap_read(void *ctx, uint32_t re
u16 r1, r2, page; u16 r1, r2, page;
int ret; int ret;
@ -168,7 +166,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
return 0; return 0;
qca8k_split_addr(reg, &r1, &r2, &page); qca8k_split_addr(reg, &r1, &r2, &page);
@@ -424,7 +445,7 @@ qca8k_regmap_write(void *ctx, uint32_t reg, uint32_t val) @@ -424,7 +445,7 @@ qca8k_regmap_write(void *ctx, uint32_t r
u16 r1, r2, page; u16 r1, r2, page;
int ret; int ret;
@ -177,7 +175,7 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
return 0; return 0;
qca8k_split_addr(reg, &r1, &r2, &page); qca8k_split_addr(reg, &r1, &r2, &page);
@@ -959,21 +980,21 @@ qca8k_phy_eth_command(struct qca8k_priv *priv, bool read, int phy, @@ -959,21 +980,21 @@ qca8k_phy_eth_command(struct qca8k_priv
} }
/* Prealloc all the needed skb before the lock */ /* Prealloc all the needed skb before the lock */
@ -206,6 +204,3 @@ index 0cce3a6030af..a1b76dcd2eb6 100644
ret = -ENOMEM; ret = -ENOMEM;
goto err_read_skb; goto err_read_skb;
} }
--
2.34.1

View file

@ -15,15 +15,12 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/qca8k.c | 55 ++++++++++++++++++++++++++++++++--------- drivers/net/dsa/qca8k.c | 55 ++++++++++++++++++++++++++++++++---------
1 file changed, 43 insertions(+), 12 deletions(-) 1 file changed, 43 insertions(+), 12 deletions(-)
diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c
index a1b76dcd2eb6..52ec2800dd89 100644
--- a/drivers/net/dsa/qca8k.c --- a/drivers/net/dsa/qca8k.c
+++ b/drivers/net/dsa/qca8k.c +++ b/drivers/net/dsa/qca8k.c
@@ -411,6 +411,43 @@ qca8k_regmap_update_bits_eth(struct qca8k_priv *priv, u32 reg, u32 mask, u32 wri @@ -412,6 +412,43 @@ qca8k_regmap_update_bits_eth(struct qca8
return qca8k_write_eth(priv, reg, &val, sizeof(val));
} }
+static int static int
+qca8k_bulk_read(struct qca8k_priv *priv, u32 reg, u32 *val, int len) +qca8k_bulk_read(struct qca8k_priv *priv, u32 reg, u32 *val, int len)
+{ +{
+ int i, count = len / sizeof(u32), ret; + int i, count = len / sizeof(u32), ret;
@ -60,10 +57,11 @@ index a1b76dcd2eb6..52ec2800dd89 100644
+ return 0; + return 0;
+} +}
+ +
static int +static int
qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val) qca8k_regmap_read(void *ctx, uint32_t reg, uint32_t *val)
{ {
@@ -546,17 +583,13 @@ qca8k_busy_wait(struct qca8k_priv *priv, u32 reg, u32 mask) struct qca8k_priv *priv = (struct qca8k_priv *)ctx;
@@ -546,17 +583,13 @@ qca8k_busy_wait(struct qca8k_priv *priv,
static int static int
qca8k_fdb_read(struct qca8k_priv *priv, struct qca8k_fdb *fdb) qca8k_fdb_read(struct qca8k_priv *priv, struct qca8k_fdb *fdb)
{ {
@ -86,7 +84,7 @@ index a1b76dcd2eb6..52ec2800dd89 100644
/* vid - 83:72 */ /* vid - 83:72 */
fdb->vid = FIELD_GET(QCA8K_ATU_VID_MASK, reg[2]); fdb->vid = FIELD_GET(QCA8K_ATU_VID_MASK, reg[2]);
@@ -580,7 +613,6 @@ qca8k_fdb_write(struct qca8k_priv *priv, u16 vid, u8 port_mask, const u8 *mac, @@ -580,7 +613,6 @@ qca8k_fdb_write(struct qca8k_priv *priv,
u8 aging) u8 aging)
{ {
u32 reg[3] = { 0 }; u32 reg[3] = { 0 };
@ -94,7 +92,7 @@ index a1b76dcd2eb6..52ec2800dd89 100644
/* vid - 83:72 */ /* vid - 83:72 */
reg[2] = FIELD_PREP(QCA8K_ATU_VID_MASK, vid); reg[2] = FIELD_PREP(QCA8K_ATU_VID_MASK, vid);
@@ -597,8 +629,7 @@ qca8k_fdb_write(struct qca8k_priv *priv, u16 vid, u8 port_mask, const u8 *mac, @@ -597,8 +629,7 @@ qca8k_fdb_write(struct qca8k_priv *priv,
reg[0] |= FIELD_PREP(QCA8K_ATU_ADDR5_MASK, mac[5]); reg[0] |= FIELD_PREP(QCA8K_ATU_ADDR5_MASK, mac[5]);
/* load the array into the ARL table */ /* load the array into the ARL table */
@ -104,6 +102,3 @@ index a1b76dcd2eb6..52ec2800dd89 100644
} }
static int static int
--
2.34.1

View file

@ -15,11 +15,9 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/switch.c | 38 +++++++++++++++++++++++++------------- net/dsa/switch.c | 38 +++++++++++++++++++++++++-------------
1 file changed, 25 insertions(+), 13 deletions(-) 1 file changed, 25 insertions(+), 13 deletions(-)
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index e3c7d2627a619..9f9b70d6070a3 100644
--- a/net/dsa/switch.c --- a/net/dsa/switch.c
+++ b/net/dsa/switch.c +++ b/net/dsa/switch.c
@@ -113,25 +113,14 @@ static int dsa_switch_bridge_join(struct dsa_switch *ds, @@ -113,25 +113,14 @@ static int dsa_switch_bridge_join(struct
return dsa_tag_8021q_bridge_join(ds, info); return dsa_tag_8021q_bridge_join(ds, info);
} }
@ -47,7 +45,7 @@ index e3c7d2627a619..9f9b70d6070a3 100644
if (ds->needs_standalone_vlan_filtering && !br_vlan_enabled(info->br)) { if (ds->needs_standalone_vlan_filtering && !br_vlan_enabled(info->br)) {
change_vlan_filtering = true; change_vlan_filtering = true;
vlan_filtering = true; vlan_filtering = true;
@@ -172,6 +161,29 @@ static int dsa_switch_bridge_leave(struct dsa_switch *ds, @@ -172,6 +161,29 @@ static int dsa_switch_bridge_leave(struc
return err; return err;
} }
@ -77,5 +75,3 @@ index e3c7d2627a619..9f9b70d6070a3 100644
return dsa_tag_8021q_bridge_leave(ds, info); return dsa_tag_8021q_bridge_leave(ds, info);
} }
--
cgit

View file

@ -33,13 +33,11 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/switch.c | 8 +++++--- net/dsa/switch.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-) 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/net/dsa/switch.c b/net/dsa/switch.c
index 9f9b70d6070a3..517cc83d13cc8 100644
--- a/net/dsa/switch.c --- a/net/dsa/switch.c
+++ b/net/dsa/switch.c +++ b/net/dsa/switch.c
@@ -180,9 +180,11 @@ static int dsa_switch_bridge_leave(struct dsa_switch *ds, @@ -180,9 +180,11 @@ static int dsa_switch_bridge_leave(struc
info->sw_index, info->port, info->sw_index, info->port,
info->bridge); info->br);
- err = dsa_switch_sync_vlan_filtering(ds, info); - err = dsa_switch_sync_vlan_filtering(ds, info);
- if (err) - if (err)
@ -52,5 +50,3 @@ index 9f9b70d6070a3..517cc83d13cc8 100644
return dsa_tag_8021q_bridge_leave(ds, info); return dsa_tag_8021q_bridge_leave(ds, info);
} }
--
cgit

View file

@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -881,8 +881,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru @@ -874,8 +874,13 @@ advk_pci_bridge_emul_pcie_conf_read(stru
case PCI_EXP_DEVCAP: case PCI_EXP_DEVCAP:
case PCI_EXP_DEVCTL: case PCI_EXP_DEVCTL:
@ -35,7 +35,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
default: default:
return PCI_BRIDGE_EMUL_NOT_HANDLED; return PCI_BRIDGE_EMUL_NOT_HANDLED;
} }
@@ -896,10 +901,6 @@ advk_pci_bridge_emul_pcie_conf_write(str @@ -889,10 +894,6 @@ advk_pci_bridge_emul_pcie_conf_write(str
struct advk_pcie *pcie = bridge->data; struct advk_pcie *pcie = bridge->data;
switch (reg) { switch (reg) {
@ -46,7 +46,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
case PCI_EXP_LNKCTL: case PCI_EXP_LNKCTL:
advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg); advk_writel(pcie, new, PCIE_CORE_PCIEXP_CAP + reg);
if (new & PCI_EXP_LNKCTL_RL) if (new & PCI_EXP_LNKCTL_RL)
@@ -921,6 +922,12 @@ advk_pci_bridge_emul_pcie_conf_write(str @@ -914,6 +915,12 @@ advk_pci_bridge_emul_pcie_conf_write(str
advk_writel(pcie, new, PCIE_ISR0_REG); advk_writel(pcie, new, PCIE_ISR0_REG);
break; break;

View file

@ -23,7 +23,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -114,6 +114,7 @@ @@ -115,6 +115,7 @@
#define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54) #define PCIE_MSI_ADDR_HIGH_REG (CONTROL_BASE_ADDR + 0x54)
#define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58) #define PCIE_MSI_STATUS_REG (CONTROL_BASE_ADDR + 0x58)
#define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C) #define PCIE_MSI_MASK_REG (CONTROL_BASE_ADDR + 0x5C)
@ -31,7 +31,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
#define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C) #define PCIE_MSI_PAYLOAD_REG (CONTROL_BASE_ADDR + 0x9C)
#define PCIE_MSI_DATA_MASK GENMASK(15, 0) #define PCIE_MSI_DATA_MASK GENMASK(15, 0)
@@ -577,6 +578,7 @@ static void advk_pcie_setup_hw(struct ad @@ -570,6 +571,7 @@ static void advk_pcie_setup_hw(struct ad
advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG); advk_writel(pcie, reg, PCIE_CORE_CTRL2_REG);
/* Clear all interrupts */ /* Clear all interrupts */
@ -39,7 +39,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG); advk_writel(pcie, PCIE_ISR0_ALL_MASK, PCIE_ISR0_REG);
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG);
advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG);
@@ -589,7 +591,7 @@ static void advk_pcie_setup_hw(struct ad @@ -582,7 +584,7 @@ static void advk_pcie_setup_hw(struct ad
advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG); advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_MASK_REG);
/* Unmask all MSIs */ /* Unmask all MSIs */
@ -48,7 +48,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
/* Enable summary interrupt for GIC SPI source */ /* Enable summary interrupt for GIC SPI source */
reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK); reg = PCIE_IRQ_ALL_MASK & (~PCIE_IRQ_ENABLE_INTS_MASK);
@@ -1399,7 +1401,7 @@ static void advk_pcie_handle_msi(struct @@ -1392,7 +1394,7 @@ static void advk_pcie_handle_msi(struct
msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG); msi_mask = advk_readl(pcie, PCIE_MSI_MASK_REG);
msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG); msi_val = advk_readl(pcie, PCIE_MSI_STATUS_REG);

View file

@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1698,11 +1698,13 @@ static int advk_pcie_remove(struct platf @@ -1688,11 +1688,13 @@ static int advk_pcie_remove(struct platf
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
int i; int i;

View file

@ -19,7 +19,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1696,6 +1696,7 @@ static int advk_pcie_remove(struct platf @@ -1686,6 +1686,7 @@ static int advk_pcie_remove(struct platf
{ {
struct advk_pcie *pcie = platform_get_drvdata(pdev); struct advk_pcie *pcie = platform_get_drvdata(pdev);
struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie);
@ -27,7 +27,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
int i; int i;
/* Remove PCI bus with all devices */ /* Remove PCI bus with all devices */
@@ -1704,6 +1705,11 @@ static int advk_pcie_remove(struct platf @@ -1694,6 +1695,11 @@ static int advk_pcie_remove(struct platf
pci_remove_root_bus(bridge->bus); pci_remove_root_bus(bridge->bus);
pci_unlock_rescan_remove(); pci_unlock_rescan_remove();

View file

@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1710,6 +1710,27 @@ static int advk_pcie_remove(struct platf @@ -1700,6 +1700,27 @@ static int advk_pcie_remove(struct platf
val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); val &= ~(PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER);
advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG); advk_writel(pcie, val, PCIE_CORE_CMD_STATUS_REG);

View file

@ -21,7 +21,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1735,6 +1735,9 @@ static int advk_pcie_remove(struct platf @@ -1725,6 +1725,9 @@ static int advk_pcie_remove(struct platf
advk_pcie_remove_msi_irq_domain(pcie); advk_pcie_remove_msi_irq_domain(pcie);
advk_pcie_remove_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie);

View file

@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1738,6 +1738,10 @@ static int advk_pcie_remove(struct platf @@ -1728,6 +1728,10 @@ static int advk_pcie_remove(struct platf
/* Free config space for emulated root bridge */ /* Free config space for emulated root bridge */
pci_bridge_emul_cleanup(&pcie->bridge); pci_bridge_emul_cleanup(&pcie->bridge);

View file

@ -20,7 +20,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1742,6 +1742,11 @@ static int advk_pcie_remove(struct platf @@ -1732,6 +1732,11 @@ static int advk_pcie_remove(struct platf
if (pcie->reset_gpio) if (pcie->reset_gpio)
gpiod_set_value_cansleep(pcie->reset_gpio, 1); gpiod_set_value_cansleep(pcie->reset_gpio, 1);

View file

@ -18,7 +18,7 @@ Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
--- a/drivers/pci/controller/pci-aardvark.c --- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c
@@ -1751,6 +1751,9 @@ static int advk_pcie_remove(struct platf @@ -1741,6 +1741,9 @@ static int advk_pcie_remove(struct platf
for (i = 0; i < OB_WIN_COUNT; i++) for (i = 0; i < OB_WIN_COUNT; i++)
advk_pcie_disable_ob_win(pcie, i); advk_pcie_disable_ob_win(pcie, i);

View file

@ -39,7 +39,7 @@ Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
static void ath79_halt(void) static void ath79_halt(void)
{ {
while (1) while (1)
@@ -233,7 +224,6 @@ void __init plat_mem_setup(void) @@ -234,7 +225,6 @@ void __init plat_mem_setup(void)
detect_memory_region(0, ATH79_MEM_SIZE_MIN, ATH79_MEM_SIZE_MAX); detect_memory_region(0, ATH79_MEM_SIZE_MIN, ATH79_MEM_SIZE_MAX);