Message ID | 1436273936-6908-2-git-send-email-guenther.kelleter@devolo.de |
---|---|
State | Superseded |
Headers | show |
Hi, On 07/07/2015 14:58, Günther Kelleter wrote: > to allow target specific override of phydev->supported. > why do you need to do this ? do you want to force a specific link type ? if so, then using a fixed link would be preferable to faking phy caps John > Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de> > --- > .../ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h | 1 + > .../ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c | 5 +++++ > 2 files changed, 6 insertions(+) > > diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h > index d46dc4e..aa7663b 100644 > --- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h > +++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h > @@ -30,6 +30,7 @@ struct ag71xx_platform_data { > u32 reset_bit; > u8 mac_addr[ETH_ALEN]; > struct device *mii_bus_dev; > + u32 supported; > > u8 has_gbit:1; > u8 is_ar91xx:1; > diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > index 9de77e9..0f5ec9c 100644 > --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > @@ -146,6 +146,11 @@ static int ag71xx_phy_connect_multi(struct ag71xx *ag) > else > phydev->supported &= PHY_BASIC_FEATURES; > > + if (pdata->supported) { > + dev_info(dev, "overriding phydev->supported (%08x)\n", pdata->supported); > + phydev->supported = pdata->supported; > + } > + > phydev->advertising = phydev->supported; > > dev_info(dev, "connected to PHY at %s [uid=%08x, driver=%s]\n", >
Hi > -----Original Message----- > From: John Crispin [mailto:blogic@openwrt.org] > Sent: Thursday, July 09, 2015 8:24 AM > To: Guenther Kelleter; openwrt-devel@lists.openwrt.org > Subject: Re: [OpenWrt-Devel] [PATCH v3 1/7] ar71xx: ag71xx: add pdata field > supported > > Hi, > > On 07/07/2015 14:58, Günther Kelleter wrote: > > to allow target specific override of phydev->supported. > > > > why do you need to do this ? do you want to force a specific link type ? > if so, then using a fixed link would be preferable to faking phy caps It simply doesn't work with autoneg on. The plc chip on the other end of eth0 doesn't sync. How can I force no autoneg 1000 full duplex on eth0 without this patch? I'm setting (see patch 3/7, target/linux/ar71xx/files/arch/mips/ath79/mach-dlan-pro-500-wp.c) + ath79_eth0_data.speed = SPEED_1000; + ath79_eth0_data.duplex = DUPLEX_FULL; But this has no effect. > > John > > > > Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de> > > --- > > .../ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h | 1 + > > .../ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c | 5 > +++++ > > 2 files changed, 6 insertions(+) > > > > diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach- > ath79/ag71xx_platform.h > b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h > > index d46dc4e..aa7663b 100644 > > --- a/target/linux/ar71xx/files/arch/mips/include/asm/mach- > ath79/ag71xx_platform.h > > +++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach- > ath79/ag71xx_platform.h > > @@ -30,6 +30,7 @@ struct ag71xx_platform_data { > > u32 reset_bit; > > u8 mac_addr[ETH_ALEN]; > > struct device *mii_bus_dev; > > + u32 supported; > > > > u8 has_gbit:1; > > u8 is_ar91xx:1; > > diff --git > a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > > index 9de77e9..0f5ec9c 100644 > > --- > a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > > +++ > b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c > > @@ -146,6 +146,11 @@ static int ag71xx_phy_connect_multi(struct ag71xx *ag) > > else > > phydev->supported &= PHY_BASIC_FEATURES; > > > > + if (pdata->supported) { > > + dev_info(dev, "overriding phydev->supported (%08x)\n", pdata- > >supported); > > + phydev->supported = pdata->supported; > > + } > > + > > phydev->advertising = phydev->supported; > > > > dev_info(dev, "connected to PHY at %s [uid=%08x, driver=%s]\n", > >
On 09/07/2015 09:42, Guenther Kelleter wrote: > Hi > >> -----Original Message----- >> From: John Crispin [mailto:blogic@openwrt.org] >> Sent: Thursday, July 09, 2015 8:24 AM >> To: Guenther Kelleter; openwrt-devel@lists.openwrt.org >> Subject: Re: [OpenWrt-Devel] [PATCH v3 1/7] ar71xx: ag71xx: add pdata field >> supported >> >> Hi, >> >> On 07/07/2015 14:58, Günther Kelleter wrote: >>> to allow target specific override of phydev->supported. >>> >> >> why do you need to do this ? do you want to force a specific link type ? >> if so, then using a fixed link would be preferable to faking phy caps > > > It simply doesn't work with autoneg on. The plc chip on the other end of eth0 doesn't sync. How can I force no autoneg 1000 full duplex on eth0 without this patch? > I'm setting (see patch 3/7, target/linux/ar71xx/files/arch/mips/ath79/mach-dlan-pro-500-wp.c) > + ath79_eth0_data.speed = SPEED_1000; > + ath79_eth0_data.duplex = DUPLEX_FULL; > But this has no effect. > > ok, it looked something like this. gimme a day to figure out why explicitly setting up the speed does not work.
Hi > -----Original Message----- > From: John Crispin [mailto:blogic@openwrt.org] > Sent: Thursday, July 09, 2015 9:56 AM > To: Guenther Kelleter; openwrt-devel@lists.openwrt.org > Subject: Re: [OpenWrt-Devel] [PATCH v3 1/7] ar71xx: ag71xx: add pdata field > supported > > > > On 09/07/2015 09:42, Guenther Kelleter wrote: > > Hi > > > >> -----Original Message----- > >> From: John Crispin [mailto:blogic@openwrt.org] > >> Sent: Thursday, July 09, 2015 8:24 AM > >> To: Guenther Kelleter; openwrt-devel@lists.openwrt.org > >> Subject: Re: [OpenWrt-Devel] [PATCH v3 1/7] ar71xx: ag71xx: add pdata > >> field supported > >> > >> Hi, > >> > >> On 07/07/2015 14:58, Günther Kelleter wrote: > >>> to allow target specific override of phydev->supported. > >>> > >> > >> why do you need to do this ? do you want to force a specific link type ? > >> if so, then using a fixed link would be preferable to faking phy caps > > > > > > It simply doesn't work with autoneg on. The plc chip on the other end of > eth0 doesn't sync. How can I force no autoneg 1000 full duplex on eth0 without > this patch? > > I'm setting (see patch 3/7, > > target/linux/ar71xx/files/arch/mips/ath79/mach-dlan-pro-500-wp.c) > > + ath79_eth0_data.speed = SPEED_1000; > > + ath79_eth0_data.duplex = DUPLEX_FULL; > > But this has no effect. > > > > > > ok, it looked something like this. gimme a day to figure out why explicitly > setting up the speed does not work. You may stop searching because I've found the wrong setting. I have to keep ath79_eth0_data.phy_mask unset (=0) to get the fixed speed settings applied. Günther
diff --git a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h index d46dc4e..aa7663b 100644 --- a/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h +++ b/target/linux/ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h @@ -30,6 +30,7 @@ struct ag71xx_platform_data { u32 reset_bit; u8 mac_addr[ETH_ALEN]; struct device *mii_bus_dev; + u32 supported; u8 has_gbit:1; u8 is_ar91xx:1; diff --git a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c index 9de77e9..0f5ec9c 100644 --- a/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c +++ b/target/linux/ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c @@ -146,6 +146,11 @@ static int ag71xx_phy_connect_multi(struct ag71xx *ag) else phydev->supported &= PHY_BASIC_FEATURES; + if (pdata->supported) { + dev_info(dev, "overriding phydev->supported (%08x)\n", pdata->supported); + phydev->supported = pdata->supported; + } + phydev->advertising = phydev->supported; dev_info(dev, "connected to PHY at %s [uid=%08x, driver=%s]\n",
to allow target specific override of phydev->supported. Signed-off-by: Günther Kelleter <guenther.kelleter@devolo.de> --- .../ar71xx/files/arch/mips/include/asm/mach-ath79/ag71xx_platform.h | 1 + .../ar71xx/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_phy.c | 5 +++++ 2 files changed, 6 insertions(+)