rt28xx_open分析

    上一节我们分析到,当驱动唤醒,调用函数resume,函数中调用接口rt28xx_open来进行相关初始化。

1. 清除power save节电状态
    RTMP_DRIVER_MCU_SLEEP_CLEAR()
    调用函数RTMP_COM_IoctlHandle设置mcu sleep 状态 
2. 初始化ioctl结构
    net_dev->wireless_handlers = (struct iw_handler_def *) &rt28xx_ap_iw_handler_def;
    rt28xx_ap_iw_handler_def结构定义了相关ioctl接口, 定义了iw支持的命令参数
3. 注册中断处理针对PCI
   RtmpOSIRQRequest ->rt2860_interrupt
4. 注册网络设备中断处理
   RTMP_DRIVER_IRQ_INIT->rtmp_irq_init(pAd);
  通过ioctl进行中断初始化工作
5. 芯片和其它相关初始化,内存分配等
   rt28xx_init(pAd, mac, hostname)
   函数中调用接口:
   a.初始化 任务\数据结构\状态机\定时器
   MlmeInit()->WpaStateMachineInit wpa状态机初始化
   b.网络任务初始化
   RtmpNetTaskInit->RTMP_OS_TASKLET_INIT(pAd, &pObj->rx_done_task, rx_done_tasklet, (unsigned long)pAd)->rx_done_tasklet->rtmp_rx_done_handle->提供无线数据、管理、控制报文、处理接口:
  Linux驱动(八)----Rt28xx_open分析-LMLPHP

    c.读取用户配置文件/etc/Wireless/RT2860/RT2860.dat
      RTMPReadParametersHook(pAd);
    d. 启动AP
      APStartUp(pAd);

11-19 23:46