--- linux-2.6.22.14/drivers/net/ucc_geth_mii.c 2008-01-22 14:03:03.000000000 +0200 +++ linux/drivers/net/ucc_geth_mii.c 2008-01-15 11:04:02.000000000 +0200 @@ -91,7 +91,6 @@ int uec_mdio_read(struct mii_bus *bus, i (mii_id << MIIMADD_PHY_ADDRESS_SHIFT) | regnum); /* Clear miimcom, perform an MII management read cycle */ - out_be32(®s->miimcom, 0); out_be32(®s->miimcom, MIIMCOM_READ_CYCLE); /* Wait till MII management write is complete */ @@ -101,6 +100,8 @@ int uec_mdio_read(struct mii_bus *bus, i /* Read MII management status */ value = in_be32(®s->miimstat); + out_be32(®s->miimcom, 0); + return value; }