mirror of
https://github.com/openwrt/openwrt.git
synced 2025-03-14 00:06:46 +00:00
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:
parent
71a966c480
commit
11f1f67a3e
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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>;
|
||||
};
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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 = <®ulator_fixed_0p925>;
|
||||
|
||||
status = "okay";
|
||||
@@ -298,7 +298,7 @@ &usb_0_qmpphy {
|
||||
@@ -110,7 +110,7 @@
|
||||
|
||||
&usb_0_qusbphy {
|
||||
vdd-supply = <®ulator_fixed_0p925>;
|
||||
@ -44,6 +42,3 @@ index 13b623603d37..68b71437c2b9 100644
|
||||
vdda-phy-dpdm-supply = <®ulator_fixed_3p3>;
|
||||
|
||||
status = "okay";
|
||||
--
|
||||
2.45.2
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user