1 Chinese translated version of Documentation/ad 2 3 If you have any comment or update to the conte 4 original document maintainer directly. Howeve 5 communicating in English you can also ask the 6 help. Contact the Chinese maintainer if this 7 or if there is a problem with the translation. 8 9 Maintainer: Laurent Pinchart <laurent.pinchart@ 10 Sakari Ailus <sakari.ailus@iki.fi> 11 David Cohen <dacohen@gmail.com> 12 Chinese maintainer: Fu Wei <tekkamanninja@gmail 13 ---------------------------------------------- 14 Documentation/admin-guide/media/omap3isp.rst 15 16 如果想评论或更新本文的内容,请 17 交流有困难的话,也可以向中文版 18 译存在问题,请联系中文版维护者 19 英文版维护者: Laurent Pinchart <laurent 20 Sakari Ailus <sakari.ailus@iki.fi> 21 David Cohen <dacohen@gmail.com> 22 中文版维护者: 傅炜 Fu Wei <tekkamanni 23 中文版翻译者: 傅炜 Fu Wei <tekkamanni 24 中文版校译者: 傅炜 Fu Wei <tekkamanni 25 26 27 以下为正文 28 ---------------------------------------------- 29 OMAP 3 图像信号处理器 (ISP) 驱动 30 31 Copyright (C) 2010 Nokia Corporation 32 Copyright (C) 2009 Texas Instruments, Inc. 33 34 联系人: Laurent Pinchart <laurent.pinchart@i 35 Sakari Ailus <sakari.ailus@iki.fi> 36 David Cohen <dacohen@gmail.com> 37 38 39 介绍 40 === 41 42 本文档介绍了由 drivers/media/video/omap 43 (TI)OMAP 3 图像信号处理器 (ISP) 驱 44 编写,但此后由诺基亚重写了两次 45 46 驱动已在以下 OMAP 3 系列的芯片中 47 48 3430 49 3530 50 3630 51 52 驱动实现了 V4L2、媒体控制器和 v4l2 53 v4l2_subdev 接口的传感器、镜头和闪 54 55 56 拆分为子设备 57 ========== 58 59 OMAP 3 ISP 被拆分为 V4L2 子设备,ISP 60 来表示。每个子设备向用户空间提 61 62 OMAP3 ISP CCP2 63 OMAP3 ISP CSI2a 64 OMAP3 ISP CCDC 65 OMAP3 ISP preview 66 OMAP3 ISP resizer 67 OMAP3 ISP AEWB 68 OMAP3 ISP AF 69 OMAP3 ISP histogram 70 71 ISP 中每个可能的连接都通过一个链 72 73 74 控制 OMAP 3 ISP 75 ============== 76 77 通常,对 OMAP 3 ISP 的配置会在下一 78 模块变为空闲时完成配置。在内存 79 应用配置应在帧间完成。 80 81 ISP 中的所有模块,除 CSI-2 和 (可 82 接收完整的帧数据。因此,传感器 83 84 Autoidle(自动空闲)功能至少在 3430 85 当 omap3isp 模块参数 autoidle 非零时 86 仅在 3630 中启用了。 87 88 89 事件机制 90 ====== 91 92 OMAP 3 ISP 驱动在 CCDC 和统计(AEWB、A 93 V4L2 事件机制接口。 94 95 CCDC 子设备通过 HS_VS 中断,处理 V4L 96 事件,用于告知帧起始。早期版本 97 当在 CCDC 模块中接收到起始帧的第 98 可以在 CCDC 子设备中“订阅”。 99 100 (当使用并行接口时,必须注意正 101 这个会自动校正。) 102 103 每个统计子设备都可以产生事件。 104 通过 VIDIOC_OMAP3ISP_STAT_REQ IOCTL 操作 105 事件。当前存在以下事件: 106 107 V4L2_EVENT_OMAP3ISP_AEWB 108 V4L2_EVENT_OMAP3ISP_AF 109 V4L2_EVENT_OMAP3ISP_HIST 110 111 这些 ioctl 的事件数据类型为 struct o 112 结构体。如果出现计算错误的统计 113 数据缓冲区。这种情况下 omap3isp_sta 114 设置为非零值。 115 116 117 私有 IOCTL 118 ========== 119 120 OMAP 3 ISP 驱动支持标准的 V4L2 IOCTL 121 ISP 提供的许多功能都不在标准 IOCTL 122 数据采集配置等。 123 124 通常,会有一个私有 ioctl 用于配置 125 126 支持以下私有 IOCTL: 127 128 VIDIOC_OMAP3ISP_CCDC_CFG 129 VIDIOC_OMAP3ISP_PRV_CFG 130 VIDIOC_OMAP3ISP_AEWB_CFG 131 VIDIOC_OMAP3ISP_HIST_CFG 132 VIDIOC_OMAP3ISP_AF_CFG 133 VIDIOC_OMAP3ISP_STAT_REQ 134 VIDIOC_OMAP3ISP_STAT_EN 135 136 在 include/linux/omap3isp.h 中描述了这 137 与特定 ISP 模块相关的 ISP 自身的详 138 描述,详见文档结尾。 139 140 虽然在不使用任何私有 IOCTL 的情况 141 获得最佳的图像质量。AEWB、AF 和 142 控制,以及图像均衡等)模块无法 143 144 145 CCDC 和 preview(预览)模块 IOCTL 146 =============================== 147 148 VIDIOC_OMAP3ISP_CCDC_CFG 和 VIDIOC_OMAP3ISP_P 149 被分别用于配置、启用和禁用 CCDC 150 所控制的模块中,两个 IOCTL 控制多 151 接受一个指向 omap3isp_ccdc_update_config 152 同样的,VIDIOC_OMAP3ISP_PRV_CFG 接受一 153 结构体的指针。以上两个结构体定 154 155 这些结构体中的 update 域标识是否 156 则标识是启用还是禁用此功能。 157 158 update 和 flag 位接受以下掩码值。CCD 159 每个单独功能都与一个 flag 关联( 160 一部分)和一个指向功能配置数据 161 162 对于 VIDIOC_OMAP3ISP_CCDC_CFG,下面列出 163 中的有效值。 这些值可能会在同一 164 165 OMAP3ISP_CCDC_ALAW 166 OMAP3ISP_CCDC_LPF 167 OMAP3ISP_CCDC_BLCLAMP 168 OMAP3ISP_CCDC_BCOMP 169 OMAP3ISP_CCDC_FPC 170 OMAP3ISP_CCDC_CULL 171 OMAP3ISP_CCDC_CONFIG_LSC 172 OMAP3ISP_CCDC_TBL_LSC 173 174 针对 VIDIOC_OMAP3ISP_PRV_CFG 的相应值如 175 176 OMAP3ISP_PREV_LUMAENH 177 OMAP3ISP_PREV_INVALAW 178 OMAP3ISP_PREV_HRZ_MED 179 OMAP3ISP_PREV_CFA 180 OMAP3ISP_PREV_CHROMA_SUPP 181 OMAP3ISP_PREV_WB 182 OMAP3ISP_PREV_BLKADJ 183 OMAP3ISP_PREV_RGB2RGB 184 OMAP3ISP_PREV_COLOR_CONV 185 OMAP3ISP_PREV_YC_LIMIT 186 OMAP3ISP_PREV_DEFECT_COR 187 OMAP3ISP_PREV_GAMMABYPASS 188 OMAP3ISP_PREV_DRK_FRM_CAPTURE 189 OMAP3ISP_PREV_DRK_FRM_SUBTRACT 190 OMAP3ISP_PREV_LENS_SHADING 191 OMAP3ISP_PREV_NF 192 OMAP3ISP_PREV_GAMMA 193 194 在启用某个功能的时候,相关的配 195 配置数据指针会被忽略。 196 197 198 统计模块 IOCTL 199 ============= 200 201 统计子设备相较于其他子设备提供 202 工作状态时,它们可以被启用、禁 203 204 统计模块总是从 CCDC 中获取输入的 205 统计数据可由用户通过统计子设备 206 207 AEWB、AF 和 直方图子设备提供的私 208 提供的寄存器级接口。有些方面纯 209 210 VIDIOC_OMAP3ISP_STAT_EN 211 ----------------------- 212 213 这个私有 IOCTL 启用/禁用 一个统计 214 它将在视频流水线开始工作时生效 215 CCDC 变为空闲时生效。 216 217 VIDIOC_OMAP3ISP_AEWB_CFG, VIDIOC_OMAP3ISP_HIST 218 ---------------------------------------------- 219 220 这些 IOCTL 用于配置模块。它们要求 221 大多数域的解释可以在 OMAP 的 TRM 222 私有 IOCTL 配置都很常见,由于他们 223 更好的认识。 224 225 omap3isp_[h3a_af/h3a_aewb/hist]_config.buf_siz 226 227 模块在内部处理自身缓冲。对模块 228 虽然驱动支持在视频流工作时重新 229 所分配数量的情况,则不支持重新 230 此类状况,无论是禁用/重配/启用 231 都应在模块禁用的情况下进行。 232 233 内部缓冲分配的大小需综合考虑所 234 所设的值。如果 buf_size 域在[minimum 235 缓冲大小范围之外,则应该将其调 236 buf_size 值将回写到用户应用程序中 237 238 omap3isp_[h3a_af/h3a_aewb/hist]_config.config_ 239 240 由于配置并未在申请之后同步生效 241 以提供更准确的数据。在一个配置 242 config_counter 是一个与其配置相关的 243 一个缓冲可用或一个新的缓冲申请 244 一个缓冲数据和一个配置的匹配。 245 246 VIDIOC_OMAP3ISP_STAT_REQ 247 ------------------------ 248 249 将内部缓冲队列中最早的数据发送 250 omap3isp_stat_data.frame_number 域与视频 251 域相匹配。 252 253 254 技术参考手册 (TRMs) 和其他文档 255 ========================== 256 257 OMAP 3430 TRM: 258 <URL:http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES 259 参考于 2011-03-05. 260 261 OMAP 35xx TRM: 262 <URL:http://www.ti.com/litv/pdf/spruf98o> 参 263 264 OMAP 3630 TRM: 265 <URL:http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES 266 参考于 2011-03-05. 267 268 DM 3730 TRM: 269 <URL:http://www.ti.com/litv/pdf/sprugn4h> 参 270 271 272 参考资料 273 ======= 274 275 [1] include/linux/omap3isp.h 276 277 [2] http://git.ideasonboard.org/?p=media-ctl.g
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.