[EMAIL PROTECTED] writes:

> From: Anant Gole <[EMAIL PROTECTED]>
>
> The module parameters for speed and duplex were not being honoured
> due to a coding bug resulting into auto negotiation all the time.
>
> Signed-off-by: Anant Gole <[EMAIL PROTECTED]>

Thanks, pushed.

Kevin

>  drivers/net/davinci_emac.c |   14 +++++++++-----
>  1 file changed, 9 insertions(+), 5 deletions(-)
>
> Index: linux-davinci-2.6/drivers/net/davinci_emac.c
> ===================================================================
> --- linux-davinci-2.6.orig/drivers/net/davinci_emac.c
> +++ linux-davinci-2.6/drivers/net/davinci_emac.c
> @@ -893,7 +893,7 @@ static void emac_set_phymode(struct emac
>               priv->speed = EMAC_SPEED_AUTO;
>               priv->duplex = EMAC_DUPLEX_UNKNOWN;
>               phy_mode = NWAY_AUTO_ALL;
> -     } else if (EMAC_SPEED_10MBPS == priv->speed) {
> +     } else if (EMAC_SPEED_10MBPS == cfg_link_speed) {
>               /* Check if bus speed allows 10mbps */
>               if (priv->mdio.mdio_bus_frequency <=
>                   EMAC_MIN_FREQUENCY_FOR_10MBPS) {
> @@ -905,14 +905,14 @@ static void emac_set_phymode(struct emac
>                       }
>               }
>               priv->speed = EMAC_SPEED_10MBPS;
> -             if (EMAC_DUPLEX_HALF == priv->duplex) {
> +             if (EMAC_DUPLEX_HALF == cfg_link_duplex) {
>                       phy_mode = NWAY_HD10;
>                       priv->duplex = EMAC_DUPLEX_HALF;
>               } else {
>                       phy_mode = NWAY_FD10;
>                       priv->duplex = EMAC_DUPLEX_FULL;
>               }
> -     } else if (EMAC_SPEED_100MBPS == priv->speed) {
> +     } else if (EMAC_SPEED_100MBPS == cfg_link_speed) {
>               if (priv->mdio.mdio_bus_frequency <=
>                   EMAC_MIN_FREQUENCY_FOR_100MBPS) {
>                       if (netif_msg_drv(priv)) {
> @@ -924,17 +924,21 @@ static void emac_set_phymode(struct emac
>                       }
>               }
>               priv->speed = EMAC_SPEED_100MBPS;
> -             if (EMAC_DUPLEX_HALF == priv->duplex) {
> +             if (EMAC_DUPLEX_HALF == cfg_link_duplex) {
>                       phy_mode = NWAY_HD100;
>                       priv->duplex = EMAC_DUPLEX_HALF;
>               } else {
>                       phy_mode = NWAY_FD100;
>                       priv->duplex = EMAC_DUPLEX_FULL;
>               }
> -     } else if (EMAC_SPEED_1GBPS == priv->speed) {
> +     } else if (EMAC_SPEED_1GBPS == cfg_link_speed) {
>               phy_mode = NWAY_AUTO_ALL; /* Temporarily */
> +             priv->speed = EMAC_SPEED_AUTO;
> +             priv->duplex = EMAC_DUPLEX_UNKNOWN;
>       } else {
>               phy_mode = NWAY_AUTO_ALL; /* Fall back if wrong params set */
> +             priv->speed = EMAC_SPEED_AUTO;
> +             priv->duplex = EMAC_DUPLEX_UNKNOWN;
>       }
>       emac_mdio_set_phy_mode(phy_mode);
>       emac_update_phystatus(priv);
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to