}
return NOTIFY_DONE;
-
}
#if (defined WILC_SPI) || (defined WILC_SDIO_IRQ_GPIO)
if ((ret != -1) && (request_threaded_irq(wl->dev_irq_num, isr_uh_routine, isr_bh_routine,
IRQF_TRIGGER_LOW | IRQF_ONESHOT, /*Without IRQF_ONESHOT the uh will remain kicked in and dont gave a chance to bh*/
"WILC_IRQ", dev)) < 0) {
-
PRINT_ER("Failed to request IRQ for GPIO: %d\n", GPIO_NUM);
ret = -1;
} else {
-
PRINT_D(INIT_DBG, "IRQ request succeeded IRQ-NUM= %d on GPIO: %d\n",
wl->dev_irq_num, GPIO_NUM);
}
if (wilc->mac_status == WILC_MAC_STATUS_CONNECT) { /* Connect */
}
-
} else if (flag == WILC_MAC_INDICATE_SCAN) {
PRINT_D(GENERIC_DBG, "Scanning ...\n");
-
}
-
}
struct net_device *GetIfHandler(struct wilc *wilc, u8 *pMacHeader)
/* inform wilc1000_wlan_init that TXQ task is started. */
up(&wl->txq_thread_started);
while (1) {
-
PRINT_D(TX_DBG, "txq_task Taking a nap :)\n");
down(&wl->txq_event);
/* wait_for_completion(&pd->txq_event); */
_fail_:
return ret;
-
}
static int linux_wlan_start_firmware(struct net_device *dev)
/* startup configuration - could be changed later using iconfig*/
static int linux_wlan_init_test_config(struct net_device *dev, struct wilc *p_nic)
{
-
unsigned char c_val[64];
unsigned char mac_add[] = {0x00, 0x80, 0xC2, 0x5E, 0xa2, 0xff};
}
void linux_to_wlan(wilc_wlan_inp_t *nwi, struct wilc *nic)
{
-
PRINT_D(INIT_DBG, "Linux to Wlan services ...\n");
nwi->os_context.os_private = (void *)nic;
int mac_init_fn(struct net_device *ndev)
{
-
/*Why we do this !!!*/
netif_start_queue(ndev); /* ma */
netif_stop_queue(ndev); /* ma */
/* Setup the multicast filter */
static void wilc_set_multicast_list(struct net_device *dev)
{
-
struct netdev_hw_addr *ha;
struct wilc_priv *priv;
struct host_if_drv *hif_drv;
host_int_setup_multicast_filter(hif_drv, true, (dev->mc.count));
return;
-
}
static void linux_wlan_tx_complete(void *priv, int status)
{
-
struct tx_complete_data *pv_data = (struct tx_complete_data *)priv;
if (status == 1)
int mac_ioctl(struct net_device *ndev, struct ifreq *req, int cmd)
{
-
u8 *buff = NULL;
s8 rssi;
u32 size = 0, length = 0;
return 0;
switch (cmd) {
-
/* ]] 2013-06-24 */
case SIOCSIWPRIV:
{
size = wrq->u.data.length;
if (size && wrq->u.data.pointer) {
-
buff = memdup_user(wrq->u.data.pointer, wrq->u.data.length);
if (IS_ERR(buff))
return PTR_ERR(buff);
void frmw_to_linux(struct wilc *wilc, u8 *buff, u32 size, u32 pkt_offset)
{
-
unsigned int frame_len = 0;
int stats;
unsigned char *buff_to_send = NULL;
nic = netdev_priv(wilc_netdev);
if (size > 0) {
-
frame_len = size;
buff_to_send = buff;
nic->netstats.tx_packets = 0;
nic->netstats.rx_bytes = 0;
nic->netstats.tx_bytes = 0;
-
}
if (register_netdev(ndev)) {
nic->iftype = STATION_MODE;
nic->mac_opened = 0;
-
}
#ifndef WILC_SDIO