免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6447 | 回复: 4
打印 上一主题 下一主题

V4L2/I2C 驱动程序架构问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-17 16:32 |只看该作者 |倒序浏览
本帖最后由 chengdot 于 2010-03-17 16:43 编辑

最近搞 7113 驱动,2.6.30.4 内核中有 7113 的驱动 (saa7115.c),有两个问题:

1. 没有获取图像的代码,只有 i2c 下配置参数的函数,
   我也看了其他 i2c 的摄像头代码,都没有获取图像的代码,
   这是为什么?这部分代码太简单了,不需要实现?
   (最后是参考了 9655 的驱动 - camif 操作,勉强能采集图像了,但还有些问题,另贴讨论)

2. i2c 部分的配置参数的函数是通过注册到 v4l2_subdev_ops 来实现的,但我找不到调用这些接口的方法!
   无奈之下,走了老路,在 v4l2_i2c_driver_data 中注册了一个 command 方法,
   我以为这个接口可以被应用程序中通过 ioctl() 间接调用,
   (参见: http://linux.chinaunix.net/bbs/v ... p;extra=&page=1 )

   但实际上并非这样,我已经通过 i2c_add_driver 把 command 所在的 i2c_driver 注册到系统了,
   该 i2c_driver 的其他接口,比如 probe, remove 均可以正确调用;
    我跟踪到 i2c-core.c 中的 i2c_clients_command(),但又找不到谁来调用这个函数,
   搜索整个内核源码,均未找到正确的调用位置;那么,这个 command 如何调用呢?

这些问题困扰多日,望大侠指点一二。


linux 的升级太快,哪怕是很相近的两个版本内核中都可能有非常巨大的改变,某些代码甚至完全重写,
并且内核的很多写法没有固定的方法和架构,令我这样的新手学习起来异常头疼。。。

论坛徽章:
0
2 [报告]
发表于 2010-03-18 09:45 |只看该作者
顶,
期待中。。。

论坛徽章:
0
3 [报告]
发表于 2010-03-18 17:45 |只看该作者
(i2cdev_read)
->(i2c_master_recv)
->(i2c_transfer)
->(i2c_adapter->algo->master_xfer)

(i2cdev_write)
->(i2c_master_send)
->(i2c_transfer)
->(i2c_adapter->algo->master_xfer)

(i2cdev_ioctl)
->(i2c_transfer)
->(i2c_adapter->algo->master_xfer)

static struct file_operations i2cdev_fops = {
        .owner                = THIS_MODULE,
        .llseek                = no_llseek,
        .read                = i2cdev_read,
        .write                = i2cdev_write,
        .ioctl                = i2cdev_ioctl,
        .open                = i2cdev_open,
        .release        = i2cdev_release,
};

i2c_dev_init
->register_chrdev(I2C_MAJOR, "i2c", &i2cdev_fops);

用文件接口访问

i2c_adapter->algo->master_xfer是特定的I2C总线适配器的访问函数,不知道你的是什么I2C总线适配器硬件

论坛徽章:
0
4 [报告]
发表于 2010-03-18 17:51 |只看该作者
可以仔细看看不同总线适配器的master_xfer实现
Drivers/i2c/busses下的各种实现方式

注意,如果I2C总线适配器不是直接挂CPU地址访问总线的,其实现方式不是master_xfer

比如PCI转I2C就是smbus_xfer

论坛徽章:
0
5 [报告]
发表于 2011-11-21 14:20 |只看该作者
mark
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP