On Wed, Mar 18, 2015 at 10:02 AM, Rafał Miłecki <[email protected]> wrote:
> Signed-off-by: Rafał Miłecki <[email protected]>
> ---
> .../generic/files/drivers/net/phy/b53/b53_common.c | 23
> +++++++++++++++++++++-
> .../generic/files/drivers/net/phy/b53/b53_regs.h | 1 +
> 2 files changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> index e44d194..4597742 100644
> --- a/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> +++ b/target/linux/generic/files/drivers/net/phy/b53/b53_common.c
> @@ -525,7 +525,7 @@ static int b53_switch_reset(struct b53_device *dev)
> return -EINVAL;
> }
> }
> - } else if ((is531x5(dev) || is5301x(dev)) && dev->sw_dev.cpu_port ==
> B53_CPU_PORT) {
> + } else if (is531x5(dev) && dev->sw_dev.cpu_port == B53_CPU_PORT) {
> u8 mii_port_override;
>
> b53_read8(dev, B53_CTRL_PAGE, B53_PORT_OVERRIDE_CTRL,
> @@ -533,6 +533,27 @@ static int b53_switch_reset(struct b53_device *dev)
> b53_write8(dev, B53_CTRL_PAGE, B53_PORT_OVERRIDE_CTRL,
> mii_port_override | PORT_OVERRIDE_EN |
> PORT_OVERRIDE_LINK);
> + } else if (is5301x(dev)) {
> + /*
> + * CPU interface attached to port 8 requires specific
> handling.
> + * It uses different overriding register and extra ports 5
> and 7
> + * need to be configured as well.
> + */
> + if (dev->sw_dev.cpu_port == 8) {
> + u8 mii_port_override;
> +
> + b53_read8(dev, B53_CTRL_PAGE, B53_PORT_OVERRIDE_CTRL,
> + &mii_port_override);
> + mii_port_override |= PORT_OVERRIDE_LINK |
> + PORT_OVERRIDE_RX_FLOW |
> + PORT_OVERRIDE_TX_FLOW |
> + PORT_OVERRIDE_SPEED_2000M |
> + PORT_OVERRIDE_EN;
> + b53_write8(dev, B53_CTRL_PAGE, B53_PORT_OVERRIDE_CTRL,
> + mii_port_override);
> + } else {
> + pr_warn("overriding CPU port other than 8 is not
> supported yet\n");
> + }
> }
>
> b53_enable_mib(dev);
How about
@@ -530,9 +530,16 @@ static int b53_switch_reset(struct b53_device *dev)
b53_read8(dev, B53_CTRL_PAGE, B53_PORT_OVERRIDE_CTRL,
&mii_port_override);
+
+ mii_port_override |= PORT_OVERRIDE_LINK | PORT_OVERRIDE_EN;
+
+ if (is5301x(dev))
+ mii_port_override |= PORT_OVERRIDE_RX_FLOW |
+ PORT_OVERRIDE_TX_FLOW |
+ PORT_OVERRIDE_SPEED_2000M;
+
b53_write8(dev, B53_CTRL_PAGE, B53_PORT_OVERRIDE_CTRL,
- mii_port_override | PORT_OVERRIDE_EN |
- PORT_OVERRIDE_LINK);
+ mii_port_override);
}
b53_enable_mib(dev);
instead of creating a full new branch?
Jonas
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel