diff options
Diffstat (limited to 'drivers/net/mdio/mdio-bitbang.c')
| -rw-r--r-- | drivers/net/mdio/mdio-bitbang.c | 12 | 
1 files changed, 8 insertions, 4 deletions
| diff --git a/drivers/net/mdio/mdio-bitbang.c b/drivers/net/mdio/mdio-bitbang.c index d3915f831854..07609114a26b 100644 --- a/drivers/net/mdio/mdio-bitbang.c +++ b/drivers/net/mdio/mdio-bitbang.c @@ -14,10 +14,10 @@   * Vitaly Bordug <vbordug@ru.mvista.com>   */ -#include <linux/module.h> +#include <linux/delay.h>  #include <linux/mdio-bitbang.h> +#include <linux/module.h>  #include <linux/types.h> -#include <linux/delay.h>  #define MDIO_READ 2  #define MDIO_WRITE 1 @@ -158,7 +158,7 @@ int mdiobb_read(struct mii_bus *bus, int phy, int reg)  		reg = mdiobb_cmd_addr(ctrl, phy, reg);  		mdiobb_cmd(ctrl, MDIO_C45_READ, phy, reg);  	} else -		mdiobb_cmd(ctrl, MDIO_READ, phy, reg); +		mdiobb_cmd(ctrl, ctrl->op_c22_read, phy, reg);  	ctrl->ops->set_mdio_dir(ctrl, 0); @@ -190,7 +190,7 @@ int mdiobb_write(struct mii_bus *bus, int phy, int reg, u16 val)  		reg = mdiobb_cmd_addr(ctrl, phy, reg);  		mdiobb_cmd(ctrl, MDIO_C45_WRITE, phy, reg);  	} else -		mdiobb_cmd(ctrl, MDIO_WRITE, phy, reg); +		mdiobb_cmd(ctrl, ctrl->op_c22_write, phy, reg);  	/* send the turnaround (10) */  	mdiobb_send_bit(ctrl, 1); @@ -217,6 +217,10 @@ struct mii_bus *alloc_mdio_bitbang(struct mdiobb_ctrl *ctrl)  	bus->read = mdiobb_read;  	bus->write = mdiobb_write;  	bus->priv = ctrl; +	if (!ctrl->override_op_c22) { +		ctrl->op_c22_read = MDIO_READ; +		ctrl->op_c22_write = MDIO_WRITE; +	}  	return bus;  } | 
