qualcommb/ipq95xx: refresh patches ahead of 6.6.75

Refreshed patches for qualcommb/ipq95xx by running
make target/linux/refresh after creating a .config containing:
CONFIG_TARGET_qualcommbe=y
CONFIG_TARGET_qualcommbe_ipq95xx=y
CONFIG_TARGET_qualcommbe_ipq95xx_DEVICE_qcom_rdp433=y

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/17822
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
John Audia 2025-02-09 09:55:56 -05:00 committed by Hauke Mehrtens
parent 71a966c480
commit 11f1f67a3e
85 changed files with 414 additions and 1316 deletions

View File

@ -20,9 +20,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
6 files changed, 130 insertions(+), 345 deletions(-)
create mode 100644 arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
new file mode 100644
index 000000000000..40a7aefd0540
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
@@ -0,0 +1,125 @@
@ -151,8 +148,6 @@ index 000000000000..40a7aefd0540
+&xo_board_clk {
+ clock-frequency = <24000000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
index 2b093e02637b..f4f9199d4ab1 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp418.dts
@@ -8,58 +8,12 @@
@ -215,7 +210,7 @@ index 2b093e02637b..f4f9199d4ab1 100644
};
&sdhc_1 {
@@ -74,10 +28,6 @@ &sdhc_1 {
@@ -74,10 +28,6 @@
status = "okay";
};
@ -226,7 +221,7 @@ index 2b093e02637b..f4f9199d4ab1 100644
&tlmm {
sdc_default_state: sdc-default-state {
clk-pins {
@@ -110,15 +60,4 @@ rclk-pins {
@@ -110,15 +60,4 @@
bias-pull-down;
};
};
@ -242,8 +237,6 @@ index 2b093e02637b..f4f9199d4ab1 100644
-&xo_board_clk {
- clock-frequency = <24000000>;
};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index 877026ccc6e2..1bb8d96c9a82 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -8,69 +8,11 @@
@ -317,7 +310,7 @@ index 877026ccc6e2..1bb8d96c9a82 100644
};
&sdhc_1 {
@@ -85,10 +27,6 @@ &sdhc_1 {
@@ -85,10 +27,6 @@
status = "okay";
};
@ -328,7 +321,7 @@ index 877026ccc6e2..1bb8d96c9a82 100644
&tlmm {
sdc_default_state: sdc-default-state {
clk-pins {
@@ -122,30 +60,3 @@ rclk-pins {
@@ -122,30 +60,3 @@
};
};
};
@ -359,8 +352,6 @@ index 877026ccc6e2..1bb8d96c9a82 100644
-&xo_board_clk {
- clock-frequency = <24000000>;
-};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
index c8fa54e1a62c..d36d1078763e 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp449.dts
@@ -8,73 +8,10 @@
@ -438,8 +429,6 @@ index c8fa54e1a62c..d36d1078763e 100644
-&xo_board_clk {
- clock-frequency = <24000000>;
};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
index f01de6628c3b..c30c9fbedf26 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp453.dts
@@ -8,73 +8,10 @@
@ -517,8 +506,6 @@ index f01de6628c3b..c30c9fbedf26 100644
-&xo_board_clk {
- clock-frequency = <24000000>;
};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
index 6efae3426cb8..0dc382f5d5ec 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp454.dts
@@ -8,73 +8,9 @@
@ -596,6 +583,3 @@ index 6efae3426cb8..0dc382f5d5ec 100644
-&xo_board_clk {
- clock-frequency = <24000000>;
};
--
2.45.2

View File

@ -21,9 +21,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
create mode 100644 include/dt-bindings/clock/qcom,qca8k-nsscc.h
create mode 100644 include/dt-bindings/reset/qcom,qca8k-nsscc.h
diff --git a/Documentation/devicetree/bindings/clock/qcom,qca8k-nsscc.yaml b/Documentation/devicetree/bindings/clock/qcom,qca8k-nsscc.yaml
new file mode 100644
index 000000000000..61473385da2d
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,qca8k-nsscc.yaml
@@ -0,0 +1,86 @@
@ -113,9 +110,6 @@ index 000000000000..61473385da2d
+ };
+ };
+...
diff --git a/include/dt-bindings/clock/qcom,qca8k-nsscc.h b/include/dt-bindings/clock/qcom,qca8k-nsscc.h
new file mode 100644
index 000000000000..0ac3e4c69a1a
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,qca8k-nsscc.h
@@ -0,0 +1,101 @@
@ -220,9 +214,6 @@ index 000000000000..0ac3e4c69a1a
+#define NSS_CC_GEPHY2_SYS_CLK 90
+#define NSS_CC_GEPHY3_SYS_CLK 91
+#endif
diff --git a/include/dt-bindings/reset/qcom,qca8k-nsscc.h b/include/dt-bindings/reset/qcom,qca8k-nsscc.h
new file mode 100644
index 000000000000..c71167a3bd41
--- /dev/null
+++ b/include/dt-bindings/reset/qcom,qca8k-nsscc.h
@@ -0,0 +1,76 @@
@ -302,6 +293,3 @@ index 000000000000..c71167a3bd41
+#define NSS_CC_GLOBAL_ARES 66
+#define NSS_CC_XPCS_ARES 67
+#endif
--
2.45.2

View File

@ -32,11 +32,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
3 files changed, 2231 insertions(+)
create mode 100644 drivers/clk/qcom/nsscc-qca8k.c
diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index 20ba2eeb24ec..4432b1cce478 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -249,6 +249,15 @@ config IPQ_GCC_9574
@@ -204,6 +204,15 @@ config IPQ_GCC_9574
i2c, USB, SD/eMMC, etc. Select this for the root clock
of ipq9574.
@ -52,11 +50,9 @@ index 20ba2eeb24ec..4432b1cce478 100644
config MSM_GCC_8660
tristate "MSM8660 Global Clock Controller"
depends on ARM || COMPILE_TEST
diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile
index b7de8600dc3d..0241f00689bc 100644
--- a/drivers/clk/qcom/Makefile
+++ b/drivers/clk/qcom/Makefile
@@ -36,6 +36,7 @@ obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806x.o
@@ -31,6 +31,7 @@ obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806
obj-$(CONFIG_IPQ_GCC_8074) += gcc-ipq8074.o
obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o
obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o
@ -64,9 +60,6 @@ index b7de8600dc3d..0241f00689bc 100644
obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o
obj-$(CONFIG_MDM_GCC_9615) += gcc-mdm9615.o
obj-$(CONFIG_MSM_GCC_8660) += gcc-msm8660.o
diff --git a/drivers/clk/qcom/nsscc-qca8k.c b/drivers/clk/qcom/nsscc-qca8k.c
new file mode 100644
index 000000000000..5c8324e2bcca
--- /dev/null
+++ b/drivers/clk/qcom/nsscc-qca8k.c
@@ -0,0 +1,2221 @@
@ -2291,6 +2284,3 @@ index 000000000000..5c8324e2bcca
+
+MODULE_DESCRIPTION("QCOM NSS_CC QCA8K Driver");
+MODULE_LICENSE("GPL");
--
2.45.2

View File

@ -13,11 +13,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 7f2e5cbf3bbb..ded02bc39275 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -232,6 +232,16 @@ rng: rng@e3000 {
@@ -218,6 +218,16 @@
clock-names = "core";
};
@ -34,6 +32,3 @@ index 7f2e5cbf3bbb..ded02bc39275 100644
qfprom: efuse@a4000 {
compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
reg = <0x000a4000 0x5a1>;
--
2.45.2

View File

@ -35,8 +35,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/clk-rcg.h | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/clk-rcg.h b/drivers/clk/qcom/clk-rcg.h
index e6d84c8c7989..c50e6616d02c 100644
--- a/drivers/clk/qcom/clk-rcg.h
+++ b/drivers/clk/qcom/clk-rcg.h
@@ -17,6 +17,23 @@ struct freq_tbl {
@ -63,7 +61,7 @@ index e6d84c8c7989..c50e6616d02c 100644
/**
* struct mn - M/N:D counter
* @mnctr_en_bit: bit to enable mn counter
@@ -138,6 +155,7 @@ extern const struct clk_ops clk_dyn_rcg_ops;
@@ -138,6 +155,7 @@ extern const struct clk_ops clk_dyn_rcg_
* @safe_src_index: safe src index value
* @parent_map: map from software's parent index to hardware's src_sel field
* @freq_tbl: frequency table
@ -83,6 +81,3 @@ index e6d84c8c7989..c50e6616d02c 100644
struct clk_regmap clkr;
u8 cfg_off;
u32 parked_cfg;
--
2.45.2

View File

@ -36,8 +36,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/common.h | 2 +
4 files changed, 187 insertions(+)
diff --git a/drivers/clk/qcom/clk-rcg.h b/drivers/clk/qcom/clk-rcg.h
index c50e6616d02c..d7414361e432 100644
--- a/drivers/clk/qcom/clk-rcg.h
+++ b/drivers/clk/qcom/clk-rcg.h
@@ -190,6 +190,7 @@ struct clk_rcg2_gfx3d {
@ -48,11 +46,9 @@ index c50e6616d02c..d7414361e432 100644
extern const struct clk_ops clk_rcg2_mux_closest_ops;
extern const struct clk_ops clk_edp_pixel_ops;
extern const struct clk_ops clk_byte_ops;
diff --git a/drivers/clk/qcom/clk-rcg2.c b/drivers/clk/qcom/clk-rcg2.c
index 5183c74b074f..9b3aaa7f20ac 100644
--- a/drivers/clk/qcom/clk-rcg2.c
+++ b/drivers/clk/qcom/clk-rcg2.c
@@ -260,6 +260,115 @@ static int _freq_tbl_determine_rate(struct clk_hw *hw, const struct freq_tbl *f,
@@ -260,6 +260,115 @@ static int _freq_tbl_determine_rate(stru
return 0;
}
@ -168,7 +164,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644
static int clk_rcg2_determine_rate(struct clk_hw *hw,
struct clk_rate_request *req)
{
@@ -276,6 +385,14 @@ static int clk_rcg2_determine_floor_rate(struct clk_hw *hw,
@@ -276,6 +385,14 @@ static int clk_rcg2_determine_floor_rate
return _freq_tbl_determine_rate(hw, rcg->freq_tbl, req, FLOOR);
}
@ -183,7 +179,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644
static int __clk_rcg2_configure(struct clk_rcg2 *rcg, const struct freq_tbl *f,
u32 *_cfg)
{
@@ -371,6 +488,30 @@ static int __clk_rcg2_set_rate(struct clk_hw *hw, unsigned long rate,
@@ -371,6 +488,30 @@ static int __clk_rcg2_set_rate(struct cl
return clk_rcg2_configure(rcg, f);
}
@ -214,7 +210,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644
static int clk_rcg2_set_rate(struct clk_hw *hw, unsigned long rate,
unsigned long parent_rate)
{
@@ -383,6 +524,12 @@ static int clk_rcg2_set_floor_rate(struct clk_hw *hw, unsigned long rate,
@@ -383,6 +524,12 @@ static int clk_rcg2_set_floor_rate(struc
return __clk_rcg2_set_rate(hw, rate, FLOOR);
}
@ -227,7 +223,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644
static int clk_rcg2_set_rate_and_parent(struct clk_hw *hw,
unsigned long rate, unsigned long parent_rate, u8 index)
{
@@ -395,6 +542,12 @@ static int clk_rcg2_set_floor_rate_and_parent(struct clk_hw *hw,
@@ -395,6 +542,12 @@ static int clk_rcg2_set_floor_rate_and_p
return __clk_rcg2_set_rate(hw, rate, FLOOR);
}
@ -240,7 +236,7 @@ index 5183c74b074f..9b3aaa7f20ac 100644
static int clk_rcg2_get_duty_cycle(struct clk_hw *hw, struct clk_duty *duty)
{
struct clk_rcg2 *rcg = to_clk_rcg2(hw);
@@ -505,6 +658,19 @@ const struct clk_ops clk_rcg2_floor_ops = {
@@ -505,6 +658,19 @@ const struct clk_ops clk_rcg2_floor_ops
};
EXPORT_SYMBOL_GPL(clk_rcg2_floor_ops);
@ -260,11 +256,9 @@ index 5183c74b074f..9b3aaa7f20ac 100644
const struct clk_ops clk_rcg2_mux_closest_ops = {
.determine_rate = __clk_mux_determine_rate_closest,
.get_parent = clk_rcg2_get_parent,
diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c
index 75f09e6e057e..48f81e3a5e80 100644
--- a/drivers/clk/qcom/common.c
+++ b/drivers/clk/qcom/common.c
@@ -41,6 +41,24 @@ struct freq_tbl *qcom_find_freq(const struct freq_tbl *f, unsigned long rate)
@@ -41,6 +41,24 @@ struct freq_tbl *qcom_find_freq(const st
}
EXPORT_SYMBOL_GPL(qcom_find_freq);
@ -289,11 +283,9 @@ index 75f09e6e057e..48f81e3a5e80 100644
const struct freq_tbl *qcom_find_freq_floor(const struct freq_tbl *f,
unsigned long rate)
{
diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h
index 9c8f7b798d9f..2d4a8a837e6c 100644
--- a/drivers/clk/qcom/common.h
+++ b/drivers/clk/qcom/common.h
@@ -45,6 +45,8 @@ extern const struct freq_tbl *qcom_find_freq(const struct freq_tbl *f,
@@ -45,6 +45,8 @@ extern const struct freq_tbl *qcom_find_
unsigned long rate);
extern const struct freq_tbl *qcom_find_freq_floor(const struct freq_tbl *f,
unsigned long rate);
@ -302,6 +294,3 @@ index 9c8f7b798d9f..2d4a8a837e6c 100644
extern void
qcom_pll_set_fsm_mode(struct regmap *m, u32 reg, u8 bias_count, u8 lock_count);
extern int qcom_find_src_index(struct clk_hw *hw, const struct parent_map *map,
--
2.45.2

View File

@ -20,11 +20,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/clk-branch.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/clk/qcom/clk-branch.c b/drivers/clk/qcom/clk-branch.c
index c1dba33ac31a..229480c5b075 100644
--- a/drivers/clk/qcom/clk-branch.c
+++ b/drivers/clk/qcom/clk-branch.c
@@ -191,3 +191,10 @@ const struct clk_ops clk_branch_simple_ops = {
@@ -153,3 +153,10 @@ const struct clk_ops clk_branch_simple_o
.is_enabled = clk_is_enabled_regmap,
};
EXPORT_SYMBOL_GPL(clk_branch_simple_ops);
@ -35,18 +33,13 @@ index c1dba33ac31a..229480c5b075 100644
+ .is_prepared = clk_is_enabled_regmap,
+};
+EXPORT_SYMBOL_GPL(clk_branch2_prepare_ops);
diff --git a/drivers/clk/qcom/clk-branch.h b/drivers/clk/qcom/clk-branch.h
index f1b3b635ff32..292756435f53 100644
--- a/drivers/clk/qcom/clk-branch.h
+++ b/drivers/clk/qcom/clk-branch.h
@@ -109,6 +109,7 @@ extern const struct clk_ops clk_branch2_ops;
@@ -85,6 +85,7 @@ extern const struct clk_ops clk_branch_o
extern const struct clk_ops clk_branch2_ops;
extern const struct clk_ops clk_branch_simple_ops;
extern const struct clk_ops clk_branch2_aon_ops;
+extern const struct clk_ops clk_branch2_prepare_ops;
#define to_clk_branch(_hw) \
container_of(to_clk_regmap(_hw), struct clk_branch, clkr)
--
2.45.2

View File

@ -25,11 +25,9 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
include/linux/phylink.h | 1 +
5 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Documentation/networking/phy.rst b/Documentation/networking/phy.rst
index 1283240d7620..f64641417c54 100644
--- a/Documentation/networking/phy.rst
+++ b/Documentation/networking/phy.rst
@@ -327,6 +327,12 @@ Some of the interface modes are described below:
@@ -327,6 +327,12 @@ Some of the interface modes are describe
This is the Penta SGMII mode, it is similar to QSGMII but it combines 5
SGMII lines into a single link compared to 4 on QSGMII.
@ -42,11 +40,9 @@ index 1283240d7620..f64641417c54 100644
Pause frames / flow control
===========================
diff --git a/drivers/net/phy/phy-core.c b/drivers/net/phy/phy-core.c
index 15f349e5995a..a235ea2264a7 100644
--- a/drivers/net/phy/phy-core.c
+++ b/drivers/net/phy/phy-core.c
@@ -141,6 +141,7 @@ int phy_interface_num_ports(phy_interface_t interface)
@@ -141,6 +141,7 @@ int phy_interface_num_ports(phy_interfac
return 1;
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_QUSGMII:
@ -54,11 +50,9 @@ index 15f349e5995a..a235ea2264a7 100644
return 4;
case PHY_INTERFACE_MODE_PSGMII:
return 5;
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 02427378acfd..6c24c48dcf0f 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -231,6 +231,7 @@ static int phylink_interface_max_speed(phy_interface_t interface)
@@ -231,6 +231,7 @@ static int phylink_interface_max_speed(p
return SPEED_1000;
case PHY_INTERFACE_MODE_2500BASEX:
@ -66,7 +60,7 @@ index 02427378acfd..6c24c48dcf0f 100644
return SPEED_2500;
case PHY_INTERFACE_MODE_5GBASER:
@@ -500,7 +501,11 @@ static unsigned long phylink_get_capabilities(phy_interface_t interface,
@@ -500,7 +501,11 @@ unsigned long phylink_get_capabilities(p
switch (interface) {
case PHY_INTERFACE_MODE_USXGMII:
@ -79,19 +73,17 @@ index 02427378acfd..6c24c48dcf0f 100644
fallthrough;
case PHY_INTERFACE_MODE_RGMII_TXID:
@@ -926,6 +931,7 @@ static int phylink_parse_mode(struct phylink *pl,
case PHY_INTERFACE_MODE_5GBASER:
case PHY_INTERFACE_MODE_25GBASER:
@@ -956,6 +961,7 @@ static int phylink_parse_mode(struct phy
phylink_set(pl->supported, 25000baseSR_Full);
fallthrough;
case PHY_INTERFACE_MODE_USXGMII:
+ case PHY_INTERFACE_MODE_10G_QXGMII:
case PHY_INTERFACE_MODE_10GKR:
case PHY_INTERFACE_MODE_10GBASER:
case PHY_INTERFACE_MODE_XLGMII:
diff --git a/include/linux/phy.h b/include/linux/phy.h
index e6e83304558e..205fccfc0f60 100644
phylink_set(pl->supported, 10baseT_Half);
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -128,6 +128,7 @@ extern const int phy_10gbit_features_array[1];
@@ -125,6 +125,7 @@ extern const int phy_10gbit_features_arr
* @PHY_INTERFACE_MODE_10GKR: 10GBASE-KR - with Clause 73 AN
* @PHY_INTERFACE_MODE_QUSGMII: Quad Universal SGMII
* @PHY_INTERFACE_MODE_1000BASEKX: 1000Base-KX - with Clause 73 AN
@ -99,7 +91,7 @@ index e6e83304558e..205fccfc0f60 100644
* @PHY_INTERFACE_MODE_MAX: Book keeping
*
* Describes the interface between the MAC and PHY.
@@ -168,6 +169,7 @@ typedef enum {
@@ -165,6 +166,7 @@ typedef enum {
PHY_INTERFACE_MODE_10GKR,
PHY_INTERFACE_MODE_QUSGMII,
PHY_INTERFACE_MODE_1000BASEKX,
@ -107,7 +99,7 @@ index e6e83304558e..205fccfc0f60 100644
PHY_INTERFACE_MODE_MAX,
} phy_interface_t;
@@ -289,6 +291,8 @@ static inline const char *phy_modes(phy_interface_t interface)
@@ -286,6 +288,8 @@ static inline const char *phy_modes(phy_
return "100base-x";
case PHY_INTERFACE_MODE_QUSGMII:
return "qusgmii";
@ -116,11 +108,9 @@ index e6e83304558e..205fccfc0f60 100644
default:
return "unknown";
}
diff --git a/include/linux/phylink.h b/include/linux/phylink.h
index a30a692acc32..2381e07429a2 100644
--- a/include/linux/phylink.h
+++ b/include/linux/phylink.h
@@ -124,6 +130,7 @@ static unsigned int phylink_pcs_neg_mode(unsigned int mode,
@@ -128,6 +128,7 @@ static inline unsigned int phylink_pcs_n
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_QUSGMII:
case PHY_INTERFACE_MODE_USXGMII:
@ -128,7 +118,7 @@ index a30a692acc32..2381e07429a2 100644
/* These protocols are designed for use with a PHY which
* communicates its negotiation result back to the MAC via
* inband communication. Note: there exist PHYs that run
@@ -654,6 +654,7 @@ static inline int phylink_get_link_timer_ns(phy_interface_t interface)
@@ -714,6 +715,7 @@ static inline int phylink_get_link_timer
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_USXGMII:
@ -136,6 +126,3 @@ index a30a692acc32..2381e07429a2 100644
return 1600000;
case PHY_INTERFACE_MODE_1000BASEX:
--
2.45.2

View File

@ -18,11 +18,9 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
include/linux/clk.h | 22 ++++++++++++++++++++++
2 files changed, 62 insertions(+)
diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
index 737aa70e2cb3..90e6078fb6e1 100644
--- a/drivers/clk/clk-devres.c
+++ b/drivers/clk/clk-devres.c
@@ -182,6 +182,46 @@ int __must_check devm_clk_bulk_get_all(struct device *dev,
@@ -182,6 +182,46 @@ int __must_check devm_clk_bulk_get_all(s
}
EXPORT_SYMBOL_GPL(devm_clk_bulk_get_all);
@ -69,15 +67,12 @@ index 737aa70e2cb3..90e6078fb6e1 100644
static int devm_clk_match(struct device *dev, void *res, void *data)
{
struct clk **c = res;
diff --git a/include/linux/clk.h b/include/linux/clk.h
index 06f1b292f8a0..0f44d3863de2 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -478,6 +478,22 @@ int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks,
int __must_check devm_clk_bulk_get_all(struct device *dev,
@@ -479,6 +479,22 @@ int __must_check devm_clk_bulk_get_all(s
struct clk_bulk_data **clks);
+/**
/**
+ * devm_clk_bulk_get_all_enable - Get and enable all clocks of the consumer (managed)
+ * @dev: device for clock "consumer"
+ * @clks: pointer to the clk_bulk_data table of consumer
@ -93,10 +88,11 @@ index 06f1b292f8a0..0f44d3863de2 100644
+int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
+ struct clk_bulk_data **clks);
+
/**
+/**
* devm_clk_get - lookup and obtain a managed reference to a clock producer.
* @dev: device for clock "consumer"
@@ -968,6 +984,12 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev,
* @id: clock consumer ID
@@ -968,6 +984,12 @@ static inline int __must_check devm_clk_
return 0;
}
@ -109,6 +105,3 @@ index 06f1b292f8a0..0f44d3863de2 100644
static inline struct clk *devm_get_clk_from_child(struct device *dev,
struct device_node *np, const char *con_id)
{
--
2.45.2

View File

@ -34,11 +34,9 @@ Signed-off-by: Stephen Boyd <sboyd@kernel.org>
include/linux/clk.h | 21 ++++++++++++++++-----
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
index 82ae1f26e634..5368d92d9b39 100644
--- a/drivers/clk/clk-devres.c
+++ b/drivers/clk/clk-devres.c
@@ -218,8 +218,8 @@ static void devm_clk_bulk_release_all_enable(struct device *dev, void *res)
@@ -190,8 +190,8 @@ static void devm_clk_bulk_release_all_en
clk_bulk_put_all(devres->num_clks, devres->clks);
}
@ -49,7 +47,7 @@ index 82ae1f26e634..5368d92d9b39 100644
{
struct clk_bulk_devres *devres;
int ret;
@@ -244,11 +244,12 @@ int __must_check devm_clk_bulk_get_all_enable(struct device *dev,
@@ -216,11 +216,12 @@ int __must_check devm_clk_bulk_get_all_e
} else {
clk_bulk_put_all(devres->num_clks, devres->clks);
devres_free(devres);
@ -64,11 +62,9 @@ index 82ae1f26e634..5368d92d9b39 100644
static int devm_clk_match(struct device *dev, void *res, void *data)
{
diff --git a/include/linux/clk.h b/include/linux/clk.h
index 851a0f2cf42c..1dcee6d701e4 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -496,11 +496,13 @@ int __must_check devm_clk_bulk_get_all(struct device *dev,
@@ -479,11 +479,13 @@ int __must_check devm_clk_bulk_get_all(s
struct clk_bulk_data **clks);
/**
@ -84,7 +80,7 @@ index 851a0f2cf42c..1dcee6d701e4 100644
*
* This helper function allows drivers to get all clocks of the
* consumer and enables them in one operation with management.
@@ -508,8 +510,8 @@ int __must_check devm_clk_bulk_get_all(struct device *dev,
@@ -491,8 +493,8 @@ int __must_check devm_clk_bulk_get_all(s
* is unbound.
*/
@ -95,7 +91,7 @@ index 851a0f2cf42c..1dcee6d701e4 100644
/**
* devm_clk_get - lookup and obtain a managed reference to a clock producer.
@@ -1034,7 +1036,7 @@ static inline int __must_check devm_clk_bulk_get_all(struct device *dev,
@@ -984,7 +986,7 @@ static inline int __must_check devm_clk_
return 0;
}
@ -104,7 +100,7 @@ index 851a0f2cf42c..1dcee6d701e4 100644
struct clk_bulk_data **clks)
{
return 0;
@@ -1136,6 +1138,15 @@ static inline void clk_restore_context(void) {}
@@ -1086,6 +1088,15 @@ static inline void clk_restore_context(v
#endif
@ -120,6 +116,3 @@ index 851a0f2cf42c..1dcee6d701e4 100644
/* clk_prepare_enable helps cases using clk_enable in non-atomic context. */
static inline int clk_prepare_enable(struct clk *clk)
{
--
2.45.2

View File

@ -13,8 +13,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
include/dt-bindings/clock/qcom,ipq9574-gcc.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/dt-bindings/clock/qcom,ipq9574-gcc.h b/include/dt-bindings/clock/qcom,ipq9574-gcc.h
index 08fd3a37acaa..52123c5a09fa 100644
--- a/include/dt-bindings/clock/qcom,ipq9574-gcc.h
+++ b/include/dt-bindings/clock/qcom,ipq9574-gcc.h
@@ -216,4 +216,8 @@
@ -26,6 +24,3 @@ index 08fd3a37acaa..52123c5a09fa 100644
+#define GCC_PCIE2_PIPE_CLK 212
+#define GCC_PCIE3_PIPE_CLK 213
#endif
--
2.45.2

View File

@ -14,11 +14,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/gcc-ipq9574.c | 76 ++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c
index 0a3f846695b8..bc3e17f34295 100644
--- a/drivers/clk/qcom/gcc-ipq9574.c
+++ b/drivers/clk/qcom/gcc-ipq9574.c
@@ -1569,6 +1569,24 @@ static struct clk_regmap_phy_mux pcie0_pipe_clk_src = {
@@ -1569,6 +1569,24 @@ static struct clk_regmap_phy_mux pcie0_p
},
};
@ -43,7 +41,7 @@ index 0a3f846695b8..bc3e17f34295 100644
static struct clk_regmap_phy_mux pcie1_pipe_clk_src = {
.reg = 0x29064,
.clkr = {
@@ -1583,6 +1601,24 @@ static struct clk_regmap_phy_mux pcie1_pipe_clk_src = {
@@ -1583,6 +1601,24 @@ static struct clk_regmap_phy_mux pcie1_p
},
};
@ -68,7 +66,7 @@ index 0a3f846695b8..bc3e17f34295 100644
static struct clk_regmap_phy_mux pcie2_pipe_clk_src = {
.reg = 0x2a064,
.clkr = {
@@ -1597,6 +1633,24 @@ static struct clk_regmap_phy_mux pcie2_pipe_clk_src = {
@@ -1597,6 +1633,24 @@ static struct clk_regmap_phy_mux pcie2_p
},
};
@ -93,7 +91,7 @@ index 0a3f846695b8..bc3e17f34295 100644
static struct clk_regmap_phy_mux pcie3_pipe_clk_src = {
.reg = 0x2b064,
.clkr = {
@@ -1611,6 +1665,24 @@ static struct clk_regmap_phy_mux pcie3_pipe_clk_src = {
@@ -1611,6 +1665,24 @@ static struct clk_regmap_phy_mux pcie3_p
},
};
@ -118,7 +116,7 @@ index 0a3f846695b8..bc3e17f34295 100644
static const struct freq_tbl ftbl_pcie_rchng_clk_src[] = {
F(24000000, P_XO, 1, 0, 0),
F(100000000, P_GPLL0, 8, 0, 0),
@@ -4141,6 +4213,10 @@ static struct clk_regmap *gcc_ipq9574_clks[] = {
@@ -4143,6 +4215,10 @@ static struct clk_regmap *gcc_ipq9574_cl
[GCC_SNOC_PCIE1_1LANE_S_CLK] = &gcc_snoc_pcie1_1lane_s_clk.clkr,
[GCC_SNOC_PCIE2_2LANE_S_CLK] = &gcc_snoc_pcie2_2lane_s_clk.clkr,
[GCC_SNOC_PCIE3_2LANE_S_CLK] = &gcc_snoc_pcie3_2lane_s_clk.clkr,
@ -129,6 +127,3 @@ index 0a3f846695b8..bc3e17f34295 100644
};
static const struct qcom_reset_map gcc_ipq9574_resets[] = {
--
2.45.2

View File

@ -15,11 +15,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index ded02bc39275..d21937b09b4b 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -315,7 +315,6 @@ gcc: clock-controller@1800000 {
@@ -296,7 +296,6 @@
<0>;
#clock-cells = <1>;
#reset-cells = <1>;
@ -27,6 +25,3 @@ index ded02bc39275..d21937b09b4b 100644
};
tcsr_mutex: hwlock@1905000 {
--
2.45.2

View File

@ -23,11 +23,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
include/linux/interconnect-clk.h | 2 ++
3 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/clk/qcom/clk-cbf-8996.c b/drivers/clk/qcom/clk-cbf-8996.c
index 76bf523431b8..f5fd1ff9c6c9 100644
--- a/drivers/clk/qcom/clk-cbf-8996.c
+++ b/drivers/clk/qcom/clk-cbf-8996.c
@@ -226,7 +226,12 @@ static int qcom_msm8996_cbf_icc_register(struct platform_device *pdev, struct cl
@@ -237,7 +237,12 @@ static int qcom_msm8996_cbf_icc_register
struct device *dev = &pdev->dev;
struct clk *clk = devm_clk_hw_get_clk(dev, cbf_hw, "cbf");
const struct icc_clk_data data[] = {
@ -41,11 +39,9 @@ index 76bf523431b8..f5fd1ff9c6c9 100644
};
struct icc_provider *provider;
diff --git a/drivers/interconnect/icc-clk.c b/drivers/interconnect/icc-clk.c
index d787f2ea36d9..2be193fd7d8f 100644
--- a/drivers/interconnect/icc-clk.c
+++ b/drivers/interconnect/icc-clk.c
@@ -108,7 +108,7 @@ struct icc_provider *icc_clk_register(struct device *dev,
@@ -109,7 +109,7 @@ struct icc_provider *icc_clk_register(st
for (i = 0, j = 0; i < num_clocks; i++) {
qp->clocks[i].clk = data[i].clk;
@ -54,7 +50,7 @@ index d787f2ea36d9..2be193fd7d8f 100644
if (IS_ERR(node)) {
ret = PTR_ERR(node);
goto err;
@@ -118,10 +118,10 @@ struct icc_provider *icc_clk_register(struct device *dev,
@@ -119,10 +119,10 @@ struct icc_provider *icc_clk_register(st
node->data = &qp->clocks[i];
icc_node_add(node, provider);
/* link to the next node, slave */
@ -67,8 +63,6 @@ index d787f2ea36d9..2be193fd7d8f 100644
if (IS_ERR(node)) {
ret = PTR_ERR(node);
goto err;
diff --git a/include/linux/interconnect-clk.h b/include/linux/interconnect-clk.h
index 0cd80112bea5..170898faaacb 100644
--- a/include/linux/interconnect-clk.h
+++ b/include/linux/interconnect-clk.h
@@ -11,6 +11,8 @@ struct device;
@ -80,6 +74,3 @@ index 0cd80112bea5..170898faaacb 100644
};
struct icc_provider *icc_clk_register(struct device *dev,
--
2.45.2

View File

@ -22,8 +22,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2 files changed, 62 insertions(+)
create mode 100644 include/dt-bindings/interconnect/qcom,ipq9574.h
diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml
index 944a0ea79cd6..824781cbdf34 100644
--- a/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml
+++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-gcc.yaml
@@ -33,6 +33,9 @@ properties:
@ -36,9 +34,6 @@ index 944a0ea79cd6..824781cbdf34 100644
required:
- compatible
- clocks
diff --git a/include/dt-bindings/interconnect/qcom,ipq9574.h b/include/dt-bindings/interconnect/qcom,ipq9574.h
new file mode 100644
index 000000000000..42019335c7dd
--- /dev/null
+++ b/include/dt-bindings/interconnect/qcom,ipq9574.h
@@ -0,0 +1,59 @@
@ -101,6 +96,3 @@ index 000000000000..42019335c7dd
+#define SLAVE_NSSNOC_IMEM_AHB 9
+
+#endif /* INTERCONNECT_QCOM_IPQ9574_H */
--
2.45.2

View File

@ -16,11 +16,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
include/linux/interconnect-clk.h | 2 ++
2 files changed, 20 insertions(+)
diff --git a/drivers/interconnect/icc-clk.c b/drivers/interconnect/icc-clk.c
index 2be193fd7d8f..f788db15cd76 100644
--- a/drivers/interconnect/icc-clk.c
+++ b/drivers/interconnect/icc-clk.c
@@ -148,6 +148,24 @@ struct icc_provider *icc_clk_register(struct device *dev,
@@ -147,6 +147,24 @@ err:
}
EXPORT_SYMBOL_GPL(icc_clk_register);
@ -45,11 +43,9 @@ index 2be193fd7d8f..f788db15cd76 100644
/**
* icc_clk_unregister() - unregister a previously registered clk interconnect provider
* @provider: provider returned by icc_clk_register()
diff --git a/include/linux/interconnect-clk.h b/include/linux/interconnect-clk.h
index 170898faaacb..9bcee3e9c56c 100644
--- a/include/linux/interconnect-clk.h
+++ b/include/linux/interconnect-clk.h
@@ -19,6 +19,8 @@ struct icc_provider *icc_clk_register(struct device *dev,
@@ -19,6 +19,8 @@ struct icc_provider *icc_clk_register(st
unsigned int first_id,
unsigned int num_clocks,
const struct icc_clk_data *data);
@ -58,6 +54,3 @@ index 170898faaacb..9bcee3e9c56c 100644
void icc_clk_unregister(struct icc_provider *provider);
#endif
--
2.45.2

View File

@ -23,8 +23,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/common.h | 9 +++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/drivers/clk/qcom/common.c b/drivers/clk/qcom/common.c
index c92e10c60322..ea3788ba46f7 100644
--- a/drivers/clk/qcom/common.c
+++ b/drivers/clk/qcom/common.c
@@ -8,6 +8,7 @@
@ -35,7 +33,7 @@ index c92e10c60322..ea3788ba46f7 100644
#include <linux/reset-controller.h>
#include <linux/of.h>
@@ -252,6 +253,38 @@ static struct clk_hw *qcom_cc_clk_hw_get(struct of_phandle_args *clkspec,
@@ -252,6 +253,38 @@ static struct clk_hw *qcom_cc_clk_hw_get
return cc->rclks[idx] ? &cc->rclks[idx]->hw : NULL;
}
@ -74,7 +72,7 @@ index c92e10c60322..ea3788ba46f7 100644
int qcom_cc_really_probe(struct device *dev,
const struct qcom_cc_desc *desc, struct regmap *regmap)
{
@@ -320,7 +353,7 @@ int qcom_cc_really_probe(struct device *dev,
@@ -320,7 +353,7 @@ int qcom_cc_really_probe(struct device *
if (ret)
return ret;
@ -83,8 +81,6 @@ index c92e10c60322..ea3788ba46f7 100644
}
EXPORT_SYMBOL_GPL(qcom_cc_really_probe);
diff --git a/drivers/clk/qcom/common.h b/drivers/clk/qcom/common.h
index d048bdeeba10..7e57f8fe8ea6 100644
--- a/drivers/clk/qcom/common.h
+++ b/drivers/clk/qcom/common.h
@@ -19,6 +19,12 @@ struct clk_hw;
@ -110,6 +106,3 @@ index d048bdeeba10..7e57f8fe8ea6 100644
};
/**
--
2.45.2

View File

@ -16,11 +16,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/clk/qcom/gcc-ipq9574.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 35 insertions(+)
diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index 1231eae51556..11ae28430dad 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -14,6 +14,8 @@ menuconfig COMMON_CLK_QCOM
@@ -17,6 +17,8 @@ menuconfig COMMON_CLK_QCOM
select RATIONAL
select REGMAP_MMIO
select RESET_CONTROLLER
@ -29,8 +27,6 @@ index 1231eae51556..11ae28430dad 100644
if COMMON_CLK_QCOM
diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c
index bc3e17f34295..f08a447370bd 100644
--- a/drivers/clk/qcom/gcc-ipq9574.c
+++ b/drivers/clk/qcom/gcc-ipq9574.c
@@ -4,6 +4,8 @@
@ -50,7 +46,7 @@ index bc3e17f34295..f08a447370bd 100644
#include "clk-alpha-pll.h"
#include "clk-branch.h"
@@ -4377,6 +4380,32 @@ static const struct qcom_reset_map gcc_ipq9574_resets[] = {
@@ -4379,6 +4382,32 @@ static const struct qcom_reset_map gcc_i
[GCC_WCSS_Q6_TBU_BCR] = { 0x12054, 0 },
};
@ -83,7 +79,7 @@ index bc3e17f34295..f08a447370bd 100644
static const struct of_device_id gcc_ipq9574_match_table[] = {
{ .compatible = "qcom,ipq9574-gcc" },
{ }
@@ -4399,6 +4428,9 @@ static const struct qcom_cc_desc gcc_ipq9574_desc = {
@@ -4401,6 +4430,9 @@ static const struct qcom_cc_desc gcc_ipq
.num_resets = ARRAY_SIZE(gcc_ipq9574_resets),
.clk_hws = gcc_ipq9574_hws,
.num_clk_hws = ARRAY_SIZE(gcc_ipq9574_hws),
@ -93,7 +89,7 @@ index bc3e17f34295..f08a447370bd 100644
};
static int gcc_ipq9574_probe(struct platform_device *pdev)
@@ -4411,6 +4443,7 @@ static struct platform_driver gcc_ipq9574_driver = {
@@ -4413,6 +4445,7 @@ static struct platform_driver gcc_ipq957
.driver = {
.name = "qcom,gcc-ipq9574",
.of_match_table = gcc_ipq9574_match_table,
@ -101,6 +97,3 @@ index bc3e17f34295..f08a447370bd 100644
},
};
--
2.45.2

View File

@ -21,8 +21,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 04ba09a9156c..48dfafea46a7 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -8,6 +8,7 @@
@ -33,7 +31,7 @@ index 04ba09a9156c..48dfafea46a7 100644
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/qcom,ipq9574-gcc.h>
#include <dt-bindings/thermal/thermal.h>
@@ -315,6 +316,7 @@ gcc: clock-controller@1800000 {
@@ -296,6 +297,7 @@
<0>;
#clock-cells = <1>;
#reset-cells = <1>;
@ -41,6 +39,3 @@ index 04ba09a9156c..48dfafea46a7 100644
};
tcsr_mutex: hwlock@1905000 {
--
2.45.2

View File

@ -27,23 +27,19 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/qcom-cpufreq-nvmem.c | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
index 07181913448f..53da25589e5f 100644
--- a/drivers/cpufreq/cpufreq-dt-platdev.c
+++ b/drivers/cpufreq/cpufreq-dt-platdev.c
@@ -180,6 +180,7 @@ static const struct of_device_id blocklist[] __initconst = {
@@ -177,6 +177,7 @@ static const struct of_device_id blockli
{ .compatible = "ti,am625", },
{ .compatible = "ti,am62a7", },
{ .compatible = "ti,am62p5", },
+ { .compatible = "qcom,ipq5332", },
{ .compatible = "qcom,ipq8064", },
{ .compatible = "qcom,apq8064", },
{ .compatible = "qcom,msm8974", },
diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cpufreq-nvmem.c
index 158c0e139185..4f7af70169e0 100644
--- a/drivers/cpufreq/qcom-cpufreq-nvmem.c
+++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c
@@ -183,6 +183,11 @@ static int qcom_cpufreq_kryo_name_version(struct device *cpu_dev,
@@ -152,6 +152,11 @@ static int qcom_cpufreq_kryo_name_versio
switch (msm_id) {
case QCOM_ID_MSM8996:
case QCOM_ID_APQ8096:
@ -55,7 +51,7 @@ index 158c0e139185..4f7af70169e0 100644
drv->versions = 1 << (unsigned int)(*speedbin);
break;
case QCOM_ID_MSM8996SG:
@@ -541,6 +546,7 @@ static const struct of_device_id qcom_cpufreq_match_list[] __initconst = {
@@ -353,6 +358,7 @@ static const struct of_device_id qcom_cp
{ .compatible = "qcom,apq8096", .data = &match_data_kryo },
{ .compatible = "qcom,msm8996", .data = &match_data_kryo },
{ .compatible = "qcom,qcs404", .data = &match_data_qcs404 },
@ -63,6 +59,3 @@ index 158c0e139185..4f7af70169e0 100644
{ .compatible = "qcom,ipq8064", .data = &match_data_krait },
{ .compatible = "qcom,apq8064", .data = &match_data_krait },
{ .compatible = "qcom,msm8974", .data = &match_data_krait },
--
2.45.2

View File

@ -23,23 +23,19 @@ Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/qcom-cpufreq-nvmem.c | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/drivers/cpufreq/cpufreq-dt-platdev.c b/drivers/cpufreq/cpufreq-dt-platdev.c
index 53da25589e5f..bd1e1357cef8 100644
--- a/drivers/cpufreq/cpufreq-dt-platdev.c
+++ b/drivers/cpufreq/cpufreq-dt-platdev.c
@@ -184,6 +184,7 @@ static const struct of_device_id blocklist[] __initconst = {
@@ -179,6 +179,7 @@ static const struct of_device_id blockli
{ .compatible = "qcom,ipq5332", },
{ .compatible = "qcom,ipq5332", },
{ .compatible = "qcom,ipq8064", },
+ { .compatible = "qcom,ipq9574", },
{ .compatible = "qcom,apq8064", },
{ .compatible = "qcom,msm8974", },
{ .compatible = "qcom,msm8960", },
diff --git a/drivers/cpufreq/qcom-cpufreq-nvmem.c b/drivers/cpufreq/qcom-cpufreq-nvmem.c
index 4f7af70169e0..6355a39418c5 100644
--- a/drivers/cpufreq/qcom-cpufreq-nvmem.c
+++ b/drivers/cpufreq/qcom-cpufreq-nvmem.c
@@ -188,6 +188,11 @@ static int qcom_cpufreq_kryo_name_version(struct device *cpu_dev,
@@ -157,6 +157,11 @@ static int qcom_cpufreq_kryo_name_versio
case QCOM_ID_IPQ5312:
case QCOM_ID_IPQ5302:
case QCOM_ID_IPQ5300:
@ -51,7 +47,7 @@ index 4f7af70169e0..6355a39418c5 100644
drv->versions = 1 << (unsigned int)(*speedbin);
break;
case QCOM_ID_MSM8996SG:
@@ -551,6 +556,7 @@ static const struct of_device_id qcom_cpufreq_match_list[] __initconst = {
@@ -361,6 +366,7 @@ static const struct of_device_id qcom_cp
{ .compatible = "qcom,ipq5332", .data = &match_data_kryo },
{ .compatible = "qcom,ipq8064", .data = &match_data_krait },
{ .compatible = "qcom,apq8064", .data = &match_data_krait },
@ -59,6 +55,3 @@ index 4f7af70169e0..6355a39418c5 100644
{ .compatible = "qcom,msm8974", .data = &match_data_krait },
{ .compatible = "qcom,msm8960", .data = &match_data_krait },
{},
--
2.45.2

View File

@ -31,11 +31,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 8a72ad4afd03..d4b7e215fc92 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -106,42 +106,56 @@ memory@40000000 {
@@ -107,42 +107,56 @@
};
cpu_opp_table: opp-table-cpu {
@ -93,7 +91,7 @@ index 8a72ad4afd03..d4b7e215fc92 100644
clock-latency-ns = <200000>;
};
};
@@ -223,6 +237,11 @@ qfprom: efuse@a4000 {
@@ -234,6 +248,11 @@
reg = <0x000a4000 0x5a1>;
#address-cells = <1>;
#size-cells = <1>;
@ -105,6 +103,3 @@ index 8a72ad4afd03..d4b7e215fc92 100644
};
cryptobam: dma-controller@704000 {
--
2.45.2

View File

@ -14,11 +14,9 @@ Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/qcom_smd-regulator.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 09c471a0ba2e..d1be9568025e 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -796,6 +796,7 @@ static const struct rpm_regulator_data rpm_mp5496_regulators[] = {
@@ -796,6 +796,7 @@ static const struct rpm_regulator_data r
{ "s1", QCOM_SMD_RPM_SMPA, 1, &mp5496_smps, "s1" },
{ "s2", QCOM_SMD_RPM_SMPA, 2, &mp5496_smps, "s2" },
{ "l2", QCOM_SMD_RPM_LDOA, 2, &mp5496_ldoa2, "l2" },
@ -26,6 +24,3 @@ index 09c471a0ba2e..d1be9568025e 100644
{}
};
--
2.45.2

View File

@ -32,11 +32,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
3 files changed, 445 insertions(+)
create mode 100644 drivers/clk/qcom/ipq-cmn-pll.c
diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index 42c257e4c433..2daff198aeb3 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -199,6 +199,15 @@ config IPQ_APSS_6018
@@ -141,6 +141,15 @@ config IPQ_APSS_6018
Say Y if you want to support CPU frequency scaling on
ipq based devices.
@ -52,21 +50,16 @@ index 42c257e4c433..2daff198aeb3 100644
config IPQ_GCC_4019
tristate "IPQ4019 Global Clock Controller"
help
diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile
index 1b749da9c13a..6665049cb8c8 100644
--- a/drivers/clk/qcom/Makefile
+++ b/drivers/clk/qcom/Makefile
@@ -30,6 +30,7 @@ obj-$(CONFIG_CLK_X1P42100_GPUCC) += gpucc-x1p42100.o
obj-$(CONFIG_CLK_QCM2290_GPUCC) += gpucc-qcm2290.o
@@ -23,6 +23,7 @@ obj-$(CONFIG_APQ_MMCC_8084) += mmcc-apq8
obj-$(CONFIG_CLK_GFM_LPASS_SM8250) += lpass-gfm-sm8250.o
obj-$(CONFIG_IPQ_APSS_PLL) += apss-ipq-pll.o
obj-$(CONFIG_IPQ_APSS_6018) += apss-ipq6018.o
+obj-$(CONFIG_IPQ_CMN_PLL) += ipq-cmn-pll.o
obj-$(CONFIG_IPQ_GCC_4019) += gcc-ipq4019.o
obj-$(CONFIG_IPQ_GCC_5018) += gcc-ipq5018.o
obj-$(CONFIG_IPQ_GCC_5332) += gcc-ipq5332.o
diff --git a/drivers/clk/qcom/ipq-cmn-pll.c b/drivers/clk/qcom/ipq-cmn-pll.c
new file mode 100644
index 000000000000..432d4c4b7aa6
--- /dev/null
+++ b/drivers/clk/qcom/ipq-cmn-pll.c
@@ -0,0 +1,435 @@
@ -505,6 +498,3 @@ index 000000000000..432d4c4b7aa6
+
+MODULE_DESCRIPTION("Qualcomm Technologies, Inc. IPQ CMN PLL Driver");
+MODULE_LICENSE("GPL");
--
2.47.1

View File

@ -25,9 +25,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
create mode 100644 Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml
create mode 100644 include/dt-bindings/clock/qcom,ipq-cmn-pll.h
diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml
new file mode 100644
index 000000000000..f869b3739be8
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-cmn-pll.yaml
@@ -0,0 +1,77 @@
@ -108,9 +105,6 @@ index 000000000000..f869b3739be8
+ assigned-clock-rates-u64 = /bits/ 64 <12000000000>;
+ };
+...
diff --git a/include/dt-bindings/clock/qcom,ipq-cmn-pll.h b/include/dt-bindings/clock/qcom,ipq-cmn-pll.h
new file mode 100644
index 000000000000..936e92b3b62c
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,ipq-cmn-pll.h
@@ -0,0 +1,22 @@
@ -136,6 +130,3 @@ index 000000000000..936e92b3b62c
+#define ETH2_50MHZ_CLK 8
+#define ETH_25MHZ_CLK 9
+#endif
--
2.47.1

View File

@ -28,8 +28,6 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 26 ++++++++++++++++++-
2 files changed, 41 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
index 91e104b0f865..bb1ff79360d3 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
@@ -3,7 +3,7 @@
@ -41,7 +39,7 @@ index 91e104b0f865..bb1ff79360d3 100644
*/
/dts-v1/;
@@ -164,6 +164,21 @@ &usb3 {
@@ -120,6 +120,21 @@
status = "okay";
};
@ -63,8 +61,6 @@ index 91e104b0f865..bb1ff79360d3 100644
+&xo_clk {
+ clock-frequency = <48000000>;
+};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 00ee3290c181..c543c3492e93 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -3,10 +3,11 @@
@ -80,7 +76,7 @@ index 00ee3290c181..c543c3492e93 100644
#include <dt-bindings/clock/qcom,ipq9574-gcc.h>
#include <dt-bindings/interconnect/qcom,ipq9574.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -19,6 +20,12 @@ / {
@@ -19,6 +20,12 @@
#size-cells = <2>;
clocks {
@ -93,7 +89,7 @@ index 00ee3290c181..c543c3492e93 100644
sleep_clk: sleep-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
@@ -28,6 +35,11 @@ xo_board_clk: xo-board-clk {
@@ -28,6 +35,11 @@
compatible = "fixed-clock";
#clock-cells = <0>;
};
@ -105,7 +101,7 @@ index 00ee3290c181..c543c3492e93 100644
};
cpus {
@@ -335,6 +347,18 @@ pcie1_phy: phy@fc000 {
@@ -243,6 +255,18 @@
status = "disabled";
};
@ -124,6 +120,3 @@ index 00ee3290c181..c543c3492e93 100644
qfprom: efuse@a4000 {
compatible = "qcom,ipq9574-qfprom", "qcom,qfprom";
reg = <0x000a4000 0x5a1>;
--
2.47.1

View File

@ -17,11 +17,9 @@ Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 3 ++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
index bb1ff79360d3..ae12f069f26f 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
@@ -175,8 +175,13 @@ &ref_48mhz_clk {
@@ -131,8 +131,13 @@
clock-mult = <1>;
};
@ -36,11 +34,9 @@ index bb1ff79360d3..ae12f069f26f 100644
};
&xo_clk {
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index c543c3492e93..3e93484e7e32 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -32,7 +32,8 @@ sleep_clk: sleep-clk {
@@ -32,7 +32,8 @@
};
xo_board_clk: xo-board-clk {
@ -50,6 +46,3 @@ index c543c3492e93..3e93484e7e32 100644
#clock-cells = <0>;
};
--
2.47.1

View File

@ -209,11 +209,9 @@ Change in [v1]
5 files changed, 1654 insertions(+)
create mode 100644 drivers/spi/spi-qpic-snand.c
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index da1586a36574..db516a45f0c5 100644
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
@@ -3,7 +3,11 @@
@@ -4,7 +4,11 @@ nandcore-objs := core.o bbt.o
obj-$(CONFIG_MTD_NAND_CORE) += nandcore.o
obj-$(CONFIG_MTD_NAND_ECC_MEDIATEK) += ecc-mtk.o
obj-$(CONFIG_MTD_NAND_MTK_BMT) += mtk_bmt.o mtk_bmt_v2.o mtk_bmt_bbt.o mtk_bmt_nmbm.o
@ -225,11 +223,9 @@ index da1586a36574..db516a45f0c5 100644
obj-y += onenand/
obj-y += raw/
obj-y += spi/
diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
index f51f9466e518..1aaf93964429 100644
--- a/drivers/spi/Kconfig
+++ b/drivers/spi/Kconfig
@@ -920,6 +920,15 @@ config SPI_QCOM_QSPI
@@ -870,6 +870,15 @@ config SPI_QCOM_QSPI
help
QSPI(Quad SPI) driver for Qualcomm QSPI controller.
@ -245,11 +241,9 @@ index f51f9466e518..1aaf93964429 100644
config SPI_QUP
tristate "Qualcomm SPI controller with QUP interface"
depends on ARCH_QCOM || COMPILE_TEST
diff --git a/drivers/spi/Makefile b/drivers/spi/Makefile
index aea5e54de195..3309b7bb2445 100644
--- a/drivers/spi/Makefile
+++ b/drivers/spi/Makefile
@@ -115,6 +115,7 @@ obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx-platform.o
@@ -110,6 +110,7 @@ obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx-
obj-$(CONFIG_SPI_PXA2XX_PCI) += spi-pxa2xx-pci.o
obj-$(CONFIG_SPI_QCOM_GENI) += spi-geni-qcom.o
obj-$(CONFIG_SPI_QCOM_QSPI) += spi-qcom-qspi.o
@ -257,9 +251,6 @@ index aea5e54de195..3309b7bb2445 100644
obj-$(CONFIG_SPI_QUP) += spi-qup.o
obj-$(CONFIG_SPI_ROCKCHIP) += spi-rockchip.o
obj-$(CONFIG_SPI_ROCKCHIP_SFC) += spi-rockchip-sfc.o
diff --git a/drivers/spi/spi-qpic-snand.c b/drivers/spi/spi-qpic-snand.c
new file mode 100644
index 000000000000..1ba562a9369e
--- /dev/null
+++ b/drivers/spi/spi-qpic-snand.c
@@ -0,0 +1,1633 @@
@ -1896,11 +1887,9 @@ index 000000000000..1ba562a9369e
+MODULE_AUTHOR("Md Sadre Alam <quic_mdalam@quicinc.com>");
+MODULE_LICENSE("GPL");
+
diff --git a/include/linux/mtd/nand-qpic-common.h b/include/linux/mtd/nand-qpic-common.h
index e79c79775eb8..7dba89654d6c 100644
--- a/include/linux/mtd/nand-qpic-common.h
+++ b/include/linux/mtd/nand-qpic-common.h
@@ -322,6 +322,10 @@ struct nandc_regs {
@@ -325,6 +325,10 @@ struct nandc_regs {
__le32 read_location_last1;
__le32 read_location_last2;
__le32 read_location_last3;
@ -1911,7 +1900,7 @@ index e79c79775eb8..7dba89654d6c 100644
__le32 erased_cw_detect_cfg_clr;
__le32 erased_cw_detect_cfg_set;
@@ -336,6 +340,7 @@ struct nandc_regs {
@@ -339,6 +343,7 @@ struct nandc_regs {
*
* @core_clk: controller clock
* @aon_clk: another controller clock
@ -1919,7 +1908,7 @@ index e79c79775eb8..7dba89654d6c 100644
*
* @regs: a contiguous chunk of memory for DMA register
* writes. contains the register values to be
@@ -345,6 +350,7 @@ struct nandc_regs {
@@ -348,6 +353,7 @@ struct nandc_regs {
* initialized via DT match data
*
* @controller: base controller structure
@ -1927,7 +1916,7 @@ index e79c79775eb8..7dba89654d6c 100644
* @host_list: list containing all the chips attached to the
* controller
*
@@ -389,6 +395,7 @@ struct qcom_nand_controller {
@@ -392,6 +398,7 @@ struct qcom_nand_controller {
const struct qcom_nandc_props *props;
struct nand_controller *controller;
@ -1935,5 +1924,3 @@ index e79c79775eb8..7dba89654d6c 100644
struct list_head host_list;
union {
--
2.34.1

View File

@ -56,7 +56,7 @@ Change in [v1]
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -121,6 +121,49 @@
@@ -59,4 +59,47 @@
bias-pull-down;
};
};
@ -104,11 +104,9 @@ Change in [v1]
+ nand-ecc-step-size = <512>;
+ };
};
&usb_0_dwc3 {
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -300,6 +300,33 @@
@@ -355,6 +355,33 @@
reg = <0x01937000 0x21000>;
};

View File

@ -54,7 +54,7 @@ Change in [v1]
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -82,7 +82,7 @@
@@ -24,7 +24,7 @@
mmc-hs400-enhanced-strobe;
max-frequency = <384000000>;
bus-width = <8>;
@ -62,4 +62,4 @@ Change in [v1]
+ status = "disabled";
};
&sleep_clk {
&tlmm {

View File

@ -24,9 +24,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
create mode 100644 Documentation/devicetree/bindings/net/qcom,qca8084.yaml
create mode 100644 include/dt-bindings/net/qcom,qca808x.h
diff --git a/Documentation/devicetree/bindings/net/qcom,qca8084.yaml b/Documentation/devicetree/bindings/net/qcom,qca8084.yaml
new file mode 100644
index 000000000000..efa1fa4ebfdc
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/qcom,qca8084.yaml
@@ -0,0 +1,198 @@
@ -228,9 +225,6 @@ index 000000000000..efa1fa4ebfdc
+ };
+ };
+ };
diff --git a/include/dt-bindings/net/qcom,qca808x.h b/include/dt-bindings/net/qcom,qca808x.h
new file mode 100644
index 000000000000..c3a2830445ea
--- /dev/null
+++ b/include/dt-bindings/net/qcom,qca808x.h
@@ -0,0 +1,14 @@
@ -248,6 +242,3 @@ index 000000000000..c3a2830445ea
+#define QCA808X_PCS1_SGMII_MAC_PCS0_SGMII_PHY 2
+
+#endif
--
2.45.2

View File

@ -24,8 +24,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 62 ++++++++++++++++++++++++++++++++--
1 file changed, 60 insertions(+), 2 deletions(-)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index 5048304ccc9e..be46d16ca09f 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -86,9 +86,16 @@
@ -46,7 +44,7 @@ index 5048304ccc9e..be46d16ca09f 100644
MODULE_LICENSE("GPL");
struct qca808x_priv {
@@ -153,7 +160,9 @@ static bool qca808x_is_prefer_master(struct phy_device *phydev)
@@ -153,7 +160,9 @@ static bool qca808x_is_prefer_master(str
static bool qca808x_has_fast_retrain_or_slave_seed(struct phy_device *phydev)
{
@ -57,7 +55,7 @@ index 5048304ccc9e..be46d16ca09f 100644
}
static bool qca808x_is_1g_only(struct phy_device *phydev)
@@ -273,6 +282,23 @@ static int qca808x_read_status(struct phy_device *phydev)
@@ -273,6 +282,23 @@ static int qca808x_read_status(struct ph
return ret;
if (phydev->link) {
@ -81,7 +79,7 @@ index 5048304ccc9e..be46d16ca09f 100644
if (phydev->speed == SPEED_2500)
phydev->interface = PHY_INTERFACE_MODE_2500BASEX;
else
@@ -352,6 +378,18 @@ static int qca808x_cable_test_start(struct phy_device *phydev)
@@ -352,6 +378,18 @@ static int qca808x_cable_test_start(stru
phy_write_mmd(phydev, MDIO_MMD_PCS, 0x807a, 0xc060);
phy_write_mmd(phydev, MDIO_MMD_PCS, 0x807e, 0xb060);
@ -100,7 +98,7 @@ index 5048304ccc9e..be46d16ca09f 100644
return 0;
}
@@ -651,12 +689,32 @@ static struct phy_driver qca808x_driver[] = {
@@ -651,12 +689,32 @@ static struct phy_driver qca808x_driver[
.led_hw_control_set = qca808x_led_hw_control_set,
.led_hw_control_get = qca808x_led_hw_control_get,
.led_polarity_set = qca808x_led_polarity_set,
@ -133,6 +131,3 @@ index 5048304ccc9e..be46d16ca09f 100644
{ }
};
--
2.45.2

View File

@ -22,8 +22,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 38 ++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index be46d16ca09f..c88fa59d4029 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -94,6 +94,15 @@
@ -42,7 +40,7 @@ index be46d16ca09f..c88fa59d4029 100644
MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver");
MODULE_AUTHOR("Matus Ujhelyi, Luo Jie");
MODULE_LICENSE("GPL");
@@ -660,6 +669,34 @@ static int qca808x_led_polarity_set(struct phy_device *phydev, int index,
@@ -660,6 +669,34 @@ static int qca808x_led_polarity_set(stru
active_low ? 0 : QCA808X_LED_ACTIVE_HIGH);
}
@ -77,7 +75,7 @@ index be46d16ca09f..c88fa59d4029 100644
static struct phy_driver qca808x_driver[] = {
{
/* Qualcomm QCA8081 */
@@ -708,6 +745,7 @@ static struct phy_driver qca808x_driver[] = {
@@ -708,6 +745,7 @@ static struct phy_driver qca808x_driver[
.soft_reset = qca808x_soft_reset,
.cable_test_start = qca808x_cable_test_start,
.cable_test_get_status = qca808x_cable_test_get_status,
@ -85,6 +83,3 @@ index be46d16ca09f..c88fa59d4029 100644
}, };
module_phy_driver(qca808x_driver);
--
2.45.2

View File

@ -13,8 +13,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 52 ++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index c88fa59d4029..029d5f9de6b8 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -103,6 +103,14 @@
@ -32,7 +30,7 @@ index c88fa59d4029..029d5f9de6b8 100644
MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver");
MODULE_AUTHOR("Matus Ujhelyi, Luo Jie");
MODULE_LICENSE("GPL");
@@ -697,6 +705,49 @@ static int qca8084_config_init(struct phy_device *phydev)
@@ -697,6 +705,49 @@ static int qca8084_config_init(struct ph
QCA8084_MSE_THRESHOLD_2P5G_VAL);
}
@ -82,7 +80,7 @@ index c88fa59d4029..029d5f9de6b8 100644
static struct phy_driver qca808x_driver[] = {
{
/* Qualcomm QCA8081 */
@@ -746,6 +797,7 @@ static struct phy_driver qca808x_driver[] = {
@@ -746,6 +797,7 @@ static struct phy_driver qca808x_driver[
.cable_test_start = qca808x_cable_test_start,
.cable_test_get_status = qca808x_cable_test_get_status,
.config_init = qca8084_config_init,
@ -90,6 +88,3 @@ index c88fa59d4029..029d5f9de6b8 100644
}, };
module_phy_driver(qca808x_driver);
--
2.45.2

View File

@ -19,8 +19,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 88 ++++++++++++++++++++++++++++++++++
1 file changed, 88 insertions(+)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index 029d5f9de6b8..8873474146e8 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -111,6 +111,22 @@
@ -125,6 +123,3 @@ index 029d5f9de6b8..8873474146e8 100644
static int qca808x_phy_fast_retrain_config(struct phy_device *phydev)
{
int ret;
--
2.45.2

View File

@ -17,8 +17,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 91 ++++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index 8873474146e8..85bb299fe0a3 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -2,6 +2,8 @@
@ -52,7 +50,7 @@ index 8873474146e8..85bb299fe0a3 100644
MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver");
MODULE_AUTHOR("Matus Ujhelyi, Luo Jie");
MODULE_LICENSE("GPL");
@@ -836,6 +853,79 @@ static void qca8084_link_change_notify(struct phy_device *phydev)
@@ -836,6 +853,79 @@ static void qca8084_link_change_notify(s
QCA8084_IPG_10_TO_11_EN : 0);
}
@ -132,7 +130,7 @@ index 8873474146e8..85bb299fe0a3 100644
static struct phy_driver qca808x_driver[] = {
{
/* Qualcomm QCA8081 */
@@ -886,6 +976,7 @@ static struct phy_driver qca808x_driver[] = {
@@ -886,6 +976,7 @@ static struct phy_driver qca808x_driver[
.cable_test_get_status = qca808x_cable_test_get_status,
.config_init = qca8084_config_init,
.link_change_notify = qca8084_link_change_notify,
@ -140,6 +138,3 @@ index 8873474146e8..85bb299fe0a3 100644
}, };
module_phy_driver(qca808x_driver);
--
2.45.2

View File

@ -17,8 +17,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 67 ++++++++++++++++++++++++++++++++--
1 file changed, 64 insertions(+), 3 deletions(-)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index 85bb299fe0a3..632cad1ad190 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -4,6 +4,7 @@
@ -29,7 +27,7 @@ index 85bb299fe0a3..632cad1ad190 100644
#include "qcom.h"
@@ -148,10 +149,35 @@ MODULE_DESCRIPTION("Qualcomm Atheros QCA808X PHY driver");
@@ -148,10 +149,35 @@ MODULE_DESCRIPTION("Qualcomm Atheros QCA
MODULE_AUTHOR("Matus Ujhelyi, Luo Jie");
MODULE_LICENSE("GPL");
@ -65,7 +63,7 @@ index 85bb299fe0a3..632cad1ad190 100644
static int __qca8084_set_page(struct mii_bus *bus, u16 sw_addr, u16 page)
{
return __mdiobus_write(bus, QCA8084_HIGH_ADDR_PREFIX | (sw_addr >> 5),
@@ -853,11 +879,24 @@ static void qca8084_link_change_notify(struct phy_device *phydev)
@@ -853,11 +879,24 @@ static void qca8084_link_change_notify(s
QCA8084_IPG_10_TO_11_EN : 0);
}
@ -91,7 +89,7 @@ index 85bb299fe0a3..632cad1ad190 100644
/* Program the MDIO address of PHY and PCS optionally, the MDIO
* address 0-6 is used for PHY and PCS MDIO devices by default.
@@ -889,17 +928,39 @@ static int qca8084_phy_package_probe_once(struct phy_device *phydev)
@@ -889,17 +928,39 @@ static int qca8084_phy_package_probe_onc
set |= FIELD_PREP(QCA8084_PCS_ADDR1_MASK, addr[5]);
set |= FIELD_PREP(QCA8084_PCS_ADDR2_MASK, addr[6]);
@ -133,6 +131,3 @@ index 85bb299fe0a3..632cad1ad190 100644
if (ret)
return ret;
--
2.45.2

View File

@ -14,8 +14,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/phy/qcom/qca808x.c | 115 +++++++++++++++++++++++++++++++++
1 file changed, 115 insertions(+)
diff --git a/drivers/net/phy/qcom/qca808x.c b/drivers/net/phy/qcom/qca808x.c
index 632cad1ad190..459f8e8a9749 100644
--- a/drivers/net/phy/qcom/qca808x.c
+++ b/drivers/net/phy/qcom/qca808x.c
@@ -1,5 +1,6 @@
@ -47,7 +45,7 @@ index 632cad1ad190..459f8e8a9749 100644
struct clk *clk[PACKAGE_CLK_MAX];
};
@@ -808,10 +817,107 @@ static int qca808x_led_polarity_set(struct phy_device *phydev, int index,
@@ -808,10 +817,107 @@ static int qca808x_led_polarity_set(stru
active_low ? 0 : QCA808X_LED_ACTIVE_HIGH);
}
@ -155,7 +153,7 @@ index 632cad1ad190..459f8e8a9749 100644
if (phydev->interface == PHY_INTERFACE_MODE_10G_QXGMII)
__set_bit(PHY_INTERFACE_MODE_10G_QXGMII,
phydev->possible_interfaces);
@@ -948,6 +1054,15 @@ static int qca8084_phy_package_probe_once(struct phy_device *phydev)
@@ -948,6 +1054,15 @@ static int qca8084_phy_package_probe_onc
return dev_err_probe(&phydev->mdio.dev, PTR_ERR(rstc),
"package reset not ready\n");
@ -171,6 +169,3 @@ index 632cad1ad190..459f8e8a9749 100644
/* Deassert PHY package. */
return reset_control_deassert(rstc);
}
--
2.45.2

View File

@ -42,11 +42,9 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
# QUALCOMM NAND CONTROLLER DRIVER
# M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
# L: linux-mtd@lists.infradead.org
diff --git a/drivers/net/pcs/Kconfig b/drivers/net/pcs/Kconfig
index f6aa437473de..796004de6a31 100644
--- a/drivers/net/pcs/Kconfig
+++ b/drivers/net/pcs/Kconfig
@@ -33,4 +33,14 @@ config PCS_RZN1_MIIC
@@ -44,4 +44,14 @@ config PCS_RZN1_MIIC
on RZ/N1 SoCs. This PCS converts MII to RMII/RGMII or can be set in
pass-through mode for MII.
@ -61,18 +59,13 @@ index f6aa437473de..796004de6a31 100644
+ These modes help to support various combination of ethernet switch/PHY on
+ IPQ SoC based boards.
endmenu
diff --git a/drivers/net/pcs/Makefile b/drivers/net/pcs/Makefile
index 4f7920618b90..f95cdff03c7f 100644
--- a/drivers/net/pcs/Makefile
+++ b/drivers/net/pcs/Makefile
@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_XPCS) += pcs_xpcs.o
@@ -8,3 +8,4 @@ obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o
obj-$(CONFIG_PCS_MTK_LYNXI) += pcs-mtk-lynxi.o
obj-$(CONFIG_PCS_RZN1_MIIC) += pcs-rzn1-miic.o
obj-$(CONFIG_PCS_MTK_USXGMII) += pcs-mtk-usxgmii.o
+obj-$(CONFIG_PCS_QCOM_IPQ_UNIPHY) += pcs-qcom-ipq-uniphy.o
diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
new file mode 100644
index 000000000000..837de629d0b2
--- /dev/null
+++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
@@ -0,0 +1,943 @@
@ -1019,9 +1012,6 @@ index 000000000000..837de629d0b2
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Qualcomm IPQ UNIPHY PCS driver");
+MODULE_AUTHOR("Lei Wei <quic_leiwei@quicinc.com>");
diff --git a/include/linux/pcs/pcs-qcom-ipq-uniphy.h b/include/linux/pcs/pcs-qcom-ipq-uniphy.h
new file mode 100644
index 000000000000..4a617bcb32f4
--- /dev/null
+++ b/include/linux/pcs/pcs-qcom-ipq-uniphy.h
@@ -0,0 +1,13 @@
@ -1038,6 +1028,3 @@ index 000000000000..4a617bcb32f4
+void ipq_unipcs_destroy(struct phylink_pcs *pcs);
+
+#endif /* __LINUX_PCS_QCOM_IPQ_UNIPHY_H */
--
2.45.2

View File

@ -12,8 +12,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 48 +++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
index 837de629d0b2..68a1715531ef 100644
--- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
+++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
@@ -57,6 +57,9 @@
@ -26,7 +24,7 @@ index 837de629d0b2..68a1715531ef 100644
#define XPCS_DIG_CTRL 0x38000
#define XPCS_USXG_ADPT_RESET BIT(10)
#define XPCS_USXG_EN BIT(9)
@@ -320,6 +323,23 @@ static void ipq_unipcs_get_state_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -320,6 +323,23 @@ static void ipq_unipcs_get_state_usxgmii
state->duplex = DUPLEX_HALF;
}
@ -50,7 +48,7 @@ index 837de629d0b2..68a1715531ef 100644
static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs,
phy_interface_t interface)
{
@@ -354,6 +374,7 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs,
@@ -354,6 +374,7 @@ static int ipq_unipcs_config_mode(struct
PCS_MODE_PSGMII);
break;
case PHY_INTERFACE_MODE_USXGMII:
@ -58,7 +56,7 @@ index 837de629d0b2..68a1715531ef 100644
rate = 312500000;
ipq_unipcs_reg_modify32(qunipcs, PCS_MODE_CTRL,
PCS_MODE_SEL_MASK,
@@ -461,6 +482,25 @@ static int ipq_unipcs_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -461,6 +482,25 @@ static int ipq_unipcs_config_usxgmii(str
return 0;
}
@ -84,7 +82,7 @@ index 837de629d0b2..68a1715531ef 100644
static unsigned long ipq_unipcs_clock_rate_get_gmii(int speed)
{
unsigned long rate = 0;
@@ -527,6 +567,7 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch,
@@ -527,6 +567,7 @@ ipq_unipcs_link_up_clock_rate_set(struct
rate = ipq_unipcs_clock_rate_get_gmii(speed);
break;
case PHY_INTERFACE_MODE_USXGMII:
@ -92,7 +90,7 @@ index 837de629d0b2..68a1715531ef 100644
rate = ipq_unipcs_clock_rate_get_xgmii(speed);
break;
default:
@@ -644,6 +685,9 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs,
@@ -644,6 +685,9 @@ static void ipq_unipcs_get_state(struct
case PHY_INTERFACE_MODE_USXGMII:
ipq_unipcs_get_state_usxgmii(qunipcs, state);
break;
@ -102,7 +100,7 @@ index 837de629d0b2..68a1715531ef 100644
default:
break;
}
@@ -675,6 +719,8 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs,
@@ -675,6 +719,8 @@ static int ipq_unipcs_config(struct phyl
case PHY_INTERFACE_MODE_USXGMII:
return ipq_unipcs_config_usxgmii(qunipcs,
neg_mode, interface);
@ -111,7 +109,7 @@ index 837de629d0b2..68a1715531ef 100644
default:
dev_err(qunipcs->dev,
"interface %s not supported\n", phy_modes(interface));
@@ -705,6 +751,8 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs,
@@ -705,6 +751,8 @@ static void ipq_unipcs_link_up(struct ph
case PHY_INTERFACE_MODE_USXGMII:
ipq_unipcs_link_up_config_usxgmii(qunipcs, speed);
break;
@ -120,6 +118,3 @@ index 837de629d0b2..68a1715531ef 100644
default:
dev_err(qunipcs->dev,
"interface %s not supported\n", phy_modes(interface));
--
2.45.2

View File

@ -15,8 +15,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 95 +++++++++++++++++++++++++++
1 file changed, 95 insertions(+)
diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
index 68a1715531ef..ed9c55a6c0fa 100644
--- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
+++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
@@ -25,6 +25,7 @@
@ -27,7 +25,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
#define PCS_MODE_XPCS FIELD_PREP(PCS_MODE_SEL_MASK, 0x10)
#define PCS_MODE_AN_MODE BIT(0)
@@ -282,6 +283,24 @@ static void ipq_unipcs_get_state_sgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -282,6 +283,24 @@ static void ipq_unipcs_get_state_sgmii(s
state->pause |= MLO_PAUSE_RX;
}
@ -52,7 +50,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
static void ipq_unipcs_get_state_usxgmii(struct ipq_uniphy_pcs *qunipcs,
struct phylink_link_state *state)
{
@@ -373,6 +392,12 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs,
@@ -373,6 +392,12 @@ static int ipq_unipcs_config_mode(struct
PCS_MODE_SEL_MASK | PCS_MODE_AN_MODE,
PCS_MODE_PSGMII);
break;
@ -65,7 +63,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
case PHY_INTERFACE_MODE_USXGMII:
case PHY_INTERFACE_MODE_10GBASER:
rate = 312500000;
@@ -450,6 +475,22 @@ static int ipq_unipcs_config_sgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -450,6 +475,22 @@ err:
return ret;
}
@ -88,7 +86,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
static int ipq_unipcs_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
unsigned int neg_mode,
phy_interface_t interface)
@@ -522,6 +563,21 @@ static unsigned long ipq_unipcs_clock_rate_get_gmii(int speed)
@@ -522,6 +563,21 @@ static unsigned long ipq_unipcs_clock_ra
return rate;
}
@ -110,7 +108,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
static unsigned long ipq_unipcs_clock_rate_get_xgmii(int speed)
{
unsigned long rate = 0;
@@ -566,6 +622,9 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch,
@@ -566,6 +622,9 @@ ipq_unipcs_link_up_clock_rate_set(struct
case PHY_INTERFACE_MODE_PSGMII:
rate = ipq_unipcs_clock_rate_get_gmii(speed);
break;
@ -120,7 +118,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
case PHY_INTERFACE_MODE_USXGMII:
case PHY_INTERFACE_MODE_10GBASER:
rate = ipq_unipcs_clock_rate_get_xgmii(speed);
@@ -627,6 +686,21 @@ static void ipq_unipcs_link_up_config_sgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -627,6 +686,21 @@ pcs_adapter_reset:
PCS_CHANNEL_ADPT_RESET);
}
@ -142,7 +140,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
int speed)
{
@@ -669,6 +743,17 @@ static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -669,6 +743,17 @@ static void ipq_unipcs_link_up_config_us
XPCS_USXG_ADPT_RESET);
}
@ -160,7 +158,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
static void ipq_unipcs_get_state(struct phylink_pcs *pcs,
struct phylink_link_state *state)
{
@@ -682,6 +767,9 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs,
@@ -682,6 +767,9 @@ static void ipq_unipcs_get_state(struct
case PHY_INTERFACE_MODE_PSGMII:
ipq_unipcs_get_state_sgmii(qunipcs, channel, state);
break;
@ -170,7 +168,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
case PHY_INTERFACE_MODE_USXGMII:
ipq_unipcs_get_state_usxgmii(qunipcs, state);
break;
@@ -716,6 +804,8 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs,
@@ -716,6 +804,8 @@ static int ipq_unipcs_config(struct phyl
case PHY_INTERFACE_MODE_PSGMII:
return ipq_unipcs_config_sgmii(qunipcs, channel,
neg_mode, interface);
@ -179,7 +177,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
case PHY_INTERFACE_MODE_USXGMII:
return ipq_unipcs_config_usxgmii(qunipcs,
neg_mode, interface);
@@ -748,6 +838,10 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs,
@@ -748,6 +838,10 @@ static void ipq_unipcs_link_up(struct ph
ipq_unipcs_link_up_config_sgmii(qunipcs, channel,
neg_mode, speed);
break;
@ -190,7 +188,7 @@ index 68a1715531ef..ed9c55a6c0fa 100644
case PHY_INTERFACE_MODE_USXGMII:
ipq_unipcs_link_up_config_usxgmii(qunipcs, speed);
break;
@@ -761,6 +855,7 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs,
@@ -761,6 +855,7 @@ static void ipq_unipcs_link_up(struct ph
}
static const struct phylink_pcs_ops ipq_unipcs_phylink_ops = {
@ -198,6 +196,3 @@ index 68a1715531ef..ed9c55a6c0fa 100644
.pcs_get_state = ipq_unipcs_get_state,
.pcs_config = ipq_unipcs_config,
.pcs_link_up = ipq_unipcs_link_up,
--
2.45.2

View File

@ -12,8 +12,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
index ed9c55a6c0fa..820d197744e8 100644
--- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
+++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
@@ -27,6 +27,9 @@
@ -26,7 +24,7 @@ index ed9c55a6c0fa..820d197744e8 100644
#define PCS_MODE_AN_MODE BIT(0)
#define PCS_CHANNEL_CTRL(x) (0x480 + 0x18 * (x))
@@ -392,6 +395,13 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs,
@@ -392,6 +395,13 @@ static int ipq_unipcs_config_mode(struct
PCS_MODE_SEL_MASK | PCS_MODE_AN_MODE,
PCS_MODE_PSGMII);
break;
@ -40,7 +38,7 @@ index ed9c55a6c0fa..820d197744e8 100644
case PHY_INTERFACE_MODE_2500BASEX:
rate = 312500000;
ipq_unipcs_reg_modify32(qunipcs, PCS_MODE_CTRL,
@@ -620,6 +630,7 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch,
@@ -620,6 +630,7 @@ ipq_unipcs_link_up_clock_rate_set(struct
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_PSGMII:
@ -48,7 +46,7 @@ index ed9c55a6c0fa..820d197744e8 100644
rate = ipq_unipcs_clock_rate_get_gmii(speed);
break;
case PHY_INTERFACE_MODE_2500BASEX:
@@ -765,6 +776,10 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs,
@@ -765,6 +776,10 @@ static void ipq_unipcs_get_state(struct
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_PSGMII:
@ -59,7 +57,7 @@ index ed9c55a6c0fa..820d197744e8 100644
ipq_unipcs_get_state_sgmii(qunipcs, channel, state);
break;
case PHY_INTERFACE_MODE_2500BASEX:
@@ -802,6 +817,7 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs,
@@ -802,6 +817,7 @@ static int ipq_unipcs_config(struct phyl
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_PSGMII:
@ -67,7 +65,7 @@ index ed9c55a6c0fa..820d197744e8 100644
return ipq_unipcs_config_sgmii(qunipcs, channel,
neg_mode, interface);
case PHY_INTERFACE_MODE_2500BASEX:
@@ -818,6 +834,11 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs,
@@ -818,6 +834,11 @@ static int ipq_unipcs_config(struct phyl
};
}
@ -79,7 +77,7 @@ index ed9c55a6c0fa..820d197744e8 100644
static void ipq_unipcs_link_up(struct phylink_pcs *pcs,
unsigned int neg_mode,
phy_interface_t interface,
@@ -835,6 +856,7 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs,
@@ -835,6 +856,7 @@ static void ipq_unipcs_link_up(struct ph
case PHY_INTERFACE_MODE_SGMII:
case PHY_INTERFACE_MODE_QSGMII:
case PHY_INTERFACE_MODE_PSGMII:
@ -87,7 +85,7 @@ index ed9c55a6c0fa..820d197744e8 100644
ipq_unipcs_link_up_config_sgmii(qunipcs, channel,
neg_mode, speed);
break;
@@ -858,6 +880,7 @@ static const struct phylink_pcs_ops ipq_unipcs_phylink_ops = {
@@ -858,6 +880,7 @@ static const struct phylink_pcs_ops ipq_
.pcs_validate = ipq_unipcs_validate,
.pcs_get_state = ipq_unipcs_get_state,
.pcs_config = ipq_unipcs_config,
@ -95,6 +93,3 @@ index ed9c55a6c0fa..820d197744e8 100644
.pcs_link_up = ipq_unipcs_link_up,
};
--
2.45.2

View File

@ -13,8 +13,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/pcs/pcs-qcom-ipq-uniphy.c | 174 +++++++++++++++++++++-----
1 file changed, 142 insertions(+), 32 deletions(-)
diff --git a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
index 820d197744e8..a98180c91632 100644
--- a/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
+++ b/drivers/net/pcs/pcs-qcom-ipq-uniphy.c
@@ -50,6 +50,9 @@
@ -81,7 +79,7 @@ index 820d197744e8..a98180c91632 100644
struct clk *clk[PCS_CLK_MAX];
struct reset_control *reset[PCS_RESET_MAX];
struct ipq_unipcs_raw_clk raw_clk[PCS_RAW_CLK_MAX];
@@ -215,39 +237,55 @@ static const struct clk_ops ipq_unipcs_raw_clk_ops = {
@@ -215,39 +237,55 @@ static const struct clk_ops ipq_unipcs_r
static u32 ipq_unipcs_reg_read32(struct ipq_uniphy_pcs *qunipcs, u32 reg)
{
@ -151,7 +149,7 @@ index 820d197744e8..a98180c91632 100644
static void ipq_unipcs_get_state_sgmii(struct ipq_uniphy_pcs *qunipcs,
int channel,
struct phylink_link_state *state)
@@ -305,11 +343,15 @@ static void ipq_unipcs_get_state_2500basex(struct ipq_uniphy_pcs *qunipcs,
@@ -305,11 +343,15 @@ static void ipq_unipcs_get_state_2500bas
}
static void ipq_unipcs_get_state_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@ -169,7 +167,7 @@ index 820d197744e8..a98180c91632 100644
state->link = !!(val & XPCS_USXG_AN_LINK_STS);
@@ -415,6 +457,15 @@ static int ipq_unipcs_config_mode(struct ipq_uniphy_pcs *qunipcs,
@@ -415,6 +457,15 @@ static int ipq_unipcs_config_mode(struct
PCS_MODE_SEL_MASK,
PCS_MODE_XPCS);
break;
@ -185,7 +183,7 @@ index 820d197744e8..a98180c91632 100644
default:
dev_err(qunipcs->dev,
"interface %s not supported\n", phy_modes(interface));
@@ -502,35 +553,82 @@ static int ipq_unipcs_config_2500basex(struct ipq_uniphy_pcs *qunipcs,
@@ -502,35 +553,82 @@ static int ipq_unipcs_config_2500basex(s
}
static int ipq_unipcs_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@ -220,6 +218,9 @@ index 820d197744e8..a98180c91632 100644
- ipq_unipcs_reg_modify32(qunipcs, XPCS_MII_AN_CTRL,
- XPCS_MII_AN_8BIT,
- XPCS_MII_AN_8BIT);
-
- ipq_unipcs_reg_modify32(qunipcs, XPCS_MII_CTRL,
- XPCS_MII_AN_EN, XPCS_MII_AN_EN);
+ if (interface == PHY_INTERFACE_MODE_10G_QXGMII) {
+ ipq_unipcs_reg_modify32(qunipcs, XPCS_KR_CTRL,
+ XPCS_USXG_MODE_MASK,
@ -229,9 +230,7 @@ index 820d197744e8..a98180c91632 100644
+ ipq_unipcs_reg_modify32(qunipcs, XPCS_DIG_STS,
+ XPCS_DIG_STS_AM_COUNT,
+ 0x6018);
- ipq_unipcs_reg_modify32(qunipcs, XPCS_MII_CTRL,
- XPCS_MII_AN_EN, XPCS_MII_AN_EN);
+
+ ipq_unipcs_reg_modify32(qunipcs, XPCS_DIG_CTRL,
+ XPCS_SOFT_RESET,
+ XPCS_SOFT_RESET);
@ -276,7 +275,7 @@ index 820d197744e8..a98180c91632 100644
}
static int ipq_unipcs_config_10gbaser(struct ipq_uniphy_pcs *qunipcs,
@@ -638,6 +736,7 @@ ipq_unipcs_link_up_clock_rate_set(struct ipq_uniphy_pcs_ch *qunipcs_ch,
@@ -638,6 +736,7 @@ ipq_unipcs_link_up_clock_rate_set(struct
break;
case PHY_INTERFACE_MODE_USXGMII:
case PHY_INTERFACE_MODE_10GBASER:
@ -284,7 +283,7 @@ index 820d197744e8..a98180c91632 100644
rate = ipq_unipcs_clock_rate_get_xgmii(speed);
break;
default:
@@ -713,9 +812,10 @@ static void ipq_unipcs_link_up_config_2500basex(struct ipq_uniphy_pcs *qunipcs,
@@ -713,9 +812,10 @@ static void ipq_unipcs_link_up_config_25
}
static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@ -296,7 +295,7 @@ index 820d197744e8..a98180c91632 100644
switch (speed) {
case SPEED_10000:
@@ -744,14 +844,20 @@ static void ipq_unipcs_link_up_config_usxgmii(struct ipq_uniphy_pcs *qunipcs,
@@ -744,14 +844,20 @@ static void ipq_unipcs_link_up_config_us
val |= XPCS_DUPLEX_FULL;
/* Config XPCS speed */
@ -321,7 +320,7 @@ index 820d197744e8..a98180c91632 100644
}
static int ipq_unipcs_validate(struct phylink_pcs *pcs,
@@ -786,7 +892,8 @@ static void ipq_unipcs_get_state(struct phylink_pcs *pcs,
@@ -786,7 +892,8 @@ static void ipq_unipcs_get_state(struct
ipq_unipcs_get_state_2500basex(qunipcs, channel, state);
break;
case PHY_INTERFACE_MODE_USXGMII:
@ -331,7 +330,7 @@ index 820d197744e8..a98180c91632 100644
break;
case PHY_INTERFACE_MODE_10GBASER:
ipq_unipcs_get_state_10gbaser(qunipcs, state);
@@ -823,7 +930,8 @@ static int ipq_unipcs_config(struct phylink_pcs *pcs,
@@ -823,7 +930,8 @@ static int ipq_unipcs_config(struct phyl
case PHY_INTERFACE_MODE_2500BASEX:
return ipq_unipcs_config_2500basex(qunipcs, interface);
case PHY_INTERFACE_MODE_USXGMII:
@ -341,7 +340,7 @@ index 820d197744e8..a98180c91632 100644
neg_mode, interface);
case PHY_INTERFACE_MODE_10GBASER:
return ipq_unipcs_config_10gbaser(qunipcs, interface);
@@ -865,7 +973,8 @@ static void ipq_unipcs_link_up(struct phylink_pcs *pcs,
@@ -865,7 +973,8 @@ static void ipq_unipcs_link_up(struct ph
channel, speed);
break;
case PHY_INTERFACE_MODE_USXGMII:
@ -351,7 +350,7 @@ index 820d197744e8..a98180c91632 100644
break;
case PHY_INTERFACE_MODE_10GBASER:
break;
@@ -1082,6 +1191,7 @@ static int ipq_uniphy_probe(struct platform_device *pdev)
@@ -1082,6 +1191,7 @@ static int ipq_uniphy_probe(struct platf
return ret;
mutex_init(&priv->shared_lock);
@ -359,6 +358,3 @@ index 820d197744e8..a98180c91632 100644
platform_set_drvdata(pdev, priv);
--
2.45.2

View File

@ -36,8 +36,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe.h
diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig
index 9210ff360fdc..8cc24da48777 100644
--- a/drivers/net/ethernet/qualcomm/Kconfig
+++ b/drivers/net/ethernet/qualcomm/Kconfig
@@ -61,6 +61,21 @@ config QCOM_EMAC
@ -62,8 +60,6 @@ index 9210ff360fdc..8cc24da48777 100644
source "drivers/net/ethernet/qualcomm/rmnet/Kconfig"
endif # NET_VENDOR_QUALCOMM
diff --git a/drivers/net/ethernet/qualcomm/Makefile b/drivers/net/ethernet/qualcomm/Makefile
index 9250976dd884..166a59aea363 100644
--- a/drivers/net/ethernet/qualcomm/Makefile
+++ b/drivers/net/ethernet/qualcomm/Makefile
@@ -11,4 +11,5 @@ qcauart-objs := qca_uart.o
@ -72,9 +68,6 @@ index 9250976dd884..166a59aea363 100644
+obj-$(CONFIG_QCOM_PPE) += ppe/
obj-$(CONFIG_RMNET) += rmnet/
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
new file mode 100644
index 000000000000..63d50d3b4f2e
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -0,0 +1,7 @@
@ -85,9 +78,6 @@ index 000000000000..63d50d3b4f2e
+
+obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
+qcom-ppe-objs := ppe.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c
new file mode 100644
index 000000000000..14998ac771c7
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c
@@ -0,0 +1,225 @@
@ -316,9 +306,6 @@ index 000000000000..14998ac771c7
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Qualcomm IPQ PPE driver");
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.h b/drivers/net/ethernet/qualcomm/ppe/ppe.h
new file mode 100644
index 000000000000..733d77f4063d
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.h
@@ -0,0 +1,36 @@
@ -358,6 +345,3 @@ index 000000000000..733d77f4063d
+ struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths);
+};
+#endif
--
2.45.2

View File

@ -23,8 +23,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_config.h
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 63d50d3b4f2e..410a7bb54cfe 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -4,4 +4,4 @@
@ -33,8 +31,6 @@ index 63d50d3b4f2e..410a7bb54cfe 100644
obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
-qcom-ppe-objs := ppe.o
+qcom-ppe-objs := ppe.o ppe_config.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c
index 14998ac771c7..443706291ce0 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c
@@ -15,6 +15,7 @@
@ -45,7 +41,7 @@ index 14998ac771c7..443706291ce0 100644
#define PPE_PORT_MAX 8
#define PPE_CLK_RATE 353000000
@@ -201,6 +202,10 @@ static int qcom_ppe_probe(struct platform_device *pdev)
@@ -201,6 +202,10 @@ static int qcom_ppe_probe(struct platfor
if (ret)
return dev_err_probe(dev, ret, "PPE clock config failed\n");
@ -56,9 +52,6 @@ index 14998ac771c7..443706291ce0 100644
platform_set_drvdata(pdev, ppe_dev);
return 0;
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
new file mode 100644
index 000000000000..0ba4efdfd509
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -0,0 +1,181 @@
@ -243,9 +236,6 @@ index 000000000000..0ba4efdfd509
+{
+ return ppe_config_bm(ppe_dev);
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
new file mode 100644
index 000000000000..7e66019de799
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -0,0 +1,10 @@
@ -259,9 +249,6 @@ index 000000000000..7e66019de799
+
+int ppe_hw_config(struct ppe_device *ppe_dev);
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
new file mode 100644
index 000000000000..bf25e0acc0f6
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -0,0 +1,54 @@
@ -319,6 +306,3 @@ index 000000000000..bf25e0acc0f6
+ u32p_replace_bits((u32 *)(tbl_cfg) + 0x1, value, PPE_BM_PORT_FC_W1_PRE_ALLOC)
+
+#endif
--
2.45.2

View File

@ -18,8 +18,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 82 ++++++++
2 files changed, 257 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index 0ba4efdfd509..4192fdc8d3a3 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -43,6 +43,27 @@ struct ppe_bm_port_config {
@ -50,7 +48,7 @@ index 0ba4efdfd509..4192fdc8d3a3 100644
static int ipq9574_ppe_bm_group_config = 1550;
static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = {
{
@@ -91,6 +112,31 @@ static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = {
@@ -91,6 +112,31 @@ static struct ppe_bm_port_config ipq9574
},
};
@ -82,7 +80,7 @@ index 0ba4efdfd509..4192fdc8d3a3 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -175,7 +221,135 @@ static int ppe_config_bm(struct ppe_device *ppe_dev)
@@ -175,7 +221,135 @@ bm_config_fail:
return ret;
}
@ -219,8 +217,6 @@ index 0ba4efdfd509..4192fdc8d3a3 100644
+
+ return ppe_config_qm(ppe_dev);
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index bf25e0acc0f6..0bc13979e5e2 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -11,6 +11,14 @@
@ -317,6 +313,3 @@ index bf25e0acc0f6..0bc13979e5e2 100644
+#define PPE_ENQ_OPR_TBL_ENQ_DISABLE BIT(0)
+
#endif
--
2.45.2

View File

@ -20,8 +20,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_api.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_api.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 410a7bb54cfe..e4e5c94fde3e 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -4,4 +4,4 @@
@ -30,9 +28,6 @@ index 410a7bb54cfe..e4e5c94fde3e 100644
obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
-qcom-ppe-objs := ppe.o ppe_config.o
+qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
new file mode 100644
index 000000000000..ba35fc151e2c
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
@@ -0,0 +1,40 @@
@ -76,9 +71,6 @@ index 000000000000..ba35fc151e2c
+
+ return ppe_queue_scheduler_set(ppe_dev, node_id, level, port, sch_cfg);
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
new file mode 100644
index 000000000000..ee5b47d06991
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
@@ -0,0 +1,21 @@
@ -103,8 +95,6 @@ index 000000000000..ee5b47d06991
+int ppe_queue_priority_set(struct ppe_device *ppe_dev,
+ int queue_id, int priority);
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index 4192fdc8d3a3..bdef26da6fd3 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -13,6 +13,7 @@
@ -185,7 +175,7 @@ index 4192fdc8d3a3..bdef26da6fd3 100644
static int ipq9574_ppe_bm_group_config = 1550;
static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = {
{
@@ -137,6 +192,707 @@ static struct ppe_qm_queue_config ipq9574_ppe_qm_queue_config[] = {
@@ -137,6 +192,707 @@ static struct ppe_qm_queue_config ipq957
},
};
@ -893,7 +883,7 @@ index 4192fdc8d3a3..bdef26da6fd3 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -343,6 +1099,126 @@ static int ppe_config_qm(struct ppe_device *ppe_dev)
@@ -343,6 +1099,126 @@ qm_config_fail:
return ret;
}
@ -1020,7 +1010,7 @@ index 4192fdc8d3a3..bdef26da6fd3 100644
int ppe_hw_config(struct ppe_device *ppe_dev)
{
int ret;
@@ -351,5 +1227,9 @@ int ppe_hw_config(struct ppe_device *ppe_dev)
@@ -351,5 +1227,9 @@ int ppe_hw_config(struct ppe_device *ppe
if (ret)
return ret;
@ -1031,8 +1021,6 @@ index 4192fdc8d3a3..bdef26da6fd3 100644
+
+ return ppe_config_scheduler(ppe_dev);
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
index 7e66019de799..167a114031fd 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -6,5 +6,31 @@
@ -1067,8 +1055,6 @@ index 7e66019de799..167a114031fd 100644
+ int node_id, bool flow_level, int *port,
+ struct ppe_qos_scheduler_cfg *scheduler_cfg);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 0bc13979e5e2..0279f1023bcf 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -11,14 +11,108 @@
@ -1180,6 +1166,3 @@ index 0bc13979e5e2..0279f1023bcf 100644
#define PPE_BM_PORT_FC_MODE_ADDR 0x600100
#define PPE_BM_PORT_FC_MODE_INC 0x4
#define PPE_BM_PORT_FC_MODE_EN BIT(0)
--
2.45.2

View File

@ -20,11 +20,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 16 +
5 files changed, 496 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
index ba35fc151e2c..72d416e0ca44 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
@@ -38,3 +38,47 @@ int ppe_queue_priority_set(struct ppe_device *ppe_dev,
@@ -38,3 +38,47 @@ int ppe_queue_priority_set(struct ppe_de
return ppe_queue_scheduler_set(ppe_dev, node_id, level, port, sch_cfg);
}
@ -72,8 +70,6 @@ index ba35fc151e2c..72d416e0ca44 100644
+
+ return ppe_port_resource_get(ppe_dev, 0, type, res_start, res_end);
+};
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
index ee5b47d06991..c8aa8945f90f 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
@@ -15,7 +15,41 @@
@ -118,8 +114,6 @@ index ee5b47d06991..c8aa8945f90f 100644
+int ppe_edma_queue_resource_get(struct ppe_device *ppe_dev, int type,
+ int *res_start, int *res_end);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index bdef26da6fd3..ac90d33aecba 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -119,6 +119,34 @@ struct ppe_port_schedule_config {
@ -157,7 +151,7 @@ index bdef26da6fd3..ac90d33aecba 100644
static int ipq9574_ppe_bm_group_config = 1550;
static struct ppe_bm_port_config ipq9574_ppe_bm_port_config[] = {
{
@@ -648,6 +676,111 @@ static struct ppe_port_schedule_config ppe_qos_schedule_config[] = {
@@ -648,6 +676,111 @@ static struct ppe_port_schedule_config p
},
};
@ -269,7 +263,7 @@ index bdef26da6fd3..ac90d33aecba 100644
/* Set the first level scheduler configuration. */
static int ppe_scheduler_l0_queue_map_set(struct ppe_device *ppe_dev,
int node_id, int port,
@@ -893,6 +1026,147 @@ int ppe_queue_scheduler_get(struct ppe_device *ppe_dev,
@@ -893,6 +1026,147 @@ int ppe_queue_scheduler_get(struct ppe_d
port, scheduler_cfg);
}
@ -417,7 +411,7 @@ index bdef26da6fd3..ac90d33aecba 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -1219,6 +1493,88 @@ static int ppe_config_scheduler(struct ppe_device *ppe_dev)
@@ -1219,6 +1493,88 @@ sch_config_fail:
return ret;
};
@ -506,7 +500,7 @@ index bdef26da6fd3..ac90d33aecba 100644
int ppe_hw_config(struct ppe_device *ppe_dev)
{
int ret;
@@ -1231,5 +1587,9 @@ int ppe_hw_config(struct ppe_device *ppe_dev)
@@ -1231,5 +1587,9 @@ int ppe_hw_config(struct ppe_device *ppe
if (ret)
return ret;
@ -517,8 +511,6 @@ index bdef26da6fd3..ac90d33aecba 100644
+
+ return ppe_dev_hw_init(ppe_dev);
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
index 167a114031fd..676c4ec45f6f 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -6,6 +6,13 @@
@ -562,7 +554,7 @@ index 167a114031fd..676c4ec45f6f 100644
int ppe_hw_config(struct ppe_device *ppe_dev);
int ppe_queue_scheduler_set(struct ppe_device *ppe_dev,
int node_id, bool flow_level, int port,
@@ -33,4 +60,18 @@ int ppe_queue_scheduler_set(struct ppe_device *ppe_dev,
@@ -33,4 +60,18 @@ int ppe_queue_scheduler_set(struct ppe_d
int ppe_queue_scheduler_get(struct ppe_device *ppe_dev,
int node_id, bool flow_level, int *port,
struct ppe_qos_scheduler_cfg *scheduler_cfg);
@ -581,8 +573,6 @@ index 167a114031fd..676c4ec45f6f 100644
+int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type,
+ int *res_start, int *res_end);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 0279f1023bcf..1f6828237f94 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -153,6 +153,22 @@
@ -608,6 +598,3 @@ index 0279f1023bcf..1f6828237f94 100644
/* PPE unicast queue (0-255) configurations. */
#define PPE_AC_UNI_QUEUE_CFG_TBL_ADDR 0x848000
#define PPE_AC_UNI_QUEUE_CFG_TBL_NUM 256
--
2.45.2

View File

@ -20,8 +20,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 48 ++++++
4 files changed, 290 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
index c8aa8945f90f..ecdae4b95667 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
@@ -18,6 +18,9 @@
@ -34,8 +32,6 @@ index c8aa8945f90f..ecdae4b95667 100644
/**
* enum ppe_queue_class_type - PPE queue class type
* @PPE_QUEUE_CLASS_PRIORITY: Queue offset configured from internal priority
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index ac90d33aecba..a8e7a536a6e0 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -8,6 +8,7 @@
@ -46,7 +42,7 @@ index ac90d33aecba..a8e7a536a6e0 100644
#include <linux/bits.h>
#include <linux/device.h>
#include <linux/regmap.h>
@@ -1167,6 +1168,76 @@ int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type,
@@ -1167,6 +1168,76 @@ int ppe_port_resource_get(struct ppe_dev
return 0;
}
@ -123,7 +119,7 @@ index ac90d33aecba..a8e7a536a6e0 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -1569,10 +1640,35 @@ static int ppe_queue_dest_init(struct ppe_device *ppe_dev)
@@ -1569,10 +1640,35 @@ static int ppe_queue_dest_init(struct pp
return 0;
}
@ -160,8 +156,6 @@ index ac90d33aecba..a8e7a536a6e0 100644
}
int ppe_hw_config(struct ppe_device *ppe_dev)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
index 676c4ec45f6f..dcb557ed843c 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -6,6 +6,8 @@
@ -317,7 +311,7 @@ index 676c4ec45f6f..dcb557ed843c 100644
int ppe_hw_config(struct ppe_device *ppe_dev);
int ppe_queue_scheduler_set(struct ppe_device *ppe_dev,
int node_id, bool flow_level, int port,
@@ -74,4 +213,7 @@ int ppe_queue_ucast_hash_class_set(struct ppe_device *ppe_dev,
@@ -74,4 +213,7 @@ int ppe_queue_ucast_hash_class_set(struc
int class_offset);
int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type,
int *res_start, int *res_end);
@ -325,8 +319,6 @@ index 676c4ec45f6f..dcb557ed843c 100644
+ int servcode,
+ struct ppe_servcode_cfg cfg);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 1f6828237f94..3122743af98d 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -27,9 +27,57 @@
@ -387,6 +379,3 @@ index 1f6828237f94..3122743af98d 100644
#define PPE_PSCH_SCH_DEPTH_CFG_ADDR 0x400000
#define PPE_PSCH_SCH_DEPTH_CFG_NUM 1
#define PPE_PSCH_SCH_DEPTH_CFG_INC 4
--
2.45.2

View File

@ -15,11 +15,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 50 ++++++++++
3 files changed, 151 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index a8e7a536a6e0..18296a449d4e 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -1238,6 +1238,50 @@ int ppe_servcode_config_set(struct ppe_device *ppe_dev, int servcode,
@@ -1238,6 +1238,50 @@ int ppe_servcode_config_set(struct ppe_d
return regmap_write(ppe_dev->regmap, reg, val);
}
@ -70,7 +68,7 @@ index a8e7a536a6e0..18296a449d4e 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -1659,6 +1703,47 @@ static int ppe_servcode_init(struct ppe_device *ppe_dev)
@@ -1659,6 +1703,47 @@ static int ppe_servcode_init(struct ppe_
return ppe_servcode_config_set(ppe_dev, PPE_EDMA_SC_BYPASS_ID, servcode_cfg);
}
@ -118,7 +116,7 @@ index a8e7a536a6e0..18296a449d4e 100644
/* Initialize PPE device to handle traffic correctly. */
static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
{
@@ -1668,7 +1753,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
@@ -1668,7 +1753,11 @@ static int ppe_dev_hw_init(struct ppe_de
if (ret)
return ret;
@ -131,8 +129,6 @@ index a8e7a536a6e0..18296a449d4e 100644
}
int ppe_hw_config(struct ppe_device *ppe_dev)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
index dcb557ed843c..7f5d92c39dd3 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -192,6 +192,16 @@ struct ppe_servcode_cfg {
@ -152,14 +148,12 @@ index dcb557ed843c..7f5d92c39dd3 100644
int ppe_hw_config(struct ppe_device *ppe_dev);
int ppe_queue_scheduler_set(struct ppe_device *ppe_dev,
int node_id, bool flow_level, int port,
@@ -216,4 +226,5 @@ int ppe_port_resource_get(struct ppe_device *ppe_dev, int port, int type,
@@ -216,4 +226,5 @@ int ppe_port_resource_get(struct ppe_dev
int ppe_servcode_config_set(struct ppe_device *ppe_dev,
int servcode,
struct ppe_servcode_cfg cfg);
+int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 3122743af98d..e981a1c0e670 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -18,6 +18,11 @@
@ -233,6 +227,3 @@ index 3122743af98d..e981a1c0e670 100644
#define PPE_IN_L2_SERVICE_TBL_ADDR 0x66000
#define PPE_IN_L2_SERVICE_TBL_NUM 256
#define PPE_IN_L2_SERVICE_TBL_INC 0x10
--
2.45.2

View File

@ -15,11 +15,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 47 +++++
3 files changed, 263 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index 18296a449d4e..4363ea3cfb90 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -1282,6 +1282,143 @@ int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable)
@@ -1282,6 +1282,143 @@ int ppe_counter_set(struct ppe_device *p
val);
}
@ -163,7 +161,7 @@ index 18296a449d4e..4363ea3cfb90 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -1324,7 +1461,7 @@ static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
@@ -1324,7 +1461,7 @@ static int ppe_config_bm_threshold(struc
return regmap_update_bits(ppe_dev->regmap, reg,
PPE_BM_PORT_FC_MODE_EN,
val);
@ -172,7 +170,7 @@ index 18296a449d4e..4363ea3cfb90 100644
/* Configure the buffer threshold for the port flow control function. */
static int ppe_config_bm(struct ppe_device *ppe_dev)
@@ -1744,6 +1881,43 @@ static int ppe_port_ctrl_init(struct ppe_device *ppe_dev)
@@ -1744,6 +1881,43 @@ static int ppe_port_ctrl_init(struct ppe
return ppe_counter_set(ppe_dev, 0, true);
}
@ -216,7 +214,7 @@ index 18296a449d4e..4363ea3cfb90 100644
/* Initialize PPE device to handle traffic correctly. */
static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
{
@@ -1757,7 +1931,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
@@ -1757,7 +1931,11 @@ static int ppe_dev_hw_init(struct ppe_de
if (ret)
return ret;
@ -229,8 +227,6 @@ index 18296a449d4e..4363ea3cfb90 100644
}
int ppe_hw_config(struct ppe_device *ppe_dev)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
index 7f5d92c39dd3..6dd91bc45908 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -15,6 +15,11 @@
@ -281,15 +277,13 @@ index 7f5d92c39dd3..6dd91bc45908 100644
int ppe_hw_config(struct ppe_device *ppe_dev);
int ppe_queue_scheduler_set(struct ppe_device *ppe_dev,
int node_id, bool flow_level, int port,
@@ -227,4 +261,6 @@ int ppe_servcode_config_set(struct ppe_device *ppe_dev,
@@ -227,4 +261,6 @@ int ppe_servcode_config_set(struct ppe_d
int servcode,
struct ppe_servcode_cfg cfg);
int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable);
+int ppe_rss_hash_config_set(struct ppe_device *ppe_dev, int mode,
+ struct ppe_rss_hash_cfg hash_cfg);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index e981a1c0e670..29001a2599d8 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -23,6 +23,53 @@
@ -346,6 +340,3 @@ index e981a1c0e670..29001a2599d8 100644
#define PPE_BM_SCH_CFG_TBL_ADDR 0xc000
#define PPE_BM_SCH_CFG_TBL_NUM 128
#define PPE_BM_SCH_CFG_TBL_INC 0x10
--
2.45.2

View File

@ -18,11 +18,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 5 +++
5 files changed, 79 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
index 72d416e0ca44..6199c7025f66 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.c
@@ -82,3 +82,26 @@ int ppe_edma_queue_resource_get(struct ppe_device *ppe_dev, int type,
@@ -82,3 +82,26 @@ int ppe_edma_queue_resource_get(struct p
return ppe_port_resource_get(ppe_dev, 0, type, res_start, res_end);
};
@ -49,22 +47,18 @@ index 72d416e0ca44..6199c7025f66 100644
+
+ return ppe_ring_queue_map_set(ppe_dev, ring_id, queue_bmap);
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
index ecdae4b95667..2135b5383bcd 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_api.h
@@ -55,4 +55,6 @@ int ppe_edma_queue_offset_config(struct ppe_device *ppe_dev,
@@ -55,4 +55,6 @@ int ppe_edma_queue_offset_config(struct
int index, int queue_offset);
int ppe_edma_queue_resource_get(struct ppe_device *ppe_dev, int type,
int *res_start, int *res_end);
+int ppe_edma_ring_to_queues_config(struct ppe_device *ppe_dev, int ring_id,
+ int num, int queues[] __counted_by(num));
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index 4363ea3cfb90..a19a6472e4ed 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -1419,6 +1419,28 @@ int ppe_rss_hash_config_set(struct ppe_device *ppe_dev, int mode,
@@ -1419,6 +1419,28 @@ int ppe_rss_hash_config_set(struct ppe_d
return 0;
}
@ -93,7 +87,7 @@ index 4363ea3cfb90..a19a6472e4ed 100644
static int ppe_config_bm_threshold(struct ppe_device *ppe_dev, int bm_port_id,
struct ppe_bm_port_config port_cfg)
{
@@ -1918,6 +1940,23 @@ static int ppe_rss_hash_init(struct ppe_device *ppe_dev)
@@ -1918,6 +1940,23 @@ static int ppe_rss_hash_init(struct ppe_
return ppe_rss_hash_config_set(ppe_dev, PPE_RSS_HASH_MODE_IPV6, hash_cfg);
}
@ -117,7 +111,7 @@ index 4363ea3cfb90..a19a6472e4ed 100644
/* Initialize PPE device to handle traffic correctly. */
static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
{
@@ -1935,7 +1974,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
@@ -1935,7 +1974,11 @@ static int ppe_dev_hw_init(struct ppe_de
if (ret)
return ret;
@ -130,8 +124,6 @@ index 4363ea3cfb90..a19a6472e4ed 100644
}
int ppe_hw_config(struct ppe_device *ppe_dev)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
index 6dd91bc45908..9be749800f14 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.h
@@ -20,6 +20,8 @@
@ -143,7 +135,7 @@ index 6dd91bc45908..9be749800f14 100644
/**
* struct ppe_qos_scheduler_cfg - PPE QoS scheduler configuration.
* @flow_id: PPE flow ID.
@@ -263,4 +265,7 @@ int ppe_servcode_config_set(struct ppe_device *ppe_dev,
@@ -263,4 +265,7 @@ int ppe_servcode_config_set(struct ppe_d
int ppe_counter_set(struct ppe_device *ppe_dev, int port, bool enable);
int ppe_rss_hash_config_set(struct ppe_device *ppe_dev, int mode,
struct ppe_rss_hash_cfg hash_cfg);
@ -151,8 +143,6 @@ index 6dd91bc45908..9be749800f14 100644
+ int ring_id,
+ u32 *queue_map);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 29001a2599d8..8c6cd6b52b0f 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -212,6 +212,11 @@
@ -167,6 +157,3 @@ index 29001a2599d8..8c6cd6b52b0f 100644
#define PPE_DEQ_OPR_TBL_ADDR 0x430000
#define PPE_DEQ_OPR_TBL_NUM 300
#define PPE_DEQ_OPR_TBL_INC 0x10
--
2.45.2

View File

@ -17,11 +17,9 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 54 +++++++++++++++
2 files changed, 121 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
index a19a6472e4ed..621f4f0ba9e2 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_config.c
@@ -1957,6 +1957,68 @@ static int ppe_queues_to_ring_init(struct ppe_device *ppe_dev)
@@ -1957,6 +1957,68 @@ static int ppe_queues_to_ring_init(struc
return ppe_ring_queue_map_set(ppe_dev, 0, queue_bmap);
}
@ -90,7 +88,7 @@ index a19a6472e4ed..621f4f0ba9e2 100644
/* Initialize PPE device to handle traffic correctly. */
static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
{
@@ -1978,7 +2040,11 @@ static int ppe_dev_hw_init(struct ppe_device *ppe_dev)
@@ -1978,7 +2040,11 @@ static int ppe_dev_hw_init(struct ppe_de
if (ret)
return ret;
@ -103,8 +101,6 @@ index a19a6472e4ed..621f4f0ba9e2 100644
}
int ppe_hw_config(struct ppe_device *ppe_dev)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 8c6cd6b52b0f..7f06843e4151 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -126,6 +126,18 @@
@ -182,6 +178,3 @@ index 8c6cd6b52b0f..7f06843e4151 100644
#define PPE_TL_SERVICE_TBL_ADDR 0x306000
#define PPE_TL_SERVICE_TBL_NUM 256
#define PPE_TL_SERVICE_TBL_INC 4
--
2.45.2

View File

@ -19,8 +19,6 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index e4e5c94fde3e..227af2168224 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -4,4 +4,4 @@
@ -29,8 +27,6 @@ index e4e5c94fde3e..227af2168224 100644
obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
-qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o
+qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o ppe_debugfs.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c
index 443706291ce0..8cf6c1161c4b 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c
@@ -16,6 +16,7 @@
@ -41,7 +37,7 @@ index 443706291ce0..8cf6c1161c4b 100644
#define PPE_PORT_MAX 8
#define PPE_CLK_RATE 353000000
@@ -206,11 +207,20 @@ static int qcom_ppe_probe(struct platform_device *pdev)
@@ -206,11 +207,20 @@ static int qcom_ppe_probe(struct platfor
if (ret)
return dev_err_probe(dev, ret, "PPE HW config failed\n");
@ -62,7 +58,7 @@ index 443706291ce0..8cf6c1161c4b 100644
static const struct of_device_id qcom_ppe_of_match[] = {
{ .compatible = "qcom,ipq9574-ppe" },
{},
@@ -223,6 +233,7 @@ static struct platform_driver qcom_ppe_driver = {
@@ -223,6 +233,7 @@ static struct platform_driver qcom_ppe_d
.of_match_table = qcom_ppe_of_match,
},
.probe = qcom_ppe_probe,
@ -70,8 +66,6 @@ index 443706291ce0..8cf6c1161c4b 100644
};
module_platform_driver(qcom_ppe_driver);
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.h b/drivers/net/ethernet/qualcomm/ppe/ppe.h
index 733d77f4063d..a2a5d1901547 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.h
@@ -11,6 +11,7 @@
@ -98,9 +92,6 @@ index 733d77f4063d..a2a5d1901547 100644
unsigned int num_icc_paths;
struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths);
};
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
new file mode 100644
index 000000000000..1cd4c491e724
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
@@ -0,0 +1,725 @@
@ -829,9 +820,6 @@ index 000000000000..1cd4c491e724
+ debugfs_remove_recursive(ppe_dev->debugfs_root);
+ ppe_dev->debugfs_root = NULL;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h
new file mode 100644
index 000000000000..a979fcf9d742
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.h
@@ -0,0 +1,16 @@
@ -851,8 +839,6 @@ index 000000000000..a979fcf9d742
+void ppe_debugfs_teardown(struct ppe_device *ppe_dev);
+
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 7f06843e4151..e84633d0f572 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -23,6 +23,43 @@
@ -981,6 +967,3 @@ index 7f06843e4151..e84633d0f572 100644
#define PPE_ENQ_OPR_TBL_ADDR 0x85c000
#define PPE_ENQ_OPR_TBL_NUM 300
#define PPE_ENQ_OPR_TBL_INC 0x10
--
2.45.2

View File

@ -20,8 +20,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_port.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/ppe_port.h
diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig
index 8cc24da48777..a96f6acd4561 100644
--- a/drivers/net/ethernet/qualcomm/Kconfig
+++ b/drivers/net/ethernet/qualcomm/Kconfig
@@ -66,6 +66,9 @@ config QCOM_PPE
@ -34,8 +32,6 @@ index 8cc24da48777..a96f6acd4561 100644
help
This driver supports the Qualcomm Technologies, Inc. packet
process engine (PPE) available with IPQ SoC. The PPE houses
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 227af2168224..76cdc423a8cc 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -4,4 +4,4 @@
@ -44,8 +40,6 @@ index 227af2168224..76cdc423a8cc 100644
obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
-qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o ppe_debugfs.o
+qcom-ppe-objs := ppe.o ppe_config.o ppe_api.o ppe_debugfs.o ppe_port.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c
index 8cf6c1161c4b..bcf21c838e05 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c
@@ -17,6 +17,7 @@
@ -56,7 +50,7 @@ index 8cf6c1161c4b..bcf21c838e05 100644
#define PPE_PORT_MAX 8
#define PPE_CLK_RATE 353000000
@@ -207,6 +208,11 @@ static int qcom_ppe_probe(struct platform_device *pdev)
@@ -207,6 +208,11 @@ static int qcom_ppe_probe(struct platfor
if (ret)
return dev_err_probe(dev, ret, "PPE HW config failed\n");
@ -68,7 +62,7 @@ index 8cf6c1161c4b..bcf21c838e05 100644
ppe_debugfs_setup(ppe_dev);
platform_set_drvdata(pdev, ppe_dev);
@@ -219,6 +225,9 @@ static void qcom_ppe_remove(struct platform_device *pdev)
@@ -219,6 +225,9 @@ static void qcom_ppe_remove(struct platf
ppe_dev = platform_get_drvdata(pdev);
ppe_debugfs_teardown(ppe_dev);
@ -78,8 +72,6 @@ index 8cf6c1161c4b..bcf21c838e05 100644
}
static const struct of_device_id qcom_ppe_of_match[] = {
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.h b/drivers/net/ethernet/qualcomm/ppe/ppe.h
index a2a5d1901547..020d5df2c5e3 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.h
@@ -20,6 +20,7 @@ struct dentry;
@ -98,9 +90,6 @@ index a2a5d1901547..020d5df2c5e3 100644
unsigned int num_icc_paths;
struct icc_bulk_data icc_paths[] __counted_by(num_icc_paths);
};
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
new file mode 100644
index 000000000000..dcc13889089e
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
@@ -0,0 +1,728 @@
@ -832,9 +821,6 @@ index 000000000000..dcc13889089e
+ ppe_port_clock_deinit(ppe_port);
+ }
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
new file mode 100644
index 000000000000..194f65815011
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
@@ -0,0 +1,76 @@
@ -914,8 +900,6 @@ index 000000000000..194f65815011
+ struct net_device *netdev);
+void ppe_port_phylink_destroy(struct ppe_port *ppe_port);
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index e84633d0f572..34b659ac0c37 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -7,6 +7,17 @@
@ -1053,6 +1037,3 @@ index e84633d0f572..34b659ac0c37 100644
+#define XGMAC_CNTRST BIT(0)
+
#endif
--
2.45.2

View File

@ -16,8 +16,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 91 ++++
3 files changed, 569 insertions(+)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
index dcc13889089e..284ee14b8d03 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
@@ -23,6 +23,122 @@
@ -143,7 +141,7 @@ index dcc13889089e..284ee14b8d03 100644
/* PPE port clock and reset name */
static const char * const ppe_port_clk_rst_name[] = {
[PPE_PORT_CLK_RST_MAC] = "port_mac",
@@ -30,6 +146,322 @@ static const char * const ppe_port_clk_rst_name[] = {
@@ -30,6 +146,322 @@ static const char * const ppe_port_clk_r
[PPE_PORT_CLK_RST_TX] = "port_tx",
};
@ -466,7 +464,7 @@ index dcc13889089e..284ee14b8d03 100644
/* PPE port and MAC reset */
static int ppe_port_mac_reset(struct ppe_port *ppe_port)
{
@@ -261,6 +693,9 @@ static void ppe_port_mac_link_up(struct phylink_config *config,
@@ -261,6 +693,9 @@ static void ppe_port_mac_link_up(struct
int ret, port = ppe_port->port_id;
u32 reg, val;
@ -476,7 +474,7 @@ index dcc13889089e..284ee14b8d03 100644
if (mac_type == PPE_MAC_TYPE_GMAC)
ret = ppe_port_gmac_link_up(ppe_port,
speed, duplex, tx_pause, rx_pause);
@@ -306,6 +741,9 @@ static void ppe_port_mac_link_down(struct phylink_config *config,
@@ -306,6 +741,9 @@ static void ppe_port_mac_link_down(struc
int ret, port = ppe_port->port_id;
u32 reg;
@ -486,7 +484,7 @@ index dcc13889089e..284ee14b8d03 100644
/* Disable PPE port TX */
reg = PPE_PORT_BRIDGE_CTRL_ADDR + PPE_PORT_BRIDGE_CTRL_INC * port;
ret = regmap_update_bits(ppe_dev->regmap, reg,
@@ -627,6 +1065,27 @@ static int ppe_port_mac_hw_init(struct ppe_port *ppe_port)
@@ -627,6 +1065,27 @@ static int ppe_port_mac_hw_init(struct p
return ret;
}
@ -514,7 +512,7 @@ index dcc13889089e..284ee14b8d03 100644
/**
* ppe_port_mac_init() - Initialization of PPE ports for the PPE device
* @ppe_dev: PPE device
@@ -693,6 +1152,12 @@ int ppe_port_mac_init(struct ppe_device *ppe_dev)
@@ -693,6 +1152,12 @@ int ppe_port_mac_init(struct ppe_device
goto err_port_node;
}
@ -527,8 +525,6 @@ index dcc13889089e..284ee14b8d03 100644
i++;
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
index 194f65815011..a524d90e1446 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
@@ -8,6 +8,8 @@
@ -560,7 +556,7 @@ index 194f65815011..a524d90e1446 100644
};
/**
@@ -73,4 +81,9 @@ void ppe_port_mac_deinit(struct ppe_device *ppe_dev);
@@ -73,4 +81,9 @@ void ppe_port_mac_deinit(struct ppe_devi
int ppe_port_phylink_setup(struct ppe_port *ppe_port,
struct net_device *netdev);
void ppe_port_phylink_destroy(struct ppe_port *ppe_port);
@ -570,8 +566,6 @@ index 194f65815011..a524d90e1446 100644
+void ppe_port_get_stats64(struct ppe_port *ppe_port,
+ struct rtnl_link_stats64 *s);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 34b659ac0c37..2cd5bd9fa446 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -606,6 +606,48 @@
@ -677,6 +671,3 @@ index 34b659ac0c37..2cd5bd9fa446 100644
+#define XGMAC_RXDISCARDBYTE_GB_ADDR 0x9B4
+
#endif
--
2.45.2

View File

@ -15,11 +15,9 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_regs.h | 29 ++++++++
3 files changed, 107 insertions(+)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
index 284ee14b8d03..a9781e1197f7 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
@@ -462,6 +462,81 @@ void ppe_port_get_stats64(struct ppe_port *ppe_port,
@@ -462,6 +462,81 @@ void ppe_port_get_stats64(struct ppe_por
}
}
@ -101,8 +99,6 @@ index 284ee14b8d03..a9781e1197f7 100644
/* PPE port and MAC reset */
static int ppe_port_mac_reset(struct ppe_port *ppe_port)
{
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
index a524d90e1446..2234c9bfbd9a 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
@@ -8,6 +8,7 @@
@ -113,15 +109,13 @@ index a524d90e1446..2234c9bfbd9a 100644
struct rtnl_link_stats64;
/**
@@ -86,4 +87,6 @@ void ppe_port_get_strings(struct ppe_port *ppe_port, u32 stringset, u8 *data);
@@ -86,4 +87,6 @@ void ppe_port_get_strings(struct ppe_por
void ppe_port_get_ethtool_stats(struct ppe_port *ppe_port, u64 *data);
void ppe_port_get_stats64(struct ppe_port *ppe_port,
struct rtnl_link_stats64 *s);
+int ppe_port_set_mac_address(struct ppe_port *ppe_port, const u8 *addr);
+int ppe_port_set_mac_eee(struct ppe_port *ppe_port, struct ethtool_eee *eee);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 2cd5bd9fa446..6e6e469247c8 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -18,6 +18,16 @@
@ -174,6 +168,3 @@ index 2cd5bd9fa446..6e6e469247c8 100644
/* XGMAC management counters control register */
#define XGMAC_MMC_CTRL_ADDR 0x800
#define XGMAC_MCF BIT(3)
--
2.45.2

View File

@ -15,11 +15,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/ppe_port.h | 1 +
2 files changed, 45 insertions(+)
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
index a9781e1197f7..52820e2eedf8 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
@@ -537,6 +537,50 @@ int ppe_port_set_mac_eee(struct ppe_port *ppe_port, struct ethtool_keee *eee)
@@ -537,6 +537,50 @@ int ppe_port_set_mac_eee(struct ppe_port
return ret;
}
@ -70,16 +68,11 @@ index a9781e1197f7..52820e2eedf8 100644
/* PPE port and MAC reset */
static int ppe_port_mac_reset(struct ppe_port *ppe_port)
{
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
index 2234c9bfbd9a..8234e86fb401 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.h
@@ -89,4 +89,5 @@ void ppe_port_get_stats64(struct ppe_port *ppe_port,
@@ -89,4 +89,5 @@ void ppe_port_get_stats64(struct ppe_por
struct rtnl_link_stats64 *s);
int ppe_port_set_mac_address(struct ppe_port *ppe_port, const u8 *addr);
int ppe_port_set_mac_eee(struct ppe_port *ppe_port, struct ethtool_eee *eee);
+int ppe_port_set_maxframe(struct ppe_port *ppe_port, int maxframe_size);
#endif
--
2.45.2

View File

@ -21,8 +21,6 @@ Signed-off-by: Suruchi Agarwal <quic_suruchia@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 76cdc423a8cc..7fea135ceb36 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -5,3 +5,6 @@
@ -33,9 +31,6 @@ index 76cdc423a8cc..7fea135ceb36 100644
+#EDMA
+qcom-ppe-objs += edma.o
\ No newline at end of file
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c
new file mode 100644
index 000000000000..d7bf1f39e9e1
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.c
@@ -0,0 +1,456 @@
@ -495,9 +490,6 @@ index 000000000000..d7bf1f39e9e1
+
+ return 0;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
new file mode 100644
index 000000000000..6bad51c976dd
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -0,0 +1,99 @@
@ -600,8 +592,6 @@ index 000000000000..6bad51c976dd
+int edma_setup(struct ppe_device *ppe_dev);
+
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe.c b/drivers/net/ethernet/qualcomm/ppe/ppe.c
index bcf21c838e05..93f92be9dc41 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe.c
@@ -14,6 +14,7 @@
@ -612,7 +602,7 @@ index bcf21c838e05..93f92be9dc41 100644
#include "ppe.h"
#include "ppe_config.h"
#include "ppe_debugfs.h"
@@ -208,10 +209,16 @@ static int qcom_ppe_probe(struct platform_device *pdev)
@@ -208,10 +209,16 @@ static int qcom_ppe_probe(struct platfor
if (ret)
return dev_err_probe(dev, ret, "PPE HW config failed\n");
@ -630,7 +620,7 @@ index bcf21c838e05..93f92be9dc41 100644
ppe_debugfs_setup(ppe_dev);
platform_set_drvdata(pdev, ppe_dev);
@@ -226,6 +233,7 @@ static void qcom_ppe_remove(struct platform_device *pdev)
@@ -226,6 +233,7 @@ static void qcom_ppe_remove(struct platf
ppe_dev = platform_get_drvdata(pdev);
ppe_debugfs_teardown(ppe_dev);
ppe_port_mac_deinit(ppe_dev);
@ -638,8 +628,6 @@ index bcf21c838e05..93f92be9dc41 100644
platform_set_drvdata(pdev, NULL);
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
index 6e6e469247c8..f2a60776a40a 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_regs.h
@@ -788,4 +788,257 @@
@ -900,6 +888,3 @@ index 6e6e469247c8..f2a60776a40a 100644
+#define EDMA_RXDESC2FILL_MAP_RXDESC_MASK 0x7
+
#endif
--
2.45.2

View File

@ -20,8 +20,6 @@ Signed-off-by: Suruchi Agarwal <quic_suruchia@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_port.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_port.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 7fea135ceb36..e26677644aa9 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
@ -32,8 +30,6 @@ index 7fea135ceb36..e26677644aa9 100644
\ No newline at end of file
+qcom-ppe-objs += edma.o edma_port.o
\ No newline at end of file
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
index 6bad51c976dd..5261002f883d 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -26,6 +26,9 @@
@ -46,9 +42,6 @@ index 6bad51c976dd..5261002f883d 100644
/**
* struct edma_ring_info - EDMA ring data structure.
* @max_rings: Maximum number of rings
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
new file mode 100644
index 000000000000..6292b83d746d
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
@@ -0,0 +1,270 @@
@ -322,9 +315,6 @@ index 000000000000..6292b83d746d
+
+ return ret;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.h b/drivers/net/ethernet/qualcomm/ppe/edma_port.h
new file mode 100644
index 000000000000..0f2deb39556e
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.h
@@ -0,0 +1,31 @@
@ -359,8 +349,6 @@ index 000000000000..0f2deb39556e
+void edma_port_destroy(struct ppe_port *port);
+int edma_port_setup(struct ppe_port *port);
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
index 52820e2eedf8..05c52ba07aef 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_port.c
@@ -13,6 +13,7 @@
@ -371,7 +359,7 @@ index 52820e2eedf8..05c52ba07aef 100644
#include "ppe.h"
#include "ppe_port.h"
#include "ppe_regs.h"
@@ -1277,12 +1278,26 @@ int ppe_port_mac_init(struct ppe_device *ppe_dev)
@@ -1277,12 +1278,26 @@ int ppe_port_mac_init(struct ppe_device
goto err_port_node;
}
@ -398,7 +386,7 @@ index 52820e2eedf8..05c52ba07aef 100644
err_port_clk:
for (j = 0; j < i; j++)
ppe_port_clock_deinit(&ppe_ports->port[j]);
@@ -1307,6 +1322,10 @@ void ppe_port_mac_deinit(struct ppe_device *ppe_dev)
@@ -1307,6 +1322,10 @@ void ppe_port_mac_deinit(struct ppe_devi
for (i = 0; i < ppe_dev->ports->num; i++) {
ppe_port = &ppe_dev->ports->port[i];
@ -409,6 +397,3 @@ index 52820e2eedf8..05c52ba07aef 100644
ppe_port_clock_deinit(ppe_port);
}
}
--
2.45.2

View File

@ -26,8 +26,6 @@ Signed-off-by: Suruchi Agarwal <quic_suruchia@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_rx.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_rx.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index e26677644aa9..3fd607ce42de 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
@ -38,8 +36,6 @@ index e26677644aa9..3fd607ce42de 100644
\ No newline at end of file
+qcom-ppe-objs += edma.o edma_cfg_rx.o edma_port.o edma_rx.o
\ No newline at end of file
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c
index d7bf1f39e9e1..134f6b95c294 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.c
@@ -18,12 +18,23 @@
@ -66,7 +62,7 @@ index d7bf1f39e9e1..134f6b95c294 100644
/* Priority to multi-queue mapping. */
static u8 edma_pri_map[PPE_QUEUE_INTER_PRI_NUM] = {
@@ -178,6 +189,59 @@ static int edma_configure_ucast_prio_map_tbl(void)
@@ -178,6 +189,59 @@ static int edma_configure_ucast_prio_map
return ret;
}
@ -262,7 +258,7 @@ index d7bf1f39e9e1..134f6b95c294 100644
kfree(edma_ctx->netdev_arr);
}
@@ -428,6 +584,7 @@ int edma_setup(struct ppe_device *ppe_dev)
@@ -428,6 +584,7 @@ int edma_setup(struct ppe_device *ppe_de
edma_ctx->hw_info = &ipq9574_hw_info;
edma_ctx->ppe_dev = ppe_dev;
@ -270,7 +266,7 @@ index d7bf1f39e9e1..134f6b95c294 100644
/* Configure the EDMA common clocks. */
ret = edma_clock_init();
@@ -450,6 +607,16 @@ int edma_setup(struct ppe_device *ppe_dev)
@@ -450,6 +607,16 @@ int edma_setup(struct ppe_device *ppe_de
return ret;
}
@ -287,8 +283,6 @@ index d7bf1f39e9e1..134f6b95c294 100644
dev_info(dev, "EDMA configuration successful\n");
return 0;
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
index 5261002f883d..778df7997d9f 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -6,6 +6,7 @@
@ -341,9 +335,6 @@ index 5261002f883d..778df7997d9f 100644
extern struct edma_context *edma_ctx;
void edma_destroy(struct ppe_device *ppe_dev);
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
new file mode 100644
index 000000000000..18e4ada6a076
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
@@ -0,0 +1,964 @@
@ -1311,9 +1302,6 @@ index 000000000000..18e4ada6a076
+
+ return 0;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
new file mode 100644
index 000000000000..3c84ef4ea85c
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
@@ -0,0 +1,48 @@
@ -1365,8 +1353,6 @@ index 000000000000..3c84ef4ea85c
+int edma_cfg_rx_rps(struct ctl_table *table, int write,
+ void *buffer, size_t *lenp, loff_t *ppos);
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
index 6292b83d746d..bbb5823408fd 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
@@ -12,12 +12,39 @@
@ -1409,7 +1395,7 @@ index 6292b83d746d..bbb5823408fd 100644
static u16 __maybe_unused edma_port_select_queue(__maybe_unused struct net_device *netdev,
__maybe_unused struct sk_buff *skb,
__maybe_unused struct net_device *sb_dev)
@@ -172,6 +199,7 @@ void edma_port_destroy(struct ppe_port *port)
@@ -172,6 +199,7 @@ void edma_port_destroy(struct ppe_port *
int port_id = port->port_id;
struct net_device *netdev = edma_ctx->netdev_arr[port_id - 1];
@ -1417,7 +1403,7 @@ index 6292b83d746d..bbb5823408fd 100644
unregister_netdev(netdev);
free_netdev(netdev);
ppe_port_phylink_destroy(port);
@@ -232,6 +260,13 @@ int edma_port_setup(struct ppe_port *port)
@@ -232,6 +260,13 @@ int edma_port_setup(struct ppe_port *por
port_id, netdev->dev_addr);
}
@ -1431,7 +1417,7 @@ index 6292b83d746d..bbb5823408fd 100644
netdev_dbg(netdev, "Configuring the port %s(qcom-id:%d)\n",
netdev->name, port_id);
@@ -263,8 +298,10 @@ int edma_port_setup(struct ppe_port *port)
@@ -263,8 +298,10 @@ int edma_port_setup(struct ppe_port *por
register_netdev_fail:
ppe_port_phylink_destroy(port);
port_phylink_setup_fail:
@ -1443,15 +1429,12 @@ index 6292b83d746d..bbb5823408fd 100644
return ret;
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.h b/drivers/net/ethernet/qualcomm/ppe/edma_port.h
index 0f2deb39556e..75f544a4f324 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_port.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.h
@@ -14,15 +14,46 @@
| NETIF_F_TSO \
@@ -15,14 +15,45 @@
| NETIF_F_TSO6)
+/**
/**
+ * struct edma_port_rx_stats - EDMA RX per CPU stats for the port.
+ * @rx_pkts: Number of Rx packets
+ * @rx_bytes: Number of Rx bytes
@ -1479,7 +1462,7 @@ index 0f2deb39556e..75f544a4f324 100644
+ struct edma_port_rx_stats __percpu *rx_stats;
+};
+
/**
+/**
* struct edma_port_priv - EDMA port priv structure.
* @ppe_port: Pointer to PPE port
* @netdev: Corresponding netdevice
@ -1494,9 +1477,6 @@ index 0f2deb39556e..75f544a4f324 100644
unsigned long flags;
};
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_rx.c
new file mode 100644
index 000000000000..a1eb533410ce
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_rx.c
@@ -0,0 +1,622 @@
@ -2122,9 +2102,6 @@ index 000000000000..a1eb533410ce
+
+ return IRQ_HANDLED;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h
new file mode 100644
index 000000000000..4a262a066808
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h
@@ -0,0 +1,287 @@
@ -2415,6 +2392,3 @@ index 000000000000..4a262a066808
+int edma_rx_alloc_buffer(struct edma_rxfill_ring *rxfill_ring, int alloc_count);
+int edma_rx_napi_poll(struct napi_struct *napi, int budget);
+#endif
--
2.45.2

View File

@ -26,8 +26,6 @@ Signed-off-by: Suruchi Agarwal <quic_suruchia@quicinc.com>
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_tx.c
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_tx.h
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 3fd607ce42de..b358bfd781fb 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
@ -37,8 +35,6 @@ index 3fd607ce42de..b358bfd781fb 100644
-qcom-ppe-objs += edma.o edma_cfg_rx.o edma_port.o edma_rx.o
\ No newline at end of file
+qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_port.o edma_rx.o edma_tx.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c
index 134f6b95c294..739fcfbde0f9 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.c
@@ -18,6 +18,7 @@
@ -57,7 +53,7 @@ index 134f6b95c294..739fcfbde0f9 100644
static char **edma_rxdesc_irq_name;
/* Module params. */
@@ -192,22 +194,59 @@ static int edma_configure_ucast_prio_map_tbl(void)
@@ -192,22 +194,59 @@ static int edma_configure_ucast_prio_map
static int edma_irq_register(void)
{
struct edma_hw_info *hw_info = edma_ctx->hw_info;
@ -192,7 +188,7 @@ index 134f6b95c294..739fcfbde0f9 100644
ret = edma_cfg_rx_rings();
if (ret) {
@@ -520,6 +586,7 @@ static int edma_hw_configure(void)
@@ -520,6 +586,7 @@ configure_ucast_prio_map_tbl_failed:
edma_cfg_rx_napi_delete();
edma_cfg_rx_rings_disable();
edma_cfg_rx_rings_failed:
@ -200,7 +196,7 @@ index 134f6b95c294..739fcfbde0f9 100644
edma_cfg_rx_rings_cleanup();
edma_alloc_rings_failed:
free_netdev(edma_ctx->dummy_dev);
@@ -538,13 +605,27 @@ static int edma_hw_configure(void)
@@ -538,13 +605,27 @@ dummy_dev_alloc_failed:
void edma_destroy(struct ppe_device *ppe_dev)
{
struct edma_hw_info *hw_info = edma_ctx->hw_info;
@ -229,7 +225,7 @@ index 134f6b95c294..739fcfbde0f9 100644
for (i = 0; i < rx->num_rings; i++) {
synchronize_irq(edma_ctx->intr_info.intr_rx[i]);
free_irq(edma_ctx->intr_info.intr_rx[i],
@@ -560,6 +641,7 @@ void edma_destroy(struct ppe_device *ppe_dev)
@@ -560,6 +641,7 @@ void edma_destroy(struct ppe_device *ppe
edma_cfg_rx_napi_delete();
edma_cfg_rx_rings_disable();
edma_cfg_rx_rings_cleanup();
@ -237,7 +233,7 @@ index 134f6b95c294..739fcfbde0f9 100644
free_netdev(edma_ctx->dummy_dev);
kfree(edma_ctx->netdev_arr);
@@ -585,6 +667,7 @@ int edma_setup(struct ppe_device *ppe_dev)
@@ -585,6 +667,7 @@ int edma_setup(struct ppe_device *ppe_de
edma_ctx->hw_info = &ipq9574_hw_info;
edma_ctx->ppe_dev = ppe_dev;
edma_ctx->rx_buf_size = rx_buff_size;
@ -245,8 +241,6 @@ index 134f6b95c294..739fcfbde0f9 100644
/* Configure the EDMA common clocks. */
ret = edma_clock_init();
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
index 778df7997d9f..fb8ccbfbaf41 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -7,6 +7,7 @@
@ -281,9 +275,6 @@ index 778df7997d9f..fb8ccbfbaf41 100644
};
/* Global EDMA context */
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c
new file mode 100644
index 000000000000..f704c654b2cd
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c
@@ -0,0 +1,648 @@
@ -935,9 +926,6 @@ index 000000000000..f704c654b2cd
+
+ netdev_dbg(netdev, "Tx NAPI budget: %d\n", hw_info->napi_budget_tx);
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h
new file mode 100644
index 000000000000..4840c601fc86
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h
@@ -0,0 +1,28 @@
@ -969,8 +957,6 @@ index 000000000000..4840c601fc86
+void edma_cfg_tx_rings_disable(u32 port_id);
+void edma_cfg_tx_fill_per_port_tx_map(struct net_device *netdev, u32 macid);
+#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
index bbb5823408fd..afa2b6479822 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
@@ -13,6 +13,7 @@
@ -981,7 +967,7 @@ index bbb5823408fd..afa2b6479822 100644
#include "edma_port.h"
#include "ppe_regs.h"
@@ -35,6 +36,15 @@ static int edma_port_stats_alloc(struct net_device *netdev)
@@ -35,6 +36,15 @@ static int edma_port_stats_alloc(struct
return -ENOMEM;
}
@ -997,7 +983,7 @@ index bbb5823408fd..afa2b6479822 100644
return 0;
}
@@ -43,6 +53,28 @@ static void edma_port_stats_free(struct net_device *netdev)
@@ -43,6 +53,28 @@ static void edma_port_stats_free(struct
struct edma_port_priv *port_priv = (struct edma_port_priv *)netdev_priv(netdev);
free_percpu(port_priv->pcpu_stats.rx_stats);
@ -1026,7 +1012,7 @@ index bbb5823408fd..afa2b6479822 100644
}
static u16 __maybe_unused edma_port_select_queue(__maybe_unused struct net_device *netdev,
@@ -60,6 +92,7 @@ static int edma_port_open(struct net_device *netdev)
@@ -60,6 +92,7 @@ static int edma_port_open(struct net_dev
{
struct edma_port_priv *port_priv = (struct edma_port_priv *)netdev_priv(netdev);
struct ppe_port *ppe_port;
@ -1034,7 +1020,7 @@ index bbb5823408fd..afa2b6479822 100644
if (!port_priv)
return -EINVAL;
@@ -74,10 +107,14 @@ static int edma_port_open(struct net_device *netdev)
@@ -74,10 +107,14 @@ static int edma_port_open(struct net_dev
netdev->wanted_features |= EDMA_NETDEV_FEATURES;
ppe_port = port_priv->ppe_port;
@ -1049,7 +1035,7 @@ index bbb5823408fd..afa2b6479822 100644
netif_start_queue(netdev);
return 0;
@@ -87,13 +124,21 @@ static int edma_port_close(struct net_device *netdev)
@@ -87,13 +124,21 @@ static int edma_port_close(struct net_de
{
struct edma_port_priv *port_priv = (struct edma_port_priv *)netdev_priv(netdev);
struct ppe_port *ppe_port;
@ -1071,7 +1057,7 @@ index bbb5823408fd..afa2b6479822 100644
/* Phylink close. */
if (ppe_port->phylink)
@@ -137,6 +182,92 @@ static netdev_features_t edma_port_feature_check(__maybe_unused struct sk_buff *
@@ -137,6 +182,92 @@ static netdev_features_t edma_port_featu
return features;
}
@ -1164,7 +1150,7 @@ index bbb5823408fd..afa2b6479822 100644
static void edma_port_get_stats64(struct net_device *netdev,
struct rtnl_link_stats64 *stats)
{
@@ -179,6 +310,7 @@ static int edma_port_set_mac_address(struct net_device *netdev, void *macaddr)
@@ -179,6 +310,7 @@ static int edma_port_set_mac_address(str
static const struct net_device_ops edma_port_netdev_ops = {
.ndo_open = edma_port_open,
.ndo_stop = edma_port_close,
@ -1172,7 +1158,7 @@ index bbb5823408fd..afa2b6479822 100644
.ndo_get_stats64 = edma_port_get_stats64,
.ndo_set_mac_address = edma_port_set_mac_address,
.ndo_validate_addr = eth_validate_addr,
@@ -199,6 +331,7 @@ void edma_port_destroy(struct ppe_port *port)
@@ -199,6 +331,7 @@ void edma_port_destroy(struct ppe_port *
int port_id = port->port_id;
struct net_device *netdev = edma_ctx->netdev_arr[port_id - 1];
@ -1180,7 +1166,7 @@ index bbb5823408fd..afa2b6479822 100644
edma_port_stats_free(netdev);
unregister_netdev(netdev);
free_netdev(netdev);
@@ -276,6 +409,8 @@ int edma_port_setup(struct ppe_port *port)
@@ -276,6 +409,8 @@ int edma_port_setup(struct ppe_port *por
*/
edma_ctx->netdev_arr[port_id - 1] = netdev;
@ -1189,7 +1175,7 @@ index bbb5823408fd..afa2b6479822 100644
/* Setup phylink. */
ret = ppe_port_phylink_setup(port, netdev);
if (ret) {
@@ -298,6 +433,7 @@ int edma_port_setup(struct ppe_port *port)
@@ -298,6 +433,7 @@ int edma_port_setup(struct ppe_port *por
register_netdev_fail:
ppe_port_phylink_destroy(port);
port_phylink_setup_fail:
@ -1197,8 +1183,6 @@ index bbb5823408fd..afa2b6479822 100644
edma_ctx->netdev_arr[port_id - 1] = NULL;
edma_port_stats_free(netdev);
stats_alloc_fail:
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.h b/drivers/net/ethernet/qualcomm/ppe/edma_port.h
index 75f544a4f324..b67eddabd41c 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_port.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.h
@@ -7,6 +7,8 @@
@ -1210,11 +1194,10 @@ index 75f544a4f324..b67eddabd41c 100644
#define EDMA_NETDEV_FEATURES (NETIF_F_FRAGLIST \
| NETIF_F_SG \
| NETIF_F_RXCSUM \
@@ -34,12 +36,44 @@ struct edma_port_rx_stats {
struct u64_stats_sync syncp;
@@ -35,11 +37,43 @@ struct edma_port_rx_stats {
};
+/**
/**
+ * struct edma_port_tx_stats - EDMA TX port per CPU stats for the port.
+ * @tx_pkts: Number of Tx packets
+ * @tx_bytes: Number of Tx bytes
@ -1244,7 +1227,7 @@ index 75f544a4f324..b67eddabd41c 100644
+ struct u64_stats_sync syncp;
+};
+
/**
+/**
* struct edma_port_pcpu_stats - EDMA per cpu stats data structure for the port.
* @rx_stats: Per CPU Rx statistics
+ * @tx_stats: Per CPU Tx statistics
@ -1263,9 +1246,6 @@ index 75f544a4f324..b67eddabd41c 100644
unsigned long flags;
};
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_tx.c b/drivers/net/ethernet/qualcomm/ppe/edma_tx.c
new file mode 100644
index 000000000000..47876c142df5
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_tx.c
@@ -0,0 +1,808 @@
@ -2077,9 +2057,6 @@ index 000000000000..47876c142df5
+
+ return EDMA_TX_OK;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h
new file mode 100644
index 000000000000..c09a4e0f6a42
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h
@@ -0,0 +1,302 @@
@ -2385,6 +2362,3 @@ index 000000000000..c09a4e0f6a42
+ struct net_device *netdev, struct sk_buff **segs);
+
+#endif
--
2.45.2

View File

@ -20,8 +20,6 @@ Signed-off-by: Suruchi Agarwal <quic_suruchia@quicinc.com>
5 files changed, 580 insertions(+), 2 deletions(-)
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index b358bfd781fb..45e1b103ec7a 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
@ -30,15 +28,12 @@ index b358bfd781fb..45e1b103ec7a 100644
#EDMA
-qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_port.o edma_rx.o edma_tx.o
+qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_debugfs.o edma_port.o edma_rx.o edma_tx.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c
index 739fcfbde0f9..0e16f8ab545f 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.c
@@ -151,6 +151,42 @@ static int edma_clock_init(void)
return 0;
@@ -152,6 +152,42 @@ static int edma_clock_init(void)
}
+/**
/**
+ * edma_err_stats_alloc - Allocate stats memory
+ *
+ * Allocate memory for per-CPU error stats.
@ -74,10 +69,11 @@ index 739fcfbde0f9..0e16f8ab545f 100644
+ }
+}
+
/**
+/**
* edma_configure_ucast_prio_map_tbl - Configure unicast priority map table.
*
@@ -191,11 +227,113 @@ static int edma_configure_ucast_prio_map_tbl(void)
* Map int_priority values to priority class and initialize
@@ -191,11 +227,113 @@ static int edma_configure_ucast_prio_map
return ret;
}
@ -225,7 +221,7 @@ index 739fcfbde0f9..0e16f8ab545f 100644
edma_cfg_rx_rings_disable();
@@ -614,6 +770,7 @@ void edma_destroy(struct ppe_device *ppe_dev)
@@ -614,6 +770,7 @@ void edma_destroy(struct ppe_device *ppe
edma_cfg_tx_disable_interrupts(i);
edma_cfg_rx_disable_interrupts();
@ -233,7 +229,7 @@ index 739fcfbde0f9..0e16f8ab545f 100644
/* Free IRQ for TXCMPL rings. */
for (i = 0; i < txcmpl->num_rings; i++) {
@@ -634,6 +791,10 @@ void edma_destroy(struct ppe_device *ppe_dev)
@@ -634,6 +791,10 @@ void edma_destroy(struct ppe_device *ppe
}
kfree(edma_rxdesc_irq_name);
@ -244,7 +240,7 @@ index 739fcfbde0f9..0e16f8ab545f 100644
kfree(edma_ctx->intr_info.intr_rx);
kfree(edma_ctx->intr_info.intr_txcmpl);
@@ -699,6 +860,7 @@ int edma_setup(struct ppe_device *ppe_dev)
@@ -699,6 +860,7 @@ int edma_setup(struct ppe_device *ppe_de
}
edma_cfg_rx_enable_interrupts();
@ -252,15 +248,12 @@ index 739fcfbde0f9..0e16f8ab545f 100644
dev_info(dev, "EDMA configuration successful\n");
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
index fb8ccbfbaf41..6500d21b9eba 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -36,6 +36,30 @@
((((head) - (tail)) + \
@@ -37,6 +37,30 @@
(max)) & ((max) - 1)); })
+/**
/**
+ * struct edma_err_stats - EDMA error stats
+ * @edma_axi_read_err: AXI read error
+ * @edma_axi_write_err: AXI write error
@ -284,9 +277,10 @@ index fb8ccbfbaf41..6500d21b9eba 100644
+ struct u64_stats_sync syncp;
+};
+
/**
+/**
* struct edma_ring_info - EDMA ring data structure.
* @max_rings: Maximum number of rings
* @ring_start: Ring start ID
@@ -97,6 +121,7 @@ struct edma_intr_info {
* @rx_rings: Rx Desc Rings, SW is consumer
* @tx_rings: Tx Descriptor Ring, SW is producer
@ -315,9 +309,6 @@ index fb8ccbfbaf41..6500d21b9eba 100644
+void edma_debugfs_teardown(void);
+int edma_debugfs_setup(struct ppe_device *ppe_dev);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c b/drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c
new file mode 100644
index 000000000000..671062d4ee72
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_debugfs.c
@@ -0,0 +1,370 @@
@ -691,8 +682,6 @@ index 000000000000..671062d4ee72
+ stats_dentry = NULL;
+ return -ENOMEM;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
index 1cd4c491e724..f325fcf1e17e 100644
--- a/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
+++ b/drivers/net/ethernet/qualcomm/ppe/ppe_debugfs.c
@@ -6,9 +6,11 @@
@ -707,7 +696,7 @@ index 1cd4c491e724..f325fcf1e17e 100644
#include "ppe.h"
#include "ppe_config.h"
#include "ppe_debugfs.h"
@@ -711,15 +713,30 @@ static const struct file_operations ppe_debugfs_packet_counter_fops = {
@@ -711,15 +713,30 @@ static const struct file_operations ppe_
void ppe_debugfs_setup(struct ppe_device *ppe_dev)
{
@ -738,6 +727,3 @@ index 1cd4c491e724..f325fcf1e17e 100644
debugfs_remove_recursive(ppe_dev->debugfs_root);
ppe_dev->debugfs_root = NULL;
}
--
2.45.2

View File

@ -15,8 +15,6 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
4 files changed, 297 insertions(+), 1 deletion(-)
create mode 100644 drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c
diff --git a/drivers/net/ethernet/qualcomm/ppe/Makefile b/drivers/net/ethernet/qualcomm/ppe/Makefile
index 45e1b103ec7a..cb9d30889d06 100644
--- a/drivers/net/ethernet/qualcomm/ppe/Makefile
+++ b/drivers/net/ethernet/qualcomm/ppe/Makefile
@@ -7,4 +7,4 @@ obj-$(CONFIG_QCOM_PPE) += qcom-ppe.o
@ -25,19 +23,14 @@ index 45e1b103ec7a..cb9d30889d06 100644
#EDMA
-qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_debugfs.o edma_port.o edma_rx.o edma_tx.o
+qcom-ppe-objs += edma.o edma_cfg_rx.o edma_cfg_tx.o edma_debugfs.o edma_port.o edma_rx.o edma_tx.o edma_ethtool.o
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
index 6500d21b9eba..ac6d2fcc2983 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -151,4 +151,5 @@ void edma_destroy(struct ppe_device *ppe_dev);
@@ -151,4 +151,5 @@ void edma_destroy(struct ppe_device *ppe
int edma_setup(struct ppe_device *ppe_dev);
void edma_debugfs_teardown(void);
int edma_debugfs_setup(struct ppe_device *ppe_dev);
+void edma_set_ethtool_ops(struct net_device *netdev);
#endif
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c b/drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c
new file mode 100644
index 000000000000..eabc1e11b16f
--- /dev/null
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_ethtool.c
@@ -0,0 +1,294 @@
@ -335,11 +328,9 @@ index 000000000000..eabc1e11b16f
+{
+ netdev->ethtool_ops = &edma_ethtool_ops;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
index afa2b6479822..0b3b769a4a49 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
@@ -380,6 +380,7 @@ int edma_port_setup(struct ppe_port *port)
@@ -380,6 +380,7 @@ int edma_port_setup(struct ppe_port *por
netdev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
netdev->netdev_ops = &edma_port_netdev_ops;
netdev->gso_max_segs = GSO_MAX_SEGS;
@ -347,6 +338,3 @@ index afa2b6479822..0b3b769a4a49 100644
maddr = mac_addr;
if (of_get_mac_address(np, maddr))
--
2.45.2

View File

@ -19,8 +19,6 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
drivers/net/ethernet/qualcomm/ppe/edma_tx.h | 4 +++
7 files changed, 134 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c
index 0e16f8ab545f..ae9ca528fd55 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.c
@@ -38,6 +38,38 @@ static int rx_buff_size;
@ -62,7 +60,7 @@ index 0e16f8ab545f..ae9ca528fd55 100644
/* Priority to multi-queue mapping. */
static u8 edma_pri_map[PPE_QUEUE_INTER_PRI_NUM] = {
0, 1, 2, 3, 4, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7};
@@ -828,7 +860,10 @@ int edma_setup(struct ppe_device *ppe_dev)
@@ -828,7 +860,10 @@ int edma_setup(struct ppe_device *ppe_de
edma_ctx->hw_info = &ipq9574_hw_info;
edma_ctx->ppe_dev = ppe_dev;
edma_ctx->rx_buf_size = rx_buff_size;
@ -73,11 +71,9 @@ index 0e16f8ab545f..ae9ca528fd55 100644
/* Configure the EDMA common clocks. */
ret = edma_clock_init();
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
index 18e4ada6a076..bf8854976328 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
@@ -166,6 +166,24 @@ static void edma_cfg_rx_desc_ring_configure(struct edma_rxdesc_ring *rxdesc_ring
@@ -166,6 +166,24 @@ static void edma_cfg_rx_desc_ring_config
reg = EDMA_BASE_OFFSET + EDMA_REG_RXDESC_RING_SIZE(rxdesc_ring->ring_id);
regmap_write(regmap, reg, data);
@ -102,7 +98,7 @@ index 18e4ada6a076..bf8854976328 100644
/* Configure the Mitigation timer */
data = EDMA_MICROSEC_TO_TIMER_UNIT(EDMA_RX_MITIGATION_TIMER_DEF,
ppe_dev->clk_rate / MHZ);
@@ -176,7 +194,7 @@ static void edma_cfg_rx_desc_ring_configure(struct edma_rxdesc_ring *rxdesc_ring
@@ -176,7 +194,7 @@ static void edma_cfg_rx_desc_ring_config
regmap_write(regmap, reg, data);
/* Configure the Mitigation packet count */
@ -134,8 +130,6 @@ index 18e4ada6a076..bf8854976328 100644
}
/**
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
index 3c84ef4ea85c..bd897dba286a 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
@@ -5,6 +5,15 @@
@ -176,11 +170,9 @@ index 3c84ef4ea85c..bd897dba286a 100644
/* Default bitmap of cores for RPS to ARM cores */
#define EDMA_RX_DEFAULT_BITMAP ((1 << EDMA_MAX_CORE) - 1)
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c
index f704c654b2cd..771acebdaf75 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.c
@@ -170,6 +170,24 @@ static void edma_cfg_txcmpl_ring_configure(struct edma_txcmpl_ring *txcmpl_ring)
@@ -170,6 +170,24 @@ static void edma_cfg_txcmpl_ring_configu
reg = EDMA_BASE_OFFSET + EDMA_REG_TXCMPL_CTRL(txcmpl_ring->id);
regmap_write(regmap, reg, EDMA_TXCMPL_RETMODE_OPAQUE);
@ -205,7 +197,7 @@ index f704c654b2cd..771acebdaf75 100644
/* Configure the Mitigation timer. */
data = EDMA_MICROSEC_TO_TIMER_UNIT(EDMA_TX_MITIGATION_TIMER_DEF,
ppe_dev->clk_rate / MHZ);
@@ -180,7 +198,7 @@ static void edma_cfg_txcmpl_ring_configure(struct edma_txcmpl_ring *txcmpl_ring)
@@ -180,7 +198,7 @@ static void edma_cfg_txcmpl_ring_configu
regmap_write(regmap, reg, data);
/* Configure the Mitigation packet count. */
@ -214,7 +206,7 @@ index f704c654b2cd..771acebdaf75 100644
<< EDMA_TXCMPL_LOW_THRE_SHIFT;
pr_debug("EDMA Tx mitigation packet count value: %d\n", data);
reg = EDMA_BASE_OFFSET + EDMA_REG_TXCMPL_UGT_THRE(txcmpl_ring->id);
@@ -634,6 +652,13 @@ void edma_cfg_tx_napi_add(struct net_device *netdev, u32 port_id)
@@ -634,6 +652,13 @@ void edma_cfg_tx_napi_add(struct net_dev
struct edma_txcmpl_ring *txcmpl_ring;
u32 i, ring_idx;
@ -228,15 +220,13 @@ index f704c654b2cd..771acebdaf75 100644
/* Adding tx napi for a interface with each queue. */
for_each_possible_cpu(i) {
ring_idx = ((port_id - 1) * num_possible_cpus()) + i;
@@ -644,5 +669,5 @@ void edma_cfg_tx_napi_add(struct net_device *netdev, u32 port_id)
@@ -644,5 +669,5 @@ void edma_cfg_tx_napi_add(struct net_dev
netdev_dbg(netdev, "Napi added for txcmpl ring: %u\n", txcmpl_ring->id);
}
- netdev_dbg(netdev, "Tx NAPI budget: %d\n", hw_info->napi_budget_tx);
+ netdev_dbg(netdev, "Tx NAPI budget: %d\n", edma_tx_napi_budget);
}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h
index 4840c601fc86..608bbc5f93e8 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_tx.h
@@ -5,12 +5,28 @@
@ -268,8 +258,6 @@ index 4840c601fc86..608bbc5f93e8 100644
void edma_cfg_tx_rings(void);
int edma_cfg_tx_rings_alloc(void);
void edma_cfg_tx_rings_cleanup(void);
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h
index 4a262a066808..0ef8138b4530 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_rx.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_rx.h
@@ -281,6 +281,10 @@ struct edma_rxdesc_ring {
@ -283,8 +271,6 @@ index 4a262a066808..0ef8138b4530 100644
irqreturn_t edma_rx_handle_irq(int irq, void *ctx);
int edma_rx_alloc_buffer(struct edma_rxfill_ring *rxfill_ring, int alloc_count);
int edma_rx_napi_poll(struct napi_struct *napi, int budget);
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_tx.h b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h
index c09a4e0f6a42..c4fa63321d1f 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_tx.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_tx.h
@@ -288,6 +288,10 @@ struct edma_txcmpl_ring {
@ -298,6 +284,3 @@ index c09a4e0f6a42..c4fa63321d1f 100644
enum edma_tx_status edma_tx_ring_xmit(struct net_device *netdev,
struct sk_buff *skb,
struct edma_txdesc_ring *txdesc_ring,
--
2.45.2

View File

@ -16,11 +16,9 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
.../net/ethernet/qualcomm/ppe/edma_cfg_rx.h | 4 +++
4 files changed, 56 insertions(+)
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.c b/drivers/net/ethernet/qualcomm/ppe/edma.c
index ae9ca528fd55..428c7b134feb 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.c
@@ -797,6 +797,11 @@ void edma_destroy(struct ppe_device *ppe_dev)
@@ -797,6 +797,11 @@ void edma_destroy(struct ppe_device *ppe
struct edma_ring_info *rx = hw_info->rx;
u32 i;
@ -32,7 +30,7 @@ index ae9ca528fd55..428c7b134feb 100644
/* Disable interrupts. */
for (i = 1; i <= hw_info->max_ports; i++)
edma_cfg_tx_disable_interrupts(i);
@@ -840,6 +845,17 @@ void edma_destroy(struct ppe_device *ppe_dev)
@@ -840,6 +845,17 @@ void edma_destroy(struct ppe_device *ppe
kfree(edma_ctx->netdev_arr);
}
@ -50,7 +48,7 @@ index ae9ca528fd55..428c7b134feb 100644
/**
* edma_setup - EDMA Setup.
* @ppe_dev: PPE device
@@ -865,6 +881,13 @@ int edma_setup(struct ppe_device *ppe_dev)
@@ -865,6 +881,13 @@ int edma_setup(struct ppe_device *ppe_de
if (tx_requeue_stop != 0)
edma_ctx->tx_requeue_stop = true;
@ -64,8 +62,6 @@ index ae9ca528fd55..428c7b134feb 100644
/* Configure the EDMA common clocks. */
ret = edma_clock_init();
if (ret) {
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma.h b/drivers/net/ethernet/qualcomm/ppe/edma.h
index ac6d2fcc2983..3f3d253476f6 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma.h
@@ -122,6 +122,7 @@ struct edma_intr_info {
@ -84,11 +80,9 @@ index ac6d2fcc2983..3f3d253476f6 100644
u32 rx_page_mode;
u32 rx_buf_size;
bool tx_requeue_stop;
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
index bf8854976328..58021df6c950 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.c
@@ -43,6 +43,8 @@ static u32 edma_rx_ring_queue_map[][EDMA_MAX_CORE] = {{ 0, 8, 16, 24 },
@@ -43,6 +43,8 @@ static u32 edma_rx_ring_queue_map[][EDMA
{ 6, 14, 22, 30 },
{ 7, 15, 23, 31 }};
@ -126,8 +120,6 @@ index bf8854976328..58021df6c950 100644
+
+ return ret;
+}
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
index bd897dba286a..53d2e6b39794 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_cfg_rx.h
@@ -49,6 +49,8 @@
@ -146,6 +138,3 @@ index bd897dba286a..53d2e6b39794 100644
+int edma_cfg_rx_rps_bitmap(struct ctl_table *table, int write,
+ void *buffer, size_t *lenp, loff_t *ppos);
#endif
--
2.45.2

View File

@ -13,8 +13,6 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
include/dt-bindings/clock/qcom,ipq9574-gcc.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/dt-bindings/clock/qcom,ipq9574-gcc.h b/include/dt-bindings/clock/qcom,ipq9574-gcc.h
index 52123c5a09fa..05ef3074c9da 100644
--- a/include/dt-bindings/clock/qcom,ipq9574-gcc.h
+++ b/include/dt-bindings/clock/qcom,ipq9574-gcc.h
@@ -220,4 +220,5 @@
@ -23,6 +21,3 @@ index 52123c5a09fa..05ef3074c9da 100644
#define GCC_PCIE3_PIPE_CLK 213
+#define GPLL0_OUT_AUX 214
#endif
--
2.45.2

View File

@ -14,11 +14,9 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
drivers/clk/qcom/gcc-ipq9574.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/clk/qcom/gcc-ipq9574.c b/drivers/clk/qcom/gcc-ipq9574.c
index 645109f75b46..a458d69e1a98 100644
--- a/drivers/clk/qcom/gcc-ipq9574.c
+++ b/drivers/clk/qcom/gcc-ipq9574.c
@@ -108,6 +108,20 @@ static struct clk_alpha_pll_postdiv gpll0 = {
@@ -108,6 +108,20 @@ static struct clk_alpha_pll_postdiv gpll
},
};
@ -39,7 +37,7 @@ index 645109f75b46..a458d69e1a98 100644
static struct clk_alpha_pll gpll4_main = {
.offset = 0x22000,
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT_EVO],
@@ -4222,6 +4236,7 @@ static struct clk_regmap *gcc_ipq9574_clks[] = {
@@ -4222,6 +4236,7 @@ static struct clk_regmap *gcc_ipq9574_cl
[GCC_PCIE1_PIPE_CLK] = &gcc_pcie1_pipe_clk.clkr,
[GCC_PCIE2_PIPE_CLK] = &gcc_pcie2_pipe_clk.clkr,
[GCC_PCIE3_PIPE_CLK] = &gcc_pcie3_pipe_clk.clkr,
@ -47,6 +45,3 @@ index 645109f75b46..a458d69e1a98 100644
};
static const struct qcom_reset_map gcc_ipq9574_resets[] = {
--
2.45.2

View File

@ -18,9 +18,6 @@ Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
create mode 100644 include/dt-bindings/clock/qcom,ipq9574-nsscc.h
create mode 100644 include/dt-bindings/reset/qcom,ipq9574-nsscc.h
diff --git a/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml
new file mode 100644
index 000000000000..14a320079dbf
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/qcom,ipq9574-nsscc.yaml
@@ -0,0 +1,73 @@
@ -97,9 +94,6 @@ index 000000000000..14a320079dbf
+ #power-domain-cells = <1>;
+ };
+...
diff --git a/include/dt-bindings/clock/qcom,ipq9574-nsscc.h b/include/dt-bindings/clock/qcom,ipq9574-nsscc.h
new file mode 100644
index 000000000000..59d57d9c788c
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,ipq9574-nsscc.h
@@ -0,0 +1,152 @@
@ -255,9 +249,6 @@ index 000000000000..59d57d9c788c
+#define UBI32_PLL_MAIN 141
+
+#endif
diff --git a/include/dt-bindings/reset/qcom,ipq9574-nsscc.h b/include/dt-bindings/reset/qcom,ipq9574-nsscc.h
new file mode 100644
index 000000000000..6910db0cff51
--- /dev/null
+++ b/include/dt-bindings/reset/qcom,ipq9574-nsscc.h
@@ -0,0 +1,134 @@
@ -395,6 +386,3 @@ index 000000000000..6910db0cff51
+#define NSSPORT6_RESET 123
+
+#endif
--
2.45.2

View File

@ -17,11 +17,9 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
3 files changed, 3088 insertions(+)
create mode 100644 drivers/clk/qcom/nsscc-ipq9574.c
diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index a3e2a09e2105..b9a5cc9fd8c8 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -255,6 +255,13 @@ config IPQ_GCC_9574
@@ -215,6 +215,13 @@ config IPQ_GCC_9574
i2c, USB, SD/eMMC, etc. Select this for the root clock
of ipq9574.
@ -34,12 +32,10 @@ index a3e2a09e2105..b9a5cc9fd8c8 100644
+
config IPQ_NSSCC_QCA8K
tristate "QCA8K(QCA8386 or QCA8084) NSS Clock Controller"
depends on MDIO_BUS
diff --git a/drivers/clk/qcom/Makefile b/drivers/clk/qcom/Makefile
index 2b378667a63f..65b825a54c45 100644
depends on MDIO_BUS || COMPILE_TEST
--- a/drivers/clk/qcom/Makefile
+++ b/drivers/clk/qcom/Makefile
@@ -36,6 +36,7 @@ obj-$(CONFIG_IPQ_GCC_6018) += gcc-ipq6018.o
@@ -31,6 +31,7 @@ obj-$(CONFIG_IPQ_GCC_6018) += gcc-ipq601
obj-$(CONFIG_IPQ_GCC_806X) += gcc-ipq806x.o
obj-$(CONFIG_IPQ_GCC_8074) += gcc-ipq8074.o
obj-$(CONFIG_IPQ_GCC_9574) += gcc-ipq9574.o
@ -47,9 +43,6 @@ index 2b378667a63f..65b825a54c45 100644
obj-$(CONFIG_IPQ_LCC_806X) += lcc-ipq806x.o
obj-$(CONFIG_IPQ_NSSCC_QCA8K) += nsscc-qca8k.o
obj-$(CONFIG_MDM_GCC_9607) += gcc-mdm9607.o
diff --git a/drivers/clk/qcom/nsscc-ipq9574.c b/drivers/clk/qcom/nsscc-ipq9574.c
new file mode 100644
index 000000000000..d3e9aa391236
--- /dev/null
+++ b/drivers/clk/qcom/nsscc-ipq9574.c
@@ -0,0 +1,3080 @@
@ -3133,6 +3126,3 @@ index 000000000000..d3e9aa391236
+
+MODULE_DESCRIPTION("QTI NSS_CC IPQ9574 Driver");
+MODULE_LICENSE("GPL");
--
2.45.2

View File

@ -11,11 +11,9 @@ Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 08a82a5cf667..c113fff22f73 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -11,6 +11,8 @@
@@ -12,6 +12,8 @@
#include <dt-bindings/interconnect/qcom,ipq9574.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/reset/qcom,ipq9574-gcc.h>
@ -24,7 +22,7 @@ index 08a82a5cf667..c113fff22f73 100644
#include <dt-bindings/thermal/thermal.h>
/ {
@@ -756,6 +758,26 @@ frame@b128000 {
@@ -804,6 +806,26 @@
status = "disabled";
};
};
@ -51,6 +49,3 @@ index 08a82a5cf667..c113fff22f73 100644
};
thermal-zones {
--
2.45.2

View File

@ -13,11 +13,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
index 13b623603d37..68b71437c2b9 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
@@ -249,7 +249,7 @@ ipq9574_s1: s1 {
@@ -75,7 +75,7 @@
regulator-max-microvolt = <1075000>;
};
@ -26,7 +24,7 @@ index 13b623603d37..68b71437c2b9 100644
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
@@ -290,7 +290,7 @@ &usb_0_dwc3 {
@@ -102,7 +102,7 @@
};
&usb_0_qmpphy {
@ -35,7 +33,7 @@ index 13b623603d37..68b71437c2b9 100644
vdda-phy-supply = <&regulator_fixed_0p925>;
status = "okay";
@@ -298,7 +298,7 @@ &usb_0_qmpphy {
@@ -110,7 +110,7 @@
&usb_0_qusbphy {
vdd-supply = <&regulator_fixed_0p925>;
@ -44,6 +42,3 @@ index 13b623603d37..68b71437c2b9 100644
vdda-phy-dpdm-supply = <&regulator_fixed_3p3>;
status = "okay";
--
2.45.2

View File

@ -19,8 +19,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 110 +++++++++++++++++++++++++-
1 file changed, 109 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 02cf318e3d17..ce3a1b5d70ea 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -3,7 +3,7 @@
@ -32,7 +30,7 @@ index 02cf318e3d17..ce3a1b5d70ea 100644
*/
#include <dt-bindings/clock/qcom,apss-ipq.h>
@@ -776,6 +776,114 @@ frame@b128000 {
@@ -826,6 +826,114 @@
#power-domain-cells = <1>;
#interconnect-cells = <1>;
};
@ -147,6 +145,3 @@ index 02cf318e3d17..ce3a1b5d70ea 100644
};
thermal-zones {
--
2.45.2

View File

@ -13,11 +13,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 07a96d26b359..ef82935e7ef5 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -256,6 +256,8 @@ rng: rng@e3000 {
@@ -251,6 +251,8 @@
mdio: mdio@90000 {
compatible = "qcom,ipq9574-mdio", "qcom,ipq4019-mdio";
reg = <0x00090000 0x64>;
@ -26,7 +24,7 @@ index 07a96d26b359..ef82935e7ef5 100644
#address-cells = <1>;
#size-cells = <0>;
clocks = <&gcc GCC_MDIO_AHB_CLK>;
@@ -315,6 +317,22 @@ tlmm: pinctrl@1000000 {
@@ -322,6 +324,22 @@
interrupt-controller;
#interrupt-cells = <2>;
@ -49,6 +47,3 @@ index 07a96d26b359..ef82935e7ef5 100644
uart2_pins: uart2-state {
pins = "gpio34", "gpio35";
function = "blsp2_uart";
--
2.45.2

View File

@ -13,11 +13,9 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 38 +++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index ce3a1b5d70ea..07a96d26b359 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -884,6 +884,44 @@ pcsuniphy2_ch0: uniphy-ch@0 {
@@ -952,6 +952,44 @@
"ch_tx";
};
};
@ -62,6 +60,3 @@ index ce3a1b5d70ea..07a96d26b359 100644
};
thermal-zones {
--
2.45.2

View File

@ -12,11 +12,9 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 68 +++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index ef82935e7ef5..61f9a7ee7282 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -939,6 +939,74 @@ &gcc SLAVE_NSSNOC_MEMNOC>,
@@ -989,6 +989,74 @@
"nssnoc_memnoc",
"memnoc_nssnoc",
"memnoc_nssnoc_1";
@ -91,6 +89,3 @@ index ef82935e7ef5..61f9a7ee7282 100644
};
};
--
2.45.2

View File

@ -16,8 +16,6 @@ Signed-off-by: Lei Wei <quic_leiwei@quicinc.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 2 +-
2 files changed, 169 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index 1bb8d96c9a82..1bbe4c258c15 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -3,11 +3,13 @@
@ -29,13 +27,13 @@ index 1bb8d96c9a82..1bbe4c258c15 100644
*/
/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+
#include "ipq9574-rdp-common.dtsi"
/ {
@@ -15,6 +15,46 @@ / {
@@ -15,6 +17,46 @@
compatible = "qcom,ipq9574-ap-al02-c7", "qcom,ipq9574";
};
@ -82,8 +80,8 @@ index 1bb8d96c9a82..1bbe4c258c15 100644
&sdhc_1 {
pinctrl-0 = <&sdc_default_state>;
pinctrl-names = "default";
@@ -60,3 +100,130 @@ rclk-pins {
};
@@ -103,3 +145,130 @@
nand-ecc-step-size = <512>;
};
};
+
@ -213,11 +211,9 @@ index 1bb8d96c9a82..1bbe4c258c15 100644
+ };
+ };
+};
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 61f9a7ee7282..5c7b47979b79 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -903,7 +903,7 @@ pcsuniphy2_ch0: uniphy-ch@0 {
@@ -953,7 +953,7 @@
};
};
@ -226,6 +222,3 @@ index 61f9a7ee7282..5c7b47979b79 100644
compatible = "qcom,ipq9574-ppe";
reg = <0x3a000000 0xbef800>;
ranges;
--
2.45.2

View File

@ -13,9 +13,6 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
1 file changed, 13 insertions(+)
create mode 100644 include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h
diff --git a/include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h b/include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h
new file mode 100644
index 000000000000..c47d7191cda5
--- /dev/null
+++ b/include/dt-bindings/clock/qcom,ipq-pcs-uniphy.h
@@ -0,0 +1,13 @@
@ -32,6 +29,3 @@ index 000000000000..c47d7191cda5
+#define UNIPHY_NSS_TX_CLK 1
+
+#endif
--
2.45.2

View File

@ -15,11 +15,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
drivers/net/ethernet/qualcomm/ppe/edma_port.c | 18 +++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/qualcomm/ppe/edma_port.c b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
index 0b3b769a4a49..6730cee5d6c9 100644
--- a/drivers/net/ethernet/qualcomm/ppe/edma_port.c
+++ b/drivers/net/ethernet/qualcomm/ppe/edma_port.c
@@ -355,13 +355,25 @@ int edma_port_setup(struct ppe_port *port)
@@ -355,13 +355,25 @@ int edma_port_setup(struct ppe_port *por
int port_id = port->port_id;
struct net_device *netdev;
u8 mac_addr[ETH_ALEN];
@ -48,6 +46,3 @@ index 0b3b769a4a49..6730cee5d6c9 100644
return -ENOMEM;
}
--
2.45.2

View File

@ -11,8 +11,6 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574.dtsi b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
index 5aa456bc0e03..2785e1ba1ca9 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574.dtsi
@@ -14,6 +14,7 @@
@ -23,7 +21,7 @@ index 5aa456bc0e03..2785e1ba1ca9 100644
#include <dt-bindings/thermal/thermal.h>
/ {
@@ -809,12 +810,12 @@ nsscc: clock-controller@39b00000 {
@@ -832,12 +833,12 @@
<&cmn_pll NSS_1200MHZ_CLK>,
<&cmn_pll PPE_353MHZ_CLK>,
<&gcc GPLL0_OUT_AUX>,
@ -42,6 +40,3 @@ index 5aa456bc0e03..2785e1ba1ca9 100644
<&gcc GCC_NSSCC_CLK>;
#clock-cells = <1>;
#reset-cells = <1>;
--
2.45.2

View File

@ -11,11 +11,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
.../boot/dts/qcom/ipq9574-rdp-common.dtsi | 146 +++++++++++++++++-
1 file changed, 145 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
index 9a8692377176..13b623603d37 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi
@@ -74,11 +74,155 @@ &blsp1_spi0 {
@@ -44,11 +44,155 @@
status = "okay";
flash@0 {
@ -172,6 +170,3 @@ index 9a8692377176..13b623603d37 100644
};
};
--
2.45.2

View File

@ -11,11 +11,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index d56abe92c24e..44407ebbe06a 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -49,11 +49,17 @@ phy3: ethernet-phy@13 {
@@ -49,11 +49,17 @@
phy4: ethernet-phy@8 {
compatible ="ethernet-phy-ieee802.3-c45";
reg = <8>;
@ -33,6 +31,3 @@ index d56abe92c24e..44407ebbe06a 100644
};
};
--
2.45.2

View File

@ -18,8 +18,6 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
drivers/net/ethernet/qualcomm/Kconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/net/ethernet/qualcomm/Kconfig b/drivers/net/ethernet/qualcomm/Kconfig
index a96f6acd4561..364d7e8ea7bf 100644
--- a/drivers/net/ethernet/qualcomm/Kconfig
+++ b/drivers/net/ethernet/qualcomm/Kconfig
@@ -68,7 +68,6 @@ config QCOM_PPE
@ -30,6 +28,3 @@ index a96f6acd4561..364d7e8ea7bf 100644
help
This driver supports the Qualcomm Technologies, Inc. packet
process engine (PPE) available with IPQ SoC. The PPE houses
--
2.45.2

View File

@ -10,11 +10,9 @@ Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
index f835ff9f4b28..d56abe92c24e 100644
--- a/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts
@@ -112,6 +112,7 @@ port@1 {
@@ -161,6 +161,7 @@
reg = <1>;
phy-mode = "qsgmii";
managed = "in-band-status";
@ -22,7 +20,7 @@ index f835ff9f4b28..d56abe92c24e 100644
phy-handle = <&phy0>;
pcs-handle = <&pcsuniphy0_ch0>;
clocks = <&nsscc NSS_CC_PORT1_MAC_CLK>,
@@ -132,6 +133,7 @@ port@2 {
@@ -181,6 +182,7 @@
reg = <2>;
phy-mode = "qsgmii";
managed = "in-band-status";
@ -30,7 +28,7 @@ index f835ff9f4b28..d56abe92c24e 100644
phy-handle = <&phy1>;
pcs-handle = <&pcsuniphy0_ch1>;
clocks = <&nsscc NSS_CC_PORT2_MAC_CLK>,
@@ -152,6 +154,7 @@ port@3 {
@@ -201,6 +203,7 @@
reg = <3>;
phy-mode = "qsgmii";
managed = "in-band-status";
@ -38,7 +36,7 @@ index f835ff9f4b28..d56abe92c24e 100644
phy-handle = <&phy2>;
pcs-handle = <&pcsuniphy0_ch2>;
clocks = <&nsscc NSS_CC_PORT3_MAC_CLK>,
@@ -172,6 +175,7 @@ port@4 {
@@ -221,6 +224,7 @@
reg = <4>;
phy-mode = "qsgmii";
managed = "in-band-status";
@ -46,7 +44,7 @@ index f835ff9f4b28..d56abe92c24e 100644
phy-handle = <&phy3>;
pcs-handle = <&pcsuniphy0_ch3>;
clocks = <&nsscc NSS_CC_PORT4_MAC_CLK>,
@@ -192,6 +196,7 @@ port@5 {
@@ -241,6 +245,7 @@
reg = <5>;
phy-mode = "usxgmii";
managed = "in-band-status";
@ -54,7 +52,7 @@ index f835ff9f4b28..d56abe92c24e 100644
phy-handle = <&phy4>;
pcs-handle = <&pcsuniphy1_ch0>;
clocks = <&nsscc NSS_CC_PORT5_MAC_CLK>,
@@ -212,6 +217,7 @@ port@6 {
@@ -261,6 +266,7 @@
reg = <6>;
phy-mode = "usxgmii";
managed = "in-band-status";
@ -62,6 +60,3 @@ index f835ff9f4b28..d56abe92c24e 100644
phy-handle = <&phy5>;
pcs-handle = <&pcsuniphy2_ch0>;
clocks = <&nsscc NSS_CC_PORT6_MAC_CLK>,
--
2.45.2