b43: Remove QoS update workqueue
[safe/jmp/linux-2.6] / drivers / net / wireless / b43 / phy_common.c
index 5a550a7..4d4345d 100644 (file)
 #include "phy_common.h"
 #include "phy_g.h"
 #include "phy_a.h"
-#include "nphy.h"
+#include "phy_n.h"
+#include "phy_lp.h"
 #include "b43.h"
 #include "main.h"
 
 
-int b43_phy_operations_setup(struct b43_wldev *dev)
+int b43_phy_allocate(struct b43_wldev *dev)
 {
        struct b43_phy *phy = &(dev->phy);
        int err;
@@ -54,7 +55,9 @@ int b43_phy_operations_setup(struct b43_wldev *dev)
 #endif
                break;
        case B43_PHYTYPE_LP:
-               /* FIXME: Not yet */
+#ifdef CONFIG_B43_PHY_LP
+               phy->ops = &b43_phyops_lp;
+#endif
                break;
        }
        if (B43_WARN_ON(!phy->ops))
@@ -67,6 +70,12 @@ int b43_phy_operations_setup(struct b43_wldev *dev)
        return err;
 }
 
+void b43_phy_free(struct b43_wldev *dev)
+{
+       dev->phy.ops->free(dev);
+       dev->phy.ops = NULL;
+}
+
 int b43_phy_init(struct b43_wldev *dev)
 {
        struct b43_phy *phy = &dev->phy;
@@ -365,3 +374,8 @@ int b43_phy_shm_tssi_read(struct b43_wldev *dev, u16 shm_offset)
 
        return average;
 }
+
+void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on)
+{
+       b43_write16(dev, B43_MMIO_PHY0, on ? 0 : 0xF4);
+}