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:如果设置此布尔参数,则会指示传感器反转视频图像。它是否有意义取决于您的特定摄像头的安装方式。