Added constants, a stub handler, and an ack for the DTIM event.

This commit is contained in:
mark 2000-06-29 13:26:13 +00:00
parent 5ba12e069f
commit 26613a6648
2 changed files with 43 additions and 0 deletions

View File

@ -168,6 +168,7 @@ static int prism2sta_txframe(wlandevice_t *wlandev, wlan_pb_t *pb);
static int prism2sta_mlmerequest(wlandevice_t *wlandev, p80211msg_t *msg);
static void prism2sta_interrupt IRQ(int irq, void *dev_id, struct pt_regs *regs);
static void prism2sta_int_dtim(wlandevice_t *wlandev);
static void prism2sta_int_infdrop(wlandevice_t *wlandev);
static void prism2sta_int_info(wlandevice_t *wlandev);
static void prism2sta_int_txexc(wlandevice_t *wlandev);
@ -1467,6 +1468,11 @@ void prism2sta_interrupt IRQ(int irq, void *dev_id, struct pt_regs *regs)
HFA384x_EVACK(hw->iobase));
}
if ( HFA384x_EVSTAT_ISDTIM(reg) ){
prism2sta_int_dtim(wlandev);
wlan_outw_cpu_to_le16(HFA384x_EVACK_DTIM_SET(1),
HFA384x_EVACK(hw->iobase));
}
/* allow the evstat to be updated after the evack */
udelay(20);
@ -1495,6 +1501,35 @@ void prism2sta_interrupt IRQ(int irq, void *dev_id, struct pt_regs *regs)
}
/*----------------------------------------------------------------
* prism2sta_int_dtim
*
* Handles the DTIM early warning event.
*
* Arguments:
* wlandev wlan device structure
*
* Returns:
* nothing
*
* Side effects:
*
* Call context:
* interrupt
----------------------------------------------------------------*/
void prism2sta_int_dtim(wlandevice_t *wlandev)
{
#if 0
prism2sta_priv_t *priv = wlandev->priv;
hfa384x_t *hw = priv->hw;
#endif
DBFENTER;
WLAN_LOG_DEBUG0(3, "DTIM event, currently unhandled.\n");
DBFEXIT;
return;
}
/*----------------------------------------------------------------
* prism2sta_int_infdrop
*

View File

@ -161,6 +161,7 @@
#define HFA384x_EVSTAT_WTERR ((UINT16)BIT14)
#define HFA384x_EVSTAT_INFDROP ((UINT16)BIT13)
#define HFA384x_EVSTAT_INFO ((UINT16)BIT7)
#define HFA384x_EVSTAT_DTIM ((UINT16)BIT5)
#define HFA384x_EVSTAT_CMD ((UINT16)BIT4)
#define HFA384x_EVSTAT_ALLOC ((UINT16)BIT3)
#define HFA384x_EVSTAT_TXEXC ((UINT16)BIT2)
@ -171,6 +172,7 @@
#define HFA384x_INTEN_WTERR ((UINT16)BIT14)
#define HFA384x_INTEN_INFDROP ((UINT16)BIT13)
#define HFA384x_INTEN_INFO ((UINT16)BIT7)
#define HFA384x_INTEN_DTIM ((UINT16)BIT5)
#define HFA384x_INTEN_CMD ((UINT16)BIT4)
#define HFA384x_INTEN_ALLOC ((UINT16)BIT3)
#define HFA384x_INTEN_TXEXC ((UINT16)BIT2)
@ -181,6 +183,7 @@
#define HFA384x_EVACK_WTERR ((UINT16)BIT14)
#define HFA384x_EVACK_INFDROP ((UINT16)BIT13)
#define HFA384x_EVACK_INFO ((UINT16)BIT7)
#define HFA384x_EVACK_DTIM ((UINT16)BIT5)
#define HFA384x_EVACK_CMD ((UINT16)BIT4)
#define HFA384x_EVACK_ALLOC ((UINT16)BIT3)
#define HFA384x_EVACK_TXEXC ((UINT16)BIT2)
@ -644,6 +647,7 @@ PD Record codes
#define HFA384x_EVSTAT_ISWTERR(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_WTERR))
#define HFA384x_EVSTAT_ISINFDROP(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_INFDROP))
#define HFA384x_EVSTAT_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_INFO))
#define HFA384x_EVSTAT_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_DTIM))
#define HFA384x_EVSTAT_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_CMD))
#define HFA384x_EVSTAT_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_ALLOC))
#define HFA384x_EVSTAT_ISTXEXC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVSTAT_TXEXC))
@ -658,6 +662,8 @@ PD Record codes
#define HFA384x_INTEN_INFDROP_SET(value) ((UINT16)(((UINT16)(value)) << 13))
#define HFA384x_INTEN_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_INFO))
#define HFA384x_INTEN_INFO_SET(value) ((UINT16)(((UINT16)(value)) << 7))
#define HFA384x_INTEN_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_DTIM))
#define HFA384x_INTEN_ISDTIM_SET(value) ((UINT16)(((UINT16)(value)) << 5))
#define HFA384x_INTEN_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_CMD))
#define HFA384x_INTEN_CMD_SET(value) ((UINT16)(((UINT16)(value)) << 4))
#define HFA384x_INTEN_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_INTEN_ALLOC))
@ -677,6 +683,8 @@ PD Record codes
#define HFA384x_EVACK_INFDROP_SET(value) ((UINT16)(((UINT16)(value)) << 13))
#define HFA384x_EVACK_ISINFO(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_INFO))
#define HFA384x_EVACK_INFO_SET(value) ((UINT16)(((UINT16)(value)) << 7))
#define HFA384x_EVACK_ISDTIM(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_DTIM))
#define HFA384x_EVACK_ISDTIM_SET(value) ((UINT16)(((UINT16)(value)) << 5))
#define HFA384x_EVACK_ISCMD(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_CMD))
#define HFA384x_EVACK_CMD_SET(value) ((UINT16)(((UINT16)(value)) << 4))
#define HFA384x_EVACK_ISALLOC(value) ((UINT16)(((UINT16)(value)) & HFA384x_EVACK_ALLOC))