Don't try to cache the page setting - always set the page before

doing a switch register read/write.

PR:		kern/172968
This commit is contained in:
Adrian Chadd 2012-10-22 22:32:52 +00:00
parent 2da1951583
commit 68629cc4f1

View File

@ -72,10 +72,17 @@ arswitch_split_setpage(device_t dev, uint32_t addr, uint16_t *phy,
*phy = (((addr) >> 6) & 0x07) | 0x10;
*reg = ((addr) >> 1) & 0x1f;
if (sc->page != page) {
MDIO_WRITEREG(device_get_parent(dev), 0x18, 0, page);
sc->page = page;
}
/*
* The earlier code would only switch the page
* over if the page were different. Experiments have
* shown that this is unstable.
*
* Hence, the page is always set here.
*
* See PR kern/172968
*/
MDIO_WRITEREG(device_get_parent(dev), 0x18, 0, page);
sc->page = page;
}
/*