mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
rt2800: 5592: TXWI & RXWI descriptors size
Based on: TXWI_STRUC RXWI_STRUC from: DPO_RT5572_LinuxSTA_2.6.1.3_20121022/include/chip/rtmp_mac.h Signed-off-by: Stanislaw Gruszka <stf_xl@wp.pl> Tested-by: Wanlong Gao <gaowanlong@cn.fujitsu.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
3d81535ea5
commit
613c75fc4e
4 changed files with 58 additions and 7 deletions
|
@ -2628,6 +2628,8 @@ struct mac_iveiv_entry {
|
||||||
#define TXWI_DESC_SIZE (4 * sizeof(__le32))
|
#define TXWI_DESC_SIZE (4 * sizeof(__le32))
|
||||||
#define RXWI_DESC_SIZE (4 * sizeof(__le32))
|
#define RXWI_DESC_SIZE (4 * sizeof(__le32))
|
||||||
|
|
||||||
|
#define TXWI_DESC_SIZE_5592 (5 * sizeof(__le32))
|
||||||
|
#define RXWI_DESC_SIZE_5592 (6 * sizeof(__le32))
|
||||||
/*
|
/*
|
||||||
* TX WI structure
|
* TX WI structure
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -676,11 +676,6 @@ void rt2800_process_rxwi(struct queue_entry *entry,
|
||||||
* Convert descriptor AGC value to RSSI value.
|
* Convert descriptor AGC value to RSSI value.
|
||||||
*/
|
*/
|
||||||
rxdesc->rssi = rt2800_agc_to_rssi(entry->queue->rt2x00dev, word);
|
rxdesc->rssi = rt2800_agc_to_rssi(entry->queue->rt2x00dev, word);
|
||||||
|
|
||||||
/*
|
|
||||||
* Remove RXWI descriptor from start of buffer.
|
|
||||||
*/
|
|
||||||
skb_pull(entry->skb, RXWI_DESC_SIZE);
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(rt2800_process_rxwi);
|
EXPORT_SYMBOL_GPL(rt2800_process_rxwi);
|
||||||
|
|
||||||
|
|
|
@ -729,6 +729,11 @@ static void rt2800pci_fill_rxdone(struct queue_entry *entry,
|
||||||
* Process the RXWI structure that is at the start of the buffer.
|
* Process the RXWI structure that is at the start of the buffer.
|
||||||
*/
|
*/
|
||||||
rt2800_process_rxwi(entry, rxdesc);
|
rt2800_process_rxwi(entry, rxdesc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove RXWI descriptor from start of buffer.
|
||||||
|
*/
|
||||||
|
skb_pull(entry->skb, RXWI_DESC_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -485,7 +485,7 @@ static void rt2800usb_write_tx_desc(struct queue_entry *entry,
|
||||||
*/
|
*/
|
||||||
skbdesc->flags |= SKBDESC_DESC_IN_SKB;
|
skbdesc->flags |= SKBDESC_DESC_IN_SKB;
|
||||||
skbdesc->desc = txi;
|
skbdesc->desc = txi;
|
||||||
skbdesc->desc_len = TXINFO_DESC_SIZE + TXWI_DESC_SIZE;
|
skbdesc->desc_len = entry->queue->desc_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -730,6 +730,11 @@ static void rt2800usb_fill_rxdone(struct queue_entry *entry,
|
||||||
* Process the RXWI structure.
|
* Process the RXWI structure.
|
||||||
*/
|
*/
|
||||||
rt2800_process_rxwi(entry, rxdesc);
|
rt2800_process_rxwi(entry, rxdesc);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove RXWI descriptor from start of buffer.
|
||||||
|
*/
|
||||||
|
skb_pull(entry->skb, entry->queue->desc_size - RXINFO_DESC_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -890,6 +895,47 @@ static const struct rt2x00_ops rt2800usb_ops = {
|
||||||
#endif /* CONFIG_RT2X00_LIB_DEBUGFS */
|
#endif /* CONFIG_RT2X00_LIB_DEBUGFS */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct data_queue_desc rt2800usb_queue_rx_5592 = {
|
||||||
|
.entry_num = 128,
|
||||||
|
.data_size = AGGREGATION_SIZE,
|
||||||
|
.desc_size = RXINFO_DESC_SIZE + RXWI_DESC_SIZE_5592,
|
||||||
|
.priv_size = sizeof(struct queue_entry_priv_usb),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct data_queue_desc rt2800usb_queue_tx_5592 = {
|
||||||
|
.entry_num = 16,
|
||||||
|
.data_size = AGGREGATION_SIZE,
|
||||||
|
.desc_size = TXINFO_DESC_SIZE + TXWI_DESC_SIZE_5592,
|
||||||
|
.priv_size = sizeof(struct queue_entry_priv_usb),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct data_queue_desc rt2800usb_queue_bcn_5592 = {
|
||||||
|
.entry_num = 8,
|
||||||
|
.data_size = MGMT_FRAME_SIZE,
|
||||||
|
.desc_size = TXINFO_DESC_SIZE + TXWI_DESC_SIZE_5592,
|
||||||
|
.priv_size = sizeof(struct queue_entry_priv_usb),
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static const struct rt2x00_ops rt2800usb_ops_5592 = {
|
||||||
|
.name = KBUILD_MODNAME,
|
||||||
|
.drv_data_size = sizeof(struct rt2800_drv_data),
|
||||||
|
.max_ap_intf = 8,
|
||||||
|
.eeprom_size = EEPROM_SIZE,
|
||||||
|
.rf_size = RF_SIZE,
|
||||||
|
.tx_queues = NUM_TX_QUEUES,
|
||||||
|
.extra_tx_headroom = TXINFO_DESC_SIZE + TXWI_DESC_SIZE_5592,
|
||||||
|
.rx = &rt2800usb_queue_rx_5592,
|
||||||
|
.tx = &rt2800usb_queue_tx_5592,
|
||||||
|
.bcn = &rt2800usb_queue_bcn_5592,
|
||||||
|
.lib = &rt2800usb_rt2x00_ops,
|
||||||
|
.drv = &rt2800usb_rt2800_ops,
|
||||||
|
.hw = &rt2800usb_mac80211_ops,
|
||||||
|
#ifdef CONFIG_RT2X00_LIB_DEBUGFS
|
||||||
|
.debugfs = &rt2800_rt2x00debug,
|
||||||
|
#endif /* CONFIG_RT2X00_LIB_DEBUGFS */
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* rt2800usb module information.
|
* rt2800usb module information.
|
||||||
*/
|
*/
|
||||||
|
@ -1201,7 +1247,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
|
||||||
{ USB_DEVICE(0x148f, 0x5372) },
|
{ USB_DEVICE(0x148f, 0x5372) },
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_RT2800USB_RT55XX
|
#ifdef CONFIG_RT2800USB_RT55XX
|
||||||
{ USB_DEVICE(0x148f, 0x5572) },
|
{ USB_DEVICE(0x148f, 0x5572), .driver_info = 5592 },
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_RT2800USB_UNKNOWN
|
#ifdef CONFIG_RT2800USB_UNKNOWN
|
||||||
/*
|
/*
|
||||||
|
@ -1306,6 +1352,9 @@ MODULE_LICENSE("GPL");
|
||||||
static int rt2800usb_probe(struct usb_interface *usb_intf,
|
static int rt2800usb_probe(struct usb_interface *usb_intf,
|
||||||
const struct usb_device_id *id)
|
const struct usb_device_id *id)
|
||||||
{
|
{
|
||||||
|
if (id->driver_info == 5592)
|
||||||
|
return rt2x00usb_probe(usb_intf, &rt2800usb_ops_5592);
|
||||||
|
|
||||||
return rt2x00usb_probe(usb_intf, &rt2800usb_ops);
|
return rt2x00usb_probe(usb_intf, &rt2800usb_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue