diff options
Diffstat (limited to 'drivers/net/wireless/b43/phy_common.h')
| -rw-r--r-- | drivers/net/wireless/b43/phy_common.h | 30 | 
1 files changed, 29 insertions, 1 deletions
diff --git a/drivers/net/wireless/b43/phy_common.h b/drivers/net/wireless/b43/phy_common.h index 0e619422884..4ad6240d9ff 100644 --- a/drivers/net/wireless/b43/phy_common.h +++ b/drivers/net/wireless/b43/phy_common.h @@ -39,6 +39,9 @@ struct b43_c32 { s32 i, q; };  #define B43_PHYVER_TYPE_SHIFT		8  #define B43_PHYVER_VERSION		0x00FF +/* PHY writes need to be flushed if we reach limit */ +#define B43_MAX_WRITES_IN_ROW		24 +  /**   * enum b43_interference_mitigation - Interference Mitigation mode   * @@ -191,6 +194,8 @@ struct b43_phy_a;  struct b43_phy_g;  struct b43_phy_n;  struct b43_phy_lp; +struct b43_phy_ht; +struct b43_phy_lcn;  struct b43_phy {  	/* Hardware operation callbacks. */ @@ -213,6 +218,10 @@ struct b43_phy {  		struct b43_phy_n *n;  		/* LP-PHY specific information */  		struct b43_phy_lp *lp; +		/* HT-PHY specific information */ +		struct b43_phy_ht *ht; +		/* LCN-PHY specific information */ +		struct b43_phy_lcn *lcn;  	};  	/* Band support flags. */ @@ -222,9 +231,12 @@ struct b43_phy {  	/* HT info */  	bool is_40mhz; -	/* GMODE bit enabled? */ +	/* Is GMODE (2 GHz mode) bit enabled? */  	bool gmode; +	/* After power reset full init has to be performed */ +	bool do_full_init; +  	/* Analog Type */  	u8 analog;  	/* B43_PHYTYPE_ */ @@ -232,6 +244,9 @@ struct b43_phy {  	/* PHY revision number. */  	u8 rev; +	/* Count writes since last read */ +	u8 writes_counter; +  	/* Radio versioning */  	u16 radio_manuf;	/* Radio manufacturer */  	u16 radio_ver;		/* Radio version */ @@ -353,6 +368,12 @@ void b43_radio_set(struct b43_wldev *dev, u16 offset, u16 set);  void b43_radio_maskset(struct b43_wldev *dev, u16 offset, u16 mask, u16 set);  /** + * b43_radio_wait_value - Waits for a given value in masked register read + */ +bool b43_radio_wait_value(struct b43_wldev *dev, u16 offset, u16 mask, +			  u16 value, int delay, int timeout); + +/**   * b43_radio_lock - Lock firmware radio register access   */  void b43_radio_lock(struct b43_wldev *dev); @@ -372,6 +393,9 @@ void b43_phy_lock(struct b43_wldev *dev);   */  void b43_phy_unlock(struct b43_wldev *dev); +void b43_phy_put_into_reset(struct b43_wldev *dev); +void b43_phy_take_out_of_reset(struct b43_wldev *dev); +  /**   * b43_switch_channel - Switch to another channel   */ @@ -430,6 +454,10 @@ int b43_phy_shm_tssi_read(struct b43_wldev *dev, u16 shm_offset);   */  void b43_phyop_switch_analog_generic(struct b43_wldev *dev, bool on); +bool b43_channel_type_is_40mhz(enum nl80211_channel_type channel_type); + +void b43_phy_force_clock(struct b43_wldev *dev, bool force); +  struct b43_c32 b43_cordic(int theta);  #endif /* LINUX_B43_PHY_COMMON_H_ */  | 
