RD9700 驱动含Android


RD9700完整驱动程序,费好大力气才找到的。含:9700_android,Linux,XP-WIN8-32,XP-WIN8-64,XP-WIN8Setup微软数字认证等目录及文件
资源截图
代码片段和文件信息
/*
 * QF9700 one chip USB 1.1 ethernet devices
 *
 * Author : jokeliujl 
 * Date : 2010-10-01
 *
 * This file is licensed under the terms of the GNU General Public License
 * version 2.  This program is licensed “as is“ without any warranty of any
 * kind whether express or implied.
 */

//#define DEBUG

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include “qf9700.h“

/* ------------------------------------------------------------------------------------------ */
/* qf9700 mac and phy operations */
/* qf9700 read some registers from MAC */
static int qf_read(struct usbnet *dev u8 reg u16 length void *data)
{
void *buf;
int err = -ENOMEM;

devdbg(dev “qf_read() reg=0x%02x length=%d“ reg length);

buf = kmalloc(length GFP_KERNEL);
if (!buf)
goto out;

err = usb_control_msg(dev->udev usb_rcvctrlpipe(dev->udev 0) 
QF_RD_REGS QF_REQ_RD_REG
    0 reg buf length USB_CTRL_SET_TIMEOUT);
if (err == length)
memcpy(data buf length);
else if (err >= 0)
err = -EINVAL;
kfree(buf);

 out:
return err;
}

/* qf9700 write some registers to MAC */
static int qf_write(struct usbnet *dev u8 reg u16 length void *data)
{
void *buf = NULL;
int err = -ENOMEM;

devdbg(dev “qf_write() reg=0x%02x length=%d“ reg length);

if (data) {
buf = kmalloc(length GFP_KERNEL);
if (!buf)
goto out;
memcpy(buf data length);
}

err = usb_control_msg(dev->udev usb_sndctrlpipe(dev->udev 0)
      QF_WR_REGS QF_REQ_WR_REG
      0 reg buf length USB_CTRL_SET_TIMEOUT);
kfree(buf);
if (err >= 0 && err < length)
err = -EINVAL;
 out:
return err;
}

/* qf9700 read one register from MAC */
static int qf_read_reg(struct usbnet *dev u8 reg u8 *value)
{
return qf_read(dev reg 1 value);
}

/* qf9700 write one register to MAC */
static int qf_write_reg(struct usbnet *dev u8 reg u8 value)
{
devdbg(dev “qf_write_reg() reg=0x%02x value=0x%02x“ reg value);
return usb_control_msg(dev->udev usb_sndctrlpipe(dev->udev 0)
       QF_WR_REG QF_REQ_WR_REG
       value reg NULL 0 USB_CTRL_SET_TIMEOUT);
}

/* async mode for writing registers or reg blocks */
static void qf_write_async_callback(struct urb *urb)
{
struct usb_ctrlrequest *req = (struct usb_ctrlrequest *)urb->context;

if (urb->status < 0)
printk(KERN_DEBUG “qf_write_async_callback() failed with %d
“ urb->status);

kfree(req);
usb_free_urb(urb);
}

static void qf_write_async_helper(struct usbnet *dev u8 reg u8 value u16 length void *data)
{
struct usb_ctrlrequest *req;
struct urb *urb;
int status;

urb = usb_alloc_urb(0 GFP_ATOMIC);
if (!urb) {
deverr(dev “Error allocating URB in qf_write_async_helper!“);
return;
}

req = kmalloc(sizeof(struct usb_ctrlrequest)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-10-15 14:39  RD9700Driver
     目录           0  2015-10-15 14:39  RD9700Driver9700
     目录           0  2015-10-15 14:39  RD9700Driver9700WINCE500
     文件       34665  2010-11-04 13:13  RD9700Driver9700WINCE500CoreChip QF9700 USB Driver For WINCE 5.0.cab
     文件         414  2010-10-31 17:33  RD9700Driver9700WINCE500QF9700USB.bib
     文件       29696  2010-11-04 13:07  RD9700Driver9700WINCE500QF9700USB.dll
     文件        1540  2010-11-01 08:40  RD9700Driver9700WINCE500QF9700USB.reg
     文件         311  2010-11-04 11:02  RD9700Driver9700WINCE500README.txt
     目录           0  2015-10-15 14:39  RD9700Driver9700WINCE600
     目录           0  2015-10-15 14:39  RD9700Driver9700WINCE600QF9700Release
     文件       34674  2010-11-04 11:07  RD9700Driver9700WINCE600QF9700ReleaseCoreChip QF9700 Driver For Windows CE 6.0.cab
     文件         414  2010-10-31 17:33  RD9700Driver9700WINCE600QF9700ReleaseQF9700USB.bib
     文件       29696  2010-11-04 10:51  RD9700Driver9700WINCE600QF9700ReleaseQF9700USB.dll
     文件        1540  2010-11-01 08:40  RD9700Driver9700WINCE600QF9700ReleaseQF9700USB.reg
     文件         311  2010-11-04 11:02  RD9700Driver9700WINCE600QF9700ReleaseREADME.txt
     目录           0  2015-10-15 14:39  RD9700DriverLinux
     文件         270  2010-10-09 16:51  RD9700DriverLinux.qf9700.ko.cmd
     文件       18761  2010-10-09 16:51  RD9700DriverLinux.qf9700.mod.o.cmd
     文件       30616  2010-10-09 16:51  RD9700DriverLinux.qf9700.o.cmd
     目录           0  2015-10-15 14:39  RD9700DriverLinux.tmp_versions
     文件         113  2010-10-09 16:51  RD9700DriverLinux.tmp_versionsqf9700.mod
     文件         508  2010-10-09 16:51  RD9700DriverLinuxMakefile
     文件          45  2010-10-09 16:51  RD9700DriverLinuxModule.markers
     文件           0  2010-10-09 16:51  RD9700DriverLinuxModule.symvers
     文件        2192  2010-10-09 16:50  RD9700DriverLinuxREADME
     文件          64  2010-10-09 16:51  RD9700DriverLinuxmodules.order
     文件       13702  2010-10-09 16:50  RD9700DriverLinuxqf9700.c
     文件        4048  2010-10-09 16:51  RD9700DriverLinuxqf9700.h
     文件       16735  2010-10-09 16:51  RD9700DriverLinuxqf9700.ko
     文件         504  2010-10-09 16:51  RD9700DriverLinuxqf9700.mod.c
     文件        9784  2010-10-09 16:51  RD9700DriverLinuxqf9700.mod.o
............此处省略37个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)