Signed-off-by: Rafał Miłecki <[email protected]>
---
As always, I've hacked MMIO ops to return 0xFFFF for 0x908 PHY reg.
This allowed finding masks used by closed source driver.

At the beginning 0x908 PHY reg ops are following:
 phy_read(0x0908) -> 0xffff
phy_write(0x0908) <- 0x0002
(...)
 phy_read(0x0908) -> 0xffff
phy_write(0x0908) <- 0x0020
(...)
 phy_read(0x0908) -> 0xffff
phy_write(0x0908) <- 0x0200

Later this is always like this:
 phy_read(0x0908) -> 0xffff
phy_write(0x0908) <- 0x0000

We do not know the proper condition yet, let's use FIXME for it.
---
 drivers/net/wireless/b43/phy_ht.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/b43/phy_ht.c 
b/drivers/net/wireless/b43/phy_ht.c
index 42bea30..3bc1fe7 100644
--- a/drivers/net/wireless/b43/phy_ht.c
+++ b/drivers/net/wireless/b43/phy_ht.c
@@ -104,9 +104,14 @@ static void b43_phy_ht_channel_setup(struct b43_wldev *dev,
 
        /* TODO: separated function? */
        for (i = 0; i < 3; i++) {
+               u16 mask;
                u32 tmp = b43_httab_read(dev, B43_HTTAB32(26, 0xE8));
 
-               /* TODO: some op on PHY reg 0x908 */
+               if (0) /* FIXME */
+                       mask = ~(0x2 << (i * 4));
+               else
+                       mask = ~0;
+               b43_phy_mask(dev, B43_PHY_EXTG(0x108), mask);
 
                b43_httab_write(dev, B43_HTTAB16(7, 0x110 + i), tmp >> 16);
                b43_httab_write(dev, B43_HTTAB8(13, 0x63 + (i * 4)),
-- 
1.7.1


_______________________________________________
b43-dev mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/b43-dev

Reply via email to