mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
iwl3945: use iwl_rx_mem_buffer
The patch replaces iwl3945_rx_mem_buffer with iwl_rx_mem_buffer. Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
d2bf55839a
commit
6100b58806
3 changed files with 35 additions and 41 deletions
|
@ -330,7 +330,7 @@ static void iwl3945_tx_queue_reclaim(struct iwl3945_priv *priv,
|
|||
* iwl3945_rx_reply_tx - Handle Tx response
|
||||
*/
|
||||
static void iwl3945_rx_reply_tx(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
u16 sequence = le16_to_cpu(pkt->hdr.sequence);
|
||||
|
@ -389,7 +389,7 @@ static void iwl3945_rx_reply_tx(struct iwl3945_priv *priv,
|
|||
*
|
||||
*****************************************************************************/
|
||||
|
||||
void iwl3945_hw_rx_statistics(struct iwl3945_priv *priv, struct iwl3945_rx_mem_buffer *rxb)
|
||||
void iwl3945_hw_rx_statistics(struct iwl3945_priv *priv, struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
IWL_DEBUG_RX("Statistics notification received (%d vs %d).\n",
|
||||
|
@ -571,7 +571,7 @@ static int iwl3945_is_network_packet(struct iwl3945_priv *priv,
|
|||
}
|
||||
|
||||
static void iwl3945_pass_packet_to_mac80211(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb,
|
||||
struct iwl_rx_mem_buffer *rxb,
|
||||
struct ieee80211_rx_status *stats)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (struct iwl_rx_packet *)rxb->skb->data;
|
||||
|
@ -614,7 +614,7 @@ static void iwl3945_pass_packet_to_mac80211(struct iwl3945_priv *priv,
|
|||
#define IWL_DELAY_NEXT_SCAN_AFTER_ASSOC (HZ*6)
|
||||
|
||||
static void iwl3945_rx_reply_rx(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct ieee80211_hdr *header;
|
||||
struct ieee80211_rx_status rx_status;
|
||||
|
|
|
@ -106,12 +106,6 @@ enum iwl3945_antenna {
|
|||
#define DEFAULT_SHORT_RETRY_LIMIT 7U
|
||||
#define DEFAULT_LONG_RETRY_LIMIT 4U
|
||||
|
||||
struct iwl3945_rx_mem_buffer {
|
||||
dma_addr_t dma_addr;
|
||||
struct sk_buff *skb;
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
int iwl3945_x2_queue_used(const struct iwl_queue *q, int i);
|
||||
|
||||
#define MAX_NUM_OF_TBS (20)
|
||||
|
@ -229,13 +223,13 @@ struct iwl3945_host_cmd {
|
|||
* @rx_used: List of Rx buffers with no SKB
|
||||
* @need_update: flag to indicate we need to update read/write index
|
||||
*
|
||||
* NOTE: rx_free and rx_used are used as a FIFO for iwl3945_rx_mem_buffers
|
||||
* NOTE: rx_free and rx_used are used as a FIFO for iwl_rx_mem_buffers
|
||||
*/
|
||||
struct iwl3945_rx_queue {
|
||||
__le32 *bd;
|
||||
dma_addr_t dma_addr;
|
||||
struct iwl3945_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS];
|
||||
struct iwl3945_rx_mem_buffer *queue[RX_QUEUE_SIZE];
|
||||
struct iwl_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS];
|
||||
struct iwl_rx_mem_buffer *queue[RX_QUEUE_SIZE];
|
||||
u32 processed;
|
||||
u32 read;
|
||||
u32 write;
|
||||
|
@ -409,7 +403,7 @@ extern void iwl3945_hw_build_tx_cmd_rate(struct iwl3945_priv *priv,
|
|||
extern int iwl3945_hw_reg_send_txpower(struct iwl3945_priv *priv);
|
||||
extern int iwl3945_hw_reg_set_txpower(struct iwl3945_priv *priv, s8 power);
|
||||
extern void iwl3945_hw_rx_statistics(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb);
|
||||
struct iwl_rx_mem_buffer *rxb);
|
||||
extern void iwl3945_disable_events(struct iwl3945_priv *priv);
|
||||
extern int iwl4965_get_temperature(const struct iwl3945_priv *priv);
|
||||
|
||||
|
@ -464,7 +458,7 @@ struct iwl3945_priv {
|
|||
int alloc_rxb_skb;
|
||||
|
||||
void (*rx_handlers[REPLY_MAX])(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb);
|
||||
struct iwl_rx_mem_buffer *rxb);
|
||||
|
||||
struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS];
|
||||
|
||||
|
|
|
@ -2863,7 +2863,7 @@ static int iwl3945_get_measurement(struct iwl3945_priv *priv,
|
|||
#endif
|
||||
|
||||
static void iwl3945_rx_reply_alive(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
struct iwl_alive_resp *palive;
|
||||
|
@ -2899,7 +2899,7 @@ static void iwl3945_rx_reply_alive(struct iwl3945_priv *priv,
|
|||
}
|
||||
|
||||
static void iwl3945_rx_reply_add_sta(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
|
||||
|
@ -2908,7 +2908,7 @@ static void iwl3945_rx_reply_add_sta(struct iwl3945_priv *priv,
|
|||
}
|
||||
|
||||
static void iwl3945_rx_reply_error(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
|
||||
|
@ -2923,7 +2923,7 @@ static void iwl3945_rx_reply_error(struct iwl3945_priv *priv,
|
|||
|
||||
#define TX_STATUS_ENTRY(x) case TX_STATUS_FAIL_ ## x: return #x
|
||||
|
||||
static void iwl3945_rx_csa(struct iwl3945_priv *priv, struct iwl3945_rx_mem_buffer *rxb)
|
||||
static void iwl3945_rx_csa(struct iwl3945_priv *priv, struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
struct iwl3945_rxon_cmd *rxon = (void *)&priv->active_rxon;
|
||||
|
@ -2935,7 +2935,7 @@ static void iwl3945_rx_csa(struct iwl3945_priv *priv, struct iwl3945_rx_mem_buff
|
|||
}
|
||||
|
||||
static void iwl3945_rx_spectrum_measure_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
#ifdef CONFIG_IWL3945_SPECTRUM_MEASUREMENT
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
|
@ -2953,7 +2953,7 @@ static void iwl3945_rx_spectrum_measure_notif(struct iwl3945_priv *priv,
|
|||
}
|
||||
|
||||
static void iwl3945_rx_pm_sleep_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
#ifdef CONFIG_IWL3945_DEBUG
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
|
@ -2964,7 +2964,7 @@ static void iwl3945_rx_pm_sleep_notif(struct iwl3945_priv *priv,
|
|||
}
|
||||
|
||||
static void iwl3945_rx_pm_debug_statistics_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
IWL_DEBUG_RADIO("Dumping %d bytes of unhandled "
|
||||
|
@ -3000,7 +3000,7 @@ static void iwl3945_bg_beacon_update(struct work_struct *work)
|
|||
}
|
||||
|
||||
static void iwl3945_rx_beacon_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
#ifdef CONFIG_IWL3945_DEBUG
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
|
@ -3023,7 +3023,7 @@ static void iwl3945_rx_beacon_notif(struct iwl3945_priv *priv,
|
|||
|
||||
/* Service response to REPLY_SCAN_CMD (0x80) */
|
||||
static void iwl3945_rx_reply_scan(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
#ifdef CONFIG_IWL3945_DEBUG
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
|
@ -3036,7 +3036,7 @@ static void iwl3945_rx_reply_scan(struct iwl3945_priv *priv,
|
|||
|
||||
/* Service SCAN_START_NOTIFICATION (0x82) */
|
||||
static void iwl3945_rx_scan_start_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
struct iwl_scanstart_notification *notif =
|
||||
|
@ -3053,7 +3053,7 @@ static void iwl3945_rx_scan_start_notif(struct iwl3945_priv *priv,
|
|||
|
||||
/* Service SCAN_RESULTS_NOTIFICATION (0x83) */
|
||||
static void iwl3945_rx_scan_results_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
struct iwl_scanresults_notification *notif =
|
||||
|
@ -3078,7 +3078,7 @@ static void iwl3945_rx_scan_results_notif(struct iwl3945_priv *priv,
|
|||
|
||||
/* Service SCAN_COMPLETE_NOTIFICATION (0x84) */
|
||||
static void iwl3945_rx_scan_complete_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
struct iwl_scancomplete_notification *scan_notif = (void *)pkt->u.raw;
|
||||
|
@ -3141,7 +3141,7 @@ static void iwl3945_rx_scan_complete_notif(struct iwl3945_priv *priv,
|
|||
/* Handle notification from uCode that card's power state is changing
|
||||
* due to software, hardware, or critical temperature RFKILL */
|
||||
static void iwl3945_rx_card_state_notif(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (void *)rxb->skb->data;
|
||||
u32 flags = le32_to_cpu(pkt->u.card_state_notif.flags);
|
||||
|
@ -3259,7 +3259,7 @@ static void iwl3945_cmd_queue_reclaim(struct iwl3945_priv *priv,
|
|||
* if the callback returns 1
|
||||
*/
|
||||
static void iwl3945_tx_cmd_complete(struct iwl3945_priv *priv,
|
||||
struct iwl3945_rx_mem_buffer *rxb)
|
||||
struct iwl_rx_mem_buffer *rxb)
|
||||
{
|
||||
struct iwl_rx_packet *pkt = (struct iwl_rx_packet *)rxb->skb->data;
|
||||
u16 sequence = le16_to_cpu(pkt->hdr.sequence);
|
||||
|
@ -3346,7 +3346,7 @@ static void iwl3945_tx_cmd_complete(struct iwl3945_priv *priv,
|
|||
* are available, schedules iwl3945_rx_replenish
|
||||
*
|
||||
* -- enable interrupts --
|
||||
* ISR - iwl3945_rx() Detach iwl3945_rx_mem_buffers from pool up to the
|
||||
* ISR - iwl3945_rx() Detach iwl_rx_mem_buffers from pool up to the
|
||||
* READ INDEX, detaching the SKB from the pool.
|
||||
* Moves the packet buffer from queue to rx_used.
|
||||
* Calls iwl3945_rx_queue_restock to refill any empty
|
||||
|
@ -3440,7 +3440,7 @@ static int iwl3945_rx_queue_restock(struct iwl3945_priv *priv)
|
|||
{
|
||||
struct iwl3945_rx_queue *rxq = &priv->rxq;
|
||||
struct list_head *element;
|
||||
struct iwl3945_rx_mem_buffer *rxb;
|
||||
struct iwl_rx_mem_buffer *rxb;
|
||||
unsigned long flags;
|
||||
int write, rc;
|
||||
|
||||
|
@ -3449,11 +3449,11 @@ static int iwl3945_rx_queue_restock(struct iwl3945_priv *priv)
|
|||
while ((iwl3945_rx_queue_space(rxq) > 0) && (rxq->free_count)) {
|
||||
/* Get next free Rx buffer, remove from free list */
|
||||
element = rxq->rx_free.next;
|
||||
rxb = list_entry(element, struct iwl3945_rx_mem_buffer, list);
|
||||
rxb = list_entry(element, struct iwl_rx_mem_buffer, list);
|
||||
list_del(element);
|
||||
|
||||
/* Point to Rx buffer via next RBD in circular buffer */
|
||||
rxq->bd[rxq->write] = iwl3945_dma_addr2rbd_ptr(priv, rxb->dma_addr);
|
||||
rxq->bd[rxq->write] = iwl3945_dma_addr2rbd_ptr(priv, rxb->real_dma_addr);
|
||||
rxq->queue[rxq->write] = rxb;
|
||||
rxq->write = (rxq->write + 1) & RX_QUEUE_MASK;
|
||||
rxq->free_count--;
|
||||
|
@ -3492,12 +3492,12 @@ static void iwl3945_rx_allocate(struct iwl3945_priv *priv)
|
|||
{
|
||||
struct iwl3945_rx_queue *rxq = &priv->rxq;
|
||||
struct list_head *element;
|
||||
struct iwl3945_rx_mem_buffer *rxb;
|
||||
struct iwl_rx_mem_buffer *rxb;
|
||||
unsigned long flags;
|
||||
spin_lock_irqsave(&rxq->lock, flags);
|
||||
while (!list_empty(&rxq->rx_used)) {
|
||||
element = rxq->rx_used.next;
|
||||
rxb = list_entry(element, struct iwl3945_rx_mem_buffer, list);
|
||||
rxb = list_entry(element, struct iwl_rx_mem_buffer, list);
|
||||
|
||||
/* Alloc a new receive buffer */
|
||||
rxb->skb =
|
||||
|
@ -3524,7 +3524,7 @@ static void iwl3945_rx_allocate(struct iwl3945_priv *priv)
|
|||
list_del(element);
|
||||
|
||||
/* Get physical address of RB/SKB */
|
||||
rxb->dma_addr =
|
||||
rxb->real_dma_addr =
|
||||
pci_map_single(priv->pci_dev, rxb->skb->data,
|
||||
IWL_RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
|
||||
list_add_tail(&rxb->list, &rxq->rx_free);
|
||||
|
@ -3568,7 +3568,7 @@ static void iwl3945_rx_queue_free(struct iwl3945_priv *priv, struct iwl3945_rx_q
|
|||
for (i = 0; i < RX_QUEUE_SIZE + RX_FREE_BUFFERS; i++) {
|
||||
if (rxq->pool[i].skb != NULL) {
|
||||
pci_unmap_single(priv->pci_dev,
|
||||
rxq->pool[i].dma_addr,
|
||||
rxq->pool[i].real_dma_addr,
|
||||
IWL_RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
|
||||
dev_kfree_skb(rxq->pool[i].skb);
|
||||
}
|
||||
|
@ -3619,7 +3619,7 @@ void iwl3945_rx_queue_reset(struct iwl3945_priv *priv, struct iwl3945_rx_queue *
|
|||
* to an SKB, so we need to unmap and free potential storage */
|
||||
if (rxq->pool[i].skb != NULL) {
|
||||
pci_unmap_single(priv->pci_dev,
|
||||
rxq->pool[i].dma_addr,
|
||||
rxq->pool[i].real_dma_addr,
|
||||
IWL_RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
|
||||
priv->alloc_rxb_skb--;
|
||||
dev_kfree_skb(rxq->pool[i].skb);
|
||||
|
@ -3722,7 +3722,7 @@ int iwl3945_calc_sig_qual(int rssi_dbm, int noise_dbm)
|
|||
*/
|
||||
static void iwl3945_rx_handle(struct iwl3945_priv *priv)
|
||||
{
|
||||
struct iwl3945_rx_mem_buffer *rxb;
|
||||
struct iwl_rx_mem_buffer *rxb;
|
||||
struct iwl_rx_packet *pkt;
|
||||
struct iwl3945_rx_queue *rxq = &priv->rxq;
|
||||
u32 r, i;
|
||||
|
@ -3752,7 +3752,7 @@ static void iwl3945_rx_handle(struct iwl3945_priv *priv)
|
|||
|
||||
rxq->queue[i] = NULL;
|
||||
|
||||
pci_dma_sync_single_for_cpu(priv->pci_dev, rxb->dma_addr,
|
||||
pci_dma_sync_single_for_cpu(priv->pci_dev, rxb->real_dma_addr,
|
||||
IWL_RX_BUF_SIZE,
|
||||
PCI_DMA_FROMDEVICE);
|
||||
pkt = (struct iwl_rx_packet *)rxb->skb->data;
|
||||
|
@ -3802,7 +3802,7 @@ static void iwl3945_rx_handle(struct iwl3945_priv *priv)
|
|||
rxb->skb = NULL;
|
||||
}
|
||||
|
||||
pci_unmap_single(priv->pci_dev, rxb->dma_addr,
|
||||
pci_unmap_single(priv->pci_dev, rxb->real_dma_addr,
|
||||
IWL_RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
|
||||
spin_lock_irqsave(&rxq->lock, flags);
|
||||
list_add_tail(&rxb->list, &priv->rxq.rx_used);
|
||||
|
|
Loading…
Reference in a new issue