[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