7.3. cafe_ccic 驅動

作者: Jonathan Corbet <corbet@lwn.net>

7.3.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.3.2. 載入時選項

有一些載入時選項,其中大部分在載入後也可以透過 sysfs 更改

  • alloc_bufs_at_load: 通常,驅動程式直到資料傳輸時才分配任何 DMA 緩衝區。如果設定此選項,則在模組載入時會分配最壞情況大小的緩衝區。此選項在模組生命週期內鎖定記憶體,但可能減少之後分配失敗的可能性。

  • dma_buf_size: 要分配的 DMA 緩衝區大小。請注意,此選項僅在載入時分配時參考;當緩衝區在執行時分配時,它們將根據當前相機設定進行適當的大小調整。

  • n_dma_bufs: 控制器可以在兩個或三個 DMA 緩衝區之間迴圈。通常,驅動程式會嘗試使用三個緩衝區;但在更快的系統上,使用兩個也能很好地工作。

  • min_buffers: 驅動程式允許使用的最小流式 I/O 緩衝區數量。預設為一個,但在較慢的系統上,透過設定為更高值(如六個)可以改善 mplayer 的行為。

  • max_buffers: 最大流式 I/O 緩衝區數量;預設為十個。這個數字是隨意選擇的,不應認為它有任何實際意義。

  • flip: 如果此布林引數設定,感測器將被指示反轉影片影像。這是否合理取決於您的特定攝像頭的安裝方式。