I am resending this patch, as it looks like it has been lost. Now that John Linville's wireless-dev.git tree has a specific ssb branch, it should be easier to merge it. Aurelien The conversion of the B44 driver to SSB bus added the functions __b44_{read,write}phy functions that have an argument phy_id. This gives a way to fix the b44_mii_{read,write} functions used for MII interfaces. The patch below does that. It allows B44 devices with integrated switch to be configured from userland. Signed-off-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> diff --git a/drivers/net/b44.c b/drivers/net/b44.c index 36724fb..e6883f4 100644 --- a/drivers/net/b44.c +++ b/drivers/net/b44.c @@ -300,16 +300,11 @@ static inline int b44_writephy(struct b44 *bp, int reg, u32 val) } /* miilib interface */ -/* FIXME FIXME: phy_id is ignored, bp->phy_addr use is unconditional - * due to code existing before miilib use was added to this driver. - * Someone should remove this artificial driver limitation in - * b44_{read,write}phy. bp->phy_addr itself is fine (and needed). - */ static int b44_mii_read(struct net_device *dev, int phy_id, int location) { u32 val; struct b44 *bp = netdev_priv(dev); - int rc = b44_readphy(bp, location, &val); + int rc = __b44_readphy(bp, phy_id, location, &val); if (rc) return 0xffffffff; return val; @@ -319,7 +314,7 @@ static void b44_mii_write(struct net_device *dev, int phy_id, int location, int val) { struct b44 *bp = netdev_priv(dev); - b44_writephy(bp, location, val); + __b44_writephy(bp, phy_id, location, val); } static int b44_phy_reset(struct b44 *bp) -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@xxxxxxxxxx | aurelien@xxxxxxxxxxx `- people.debian.org/~aurel32 | www.aurel32.net - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html