mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 23:53:55 +08:00
rt2x00: use helper to check capability/requirement
Use rt2x00_has_cap_flag macro to check rt2x00dev->cap_flags. Signed-off-by: Fred Chou <fred.chou.nd@gmail.com> Acked-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
c20e7789be
commit
b9d305cc47
@ -240,7 +240,7 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
|
|||||||
rt2x00dev->rf_channel = libconf.rf.channel;
|
rt2x00dev->rf_channel = libconf.rf.channel;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test_bit(REQUIRE_PS_AUTOWAKE, &rt2x00dev->cap_flags) &&
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_PS_AUTOWAKE) &&
|
||||||
(ieee80211_flags & IEEE80211_CONF_CHANGE_PS))
|
(ieee80211_flags & IEEE80211_CONF_CHANGE_PS))
|
||||||
cancel_delayed_work_sync(&rt2x00dev->autowakeup_work);
|
cancel_delayed_work_sync(&rt2x00dev->autowakeup_work);
|
||||||
|
|
||||||
@ -257,7 +257,7 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
|
|||||||
rt2x00link_reset_tuner(rt2x00dev, false);
|
rt2x00link_reset_tuner(rt2x00dev, false);
|
||||||
|
|
||||||
if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) &&
|
if (test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags) &&
|
||||||
test_bit(REQUIRE_PS_AUTOWAKE, &rt2x00dev->cap_flags) &&
|
rt2x00_has_cap_flag(rt2x00dev, REQUIRE_PS_AUTOWAKE) &&
|
||||||
(ieee80211_flags & IEEE80211_CONF_CHANGE_PS) &&
|
(ieee80211_flags & IEEE80211_CONF_CHANGE_PS) &&
|
||||||
(conf->flags & IEEE80211_CONF_PS)) {
|
(conf->flags & IEEE80211_CONF_PS)) {
|
||||||
beacon_diff = (long)jiffies - (long)rt2x00dev->last_beacon;
|
beacon_diff = (long)jiffies - (long)rt2x00dev->last_beacon;
|
||||||
|
@ -351,7 +351,7 @@ void rt2x00lib_txdone(struct queue_entry *entry,
|
|||||||
/*
|
/*
|
||||||
* Remove L2 padding which was added during
|
* Remove L2 padding which was added during
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_L2PAD, &rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_L2PAD))
|
||||||
rt2x00queue_remove_l2pad(entry->skb, header_length);
|
rt2x00queue_remove_l2pad(entry->skb, header_length);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -460,7 +460,7 @@ void rt2x00lib_txdone(struct queue_entry *entry,
|
|||||||
* send the status report back.
|
* send the status report back.
|
||||||
*/
|
*/
|
||||||
if (!(skbdesc_flags & SKBDESC_NOT_MAC80211)) {
|
if (!(skbdesc_flags & SKBDESC_NOT_MAC80211)) {
|
||||||
if (test_bit(REQUIRE_TASKLET_CONTEXT, &rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_TASKLET_CONTEXT))
|
||||||
ieee80211_tx_status(rt2x00dev->hw, entry->skb);
|
ieee80211_tx_status(rt2x00dev->hw, entry->skb);
|
||||||
else
|
else
|
||||||
ieee80211_tx_status_ni(rt2x00dev->hw, entry->skb);
|
ieee80211_tx_status_ni(rt2x00dev->hw, entry->skb);
|
||||||
@ -1056,9 +1056,9 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
|
|||||||
/*
|
/*
|
||||||
* Take TX headroom required for alignment into account.
|
* Take TX headroom required for alignment into account.
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_L2PAD, &rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_L2PAD))
|
||||||
rt2x00dev->hw->extra_tx_headroom += RT2X00_L2PAD_SIZE;
|
rt2x00dev->hw->extra_tx_headroom += RT2X00_L2PAD_SIZE;
|
||||||
else if (test_bit(REQUIRE_DMA, &rt2x00dev->cap_flags))
|
else if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DMA))
|
||||||
rt2x00dev->hw->extra_tx_headroom += RT2X00_ALIGN_SIZE;
|
rt2x00dev->hw->extra_tx_headroom += RT2X00_ALIGN_SIZE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1069,7 +1069,7 @@ static int rt2x00lib_probe_hw(struct rt2x00_dev *rt2x00dev)
|
|||||||
/*
|
/*
|
||||||
* Allocate tx status FIFO for driver use.
|
* Allocate tx status FIFO for driver use.
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_TXSTATUS_FIFO, &rt2x00dev->cap_flags)) {
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_TXSTATUS_FIFO)) {
|
||||||
/*
|
/*
|
||||||
* Allocate the txstatus fifo. In the worst case the tx
|
* Allocate the txstatus fifo. In the worst case the tx
|
||||||
* status fifo has to hold the tx status of all entries
|
* status fifo has to hold the tx status of all entries
|
||||||
@ -1131,7 +1131,7 @@ static void rt2x00lib_uninitialize(struct rt2x00_dev *rt2x00dev)
|
|||||||
/*
|
/*
|
||||||
* Stop rfkill polling.
|
* Stop rfkill polling.
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DELAYED_RFKILL))
|
||||||
rt2x00rfkill_unregister(rt2x00dev);
|
rt2x00rfkill_unregister(rt2x00dev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1173,7 +1173,7 @@ static int rt2x00lib_initialize(struct rt2x00_dev *rt2x00dev)
|
|||||||
/*
|
/*
|
||||||
* Start rfkill polling.
|
* Start rfkill polling.
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DELAYED_RFKILL))
|
||||||
rt2x00rfkill_register(rt2x00dev);
|
rt2x00rfkill_register(rt2x00dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1389,7 +1389,7 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
|
|||||||
/*
|
/*
|
||||||
* Start rfkill polling.
|
* Start rfkill polling.
|
||||||
*/
|
*/
|
||||||
if (!test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
if (!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DELAYED_RFKILL))
|
||||||
rt2x00rfkill_register(rt2x00dev);
|
rt2x00rfkill_register(rt2x00dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -1408,7 +1408,7 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
|
|||||||
/*
|
/*
|
||||||
* Stop rfkill polling.
|
* Stop rfkill polling.
|
||||||
*/
|
*/
|
||||||
if (!test_bit(REQUIRE_DELAYED_RFKILL, &rt2x00dev->cap_flags))
|
if (!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DELAYED_RFKILL))
|
||||||
rt2x00rfkill_unregister(rt2x00dev);
|
rt2x00rfkill_unregister(rt2x00dev);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -96,7 +96,7 @@ int rt2x00lib_load_firmware(struct rt2x00_dev *rt2x00dev)
|
|||||||
{
|
{
|
||||||
int retval;
|
int retval;
|
||||||
|
|
||||||
if (!test_bit(REQUIRE_FIRMWARE, &rt2x00dev->cap_flags))
|
if (!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_FIRMWARE))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (!rt2x00dev->fw) {
|
if (!rt2x00dev->fw) {
|
||||||
|
@ -119,7 +119,7 @@ void rt2x00mac_tx(struct ieee80211_hw *hw,
|
|||||||
* Use the ATIM queue if appropriate and present.
|
* Use the ATIM queue if appropriate and present.
|
||||||
*/
|
*/
|
||||||
if (tx_info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM &&
|
if (tx_info->flags & IEEE80211_TX_CTL_SEND_AFTER_DTIM &&
|
||||||
test_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags))
|
rt2x00_has_cap_flag(rt2x00dev, REQUIRE_ATIM_QUEUE))
|
||||||
qid = QID_ATIM;
|
qid = QID_ATIM;
|
||||||
|
|
||||||
queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
|
queue = rt2x00queue_get_tx_queue(rt2x00dev, qid);
|
||||||
|
@ -85,7 +85,7 @@ struct sk_buff *rt2x00queue_alloc_rxskb(struct queue_entry *entry, gfp_t gfp)
|
|||||||
memset(skbdesc, 0, sizeof(*skbdesc));
|
memset(skbdesc, 0, sizeof(*skbdesc));
|
||||||
skbdesc->entry = entry;
|
skbdesc->entry = entry;
|
||||||
|
|
||||||
if (test_bit(REQUIRE_DMA, &rt2x00dev->cap_flags)) {
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DMA)) {
|
||||||
dma_addr_t skb_dma;
|
dma_addr_t skb_dma;
|
||||||
|
|
||||||
skb_dma = dma_map_single(rt2x00dev->dev, skb->data, skb->len,
|
skb_dma = dma_map_single(rt2x00dev->dev, skb->data, skb->len,
|
||||||
@ -198,7 +198,7 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
|
|||||||
|
|
||||||
__set_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags);
|
__set_bit(ENTRY_TXD_GENERATE_SEQ, &txdesc->flags);
|
||||||
|
|
||||||
if (!test_bit(REQUIRE_SW_SEQNO, &rt2x00dev->cap_flags)) {
|
if (!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_SW_SEQNO)) {
|
||||||
/*
|
/*
|
||||||
* rt2800 has a H/W (or F/W) bug, device incorrectly increase
|
* rt2800 has a H/W (or F/W) bug, device incorrectly increase
|
||||||
* seqno on retransmited data (non-QOS) frames. To workaround
|
* seqno on retransmited data (non-QOS) frames. To workaround
|
||||||
@ -484,7 +484,7 @@ static void rt2x00queue_create_tx_descriptor(struct rt2x00_dev *rt2x00dev,
|
|||||||
rt2x00crypto_create_tx_descriptor(rt2x00dev, skb, txdesc);
|
rt2x00crypto_create_tx_descriptor(rt2x00dev, skb, txdesc);
|
||||||
rt2x00queue_create_tx_descriptor_seq(rt2x00dev, skb, txdesc);
|
rt2x00queue_create_tx_descriptor_seq(rt2x00dev, skb, txdesc);
|
||||||
|
|
||||||
if (test_bit(REQUIRE_HT_TX_DESC, &rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_HT_TX_DESC))
|
||||||
rt2x00queue_create_tx_descriptor_ht(rt2x00dev, skb, txdesc,
|
rt2x00queue_create_tx_descriptor_ht(rt2x00dev, skb, txdesc,
|
||||||
sta, hwrate);
|
sta, hwrate);
|
||||||
else
|
else
|
||||||
@ -526,7 +526,7 @@ static int rt2x00queue_write_tx_data(struct queue_entry *entry,
|
|||||||
/*
|
/*
|
||||||
* Map the skb to DMA.
|
* Map the skb to DMA.
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_DMA, &rt2x00dev->cap_flags) &&
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_DMA) &&
|
||||||
rt2x00queue_map_txskb(entry))
|
rt2x00queue_map_txskb(entry))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@ -646,7 +646,7 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
|
|||||||
*/
|
*/
|
||||||
if (test_bit(ENTRY_TXD_ENCRYPT, &txdesc.flags) &&
|
if (test_bit(ENTRY_TXD_ENCRYPT, &txdesc.flags) &&
|
||||||
!test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc.flags)) {
|
!test_bit(ENTRY_TXD_ENCRYPT_IV, &txdesc.flags)) {
|
||||||
if (test_bit(REQUIRE_COPY_IV, &queue->rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(queue->rt2x00dev, REQUIRE_COPY_IV))
|
||||||
rt2x00crypto_tx_copy_iv(skb, &txdesc);
|
rt2x00crypto_tx_copy_iv(skb, &txdesc);
|
||||||
else
|
else
|
||||||
rt2x00crypto_tx_remove_iv(skb, &txdesc);
|
rt2x00crypto_tx_remove_iv(skb, &txdesc);
|
||||||
@ -660,9 +660,9 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
|
|||||||
* PCI and USB devices, while header alignment only is valid
|
* PCI and USB devices, while header alignment only is valid
|
||||||
* for PCI devices.
|
* for PCI devices.
|
||||||
*/
|
*/
|
||||||
if (test_bit(REQUIRE_L2PAD, &queue->rt2x00dev->cap_flags))
|
if (rt2x00_has_cap_flag(queue->rt2x00dev, REQUIRE_L2PAD))
|
||||||
rt2x00queue_insert_l2pad(skb, txdesc.header_length);
|
rt2x00queue_insert_l2pad(skb, txdesc.header_length);
|
||||||
else if (test_bit(REQUIRE_DMA, &queue->rt2x00dev->cap_flags))
|
else if (rt2x00_has_cap_flag(queue->rt2x00dev, REQUIRE_DMA))
|
||||||
rt2x00queue_align_frame(skb);
|
rt2x00queue_align_frame(skb);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1178,7 +1178,7 @@ int rt2x00queue_initialize(struct rt2x00_dev *rt2x00dev)
|
|||||||
if (status)
|
if (status)
|
||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
if (test_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags)) {
|
if (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_ATIM_QUEUE)) {
|
||||||
status = rt2x00queue_alloc_entries(rt2x00dev->atim);
|
status = rt2x00queue_alloc_entries(rt2x00dev->atim);
|
||||||
if (status)
|
if (status)
|
||||||
goto exit;
|
goto exit;
|
||||||
@ -1234,7 +1234,7 @@ int rt2x00queue_allocate(struct rt2x00_dev *rt2x00dev)
|
|||||||
struct data_queue *queue;
|
struct data_queue *queue;
|
||||||
enum data_queue_qid qid;
|
enum data_queue_qid qid;
|
||||||
unsigned int req_atim =
|
unsigned int req_atim =
|
||||||
!!test_bit(REQUIRE_ATIM_QUEUE, &rt2x00dev->cap_flags);
|
rt2x00_has_cap_flag(rt2x00dev, REQUIRE_ATIM_QUEUE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We need the following queues:
|
* We need the following queues:
|
||||||
|
@ -274,7 +274,7 @@ static void rt2x00usb_interrupt_txdone(struct urb *urb)
|
|||||||
* Schedule the delayed work for reading the TX status
|
* Schedule the delayed work for reading the TX status
|
||||||
* from the device.
|
* from the device.
|
||||||
*/
|
*/
|
||||||
if (!test_bit(REQUIRE_TXSTATUS_FIFO, &rt2x00dev->cap_flags) ||
|
if (!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_TXSTATUS_FIFO) ||
|
||||||
!kfifo_is_empty(&rt2x00dev->txstatus_fifo))
|
!kfifo_is_empty(&rt2x00dev->txstatus_fifo))
|
||||||
queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
|
queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work);
|
||||||
}
|
}
|
||||||
@ -456,7 +456,7 @@ static bool rt2x00usb_flush_entry(struct queue_entry *entry, void *data)
|
|||||||
* Kill guardian urb (if required by driver).
|
* Kill guardian urb (if required by driver).
|
||||||
*/
|
*/
|
||||||
if ((entry->queue->qid == QID_BEACON) &&
|
if ((entry->queue->qid == QID_BEACON) &&
|
||||||
(test_bit(REQUIRE_BEACON_GUARD, &rt2x00dev->cap_flags)))
|
(rt2x00_has_cap_flag(rt2x00dev, REQUIRE_BEACON_GUARD)))
|
||||||
usb_kill_urb(bcn_priv->guardian_urb);
|
usb_kill_urb(bcn_priv->guardian_urb);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -655,7 +655,7 @@ static int rt2x00usb_alloc_entries(struct data_queue *queue)
|
|||||||
* then we are done.
|
* then we are done.
|
||||||
*/
|
*/
|
||||||
if (queue->qid != QID_BEACON ||
|
if (queue->qid != QID_BEACON ||
|
||||||
!test_bit(REQUIRE_BEACON_GUARD, &rt2x00dev->cap_flags))
|
!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_BEACON_GUARD))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (i = 0; i < queue->limit; i++) {
|
for (i = 0; i < queue->limit; i++) {
|
||||||
@ -690,7 +690,7 @@ static void rt2x00usb_free_entries(struct data_queue *queue)
|
|||||||
* then we are done.
|
* then we are done.
|
||||||
*/
|
*/
|
||||||
if (queue->qid != QID_BEACON ||
|
if (queue->qid != QID_BEACON ||
|
||||||
!test_bit(REQUIRE_BEACON_GUARD, &rt2x00dev->cap_flags))
|
!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_BEACON_GUARD))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (i = 0; i < queue->limit; i++) {
|
for (i = 0; i < queue->limit; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user