mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2026-06-11 02:37:26 -04:00
Compare commits
5 Commits
20644af030
...
8904ac2673
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8904ac2673 | ||
|
|
cf1f06817c | ||
|
|
ca9e38963f | ||
|
|
baa433ffe9 | ||
|
|
2c4a719d26 |
@@ -13,7 +13,7 @@ to the PCIe controller driver to manage directly via the NP_SCU regmap.
|
||||
Signed-off-by: Ryan Chen <rchen14b@gmail.com>
|
||||
--- a/drivers/clk/clk-en7523.c
|
||||
+++ b/drivers/clk/clk-en7523.c
|
||||
@@ -961,9 +961,11 @@ static int en7581_pci_enable(struct clk_
|
||||
@@ -960,9 +960,11 @@ static int en7581_pci_enable(struct clk_
|
||||
struct regmap *map = cg->map;
|
||||
u32 mask;
|
||||
|
||||
@@ -28,7 +28,7 @@ Signed-off-by: Ryan Chen <rchen14b@gmail.com>
|
||||
regmap_set_bits(map, REG_PCI_CONTROL, mask);
|
||||
|
||||
return 0;
|
||||
@@ -975,9 +977,8 @@ static void en7581_pci_disable(struct cl
|
||||
@@ -974,9 +976,8 @@ static void en7581_pci_disable(struct cl
|
||||
struct regmap *map = cg->map;
|
||||
u32 mask;
|
||||
|
||||
|
||||
@@ -556,8 +556,8 @@ SVN-Revision: 35130
|
||||
static inline struct neighbour *__ipv6_neigh_lookup_noref(struct net_device *dev, const void *pkey)
|
||||
--- a/net/sched/cls_u32.c
|
||||
+++ b/net/sched/cls_u32.c
|
||||
@@ -167,7 +167,7 @@ next_knode:
|
||||
data = skb_header_pointer(skb, toff, 4, &hdata);
|
||||
@@ -165,7 +165,7 @@ next_knode:
|
||||
&hdata);
|
||||
if (!data)
|
||||
goto out;
|
||||
- if ((*data ^ key->val) & key->mask) {
|
||||
@@ -565,8 +565,8 @@ SVN-Revision: 35130
|
||||
n = rcu_dereference_bh(n->next);
|
||||
goto next_knode;
|
||||
}
|
||||
@@ -218,8 +218,8 @@ check_terminal:
|
||||
&hdata);
|
||||
@@ -217,8 +217,8 @@ check_terminal:
|
||||
4, &hdata);
|
||||
if (!data)
|
||||
goto out;
|
||||
- sel = ht->divisor & u32_hash_fold(*data, &n->sel,
|
||||
|
||||
@@ -86,7 +86,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/arch/arm/include/asm/string.h
|
||||
+++ b/arch/arm/include/asm/string.h
|
||||
@@ -65,4 +65,9 @@ static inline void *memset64(uint64_t *p
|
||||
@@ -68,4 +68,9 @@ static inline void *memset64(uint64_t *p
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
#define USB_VENDOR_ID_BELKIN 0x050d
|
||||
#define USB_DEVICE_ID_FLIP_KVM 0x3201
|
||||
|
||||
@@ -1471,6 +1474,9 @@
|
||||
@@ -1475,6 +1478,9 @@
|
||||
#define USB_VENDOR_ID_XIAOMI 0x2717
|
||||
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
|
||||
|
||||
@@ -52,7 +52,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_MULTI_TOUCH), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE2), HID_QUIRK_ALWAYS_POLL },
|
||||
@@ -215,6 +216,7 @@ static const struct hid_device_id hid_qu
|
||||
@@ -216,6 +217,7 @@ static const struct hid_device_id hid_qu
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
*
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -816,6 +816,24 @@ struct phy_tdr_config {
|
||||
@@ -826,6 +826,24 @@ struct phy_tdr_config {
|
||||
#define PHY_PAIR_ALL -1
|
||||
|
||||
/**
|
||||
@@ -92,7 +92,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
* struct phy_plca_cfg - Configuration of the PLCA (Physical Layer Collision
|
||||
* Avoidance) Reconciliation Sublayer.
|
||||
*
|
||||
@@ -954,6 +972,14 @@ struct phy_driver {
|
||||
@@ -964,6 +982,14 @@ struct phy_driver {
|
||||
int (*get_features)(struct phy_device *phydev);
|
||||
|
||||
/**
|
||||
@@ -107,7 +107,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
* @get_rate_matching: Get the supported type of rate matching for a
|
||||
* particular phy interface. This is used by phy consumers to determine
|
||||
* whether to advertise lower-speed modes for that interface. It is
|
||||
@@ -1832,6 +1858,8 @@ int phy_config_aneg(struct phy_device *p
|
||||
@@ -1842,6 +1868,8 @@ int phy_config_aneg(struct phy_device *p
|
||||
int _phy_start_aneg(struct phy_device *phydev);
|
||||
int phy_start_aneg(struct phy_device *phydev);
|
||||
int phy_aneg_done(struct phy_device *phydev);
|
||||
|
||||
@@ -57,7 +57,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
*
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -980,6 +980,11 @@ struct phy_driver {
|
||||
@@ -990,6 +990,11 @@ struct phy_driver {
|
||||
phy_interface_t interface);
|
||||
|
||||
/**
|
||||
@@ -69,7 +69,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
* @get_rate_matching: Get the supported type of rate matching for a
|
||||
* particular phy interface. This is used by phy consumers to determine
|
||||
* whether to advertise lower-speed modes for that interface. It is
|
||||
@@ -1860,6 +1865,7 @@ int phy_start_aneg(struct phy_device *ph
|
||||
@@ -1870,6 +1875,7 @@ int phy_start_aneg(struct phy_device *ph
|
||||
int phy_aneg_done(struct phy_device *phydev);
|
||||
unsigned int phy_inband_caps(struct phy_device *phydev,
|
||||
phy_interface_t interface);
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
From 4beb44a2d62dddfe450f310aa1a950901731cb3a Mon Sep 17 00:00:00 2001
|
||||
From: "Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>
|
||||
Date: Sun, 31 Aug 2025 18:34:33 +0100
|
||||
Subject: net: phy: add phy_interface_weight()
|
||||
|
||||
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
||||
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
|
||||
Link: https://patch.msgid.link/E1uslwn-00000001SOx-0a7H@rmk-PC.armlinux.org.uk
|
||||
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
---
|
||||
include/linux/phy.h | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -187,6 +187,11 @@ static inline bool phy_interface_empty(c
|
||||
return bitmap_empty(intf, PHY_INTERFACE_MODE_MAX);
|
||||
}
|
||||
|
||||
+static inline unsigned int phy_interface_weight(const unsigned long *intf)
|
||||
+{
|
||||
+ return bitmap_weight(intf, PHY_INTERFACE_MODE_MAX);
|
||||
+}
|
||||
+
|
||||
static inline void phy_interface_and(unsigned long *dst, const unsigned long *a,
|
||||
const unsigned long *b)
|
||||
{
|
||||
@@ -39,7 +39,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
if (!phydev->drv->led_polarity_set)
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -897,8 +897,9 @@ struct phy_plca_status {
|
||||
@@ -902,8 +902,9 @@ struct phy_plca_status {
|
||||
|
||||
/* Modes for PHY LED configuration */
|
||||
enum phy_led_modes {
|
||||
|
||||
@@ -51,7 +51,7 @@ phylink-internal.h exist in Linux 6.12.
|
||||
* __phy_read_mmd - Convenience function for reading a register
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -2027,6 +2027,11 @@ extern struct phy_driver genphy_c45_driv
|
||||
@@ -2032,6 +2032,11 @@ extern struct phy_driver genphy_c45_driv
|
||||
/* The gen10g_* functions are the old Clause 45 stub */
|
||||
int gen10g_config_aneg(struct phy_device *phydev);
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
}
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -1040,7 +1040,8 @@ struct phy_driver {
|
||||
@@ -1045,7 +1045,8 @@ struct phy_driver {
|
||||
* driver for the given phydev. If NULL, matching is based on
|
||||
* phy_id and phy_id_mask.
|
||||
*/
|
||||
|
||||
@@ -97,7 +97,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
static ssize_t
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -1945,6 +1945,9 @@ char *phy_attached_info_irq(struct phy_d
|
||||
@@ -1950,6 +1950,9 @@ char *phy_attached_info_irq(struct phy_d
|
||||
__malloc;
|
||||
void phy_attached_info(struct phy_device *phydev);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -1261,9 +1261,13 @@ struct phy_driver {
|
||||
@@ -1266,9 +1266,13 @@ struct phy_driver {
|
||||
#define PHY_ANY_ID "MATCH ANY PHY"
|
||||
#define PHY_ANY_UID 0xffffffff
|
||||
|
||||
@@ -36,7 +36,7 @@ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||||
|
||||
/**
|
||||
* phy_id_compare - compare @id1 with @id2 taking account of @mask
|
||||
@@ -1280,6 +1284,19 @@ static inline bool phy_id_compare(u32 id
|
||||
@@ -1285,6 +1289,19 @@ static inline bool phy_id_compare(u32 id
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.12 = .69
|
||||
LINUX_KERNEL_HASH-6.12.69 = 4b493657f218703239c4f22415f027b3644949bf2761abd18b849f0aad5f7665
|
||||
LINUX_VERSION-6.12 = .71
|
||||
LINUX_KERNEL_HASH-6.12.71 = 143e8bc76cc41f831b51aa5e75819bed55bed41f299d35922820f1d2d2b02600
|
||||
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
|
||||
sysfs_remove_link(&dev->dev.kobj, "phydev");
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -1032,6 +1032,12 @@ struct phy_driver {
|
||||
@@ -1037,6 +1037,12 @@ struct phy_driver {
|
||||
/** @handle_interrupt: Override default interrupt handling */
|
||||
irqreturn_t (*handle_interrupt)(struct phy_device *phydev);
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ Signed-off-by: Maxime Chevallier <maxime.chevallier@bootlin.com>
|
||||
+#endif
|
||||
--- a/include/linux/skbuff.h
|
||||
+++ b/include/linux/skbuff.h
|
||||
@@ -4806,6 +4806,9 @@ enum skb_ext_id {
|
||||
@@ -4818,6 +4818,9 @@ enum skb_ext_id {
|
||||
#if IS_ENABLED(CONFIG_MCTP_FLOWS)
|
||||
SKB_EXT_MCTP,
|
||||
#endif
|
||||
|
||||
@@ -128,7 +128,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
|
||||
static int qcom_pcie_init_2_4_0(struct qcom_pcie *pcie)
|
||||
{
|
||||
struct qcom_pcie_resources_2_4_0 *res = &pcie->res.v2_4_0;
|
||||
@@ -1336,6 +1413,16 @@ static const struct qcom_pcie_ops ops_2_
|
||||
@@ -1337,6 +1414,16 @@ static const struct qcom_pcie_ops ops_2_
|
||||
.ltssm_enable = qcom_pcie_2_3_2_ltssm_enable,
|
||||
};
|
||||
|
||||
@@ -145,7 +145,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
|
||||
/* Qcom IP rev.: 2.3.3 Synopsys IP rev.: 4.30a */
|
||||
static const struct qcom_pcie_ops ops_2_3_3 = {
|
||||
.get_resources = qcom_pcie_get_resources_2_3_3,
|
||||
@@ -1403,6 +1490,10 @@ static const struct qcom_pcie_cfg cfg_2_
|
||||
@@ -1405,6 +1492,10 @@ static const struct qcom_pcie_cfg cfg_2_
|
||||
.ops = &ops_2_4_0,
|
||||
};
|
||||
|
||||
@@ -156,7 +156,7 @@ Signed-off-by: Florian Maurer <f.maurer@outlook.com>
|
||||
static const struct qcom_pcie_cfg cfg_2_7_0 = {
|
||||
.ops = &ops_2_7_0,
|
||||
};
|
||||
@@ -1827,6 +1918,7 @@ static const struct of_device_id qcom_pc
|
||||
@@ -1829,6 +1920,7 @@ static const struct of_device_id qcom_pc
|
||||
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
|
||||
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
|
||||
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },
|
||||
|
||||
@@ -62,7 +62,7 @@ Signed-off-by: Bhaskar Upadhaya <Bhaskar.Upadhaya@nxp.com>
|
||||
PHY_INTERFACE_MODE_MAX,
|
||||
} phy_interface_t;
|
||||
|
||||
@@ -240,6 +241,8 @@ static inline const char *phy_modes(phy_
|
||||
@@ -245,6 +246,8 @@ static inline const char *phy_modes(phy_
|
||||
return "gmii";
|
||||
case PHY_INTERFACE_MODE_SGMII:
|
||||
return "sgmii";
|
||||
|
||||
@@ -21,7 +21,7 @@ Link: https://patch.msgid.link/20250326-ipq5018-pcie-v7-4-e1828fef06c9@outlook.c
|
||||
|
||||
--- a/drivers/pci/controller/dwc/pcie-qcom.c
|
||||
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
|
||||
@@ -1827,6 +1827,7 @@ static const struct of_device_id qcom_pc
|
||||
@@ -1829,6 +1829,7 @@ static const struct of_device_id qcom_pc
|
||||
{ .compatible = "qcom,pcie-apq8064", .data = &cfg_2_1_0 },
|
||||
{ .compatible = "qcom,pcie-apq8084", .data = &cfg_1_0_0 },
|
||||
{ .compatible = "qcom,pcie-ipq4019", .data = &cfg_2_4_0 },
|
||||
|
||||
@@ -14,7 +14,7 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
|
||||
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -371,6 +371,7 @@ struct phy_package_shared {
|
||||
@@ -376,6 +376,7 @@ struct phy_package_shared {
|
||||
/* used as bit number in atomic bitops */
|
||||
#define PHY_SHARED_F_INIT_DONE 0
|
||||
#define PHY_SHARED_F_PROBE_DONE 1
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Luo Jie <quic_luoj@quicinc.com>
|
||||
|
||||
/**
|
||||
* struct mii_bus - Represents an MDIO bus
|
||||
@@ -2272,6 +2273,11 @@ static inline bool phy_package_probe_onc
|
||||
@@ -2277,6 +2278,11 @@ static inline bool phy_package_probe_onc
|
||||
return __phy_package_set_once(phydev, PHY_SHARED_F_PROBE_DONE);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
if (phydev->mii_ts && phydev->mii_ts->link_state)
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -680,6 +680,7 @@ struct phy_device {
|
||||
@@ -685,6 +685,7 @@ struct phy_device {
|
||||
unsigned downshifted_rate:1;
|
||||
unsigned is_on_sfp_module:1;
|
||||
unsigned mac_managed_pm:1;
|
||||
|
||||
@@ -544,11 +544,7 @@ static int rtldsa_83xx_setup(struct dsa_switch *ds)
|
||||
priv->r->set_static_move_action(i, true);
|
||||
}
|
||||
|
||||
if (priv->family_id == RTL8380_FAMILY_ID)
|
||||
rtl838x_print_matrix();
|
||||
else
|
||||
rtl839x_print_matrix();
|
||||
|
||||
priv->r->print_matrix();
|
||||
rtldsa_83xx_init_stats(priv);
|
||||
rtldsa_init_counters(priv);
|
||||
|
||||
@@ -616,10 +612,7 @@ static int rtldsa_93xx_setup(struct dsa_switch *ds)
|
||||
if (priv->family_id == RTL9310_FAMILY_ID)
|
||||
rtldsa_931x_config_phy_ability_source(priv);
|
||||
|
||||
if (priv->family_id == RTL9300_FAMILY_ID)
|
||||
rtl930x_print_matrix();
|
||||
else if (priv->family_id == RTL9310_FAMILY_ID)
|
||||
rtl931x_print_matrix();
|
||||
priv->r->print_matrix();
|
||||
|
||||
/* TODO: Initialize statistics */
|
||||
rtldsa_init_counters(priv);
|
||||
|
||||
@@ -111,7 +111,7 @@ static enum template_field_id fixed_templates[N_FIXED_TEMPLATES][N_FIXED_FIELDS]
|
||||
},
|
||||
};
|
||||
|
||||
void rtl838x_print_matrix(void)
|
||||
void rtldsa_838x_print_matrix(void)
|
||||
{
|
||||
unsigned volatile int *ptr8;
|
||||
|
||||
@@ -1720,6 +1720,7 @@ const struct rtldsa_config rtldsa_838x_cfg = {
|
||||
.l2_port_new_salrn = rtl838x_l2_port_new_salrn,
|
||||
.l2_port_new_sa_fwd = rtl838x_l2_port_new_sa_fwd,
|
||||
.get_mirror_config = rtldsa_838x_get_mirror_config,
|
||||
.print_matrix = rtldsa_838x_print_matrix,
|
||||
.read_l2_entry_using_hash = rtl838x_read_l2_entry_using_hash,
|
||||
.write_l2_entry_using_hash = rtl838x_write_l2_entry_using_hash,
|
||||
.read_cam = rtl838x_read_cam,
|
||||
|
||||
@@ -1301,6 +1301,7 @@ struct rtldsa_config {
|
||||
const struct flow_action_entry *act, bool ingress);
|
||||
int (*port_rate_police_del)(struct dsa_switch *ds, int port, struct flow_cls_offload *cls,
|
||||
bool ingress);
|
||||
void (*print_matrix)(void);
|
||||
u64 (*read_l2_entry_using_hash)(u32 hash, u32 position, struct rtl838x_l2_entry *e);
|
||||
void (*write_l2_entry_using_hash)(u32 hash, u32 pos, struct rtl838x_l2_entry *e);
|
||||
u64 (*read_cam)(int idx, struct rtl838x_l2_entry *e);
|
||||
|
||||
@@ -117,7 +117,7 @@ static enum template_field_id fixed_templates[N_FIXED_TEMPLATES][N_FIXED_FIELDS]
|
||||
},
|
||||
};
|
||||
|
||||
void rtl839x_print_matrix(void)
|
||||
void rtldsa_839x_print_matrix(void)
|
||||
{
|
||||
volatile u64 *ptr9;
|
||||
|
||||
@@ -1663,6 +1663,7 @@ const struct rtldsa_config rtldsa_839x_cfg = {
|
||||
.l2_port_new_salrn = rtl839x_l2_port_new_salrn,
|
||||
.l2_port_new_sa_fwd = rtl839x_l2_port_new_sa_fwd,
|
||||
.get_mirror_config = rtldsa_839x_get_mirror_config,
|
||||
.print_matrix = rtldsa_839x_print_matrix,
|
||||
.read_l2_entry_using_hash = rtl839x_read_l2_entry_using_hash,
|
||||
.write_l2_entry_using_hash = rtl839x_write_l2_entry_using_hash,
|
||||
.read_cam = rtl839x_read_cam,
|
||||
|
||||
@@ -158,25 +158,25 @@ int rtl838x_set_egress_rate(struct rtl838x_switch_priv *priv, int port, u32 rate
|
||||
u32 rtl838x_hash(struct rtl838x_switch_priv *priv, u64 seed);
|
||||
irqreturn_t rtl838x_switch_irq(int irq, void *dev_id);
|
||||
void rtl838x_vlan_profile_dump(int index);
|
||||
void rtl838x_print_matrix(void);
|
||||
void rtldsa_838x_print_matrix(void);
|
||||
|
||||
/* RTL839x-specific */
|
||||
u32 rtl839x_hash(struct rtl838x_switch_priv *priv, u64 seed);
|
||||
irqreturn_t rtl839x_switch_irq(int irq, void *dev_id);
|
||||
void rtl839x_vlan_profile_dump(int index);
|
||||
void rtl839x_exec_tbl2_cmd(u32 cmd);
|
||||
void rtl839x_print_matrix(void);
|
||||
void rtldsa_839x_print_matrix(void);
|
||||
|
||||
/* RTL930x-specific */
|
||||
u32 rtl930x_hash(struct rtl838x_switch_priv *priv, u64 seed);
|
||||
irqreturn_t rtldsa_930x_switch_irq(int irq, void *dev_id);
|
||||
irqreturn_t rtl839x_switch_irq(int irq, void *dev_id);
|
||||
void rtl930x_vlan_profile_dump(int index);
|
||||
void rtl930x_print_matrix(void);
|
||||
void rtldsa_930x_print_matrix(void);
|
||||
|
||||
/* RTL931x-specific */
|
||||
irqreturn_t rtl931x_switch_irq(int irq, void *dev_id);
|
||||
void rtl931x_print_matrix(void);
|
||||
void rtldsa_931x_print_matrix(void);
|
||||
void rtldsa_931x_config_phy_ability_source(struct rtl838x_switch_priv *priv);
|
||||
|
||||
int rtl83xx_lag_add(struct dsa_switch *ds, int group, int port, struct netdev_lag_upper_info *info);
|
||||
@@ -194,8 +194,6 @@ void rtl839x_set_egress_queue(int port, int queue);
|
||||
void rtl9300_dump_debug(void);
|
||||
void rtl930x_pie_rule_dump_raw(u32 r[]);
|
||||
|
||||
void rtl931x_print_matrix(void);
|
||||
|
||||
extern const struct dsa_switch_ops rtldsa_83xx_switch_ops;
|
||||
extern const struct dsa_switch_ops rtldsa_93xx_switch_ops;
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ static enum template_field_id fixed_templates[N_FIXED_TEMPLATES][N_FIXED_FIELDS]
|
||||
},
|
||||
};
|
||||
|
||||
void rtl930x_print_matrix(void)
|
||||
void rtldsa_930x_print_matrix(void)
|
||||
{
|
||||
struct table_reg *r = rtl_table_get(RTL9300_TBL_0, 6);
|
||||
|
||||
@@ -867,7 +867,7 @@ void rtl9300_dump_debug(void)
|
||||
}
|
||||
pr_debug("# %08x %08x %08x %08x %08x\n",
|
||||
sw_r32(r), sw_r32(r + 4), sw_r32(r + 8), sw_r32(r + 12), sw_r32(r + 16));
|
||||
rtl930x_print_matrix();
|
||||
rtldsa_930x_print_matrix();
|
||||
pr_debug("RTL930X_L2_PORT_SABLK_CTRL: %08x, RTL930X_L2_PORT_DABLK_CTRL %08x\n",
|
||||
sw_r32(RTL930X_L2_PORT_SABLK_CTRL), sw_r32(RTL930X_L2_PORT_DABLK_CTRL)
|
||||
|
||||
@@ -2662,6 +2662,7 @@ const struct rtldsa_config rtldsa_930x_cfg = {
|
||||
.get_mirror_config = rtldsa_930x_get_mirror_config,
|
||||
.port_rate_police_add = rtldsa_930x_port_rate_police_add,
|
||||
.port_rate_police_del = rtldsa_930x_port_rate_police_del,
|
||||
.print_matrix = rtldsa_930x_print_matrix,
|
||||
.read_l2_entry_using_hash = rtl930x_read_l2_entry_using_hash,
|
||||
.write_l2_entry_using_hash = rtl930x_write_l2_entry_using_hash,
|
||||
.read_cam = rtl930x_read_cam,
|
||||
|
||||
@@ -385,7 +385,7 @@ irqreturn_t rtl931x_switch_irq(int irq, void *dev_id)
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
void rtl931x_print_matrix(void)
|
||||
void rtldsa_931x_print_matrix(void)
|
||||
{
|
||||
struct table_reg *r = rtl_table_get(RTL9310_TBL_2, 1);
|
||||
|
||||
@@ -1845,6 +1845,7 @@ const struct rtldsa_config rtldsa_931x_cfg = {
|
||||
.get_mirror_config = rtldsa_931x_get_mirror_config,
|
||||
.port_rate_police_add = rtldsa_931x_port_rate_police_add,
|
||||
.port_rate_police_del = rtldsa_931x_port_rate_police_del,
|
||||
.print_matrix = rtldsa_931x_print_matrix,
|
||||
.read_l2_entry_using_hash = rtl931x_read_l2_entry_using_hash,
|
||||
.write_l2_entry_using_hash = rtl931x_write_l2_entry_using_hash,
|
||||
.read_cam = rtl931x_read_cam,
|
||||
|
||||
@@ -3148,6 +3148,13 @@ static int rtpcs_931x_sds_set_ip_mode(struct rtpcs_serdes *sds,
|
||||
mode_val = 0x9;
|
||||
break;
|
||||
|
||||
case RTPCS_SDS_MODE_2500BASEX:
|
||||
/* available SDK code doesn't have this value. based on brute-forcing
|
||||
* the SerDes mode register field until the link is working
|
||||
*/
|
||||
mode_val = 0x2d;
|
||||
break;
|
||||
|
||||
case RTPCS_SDS_MODE_10GBASER:
|
||||
mode_val = 0x35;
|
||||
break;
|
||||
@@ -3379,12 +3386,22 @@ static int rtpcs_931x_sds_link_sts_get(struct rtpcs_serdes *sds)
|
||||
{
|
||||
u32 sts, sts1, latch_sts, latch_sts1;
|
||||
|
||||
if (0) {
|
||||
switch (sds->hw_mode) {
|
||||
case RTPCS_SDS_MODE_XSGMII:
|
||||
sts = rtpcs_sds_read_bits(sds, 0x41, 29, 8, 0);
|
||||
sts1 = rtpcs_sds_read_bits(sds, 0x81, 29, 8, 0);
|
||||
latch_sts = rtpcs_sds_read_bits(sds, 0x41, 30, 8, 0);
|
||||
latch_sts1 = rtpcs_sds_read_bits(sds, 0x81, 30, 8, 0);
|
||||
} else {
|
||||
break;
|
||||
|
||||
case RTPCS_SDS_MODE_SGMII:
|
||||
case RTPCS_SDS_MODE_HISGMII:
|
||||
case RTPCS_SDS_MODE_2500BASEX:
|
||||
sts = rtpcs_sds_read_bits(sds, 0x41, 29, 8, 0);
|
||||
latch_sts = rtpcs_sds_read_bits(sds, 0x41, 30, 8, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
sts = rtpcs_sds_read_bits(sds, 0x5, 0, 12, 12);
|
||||
latch_sts = rtpcs_sds_read_bits(sds, 0x4, 1, 2, 2);
|
||||
latch_sts1 = rtpcs_sds_read_bits(sds, 0x42, 1, 2, 2);
|
||||
|
||||
@@ -35,7 +35,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
|
||||
&phy->mdio.reset_assert_delay);
|
||||
--- a/include/linux/phy.h
|
||||
+++ b/include/linux/phy.h
|
||||
@@ -306,7 +306,7 @@ static inline const char *phy_modes(phy_
|
||||
@@ -311,7 +311,7 @@ static inline const char *phy_modes(phy_
|
||||
#define PHY_INIT_TIMEOUT 100000
|
||||
#define PHY_FORCE_TIMEOUT 10
|
||||
|
||||
@@ -44,7 +44,7 @@ Signed-off-by: Markus Stockhausen <markus.stockhausen@gmx.de>
|
||||
|
||||
/* Used when trying to connect to a specific phy (mii bus id:phy device id) */
|
||||
#define PHY_ID_FMT "%s:%02x"
|
||||
@@ -426,10 +426,10 @@ struct mii_bus {
|
||||
@@ -431,10 +431,10 @@ struct mii_bus {
|
||||
struct mdio_device *mdio_map[PHY_MAX_ADDR];
|
||||
|
||||
/** @phy_mask: PHY addresses to be ignored when probing */
|
||||
|
||||
@@ -10,7 +10,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
|
||||
--- a/drivers/net/phy/sfp.c
|
||||
+++ b/drivers/net/phy/sfp.c
|
||||
@@ -717,10 +717,64 @@ static int sfp_i2c_write(struct sfp *sfp
|
||||
@@ -718,10 +718,64 @@ static int sfp_i2c_write(struct sfp *sfp
|
||||
return ret == ARRAY_SIZE(msgs) ? len : 0;
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
|
||||
sfp->i2c = i2c;
|
||||
sfp->read = sfp_i2c_read;
|
||||
@@ -752,6 +806,29 @@ static int sfp_i2c_mdiobus_create(struct
|
||||
@@ -753,6 +807,29 @@ static int sfp_i2c_mdiobus_create(struct
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
|
||||
static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
|
||||
{
|
||||
mdiobus_unregister(sfp->i2c_mii);
|
||||
@@ -1926,9 +2003,15 @@ static void sfp_sm_fault(struct sfp *sfp
|
||||
@@ -1927,9 +2004,15 @@ static void sfp_sm_fault(struct sfp *sfp
|
||||
|
||||
static int sfp_sm_add_mdio_bus(struct sfp *sfp)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user