Forum Discussion
Altera_Forum
Honored Contributor
15 years agoThe same kind of hack for using PCS works for the altera_tse.c drivers. This is a diff against the latest checkout (linux 2.6.35):
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -112,8 +112,10 @@ static int altera_tse_mdio_read(struct mii_bus *bus, int mii_id, int regnum)
mac_dev = (alt_tse_mac *) bus->priv;
/* set MDIO address */
- writel(mii_id, &mac_dev->mdio_phy0_addr);
- mdio_regs = (unsigned int *) &mac_dev->mdio_phy0;
+ //writel(mii_id, &mac_dev->mdio_phy0_addr);
+ //mdio_regs = (unsigned int *) &mac_dev->mdio_phy0;
+ writel(mii_id, &mac_dev->mdio_phy1_addr);
+ mdio_regs = (unsigned int *) &mac_dev->mdio_phy1;
/* get the data */
data = readl(&mdio_regs);
@@ -130,8 +132,10 @@ static int altera_tse_mdio_write(struct mii_bus *bus, int mii_id, int regnum, u1
mac_dev = (alt_tse_mac *) bus->priv;
/* set MDIO address */
- writel(mii_id, &mac_dev->mdio_phy0_addr);
- mdio_regs = (unsigned int *) &mac_dev->mdio_phy0;
+ //writel(mii_id, &mac_dev->mdio_phy0_addr);
+ //mdio_regs = (unsigned int *) &mac_dev->mdio_phy0;
+ writel(mii_id, &mac_dev->mdio_phy1_addr);
+ mdio_regs = (unsigned int *) &mac_dev->mdio_phy1;
/* get the data */
data = (unsigned int) value;