华硕rt-ac85p更换新驱动(一)

ap_cfg.c文件需要添加如下内容,否则led和webui会不正常,其他需要声明的自行添加到头文件就可以了

	case CMD_RTPRIV_IOCTL_ASUSCMD:
		//RTMPIoctlAsusHandle(pAd, wrq, subcmd, pData, Data);
		if ( subcmd == ASUS_SUBCMD_CHLIST) {
			UINT32 i;
			UCHAR BandIdx;
			CHANNEL_CTRL *pChCtrl;
			RTMP_STRING pChannel[256], pTmp[4];
			POS_COOKIE pObj = (POS_COOKIE)pAd->OS_Cookie;
			struct wifi_dev *wdev = get_wdev_by_ioctl_idx_and_iftype(pAd, pObj->ioctl_if, pObj->ioctl_if_type);
			memset(pChannel, 0, 256);
			if (wdev)
			BandIdx = HcGetBandByWdev(wdev);
			else {
				BandIdx = BAND0;
				MTWF_LOG(DBG_CAT_CFG, DBG_SUBCAT_ALL, DBG_LVL_ERROR, ("ASUS_SUBCMD_CHLIST, wdev = NULL\n"));
			}
			pChCtrl = hc_get_channel_ctrl(pAd->hdev_ctrl, BandIdx);

			for (i = 1; i <= pChCtrl->ChListNum; i++) {
				if(i > 1)
					strcat(pChannel,",");
				snprintf(pTmp, sizeof(pTmp), "%d", pChCtrl->ChList[i - 1].Channel);
				strcat(pChannel,pTmp);
			}
			wrq->u.data.length = strlen(pChannel);
			pChannel[wrq->u.data.length] = '\0';
			if (copy_to_user(wrq->u.data.pointer, pChannel, wrq->u.data.length))
				Status = -EFAULT;
		} else if ( subcmd == ASUS_SUBCMD_DRIVERVER ) {
			RTMP_STRING driverVersion[16];
			wrq->u.data.length = strlen(AP_DRIVER_VERSION);
			snprintf(&driverVersion[0], sizeof(driverVersion), "%s", AP_DRIVER_VERSION);
			driverVersion[wrq->u.data.length] = '\0';
			if (copy_to_user(wrq->u.data.pointer, driverVersion, wrq->u.data.length))
				Status = -EFAULT;
		} else if ( subcmd == ASUS_SUBCMD_RADIO_STATUS ) {
			UINT Enable = 0;
			POS_COOKIE pObj = (POS_COOKIE) pAd->OS_Cookie;
			struct wifi_dev *wdev = get_wdev_by_ioctl_idx_and_iftype(pAd, pObj->ioctl_if, pObj->ioctl_if_type);
			Enable = !IsHcRadioCurStatOffByChannel(pAd, wdev->channel);
			wrq->u.data.length = 1;
			if (copy_to_user(wrq->u.data.pointer, &Enable, wrq->u.data.length))
				Status = -EFAULT;
		}
		break;

当开启bw160时,iwconfig会触发int超出范围的问题,高通 对这个问题的解决方法就是驱动传出数据时除1000,在iwconfig里打印前转换成double在乘回来,我们也按这个方法来解决
ap_ioctl.c

wrqin->u.bitrate.value = (pIoctlRate->BitRate/1000);

wireless_tools/Makefile

 CFLAGS += $(if $(RTCONFIG_RALINK),-DRTCONFIG_RALINK)

wireless_tools/iwlib.c

 #if defined(QCA_NEW_DRIVER) || defined(RTCONFIG_RALINK)

驱动里需要修改的部分基本就这些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值