Commit 5582cbdf authored by Johannes Berg's avatar Johannes Berg
Browse files

Merge tag 'rtw-next-2025-06-25' of https://github.com/pkshih/rtw



Ping-Ke Shih says:
==================
rtw-next patches for v6.17

Regular development, refinement and minor fixes. Some notable changes are:

rtw88:

 * enable AP/ad-hoc modes for SDIO devices

rtw89:

 * implement BT-coexistence for WiFi MLO

 * ongoing to develop STA+P2P MCC
==================

Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parents 7322a7d8 16d8fd74
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1041,10 +1041,11 @@ static void rtl8187_stop(struct ieee80211_hw *dev, bool suspend)
	rtl818x_iowrite8(priv, &priv->map->CONFIG4, reg | RTL818X_CONFIG4_VCOOFF);
	rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_NORMAL);

	usb_kill_anchored_urbs(&priv->anchored);

	while ((skb = skb_dequeue(&priv->b_tx_status.queue)))
		dev_kfree_skb_any(skb);

	usb_kill_anchored_urbs(&priv->anchored);
	mutex_unlock(&priv->conf_mutex);

	if (!priv->is_rtl8187b)
+16 −7
Original line number Diff line number Diff line
@@ -572,8 +572,11 @@ static int _rtl_pci_init_one_rxdesc(struct ieee80211_hw *hw,
		dma_map_single(&rtlpci->pdev->dev, skb_tail_pointer(skb),
			       rtlpci->rxbuffersize, DMA_FROM_DEVICE);
	bufferaddress = *((dma_addr_t *)skb->cb);
	if (dma_mapping_error(&rtlpci->pdev->dev, bufferaddress))
	if (dma_mapping_error(&rtlpci->pdev->dev, bufferaddress)) {
		if (!new_skb)
			kfree_skb(skb);
		return 0;
	}
	rtlpci->rx_ring[rxring_idx].rx_buf[desc_idx] = skb;
	if (rtlpriv->use_new_trx_flow) {
		/* skb->cb may be 64 bit address */
@@ -802,13 +805,19 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw)
		skb = new_skb;
no_new:
		if (rtlpriv->use_new_trx_flow) {
			_rtl_pci_init_one_rxdesc(hw, skb, (u8 *)buffer_desc,
			if (!_rtl_pci_init_one_rxdesc(hw, skb, (u8 *)buffer_desc,
						      rxring_idx,
						 rtlpci->rx_ring[rxring_idx].idx);
						      rtlpci->rx_ring[rxring_idx].idx)) {
				if (new_skb)
					dev_kfree_skb_any(skb);
			}
		} else {
			_rtl_pci_init_one_rxdesc(hw, skb, (u8 *)pdesc,
			if (!_rtl_pci_init_one_rxdesc(hw, skb, (u8 *)pdesc,
						      rxring_idx,
						 rtlpci->rx_ring[rxring_idx].idx);
						      rtlpci->rx_ring[rxring_idx].idx)) {
				if (new_skb)
					dev_kfree_skb_any(skb);
			}
			if (rtlpci->rx_ring[rxring_idx].idx ==
			    rtlpci->rxringcount - 1)
				rtlpriv->cfg->ops->set_desc(hw, (u8 *)pdesc,
+3 −3
Original line number Diff line number Diff line
@@ -1738,9 +1738,9 @@ static void read_power_value_fromprom(struct ieee80211_hw *hw,
	}
}

static void _rtl88ee_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
						 bool autoload_fail,
						 u8 *hwinfo)
static noinline_for_stack void
_rtl88ee_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
				     bool autoload_fail, u8 *hwinfo)
{
	struct rtl_priv *rtlpriv = rtl_priv(hw);
	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
+1 −1
Original line number Diff line number Diff line
@@ -190,7 +190,7 @@ static bool rtl88e_get_btc_status(void)
	return false;
}

static struct rtl_hal_ops rtl8188ee_hal_ops = {
static const struct rtl_hal_ops rtl8188ee_hal_ops = {
	.init_sw_vars = rtl88e_init_sw_vars,
	.deinit_sw_vars = rtl88e_deinit_sw_vars,
	.read_eeprom_info = rtl88ee_read_eeprom_info,
+3 −3
Original line number Diff line number Diff line
@@ -1412,9 +1412,9 @@ void rtl92ce_update_interrupt_mask(struct ieee80211_hw *hw,
	rtl92ce_enable_interrupt(hw);
}

static void _rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
						 bool autoload_fail,
						 u8 *hwinfo)
static noinline_for_stack void
_rtl92ce_read_txpower_info_from_hwpg(struct ieee80211_hw *hw,
				     bool autoload_fail, u8 *hwinfo)
{
	struct rtl_priv *rtlpriv = rtl_priv(hw);
	struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
Loading