You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem
This commit is contained in:
@@ -218,7 +218,14 @@ int bcma_gpio_init(struct bcma_drv_cc *cc)
|
||||
#if IS_BUILTIN(CONFIG_BCMA_HOST_SOC)
|
||||
chip->to_irq = bcma_gpio_to_irq;
|
||||
#endif
|
||||
chip->ngpio = 16;
|
||||
switch (cc->core->bus->chipinfo.id) {
|
||||
case BCMA_CHIP_ID_BCM5357:
|
||||
chip->ngpio = 32;
|
||||
break;
|
||||
default:
|
||||
chip->ngpio = 16;
|
||||
}
|
||||
|
||||
/* There is just one SoC in one device and its GPIO addresses should be
|
||||
* deterministic to address them more easily. The other buses could get
|
||||
* a random base number. */
|
||||
|
||||
@@ -901,7 +901,7 @@ static void bluecard_release(struct pcmcia_device *link)
|
||||
|
||||
bluecard_close(info);
|
||||
|
||||
del_timer(&(info->timer));
|
||||
del_timer_sync(&(info->timer));
|
||||
|
||||
pcmcia_disable_device(link);
|
||||
}
|
||||
|
||||
@@ -59,12 +59,13 @@ bool btmrvl_check_evtpkt(struct btmrvl_private *priv, struct sk_buff *skb)
|
||||
priv->btmrvl_dev.sendcmdflag = false;
|
||||
priv->adapter->cmd_complete = true;
|
||||
wake_up_interruptible(&priv->adapter->cmd_wait_q);
|
||||
}
|
||||
|
||||
if (hci_opcode_ogf(opcode) == 0x3F) {
|
||||
BT_DBG("vendor event skipped: opcode=%#4.4x", opcode);
|
||||
kfree_skb(skb);
|
||||
return false;
|
||||
if (hci_opcode_ogf(opcode) == 0x3F) {
|
||||
BT_DBG("vendor event skipped: opcode=%#4.4x",
|
||||
opcode);
|
||||
kfree_skb(skb);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -572,7 +572,7 @@ static void carl9170_ps_beacon(struct ar9170 *ar, void *data, unsigned int len)
|
||||
|
||||
static void carl9170_ba_check(struct ar9170 *ar, void *data, unsigned int len)
|
||||
{
|
||||
struct ieee80211_bar *bar = (void *) data;
|
||||
struct ieee80211_bar *bar = data;
|
||||
struct carl9170_bar_list_entry *entry;
|
||||
unsigned int queue;
|
||||
|
||||
|
||||
@@ -1354,13 +1354,14 @@ static s32 brcmf_set_auth_type(struct net_device *ndev,
|
||||
}
|
||||
|
||||
static s32
|
||||
brcmf_set_set_cipher(struct net_device *ndev,
|
||||
struct cfg80211_connect_params *sme)
|
||||
brcmf_set_wsec_mode(struct net_device *ndev,
|
||||
struct cfg80211_connect_params *sme, bool mfp)
|
||||
{
|
||||
struct brcmf_cfg80211_profile *profile = ndev_to_prof(ndev);
|
||||
struct brcmf_cfg80211_security *sec;
|
||||
s32 pval = 0;
|
||||
s32 gval = 0;
|
||||
s32 wsec;
|
||||
s32 err = 0;
|
||||
|
||||
if (sme->crypto.n_ciphers_pairwise) {
|
||||
@@ -1412,7 +1413,12 @@ brcmf_set_set_cipher(struct net_device *ndev,
|
||||
if (brcmf_find_wpsie(sme->ie, sme->ie_len) && !pval && !gval &&
|
||||
sme->privacy)
|
||||
pval = AES_ENABLED;
|
||||
err = brcmf_fil_bsscfg_int_set(netdev_priv(ndev), "wsec", pval | gval);
|
||||
|
||||
if (mfp)
|
||||
wsec = pval | gval | MFP_CAPABLE;
|
||||
else
|
||||
wsec = pval | gval;
|
||||
err = brcmf_fil_bsscfg_int_set(netdev_priv(ndev), "wsec", wsec);
|
||||
if (err) {
|
||||
brcmf_err("error (%d)\n", err);
|
||||
return err;
|
||||
@@ -1582,7 +1588,6 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
|
||||
u32 ie_len;
|
||||
struct brcmf_ext_join_params_le *ext_join_params;
|
||||
u16 chanspec;
|
||||
|
||||
s32 err = 0;
|
||||
|
||||
brcmf_dbg(TRACE, "Enter\n");
|
||||
@@ -1651,7 +1656,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev,
|
||||
goto done;
|
||||
}
|
||||
|
||||
err = brcmf_set_set_cipher(ndev, sme);
|
||||
err = brcmf_set_wsec_mode(ndev, sme, sme->mfp == NL80211_MFP_REQUIRED);
|
||||
if (err) {
|
||||
brcmf_err("wl_set_set_cipher failed (%d)\n", err);
|
||||
goto done;
|
||||
|
||||
@@ -217,6 +217,9 @@ static inline bool ac_bitmap_tst(u8 bitmap, int prec)
|
||||
#define WSEC_SWFLAG 0x0008
|
||||
/* to go into transition mode without setting wep */
|
||||
#define SES_OW_ENABLED 0x0040
|
||||
/* MFP */
|
||||
#define MFP_CAPABLE 0x0200
|
||||
#define MFP_REQUIRED 0x0400
|
||||
|
||||
/* WPA authentication mode bitvec */
|
||||
#define WPA_AUTH_DISABLED 0x0000 /* Legacy (i.e., non-WPA) */
|
||||
|
||||
@@ -277,11 +277,11 @@ static int mwifiex_dnld_sleep_confirm_cmd(struct mwifiex_adapter *adapter)
|
||||
|
||||
priv = mwifiex_get_priv(adapter, MWIFIEX_BSS_ROLE_ANY);
|
||||
|
||||
adapter->seq_num++;
|
||||
sleep_cfm_buf->seq_num =
|
||||
cpu_to_le16((HostCmd_SET_SEQ_NO_BSS_INFO
|
||||
(adapter->seq_num, priv->bss_num,
|
||||
priv->bss_type)));
|
||||
adapter->seq_num++;
|
||||
|
||||
if (adapter->iface_type == MWIFIEX_USB) {
|
||||
sleep_cfm_tmp =
|
||||
@@ -509,6 +509,11 @@ int mwifiex_send_cmd(struct mwifiex_private *priv, u16 cmd_no,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (adapter->hs_enabling && cmd_no != HostCmd_CMD_802_11_HS_CFG_ENH) {
|
||||
dev_err(adapter->dev, "PREP_CMD: host entering sleep state\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (adapter->surprise_removed) {
|
||||
dev_err(adapter->dev, "PREP_CMD: card is removed\n");
|
||||
return -1;
|
||||
@@ -976,11 +981,10 @@ mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter)
|
||||
struct mwifiex_private *priv;
|
||||
int i;
|
||||
|
||||
spin_lock_irqsave(&adapter->mwifiex_cmd_lock, cmd_flags);
|
||||
/* Cancel current cmd */
|
||||
if ((adapter->curr_cmd) && (adapter->curr_cmd->wait_q_enabled)) {
|
||||
spin_lock_irqsave(&adapter->mwifiex_cmd_lock, flags);
|
||||
adapter->curr_cmd->wait_q_enabled = false;
|
||||
spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, flags);
|
||||
adapter->cmd_wait_q.status = -1;
|
||||
mwifiex_complete_cmd(adapter, adapter->curr_cmd);
|
||||
}
|
||||
@@ -1000,6 +1004,7 @@ mwifiex_cancel_all_pending_cmd(struct mwifiex_adapter *adapter)
|
||||
spin_lock_irqsave(&adapter->cmd_pending_q_lock, flags);
|
||||
}
|
||||
spin_unlock_irqrestore(&adapter->cmd_pending_q_lock, flags);
|
||||
spin_unlock_irqrestore(&adapter->mwifiex_cmd_lock, cmd_flags);
|
||||
|
||||
/* Cancel all pending scan command */
|
||||
spin_lock_irqsave(&adapter->scan_pending_q_lock, flags);
|
||||
|
||||
@@ -38,7 +38,8 @@ static void scan_delay_timer_fn(unsigned long data)
|
||||
if (adapter->surprise_removed)
|
||||
return;
|
||||
|
||||
if (adapter->scan_delay_cnt == MWIFIEX_MAX_SCAN_DELAY_CNT) {
|
||||
if (adapter->scan_delay_cnt == MWIFIEX_MAX_SCAN_DELAY_CNT ||
|
||||
!adapter->scan_processing) {
|
||||
/*
|
||||
* Abort scan operation by cancelling all pending scan
|
||||
* commands
|
||||
|
||||
@@ -774,6 +774,7 @@ struct mwifiex_adapter {
|
||||
u16 hs_activate_wait_q_woken;
|
||||
wait_queue_head_t hs_activate_wait_q;
|
||||
bool is_suspended;
|
||||
bool hs_enabling;
|
||||
u8 event_body[MAX_EVENT_SIZE];
|
||||
u32 hw_dot_11n_dev_cap;
|
||||
u8 hw_dev_mcs_support;
|
||||
|
||||
@@ -120,6 +120,7 @@ static int mwifiex_pcie_suspend(struct device *dev)
|
||||
|
||||
/* Indicate device suspended */
|
||||
adapter->is_suspended = true;
|
||||
adapter->hs_enabling = false;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1033,7 +1034,7 @@ static int mwifiex_pcie_send_data_complete(struct mwifiex_adapter *adapter)
|
||||
card->tx_buf_list[wrdoneidx] = NULL;
|
||||
|
||||
if (reg->pfu_enabled) {
|
||||
desc2 = (void *)card->txbd_ring[wrdoneidx];
|
||||
desc2 = card->txbd_ring[wrdoneidx];
|
||||
memset(desc2, 0, sizeof(*desc2));
|
||||
} else {
|
||||
desc = card->txbd_ring[wrdoneidx];
|
||||
@@ -1118,7 +1119,7 @@ mwifiex_pcie_send_data(struct mwifiex_adapter *adapter, struct sk_buff *skb,
|
||||
card->tx_buf_list[wrindx] = skb;
|
||||
|
||||
if (reg->pfu_enabled) {
|
||||
desc2 = (void *)card->txbd_ring[wrindx];
|
||||
desc2 = card->txbd_ring[wrindx];
|
||||
desc2->paddr = buf_pa;
|
||||
desc2->len = (u16)skb->len;
|
||||
desc2->frag_len = (u16)skb->len;
|
||||
@@ -1278,7 +1279,7 @@ static int mwifiex_pcie_process_recv_data(struct mwifiex_adapter *adapter)
|
||||
card->rx_buf_list[rd_index] = skb_tmp;
|
||||
|
||||
if (reg->pfu_enabled) {
|
||||
desc2 = (void *)card->rxbd_ring[rd_index];
|
||||
desc2 = card->rxbd_ring[rd_index];
|
||||
desc2->paddr = buf_pa;
|
||||
desc2->len = skb_tmp->len;
|
||||
desc2->frag_len = skb_tmp->len;
|
||||
|
||||
@@ -591,10 +591,12 @@ mwifiex_scan_channel_list(struct mwifiex_private *priv,
|
||||
*chan_tlv_out,
|
||||
struct mwifiex_chan_scan_param_set *scan_chan_list)
|
||||
{
|
||||
struct mwifiex_adapter *adapter = priv->adapter;
|
||||
int ret = 0;
|
||||
struct mwifiex_chan_scan_param_set *tmp_chan_list;
|
||||
struct mwifiex_chan_scan_param_set *start_chan;
|
||||
|
||||
struct cmd_ctrl_node *cmd_node, *tmp_node;
|
||||
unsigned long flags;
|
||||
u32 tlv_idx, rates_size, cmd_no;
|
||||
u32 total_scan_time;
|
||||
u32 done_early;
|
||||
@@ -748,8 +750,19 @@ mwifiex_scan_channel_list(struct mwifiex_private *priv,
|
||||
scan_cfg_out->tlv_buf_len -=
|
||||
sizeof(struct mwifiex_ie_types_header) + rates_size;
|
||||
|
||||
if (ret)
|
||||
if (ret) {
|
||||
spin_lock_irqsave(&adapter->scan_pending_q_lock, flags);
|
||||
list_for_each_entry_safe(cmd_node, tmp_node,
|
||||
&adapter->scan_pending_q,
|
||||
list) {
|
||||
list_del(&cmd_node->list);
|
||||
cmd_node->wait_q_enabled = false;
|
||||
mwifiex_insert_cmd_to_free_q(adapter, cmd_node);
|
||||
}
|
||||
spin_unlock_irqrestore(&adapter->scan_pending_q_lock,
|
||||
flags);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret)
|
||||
@@ -1653,7 +1666,7 @@ mwifiex_parse_single_response_buf(struct mwifiex_private *priv, u8 **bss_info,
|
||||
curr_bcn_bytes -= ETH_ALEN;
|
||||
|
||||
if (!ext_scan) {
|
||||
rssi = (s32) *(u8 *)current_ptr;
|
||||
rssi = (s32) *current_ptr;
|
||||
rssi = (-rssi) * 100; /* Convert dBm to mBm */
|
||||
current_ptr += sizeof(u8);
|
||||
curr_bcn_bytes -= sizeof(u8);
|
||||
|
||||
@@ -237,6 +237,7 @@ static int mwifiex_sdio_suspend(struct device *dev)
|
||||
/* Enable the Host Sleep */
|
||||
if (!mwifiex_enable_hs(adapter)) {
|
||||
dev_err(adapter->dev, "cmd: failed to suspend\n");
|
||||
adapter->hs_enabling = false;
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
@@ -245,6 +246,7 @@ static int mwifiex_sdio_suspend(struct device *dev)
|
||||
|
||||
/* Indicate device suspended */
|
||||
adapter->is_suspended = true;
|
||||
adapter->hs_enabling = false;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -64,6 +64,7 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter,
|
||||
*(cmd_queued->condition));
|
||||
if (status) {
|
||||
dev_err(adapter->dev, "cmd_wait_q terminated: %d\n", status);
|
||||
mwifiex_cancel_all_pending_cmd(adapter);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -508,6 +509,9 @@ int mwifiex_enable_hs(struct mwifiex_adapter *adapter)
|
||||
memset(&hscfg, 0, sizeof(struct mwifiex_ds_hs_cfg));
|
||||
hscfg.is_invoke_hostcmd = true;
|
||||
|
||||
adapter->hs_enabling = true;
|
||||
mwifiex_cancel_all_pending_cmd(adapter);
|
||||
|
||||
if (mwifiex_set_hs_params(mwifiex_get_priv(adapter,
|
||||
MWIFIEX_BSS_ROLE_STA),
|
||||
HostCmd_ACT_GEN_SET, MWIFIEX_SYNC_CMD,
|
||||
@@ -516,8 +520,9 @@ int mwifiex_enable_hs(struct mwifiex_adapter *adapter)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (wait_event_interruptible(adapter->hs_activate_wait_q,
|
||||
adapter->hs_activate_wait_q_woken)) {
|
||||
if (wait_event_interruptible_timeout(adapter->hs_activate_wait_q,
|
||||
adapter->hs_activate_wait_q_woken,
|
||||
(10 * HZ)) <= 0) {
|
||||
dev_err(adapter->dev, "hs_activate_wait_q terminated\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -730,13 +730,13 @@ void mwifiex_process_tdls_action_frame(struct mwifiex_private *priv,
|
||||
|
||||
if (len < (sizeof(struct ethhdr) + 3))
|
||||
return;
|
||||
if (*(u8 *)(buf + sizeof(struct ethhdr)) != WLAN_TDLS_SNAP_RFTYPE)
|
||||
if (*(buf + sizeof(struct ethhdr)) != WLAN_TDLS_SNAP_RFTYPE)
|
||||
return;
|
||||
if (*(u8 *)(buf + sizeof(struct ethhdr) + 1) != WLAN_CATEGORY_TDLS)
|
||||
if (*(buf + sizeof(struct ethhdr) + 1) != WLAN_CATEGORY_TDLS)
|
||||
return;
|
||||
|
||||
peer = buf + ETH_ALEN;
|
||||
action = *(u8 *)(buf + sizeof(struct ethhdr) + 2);
|
||||
action = *(buf + sizeof(struct ethhdr) + 2);
|
||||
|
||||
/* just handle TDLS setup request/response/confirm */
|
||||
if (action > WLAN_TDLS_SETUP_CONFIRM)
|
||||
|
||||
@@ -459,6 +459,7 @@ static int mwifiex_usb_suspend(struct usb_interface *intf, pm_message_t message)
|
||||
* 'suspended' state and a 'disconnect' one.
|
||||
*/
|
||||
adapter->is_suspended = true;
|
||||
adapter->hs_enabling = false;
|
||||
|
||||
if (atomic_read(&card->rx_cmd_urb_pending) && card->rx_cmd.urb)
|
||||
usb_kill_urb(card->rx_cmd.urb);
|
||||
|
||||
@@ -1292,10 +1292,11 @@ int rsi_mgmt_pkt_recv(struct rsi_common *common, u8 *msg)
|
||||
return -EINVAL;
|
||||
}
|
||||
} else if (msg_type == TX_STATUS_IND) {
|
||||
if (msg[15] == PROBEREQ_CONFIRM)
|
||||
if (msg[15] == PROBEREQ_CONFIRM) {
|
||||
common->mgmt_q_block = false;
|
||||
rsi_dbg(FSM_ZONE, "%s: Probe confirm received\n",
|
||||
__func__);
|
||||
}
|
||||
} else {
|
||||
return rsi_mgmt_pkt_to_core(common, msg, msg_len, msg_type);
|
||||
}
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
# RTL818X Wireless LAN device configuration
|
||||
#
|
||||
config RTL8180
|
||||
tristate "Realtek 8180/8185 PCI support"
|
||||
tristate "Realtek 8180/8185/8187SE PCI support"
|
||||
depends on MAC80211 && PCI
|
||||
select EEPROM_93CX6
|
||||
---help---
|
||||
This is a driver for RTL8180 and RTL8185 based cards.
|
||||
This is a driver for RTL8180, RTL8185 and RTL8187SE based cards.
|
||||
These are PCI based chips found in cards such as:
|
||||
|
||||
(RTL8185 802.11g)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
rtl8180-objs := dev.o rtl8225.o sa2400.o max2820.o grf5101.o
|
||||
rtl8180-objs := dev.o rtl8225.o sa2400.o max2820.o grf5101.o rtl8225se.o
|
||||
|
||||
obj-$(CONFIG_RTL8180) += rtl8180.o
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -24,27 +24,64 @@
|
||||
#define ANAPARAM_PWR1_SHIFT 20
|
||||
#define ANAPARAM_PWR1_MASK (0x7F << ANAPARAM_PWR1_SHIFT)
|
||||
|
||||
/* rtl8180/rtl8185 have 3 queue + beacon queue.
|
||||
* mac80211 can use just one, + beacon = 2 tot.
|
||||
*/
|
||||
#define RTL8180_NR_TX_QUEUES 2
|
||||
|
||||
/* rtl8187SE have 6 queues + beacon queues
|
||||
* mac80211 can use 4 QoS data queue, + beacon = 5 tot
|
||||
*/
|
||||
#define RTL8187SE_NR_TX_QUEUES 5
|
||||
|
||||
/* for array static allocation, it is the max of above */
|
||||
#define RTL818X_NR_TX_QUEUES 5
|
||||
|
||||
struct rtl8180_tx_desc {
|
||||
__le32 flags;
|
||||
__le16 rts_duration;
|
||||
__le16 plcp_len;
|
||||
__le32 tx_buf;
|
||||
__le32 frame_len;
|
||||
union{
|
||||
__le32 frame_len;
|
||||
struct {
|
||||
__le16 frame_len_se;
|
||||
__le16 frame_duration;
|
||||
} __packed;
|
||||
} __packed;
|
||||
__le32 next_tx_desc;
|
||||
u8 cw;
|
||||
u8 retry_limit;
|
||||
u8 agc;
|
||||
u8 flags2;
|
||||
u32 reserved[2];
|
||||
/* rsvd for 8180/8185.
|
||||
* valid for 8187se but we dont use it
|
||||
*/
|
||||
u32 reserved;
|
||||
/* all rsvd for 8180/8185 */
|
||||
__le16 flags3;
|
||||
__le16 frag_qsize;
|
||||
} __packed;
|
||||
|
||||
struct rtl818x_rx_cmd_desc {
|
||||
__le32 flags;
|
||||
u32 reserved;
|
||||
__le32 rx_buf;
|
||||
} __packed;
|
||||
|
||||
struct rtl8180_rx_desc {
|
||||
__le32 flags;
|
||||
__le32 flags2;
|
||||
union {
|
||||
__le32 rx_buf;
|
||||
__le64 tsft;
|
||||
};
|
||||
__le64 tsft;
|
||||
|
||||
} __packed;
|
||||
|
||||
struct rtl8187se_rx_desc {
|
||||
__le32 flags;
|
||||
__le64 tsft;
|
||||
__le32 flags2;
|
||||
__le32 flags3;
|
||||
u32 reserved[3];
|
||||
} __packed;
|
||||
|
||||
struct rtl8180_tx_ring {
|
||||
@@ -71,14 +108,16 @@ struct rtl8180_priv {
|
||||
|
||||
/* rtl8180 driver specific */
|
||||
spinlock_t lock;
|
||||
struct rtl8180_rx_desc *rx_ring;
|
||||
void *rx_ring;
|
||||
u8 rx_ring_sz;
|
||||
dma_addr_t rx_ring_dma;
|
||||
unsigned int rx_idx;
|
||||
struct sk_buff *rx_buf[32];
|
||||
struct rtl8180_tx_ring tx_ring[4];
|
||||
struct rtl8180_tx_ring tx_ring[RTL818X_NR_TX_QUEUES];
|
||||
struct ieee80211_channel channels[14];
|
||||
struct ieee80211_rate rates[12];
|
||||
struct ieee80211_supported_band band;
|
||||
struct ieee80211_tx_queue_params queue_param[4];
|
||||
struct pci_dev *pdev;
|
||||
u32 rx_conf;
|
||||
u8 slot_time;
|
||||
@@ -87,18 +126,27 @@ struct rtl8180_priv {
|
||||
enum {
|
||||
RTL818X_CHIP_FAMILY_RTL8180,
|
||||
RTL818X_CHIP_FAMILY_RTL8185,
|
||||
RTL818X_CHIP_FAMILY_RTL8187SE,
|
||||
} chip_family;
|
||||
u32 anaparam;
|
||||
u16 rfparam;
|
||||
u8 csthreshold;
|
||||
u8 mac_addr[ETH_ALEN];
|
||||
u8 rf_type;
|
||||
u8 xtal_out;
|
||||
u8 xtal_in;
|
||||
u8 xtal_cal;
|
||||
u8 thermal_meter_val;
|
||||
u8 thermal_meter_en;
|
||||
u8 antenna_diversity_en;
|
||||
u8 antenna_diversity_default;
|
||||
/* sequence # */
|
||||
u16 seqno;
|
||||
};
|
||||
|
||||
void rtl8180_write_phy(struct ieee80211_hw *dev, u8 addr, u32 data);
|
||||
void rtl8180_set_anaparam(struct rtl8180_priv *priv, u32 anaparam);
|
||||
void rtl8180_set_anaparam2(struct rtl8180_priv *priv, u32 anaparam2);
|
||||
|
||||
static inline u8 rtl818x_ioread8(struct rtl8180_priv *priv, u8 __iomem *addr)
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user