Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73d51f38 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by John W. Linville
Browse files

b43: HT-PHY: report signal to mac80211

parent 694718d8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -740,7 +740,14 @@ void b43_rx(struct b43_wldev *dev, struct sk_buff *skb, const void *_rxhdr)

	/* Link quality statistics */
	switch (chanstat & B43_RX_CHAN_PHYTYPE) {
	case B43_PHYTYPE_HT:
		/* TODO: is max the right choice? */
		status.signal = max_t(__s8,
			max(rxhdr->phy_ht_power0, rxhdr->phy_ht_power1),
			rxhdr->phy_ht_power2);
		break;
	case B43_PHYTYPE_N:
		/* Broadcom has code for min and avg, but always uses max */
		if (rxhdr->power0 == 16 || rxhdr->power0 == 32)
			status.signal = max(rxhdr->power1, rxhdr->power2);
		else
+15 −1
Original line number Diff line number Diff line
@@ -249,6 +249,12 @@ struct b43_rxhdr_fw4 {
		} __packed;
	} __packed;
	union {
		/* HT-PHY */
		struct {
			PAD_BYTES(1);
			__s8 phy_ht_power0;
		} __packed;

		/* RSSI for N-PHYs */
		struct {
			__s8 power2;
@@ -257,7 +263,15 @@ struct b43_rxhdr_fw4 {

		__le16 phy_status2;	/* PHY RX Status 2 */
	} __packed;
	union {
		/* HT-PHY */
		struct {
			__s8 phy_ht_power1;
			__s8 phy_ht_power2;
		} __packed;

		__le16 phy_status3;	/* PHY RX Status 3 */
	} __packed;
	union {
		/* Tested with 598.314, 644.1001 and 666.2 */
		struct {