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

Commit 3b971a7c authored by David S. Miller's avatar David S. Miller
Browse files
parents b12f62ef e29ec624
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ static struct usb_device_id btusb_table[] = {
	/* Canyon CN-BTU1 with HID interfaces */
	{ USB_DEVICE(0x0c10, 0x0000) },

	/* Broadcom BCM20702A0 */
	{ USB_DEVICE(0x413c, 0x8197) },

	{ }	/* Terminating entry */
};

+2 −0
Original line number Diff line number Diff line
@@ -254,6 +254,8 @@ ath_reg_apply_active_scan_flags(struct wiphy *wiphy,
	int r;

	sband = wiphy->bands[IEEE80211_BAND_2GHZ];
	if (!sband)
		return;

	/*
	 * If no country IE has been received always enable active scan
+13 −2
Original line number Diff line number Diff line
@@ -175,6 +175,7 @@ void b43_generate_plcp_hdr(struct b43_plcp_hdr4 *plcp,
	}
}

/* TODO: verify if needed for SSLPN or LCN  */
static u16 b43_generate_tx_phy_ctl1(struct b43_wldev *dev, u8 bitrate)
{
	const struct b43_phy *phy = &dev->phy;
@@ -256,6 +257,9 @@ int b43_generate_txhdr(struct b43_wldev *dev,
	unsigned int plcp_fragment_len;
	u32 mac_ctl = 0;
	u16 phy_ctl = 0;
	bool fill_phy_ctl1 = (phy->type == B43_PHYTYPE_LP ||
			      phy->type == B43_PHYTYPE_N ||
			      phy->type == B43_PHYTYPE_HT);
	u8 extra_ft = 0;
	struct ieee80211_rate *txrate;
	struct ieee80211_tx_rate *rates;
@@ -531,7 +535,7 @@ int b43_generate_txhdr(struct b43_wldev *dev,
			extra_ft |= B43_TXH_EFT_RTSFB_CCK;

		if (rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS &&
		    phy->type == B43_PHYTYPE_N) {
		    fill_phy_ctl1) {
			txhdr->phy_ctl1_rts = cpu_to_le16(
				b43_generate_tx_phy_ctl1(dev, rts_rate));
			txhdr->phy_ctl1_rts_fb = cpu_to_le16(
@@ -552,7 +556,7 @@ int b43_generate_txhdr(struct b43_wldev *dev,
		break;
	}

	if (phy->type == B43_PHYTYPE_N) {
	if (fill_phy_ctl1) {
		txhdr->phy_ctl1 =
			cpu_to_le16(b43_generate_tx_phy_ctl1(dev, rate));
		txhdr->phy_ctl1_fb =
@@ -736,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 {
+3 −2
Original line number Diff line number Diff line
@@ -358,13 +358,14 @@ static uint nrxdactive(struct dma_info *di, uint h, uint t)

static uint _dma_ctrlflags(struct dma_info *di, uint mask, uint flags)
{
	uint dmactrlflags = di->dma.dmactrlflags;
	uint dmactrlflags;

	if (di == NULL) {
		DMA_ERROR(("%s: _dma_ctrlflags: NULL dma handle\n", di->name));
		DMA_ERROR(("_dma_ctrlflags: NULL dma handle\n"));
		return 0;
	}

	dmactrlflags = di->dma.dmactrlflags;
	dmactrlflags &= ~mask;
	dmactrlflags |= flags;

Loading