b43: Fix and update LP-PHY code
-Fix a few nasty typos (b43_phy_* operations instead of b43_radio_*) in the channel tune routines. -Fix some typos & spec errors found by MMIO tracing. -Optimize b43_phy_write & b43_phy_mask/set/maskset to use only the minimal number of MMIO accesses. (Write is possible using a single 32-bit MMIO write, while set/mask/maskset can be done in 3 16-bit MMIOs). -Set the default channel back to 1, as the bug forcing us to use channel 7 is now fixed. With this, the device comes up, scans, associates, transmits, receives, monitors and injects on all channels - in other words, it's fully functional. Sensitivity and TX power are still sub-optimal, due to the lack of calibration (that's next on my list). Signed-off-by: Gábor Stefanik <netrolller.3d@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
John W. Linville
parent
d8fa338ee0
commit
68ec53292c
@@ -95,6 +95,8 @@ enum b43_txpwr_result {
|
||||
* Must not be NULL.
|
||||
* @phy_write: Write to a PHY register.
|
||||
* Must not be NULL.
|
||||
* @phy_maskset: Maskset a PHY register, taking shortcuts.
|
||||
* If it is NULL, a generic algorithm is used.
|
||||
* @radio_read: Read from a Radio register.
|
||||
* Must not be NULL.
|
||||
* @radio_write: Write to a Radio register.
|
||||
@@ -154,6 +156,7 @@ struct b43_phy_operations {
|
||||
/* Register access */
|
||||
u16 (*phy_read)(struct b43_wldev *dev, u16 reg);
|
||||
void (*phy_write)(struct b43_wldev *dev, u16 reg, u16 value);
|
||||
void (*phy_maskset)(struct b43_wldev *dev, u16 reg, u16 mask, u16 set);
|
||||
u16 (*radio_read)(struct b43_wldev *dev, u16 reg);
|
||||
void (*radio_write)(struct b43_wldev *dev, u16 reg, u16 value);
|
||||
|
||||
|
Reference in New Issue
Block a user