7.2. cafe_ccic 驱动¶
作者:Jonathan Corbet <corbet@lwn.net>
7.2.1. 简介¶
“cafe_ccic”是 Marvell 88ALP01 “cafe” CMOS 摄像头控制器的驱动程序。这是第一代 OLPC 系统中使用的控制器,此驱动程序是在 OLPC 项目的支持下编写的。
当前状态:核心驱动程序工作正常。它可以生成 YUV422、RGB565 和 RGB444 格式的数据。(任何查看代码的人也会看到 RGB32,但这是一种调试辅助工具,很快就会被删除)。VGA 和 QVGA 模式有效;CIF 在那里,但颜色仍然很奇怪。目前只知道 OV7670 传感器可以与此控制器一起使用。
要试用它:以下任一命令均可正常工作
$ mplayer tv:// -tv driver=v4l2:width=640:height=480 -nosound
$ mplayer tv:// -tv driver=v4l2:width=640:height=480:outfmt=bgr16 -nosound
“xawtv”实用程序也有效;由于未知原因,gqcam 无效。
7.2.2. 加载时选项¶
有一些加载时选项,其中大多数也可以在加载后通过 sysfs 进行更改
alloc_bufs_at_load:通常,驱动程序在需要传输数据时才会分配任何 DMA 缓冲区。如果设置此选项,则将在模块加载时分配最大大小的缓冲区。此选项为模块的生命周期锁定了内存,但可能会减少以后发生分配失败的机会。
dma_buf_size:要分配的 DMA 缓冲区的大小。请注意,此选项仅用于加载时分配;当在运行时分配缓冲区时,它们将根据当前的摄像头设置进行适当的大小调整。
n_dma_bufs:控制器可以循环使用两个或三个 DMA 缓冲区。通常,驱动程序会尝试使用三个缓冲区;但是,在更快的系统上,它只需要两个缓冲区即可正常工作。
min_buffers:驱动程序同意使用的最小流式 I/O 缓冲区数。默认值为 1,但是在较慢的系统上,通过将其设置为更高的值(例如 6),可以获得 mplayer 的更好行为。
max_buffers:流式 I/O 缓冲区的最大数量;默认值为 10。该数字是从帽子里精心挑选出来的,不应假定它实际上意味着什么。
flip:如果设置此布尔参数,则会指示传感器反转视频图像。它是否有意义取决于您的特定摄像头的安装方式。