Skip to content
Snippets Groups Projects
Select Git revision
  • 54dcf935d543aee78871b89f97fa295705885c73
  • experimental default protected
  • v2023.2.5-ffs
  • nrb/ex400-remove-wps
  • nrb/airmax-test
  • v2023.2.4-ffs
  • nrb/ar9344-reset-sequence
  • autinerd/experimental-openwrt-24.10
  • v2023.2.3-ffs
  • v2023.2.2-ffs
  • v2023.2-ffs
  • v2023.1-ffs
  • v2022.1.4-ffs
  • feature/addMikrotikwAP
  • v2022.1.3-ffs
  • v2021.1.2-ffs
  • v2022.1.1-ffs
  • master protected
  • v2021.1.1-ffs
  • nrb/gluon-master-cpe510
  • v2021.1-ffs
  • experimental-2025-08-13
  • experimental-2025-08-13-base
  • experimental-2025-08-04
  • experimental-2025-08-04-base
  • experimental-2025-07-31
  • experimental-2025-07-31-base
  • experimental-2025-07-29
  • experimental-2025-07-29-base
  • experimental-2025-07-28
  • experimental-2025-07-28-base
  • experimental-2025-07-26
  • experimental-2025-07-26-base
  • experimental-2025-07-24
  • experimental-2025-07-24-base
  • experimental-2025-07-22
  • experimental-2025-07-22-base
  • experimental-2025-07-21
  • experimental-2025-07-21-base
  • experimental-2025-07-20
  • experimental-2025-07-20-base
41 results

modules

Blame
  • 0040-ar71xx-fix-qca956x-ethernet-initialization.patch 2.01 KiB
    From: Matthias Schiffer <mschiffer@universe-factory.net>
    Date: Fri, 13 May 2016 21:01:19 +0200
    Subject: ar71xx: fix qca956x ethernet initialization
    
    Complete internal switch initialization for QCA956X.
    Set default mdio device if the interface mode of GE0 is not SGMII (fix ticket #21520).
    
    Signed-off-by: Weijie Gao <hackpascal@gmail.com>
    
    Backport of OpenWrt r48937
    
    diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
    index 12a376e..b43c80a 100644
    --- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
    +++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c
    @@ -271,6 +271,7 @@ void __init ath79_register_mdio(unsigned int id, u32 phy_mask)
     	case ATH79_SOC_QCA956X:
     		if (id == 1)
     			mdio_data->builtin_switch = 1;
    +		mdio_data->is_ar934x = 1;
     		break;
     
     	default:
    @@ -1123,16 +1124,25 @@ void __init ath79_register_eth(unsigned int id)
     		if (id == 0) {
     			pdata->reset_bit = QCA955X_RESET_GE0_MAC |
     					   QCA955X_RESET_GE0_MDIO;
    +
     			if (pdata->phy_if_mode == PHY_INTERFACE_MODE_SGMII)
     				pdata->set_speed = qca956x_set_speed_sgmii;
     			else
    -				/* FIXME */
    -				pdata->set_speed = ath79_set_speed_dummy;
    +				pdata->set_speed = ath79_set_speed_ge0;
     		} else {
     			pdata->reset_bit = QCA955X_RESET_GE1_MAC |
     					   QCA955X_RESET_GE1_MDIO;
    -			/* FIXME */
    +
     			pdata->set_speed = ath79_set_speed_dummy;
    +
    +			pdata->switch_data = &ath79_switch_data;
    +
    +			pdata->speed = SPEED_1000;
    +			pdata->duplex = DUPLEX_FULL;
    +
    +			/* reset the built-in switch */
    +			ath79_device_reset_set(AR934X_RESET_ETH_SWITCH);
    +			ath79_device_reset_clear(AR934X_RESET_ETH_SWITCH);
     		}
     
     		pdata->ddr_flush = ath79_ddr_no_flush;
    @@ -1196,6 +1206,11 @@ void __init ath79_register_eth(unsigned int id)
     			/* don't assign any MDIO device by default */
     			break;
     
    +		case ATH79_SOC_QCA956X:
    +			if (pdata->phy_if_mode != PHY_INTERFACE_MODE_SGMII)
    +				pdata->mii_bus_dev = &ath79_mdio1_device.dev;
    +			break;
    +
     		default:
     			pdata->mii_bus_dev = &ath79_mdio0_device.dev;
     			break;