mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-06 05:54:25 +00:00
eea264fead
Update SSDK version to 12.4, this fixes weird SFP port link up/downs while there is no SFP module plugged in. Signed-off-by: Robert Marko <robimarko@gmail.com>
66 lines
2.4 KiB
Diff
66 lines
2.4 KiB
Diff
From 1d37f4ee9b9588a62bfc87419c8a6d9ef989aa9c Mon Sep 17 00:00:00 2001
|
|
From: Robert Marko <robimarko@gmail.com>
|
|
Date: Tue, 7 Nov 2023 12:23:09 +0100
|
|
Subject: [PATCH 1/3] qca807x: add a LED quirk for Xiaomi AX9000
|
|
|
|
Xiaomi AX9000 has a single LED for each of 4 gigabit ethernet ports that
|
|
are connected to QCA8075, and that LED is connected to the 100M LED pin.
|
|
|
|
So, by default it will only work when in 10 or 100Mbit mode, this is quite
|
|
annoying and makes no sense(If they have connected it to the 1000Mbit LED
|
|
pin then it would have worked for 10/100 by default as well).
|
|
|
|
So, to solve this add a check for system compatible as we cant parse if
|
|
from DTS in any other way and set the 100M LED to blink on 1000Base-T
|
|
as well.
|
|
|
|
Signed-off-by: Robert Marko <robimarko@gmail.com>
|
|
---
|
|
include/hsl/phy/malibu_phy.h | 2 ++
|
|
src/hsl/phy/malibu_phy.c | 9 +++++++++
|
|
2 files changed, 11 insertions(+)
|
|
|
|
--- a/include/hsl/phy/malibu_phy.h
|
|
+++ b/include/hsl/phy/malibu_phy.h
|
|
@@ -94,6 +94,7 @@ extern "C"
|
|
#define MALIBU_DAC_CTRL_MASK 0x380
|
|
#define MALIBU_DAC_CTRL_VALUE 0x280
|
|
#define MALIBU_LED_1000_CTRL1_100_10_MASK 0x30
|
|
+#define MALIBU_LED_100_CTRL1_1000_MASK 0x40
|
|
|
|
#define MALIBU_PHY_EEE_ADV_100M 0x0002
|
|
#define MALIBU_PHY_EEE_ADV_1000M 0x0004
|
|
@@ -118,6 +119,7 @@ extern "C"
|
|
#define MALIBU_PHY_MMD7_EGRESS_COUNTER_HIGH 0x802d
|
|
#define MALIBU_PHY_MMD7_EGRESS_COUNTER_LOW 0x802e
|
|
#define MALIBU_PHY_MMD7_EGRESS_ERROR_COUNTER 0x802f
|
|
+#define MALIBU_PHY_MMD7_LED_100_CTRL1 0x8074
|
|
#define MALIBU_PHY_MMD7_LED_1000_CTRL1 0x8076
|
|
|
|
|
|
--- a/src/hsl/phy/malibu_phy.c
|
|
+++ b/src/hsl/phy/malibu_phy.c
|
|
@@ -15,6 +15,8 @@
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
+#include <linux/of.h>
|
|
+
|
|
#include "sw.h"
|
|
#include "fal_port_ctrl.h"
|
|
#include "hsl_api.h"
|
|
@@ -1809,6 +1811,13 @@ malibu_phy_hw_init(a_uint32_t dev_id, a_
|
|
hsl_phy_modify_mmd(dev_id, phy_addr, A_FALSE, MALIBU_PHY_MMD7_NUM,
|
|
MALIBU_PHY_MMD7_LED_1000_CTRL1, MALIBU_LED_1000_CTRL1_100_10_MASK,
|
|
MALIBU_LED_1000_CTRL1_100_10_MASK);
|
|
+ if (of_machine_is_compatible("xiaomi,ax9000")) {
|
|
+ /* add 1000M link LED behavior for Xiaomi AX9000 */
|
|
+ hsl_phy_modify_mmd(dev_id, phy_addr, A_FALSE, MALIBU_PHY_MMD7_NUM,
|
|
+ MALIBU_PHY_MMD7_LED_100_CTRL1,
|
|
+ MALIBU_LED_100_CTRL1_1000_MASK,
|
|
+ MALIBU_LED_100_CTRL1_1000_MASK);
|
|
+ }
|
|
/*disable Extended next page*/
|
|
hsl_phy_modify_mii(dev_id, phy_addr, MALIBU_AUTONEG_ADVERT,
|
|
MALIBU_EXTENDED_NEXT_PAGE_EN, 0);
|