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

Commit 613c75fc authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by John W. Linville
Browse files

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: default avatarStanislaw Gruszka <stf_xl@wp.pl>
Tested-by: default avatarWanlong Gao <gaowanlong@cn.fujitsu.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 3d81535e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2628,6 +2628,8 @@ struct mac_iveiv_entry {
#define TXWI_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
 */
+0 −5
Original line number Diff line number Diff line
@@ -676,11 +676,6 @@ void rt2800_process_rxwi(struct queue_entry *entry,
	 * Convert descriptor AGC value to RSSI value.
	 */
	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);

+5 −0
Original line number Diff line number Diff line
@@ -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.
	 */
	rt2800_process_rxwi(entry, rxdesc);

	/*
	 * Remove RXWI descriptor from start of buffer.
	 */
	skb_pull(entry->skb, RXWI_DESC_SIZE);
}

/*
+51 −2
Original line number Diff line number Diff line
@@ -485,7 +485,7 @@ static void rt2800usb_write_tx_desc(struct queue_entry *entry,
	 */
	skbdesc->flags |= SKBDESC_DESC_IN_SKB;
	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.
	 */
	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 */
};

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.
 */
@@ -1201,7 +1247,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
	{ USB_DEVICE(0x148f, 0x5372) },
#endif
#ifdef CONFIG_RT2800USB_RT55XX
	{ USB_DEVICE(0x148f, 0x5572) },
	{ USB_DEVICE(0x148f, 0x5572), .driver_info = 5592 },
#endif
#ifdef CONFIG_RT2800USB_UNKNOWN
	/*
@@ -1306,6 +1352,9 @@ MODULE_LICENSE("GPL");
static int rt2800usb_probe(struct usb_interface *usb_intf,
			   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);
}