1 Chinese translated version of Documentation/ad 1 Chinese translated version of Documentation/admin-guide/media/omap3isp.rst 2 2 3 If you have any comment or update to the conte 3 If you have any comment or update to the content, please contact the 4 original document maintainer directly. Howeve 4 original document maintainer directly. However, if you have a problem 5 communicating in English you can also ask the 5 communicating in English you can also ask the Chinese maintainer for 6 help. Contact the Chinese maintainer if this 6 help. Contact the Chinese maintainer if this translation is outdated 7 or if there is a problem with the translation. 7 or if there is a problem with the translation. 8 8 9 Maintainer: Laurent Pinchart <laurent.pinchart@ 9 Maintainer: Laurent Pinchart <laurent.pinchart@ideasonboard.com> 10 Sakari Ailus <sakari.ailus@iki.fi> 10 Sakari Ailus <sakari.ailus@iki.fi> 11 David Cohen <dacohen@gmail.com> 11 David Cohen <dacohen@gmail.com> 12 Chinese maintainer: Fu Wei <tekkamanninja@gmail 12 Chinese maintainer: Fu Wei <tekkamanninja@gmail.com> 13 ---------------------------------------------- 13 --------------------------------------------------------------------- 14 Documentation/admin-guide/media/omap3isp.rst ç 14 Documentation/admin-guide/media/omap3isp.rst çš„ä¸æ–‡ç¿»è¯‘ 15 15 16 如果想评论或更新本文的内容,请ç 16 如果想评论或更新本文的内容,请直接è”ç³»åŽŸæ–‡æ¡£çš„ç»´æŠ¤è€…ã€‚å¦‚æžœä½ ä½¿ç”¨è‹±æ–‡ 17 交æµæœ‰å›°éš¾çš„è¯ï¼Œä¹Ÿå¯ä»¥å‘ä¸æ–‡ç‰ˆç 17 交æµæœ‰å›°éš¾çš„è¯ï¼Œä¹Ÿå¯ä»¥å‘ä¸æ–‡ç‰ˆç»´æŠ¤è€…求助。如果本翻译更新ä¸åŠæ—¶æˆ–者翻 18 译å˜åœ¨é—®é¢˜ï¼Œè¯·è”ç³»ä¸æ–‡ç‰ˆç»´æŠ¤è€…ã 18 译å˜åœ¨é—®é¢˜ï¼Œè¯·è”ç³»ä¸æ–‡ç‰ˆç»´æŠ¤è€…。 19 英文版维护者: Laurent Pinchart <laurent 19 英文版维护者: Laurent Pinchart <laurent.pinchart@ideasonboard.com> 20 Sakari Ailus <sakari.ailus@iki.fi> 20 Sakari Ailus <sakari.ailus@iki.fi> 21 David Cohen <dacohen@gmail.com> 21 David Cohen <dacohen@gmail.com> 22 ä¸æ–‡ç‰ˆç»´æŠ¤è€…: å‚…ç‚œ Fu Wei <tekkamanni 22 ä¸æ–‡ç‰ˆç»´æŠ¤è€…: å‚…ç‚œ Fu Wei <tekkamanninja@gmail.com> 23 ä¸æ–‡ç‰ˆç¿»è¯‘者: å‚…ç‚œ Fu Wei <tekkamanni 23 ä¸æ–‡ç‰ˆç¿»è¯‘者: å‚…ç‚œ Fu Wei <tekkamanninja@gmail.com> 24 ä¸æ–‡ç‰ˆæ ¡è¯‘者: å‚…ç‚œ Fu Wei <tekkamanni 24 ä¸æ–‡ç‰ˆæ ¡è¯‘者: å‚…ç‚œ Fu Wei <tekkamanninja@gmail.com> 25 25 26 26 27 以下为æ£æ–‡ 27 以下为æ£æ–‡ 28 ---------------------------------------------- 28 --------------------------------------------------------------------- 29 OMAP 3 图åƒä¿¡å·å¤„ç†å™¨ (ISP) 驱动 29 OMAP 3 图åƒä¿¡å·å¤„ç†å™¨ (ISP) 驱动 30 30 31 Copyright (C) 2010 Nokia Corporation 31 Copyright (C) 2010 Nokia Corporation 32 Copyright (C) 2009 Texas Instruments, Inc. 32 Copyright (C) 2009 Texas Instruments, Inc. 33 33 34 è”系人: Laurent Pinchart <laurent.pinchart@i 34 è”系人: Laurent Pinchart <laurent.pinchart@ideasonboard.com> 35 Sakari Ailus <sakari.ailus@iki.fi> 35 Sakari Ailus <sakari.ailus@iki.fi> 36 David Cohen <dacohen@gmail.com> 36 David Cohen <dacohen@gmail.com> 37 37 38 38 39 ä»‹ç» 39 ä»‹ç» 40 === 40 === 41 41 42 本文档介ç»äº†ç”± drivers/media/video/omap 42 本文档介ç»äº†ç”± drivers/media/video/omap3isp åŠ è½½çš„å¾·å·žä»ªå™¨ 43 (TI)OMAP 3 图åƒä¿¡å·å¤„ç†å™¨ (ISP) 驱 43 (TI)OMAP 3 图åƒä¿¡å·å¤„ç†å™¨ (ISP) 驱动。原始驱动由德州仪器(TI) 44 编写,但æ¤åŽç”±è¯ºåŸºäºšé‡å†™äº†ä¸¤æ¬¡ã 44 编写,但æ¤åŽç”±è¯ºåŸºäºšé‡å†™äº†ä¸¤æ¬¡ã€‚ 45 45 46 驱动已在以下 OMAP 3 系列的芯片ä¸æˆ 46 驱动已在以下 OMAP 3 系列的芯片ä¸æˆåŠŸä½¿ç”¨ï¼š 47 47 48 3430 48 3430 49 3530 49 3530 50 3630 50 3630 51 51 52 驱动实现了 V4L2ã€åª’体控制器和 v4l2 52 驱动实现了 V4L2ã€åª’体控制器和 v4l2_subdev 接å£ã€‚支æŒå†…æ ¸ä¸ä½¿ç”¨ 53 v4l2_subdev 接å£çš„ä¼ æ„Ÿå™¨ã€é•œå¤´å’Œé—ªå 53 v4l2_subdev 接å£çš„ä¼ æ„Ÿå™¨ã€é•œå¤´å’Œé—ªå…‰ç¯é©±åŠ¨ã€‚ 54 54 55 55 56 拆分为å设备 56 拆分为å设备 57 ========== 57 ========== 58 58 59 OMAP 3 ISP 被拆分为 V4L2 å设备,ISPä¸ 59 OMAP 3 ISP 被拆分为 V4L2 å设备,ISPä¸çš„æ¯ä¸ªæ¨¡å—都由一个å设备 60 æ¥è¡¨ç¤ºã€‚æ¯ä¸ªå设备å‘用户空间æä 60 æ¥è¡¨ç¤ºã€‚æ¯ä¸ªå设备å‘用户空间æ供一个 V4L2 å设备接å£ã€‚ 61 61 62 OMAP3 ISP CCP2 62 OMAP3 ISP CCP2 63 OMAP3 ISP CSI2a 63 OMAP3 ISP CSI2a 64 OMAP3 ISP CCDC 64 OMAP3 ISP CCDC 65 OMAP3 ISP preview 65 OMAP3 ISP preview 66 OMAP3 ISP resizer 66 OMAP3 ISP resizer 67 OMAP3 ISP AEWB 67 OMAP3 ISP AEWB 68 OMAP3 ISP AF 68 OMAP3 ISP AF 69 OMAP3 ISP histogram 69 OMAP3 ISP histogram 70 70 71 ISP ä¸æ¯ä¸ªå¯èƒ½çš„连接都通过一个链 71 ISP ä¸æ¯ä¸ªå¯èƒ½çš„连接都通过一个链接嵌入到媒体控制器接å£ä¸ã€‚详è§ä¾‹ç¨‹ [2]。 72 72 73 73 74 控制 OMAP 3 ISP 74 控制 OMAP 3 ISP 75 ============== 75 ============== 76 76 77 通常,对 OMAP 3 ISP çš„é…置会在下一å 77 通常,对 OMAP 3 ISP çš„é…ç½®ä¼šåœ¨ä¸‹ä¸€å¸§èµ·å§‹æ—¶ç”Ÿæ•ˆã€‚åœ¨ä¼ æ„Ÿå™¨åž‚ç›´æ¶ˆéšæœŸé—´ï¼Œ 78 模å—å˜ä¸ºç©ºé—²æ—¶å®Œæˆé…置。在内å˜å 78 模å—å˜ä¸ºç©ºé—²æ—¶å®Œæˆé…置。在内å˜åˆ°å†…å˜çš„æ“作ä¸ï¼Œè§†é¢‘管é“一次处ç†ä¸€å¸§ã€‚ 79 应用é…置应在帧间完æˆã€‚ 79 应用é…置应在帧间完æˆã€‚ 80 80 81 ISP ä¸çš„所有模å—,除 CSI-2 å’Œ (å¯è 81 ISP ä¸çš„所有模å—,除 CSI-2 å’Œ (å¯èƒ½å˜åœ¨çš„)CCP2 接收器外,都必须 82 接收完整的帧数æ®ã€‚å› æ¤ï¼Œä¼ 感器å 82 接收完整的帧数æ®ã€‚å› æ¤ï¼Œä¼ 感器必须ä¿è¯ä»Žä¸å‘é€éƒ¨åˆ†å¸§æ•°æ®ç»™ISP。 83 83 84 Autoidle(自动空闲)功能至少在 3430 84 Autoidle(自动空闲)功能至少在 3430 çš„ ISP 模å—ä¸ç¡®å®žå˜åœ¨ä¸€äº›é—®é¢˜ã€‚ 85 当 omap3isp 模å—å‚æ•° autoidle éžé›¶æ—¶ï¼ 85 当 omap3isp 模å—å‚æ•° autoidle éžé›¶æ—¶ï¼Œautoidle(自动空闲)功能 86 仅在 3630 ä¸å¯ç”¨äº†ã€‚ 86 仅在 3630 ä¸å¯ç”¨äº†ã€‚ 87 87 88 88 89 事件机制 89 事件机制 90 ====== 90 ====== 91 91 92 OMAP 3 ISP 驱动在 CCDC 和统计(AEWBã€A 92 OMAP 3 ISP 驱动在 CCDC 和统计(AEWBã€AF å’Œ 直方图)å设备ä¸æ”¯æŒ 93 V4L2 事件机制接å£ã€‚ 93 V4L2 事件机制接å£ã€‚ 94 94 95 CCDC å设备通过 HS_VS ä¸æ–ï¼Œå¤„ç† V4L 95 CCDC å设备通过 HS_VS ä¸æ–ï¼Œå¤„ç† V4L2_EVENT_FRAME_SYNC 类型 96 事件,用于告知帧起始。早期版本ç 96 事件,用于告知帧起始。早期版本的驱动则使用 V4L2_EVENT_OMAP3ISP_HS_VS。 97 当在 CCDC 模å—ä¸æŽ¥æ”¶åˆ°èµ·å§‹å¸§çš„第ä 97 当在 CCDC 模å—ä¸æŽ¥æ”¶åˆ°èµ·å§‹å¸§çš„第一行时,会准确地触å‘事件。这个事件 98 å¯ä»¥åœ¨ CCDC å设备ä¸â€œè®¢é˜…â€ã€‚ 98 å¯ä»¥åœ¨ CCDC å设备ä¸â€œè®¢é˜…â€ã€‚ 99 99 100 (当使用并行接å£æ—¶ï¼Œå¿…须注æ„æ£ç 100 (当使用并行接å£æ—¶ï¼Œå¿…须注æ„æ£ç¡®åœ°é…ç½® VS ä¿¡å·æžæ€§ã€‚而当使用串行接收时 101 è¿™ä¸ªä¼šè‡ªåŠ¨æ ¡æ£ã€‚) 101 è¿™ä¸ªä¼šè‡ªåŠ¨æ ¡æ£ã€‚) 102 102 103 æ¯ä¸ªç»Ÿè®¡å设备都å¯ä»¥äº§ç”Ÿäº‹ä»¶ã€‚æ 103 æ¯ä¸ªç»Ÿè®¡å设备都å¯ä»¥äº§ç”Ÿäº‹ä»¶ã€‚æ¯å½“一个统计缓冲区å¯ç”±ç”¨æˆ·ç©ºé—´åº”ç”¨ç¨‹åº 104 通过 VIDIOC_OMAP3ISP_STAT_REQ IOCTL æ“ä½œèŽ 104 通过 VIDIOC_OMAP3ISP_STAT_REQ IOCTL æ“作获å–时,就会产生一个 105 事件。当å‰å˜åœ¨ä»¥ä¸‹äº‹ä»¶ï¼š 105 事件。当å‰å˜åœ¨ä»¥ä¸‹äº‹ä»¶ï¼š 106 106 107 V4L2_EVENT_OMAP3ISP_AEWB 107 V4L2_EVENT_OMAP3ISP_AEWB 108 V4L2_EVENT_OMAP3ISP_AF 108 V4L2_EVENT_OMAP3ISP_AF 109 V4L2_EVENT_OMAP3ISP_HIST 109 V4L2_EVENT_OMAP3ISP_HIST 110 110 111 这些 ioctl 的事件数æ®ç±»åž‹ä¸º struct o 111 这些 ioctl 的事件数æ®ç±»åž‹ä¸º struct omap3isp_stat_event_status 112 结构体。如果出现计算错误的统计ï 112 结构体。如果出现计算错误的统计,也åŒæ ·ä¼šäº§ç”Ÿä¸€ä¸ªäº‹ä»¶ï¼Œä½†æ²¡æœ‰ç›¸å…³çš„统计 113 æ•°æ®ç¼“冲区。这ç§æƒ…况下 omap3isp_sta 113 æ•°æ®ç¼“冲区。这ç§æƒ…况下 omap3isp_stat_event_status.buf_err 会被 114 设置为éžé›¶å€¼ã€‚ 114 设置为éžé›¶å€¼ã€‚ 115 115 116 116 117 ç§æœ‰ IOCTL 117 ç§æœ‰ IOCTL 118 ========== 118 ========== 119 119 120 OMAP 3 ISP 驱动支æŒæ ‡å‡†çš„ V4L2 IOCTL ä» 120 OMAP 3 ISP 驱动支æŒæ ‡å‡†çš„ V4L2 IOCTL 以åŠå¯èƒ½å˜åœ¨ä¸”实用的控制。但 121 ISP æ供的许多功能都ä¸åœ¨æ ‡å‡† IOCTL 121 ISP æ供的许多功能都ä¸åœ¨æ ‡å‡† IOCTL 之列,例如 gamma(伽马)表和统计 122 æ•°æ®é‡‡é›†é…ç½®ç‰ã€‚ 122 æ•°æ®é‡‡é›†é…ç½®ç‰ã€‚ 123 123 124 通常,会有一个ç§æœ‰ ioctl 用于é…ç½® 124 通常,会有一个ç§æœ‰ ioctl 用于é…ç½®æ¯ä¸ªåŒ…å«ç¡¬ä»¶ä¾èµ–功能的模å—。 125 125 126 支æŒä»¥ä¸‹ç§æœ‰ IOCTL: 126 支æŒä»¥ä¸‹ç§æœ‰ IOCTL: 127 127 128 VIDIOC_OMAP3ISP_CCDC_CFG 128 VIDIOC_OMAP3ISP_CCDC_CFG 129 VIDIOC_OMAP3ISP_PRV_CFG 129 VIDIOC_OMAP3ISP_PRV_CFG 130 VIDIOC_OMAP3ISP_AEWB_CFG 130 VIDIOC_OMAP3ISP_AEWB_CFG 131 VIDIOC_OMAP3ISP_HIST_CFG 131 VIDIOC_OMAP3ISP_HIST_CFG 132 VIDIOC_OMAP3ISP_AF_CFG 132 VIDIOC_OMAP3ISP_AF_CFG 133 VIDIOC_OMAP3ISP_STAT_REQ 133 VIDIOC_OMAP3ISP_STAT_REQ 134 VIDIOC_OMAP3ISP_STAT_EN 134 VIDIOC_OMAP3ISP_STAT_EN 135 135 136 在 include/linux/omap3isp.h ä¸æè¿°äº†è¿™äº 136 在 include/linux/omap3isp.h ä¸æ述了这些 ioctl 使用的å‚数结构体。 137 与特定 ISP 模å—相关的 ISP 自身的详 137 与特定 ISP 模å—相关的 ISP 自身的详细功能在技术å‚考手册 (TRMs)ä¸æœ‰ 138 æ述,详è§æ–‡æ¡£ç»“尾。 138 æ述,详è§æ–‡æ¡£ç»“尾。 139 139 140 虽然在ä¸ä½¿ç”¨ä»»ä½•ç§æœ‰ IOCTL 的情况 140 虽然在ä¸ä½¿ç”¨ä»»ä½•ç§æœ‰ IOCTL 的情况下使用 ISP 驱动是å¯èƒ½çš„ï¼Œä½†è¿™æ ·æ— æ³• 141 获得最佳的图åƒè´¨é‡ã€‚AEWBã€AF å’Œ ç› 141 获得最佳的图åƒè´¨é‡ã€‚AEWBã€AF å’Œ 直方图(译者注:一般用于自动æ›å…‰å’Œå¢žç›Š 142 控制,以åŠå›¾åƒå‡è¡¡ç‰ï¼‰æ¨¡å—æ— æ³•å 142 控制,以åŠå›¾åƒå‡è¡¡ç‰ï¼‰æ¨¡å—æ— æ³•åœ¨æœªä½¿ç”¨é€‚å½“çš„ç§æœ‰ IOCTL é…置的情况下使用。 143 143 144 144 145 CCDC å’Œ previewï¼ˆé¢„è§ˆï¼‰æ¨¡å— IOCTL 145 CCDC å’Œ previewï¼ˆé¢„è§ˆï¼‰æ¨¡å— IOCTL 146 =============================== 146 =============================== 147 147 148 VIDIOC_OMAP3ISP_CCDC_CFG å’Œ VIDIOC_OMAP3ISP_P 148 VIDIOC_OMAP3ISP_CCDC_CFG å’Œ VIDIOC_OMAP3ISP_PRV_CFG IOCTL 149 被分别用于é…ç½®ã€å¯ç”¨å’Œç¦ç”¨ CCDC å 149 被分别用于é…ç½®ã€å¯ç”¨å’Œç¦ç”¨ CCDC å’Œ preview(预览)模å—的功能。在它们 150 所控制的模å—ä¸ï¼Œä¸¤ä¸ª IOCTL 控制多 150 所控制的模å—ä¸ï¼Œä¸¤ä¸ª IOCTL 控制多ç§åŠŸèƒ½ã€‚VIDIOC_OMAP3ISP_CCDC_CFG IOCTL 151 接å—ä¸€ä¸ªæŒ‡å‘ omap3isp_ccdc_update_config 151 接å—ä¸€ä¸ªæŒ‡å‘ omap3isp_ccdc_update_config 结构体的指针作为它的å‚数。 152 åŒæ ·çš„,VIDIOC_OMAP3ISP_PRV_CFG 接å—一ä 152 åŒæ ·çš„,VIDIOC_OMAP3ISP_PRV_CFG 接å—ä¸€ä¸ªæŒ‡å‘ omap3isp_prev_update_config 153 结构体的指针。以上两个结构体定ä 153 结构体的指针。以上两个结构体定义ä½äºŽ [1]。 154 154 155 这些结构体ä¸çš„ update åŸŸæ ‡è¯†æ˜¯å¦é’ 155 这些结构体ä¸çš„ update åŸŸæ ‡è¯†æ˜¯å¦é’ˆå¯¹æŒ‡å®šçš„功能更新é…置,而 flag 域 156 åˆ™æ ‡è¯†æ˜¯å¯ç”¨è¿˜æ˜¯ç¦ç”¨æ¤åŠŸèƒ½ã€‚ 156 åˆ™æ ‡è¯†æ˜¯å¯ç”¨è¿˜æ˜¯ç¦ç”¨æ¤åŠŸèƒ½ã€‚ 157 157 158 update å’Œ flag ä½æŽ¥å—以下掩ç 值。CCD 158 update å’Œ flag ä½æŽ¥å—以下掩ç 值。CCDC å’Œ preview(预览)模å—çš„ 159 æ¯ä¸ªå•ç‹¬åŠŸèƒ½éƒ½ä¸Žä¸€ä¸ª flag å…³è”(ç 159 æ¯ä¸ªå•ç‹¬åŠŸèƒ½éƒ½ä¸Žä¸€ä¸ª flag å…³è”(ç¦ç”¨æˆ–å¯ç”¨ï¼›åœ¨ç»“æž„ä½“ä¸ flag 域的 160 一部分)和一个指å‘功能é…置数æ®ç 160 一部分)和一个指å‘功能é…置数æ®çš„指针。 161 161 162 对于 VIDIOC_OMAP3ISP_CCDC_CFG,下é¢åˆ—出 162 对于 VIDIOC_OMAP3ISP_CCDC_CFG,下é¢åˆ—出了 update å’Œ flag 域 163 ä¸çš„有效值。 这些值å¯èƒ½ä¼šåœ¨åŒä¸€ 163 ä¸çš„有效值。 这些值å¯èƒ½ä¼šåœ¨åŒä¸€ä¸ª IOCTL 调用ä¸é…置多个功能。 164 164 165 OMAP3ISP_CCDC_ALAW 165 OMAP3ISP_CCDC_ALAW 166 OMAP3ISP_CCDC_LPF 166 OMAP3ISP_CCDC_LPF 167 OMAP3ISP_CCDC_BLCLAMP 167 OMAP3ISP_CCDC_BLCLAMP 168 OMAP3ISP_CCDC_BCOMP 168 OMAP3ISP_CCDC_BCOMP 169 OMAP3ISP_CCDC_FPC 169 OMAP3ISP_CCDC_FPC 170 OMAP3ISP_CCDC_CULL 170 OMAP3ISP_CCDC_CULL 171 OMAP3ISP_CCDC_CONFIG_LSC 171 OMAP3ISP_CCDC_CONFIG_LSC 172 OMAP3ISP_CCDC_TBL_LSC 172 OMAP3ISP_CCDC_TBL_LSC 173 173 174 针对 VIDIOC_OMAP3ISP_PRV_CFG 的相应值如 174 针对 VIDIOC_OMAP3ISP_PRV_CFG 的相应值如下: 175 175 176 OMAP3ISP_PREV_LUMAENH 176 OMAP3ISP_PREV_LUMAENH 177 OMAP3ISP_PREV_INVALAW 177 OMAP3ISP_PREV_INVALAW 178 OMAP3ISP_PREV_HRZ_MED 178 OMAP3ISP_PREV_HRZ_MED 179 OMAP3ISP_PREV_CFA 179 OMAP3ISP_PREV_CFA 180 OMAP3ISP_PREV_CHROMA_SUPP 180 OMAP3ISP_PREV_CHROMA_SUPP 181 OMAP3ISP_PREV_WB 181 OMAP3ISP_PREV_WB 182 OMAP3ISP_PREV_BLKADJ 182 OMAP3ISP_PREV_BLKADJ 183 OMAP3ISP_PREV_RGB2RGB 183 OMAP3ISP_PREV_RGB2RGB 184 OMAP3ISP_PREV_COLOR_CONV 184 OMAP3ISP_PREV_COLOR_CONV 185 OMAP3ISP_PREV_YC_LIMIT 185 OMAP3ISP_PREV_YC_LIMIT 186 OMAP3ISP_PREV_DEFECT_COR 186 OMAP3ISP_PREV_DEFECT_COR 187 OMAP3ISP_PREV_GAMMABYPASS 187 OMAP3ISP_PREV_GAMMABYPASS 188 OMAP3ISP_PREV_DRK_FRM_CAPTURE 188 OMAP3ISP_PREV_DRK_FRM_CAPTURE 189 OMAP3ISP_PREV_DRK_FRM_SUBTRACT 189 OMAP3ISP_PREV_DRK_FRM_SUBTRACT 190 OMAP3ISP_PREV_LENS_SHADING 190 OMAP3ISP_PREV_LENS_SHADING 191 OMAP3ISP_PREV_NF 191 OMAP3ISP_PREV_NF 192 OMAP3ISP_PREV_GAMMA 192 OMAP3ISP_PREV_GAMMA 193 193 194 在å¯ç”¨æŸä¸ªåŠŸèƒ½çš„时候,相关的é…ç 194 在å¯ç”¨æŸä¸ªåŠŸèƒ½çš„时候,相关的é…置数æ®æŒ‡é’ˆä¸å¯ä¸º NULL。在ç¦ç”¨æŸä¸ªåŠŸèƒ½æ—¶ï¼Œ 195 é…置数æ®æŒ‡é’ˆä¼šè¢«å¿½ç•¥ã€‚ 195 é…置数æ®æŒ‡é’ˆä¼šè¢«å¿½ç•¥ã€‚ 196 196 197 197 198 ç»Ÿè®¡æ¨¡å— IOCTL 198 ç»Ÿè®¡æ¨¡å— IOCTL 199 ============= 199 ============= 200 200 201 统计å设备相较于其他å设备æä¾›ä 201 统计å设备相较于其他å设备æ供了更多动æ€é…置选项。在图åƒå¤„ç†æµæ°´çº¿å¤„于 202 工作状æ€æ—¶ï¼Œå®ƒä»¬å¯ä»¥è¢«å¯ç”¨ã€ç¦ç 202 工作状æ€æ—¶ï¼Œå®ƒä»¬å¯ä»¥è¢«å¯ç”¨ã€ç¦ç”¨å’Œé‡é…。 203 203 204 统计模å—总是从 CCDC ä¸èŽ·å–输入的å 204 统计模å—总是从 CCDC ä¸èŽ·å–输入的图åƒæ•°æ®ï¼ˆç”±äºŽç›´æ–¹å›¾å†…å˜è¯»å–未实现)。 205 统计数æ®å¯ç”±ç”¨æˆ·é€šè¿‡ç»Ÿè®¡å设备è 205 统计数æ®å¯ç”±ç”¨æˆ·é€šè¿‡ç»Ÿè®¡å设备节点使用ç§æœ‰ IOCTL 获å–。 206 206 207 AEWBã€AF å’Œ 直方图å设备æ供的ç§æœ 207 AEWBã€AF å’Œ 直方图å设备æ供的ç§æœ‰ IOCTL æžå¤§ç¨‹åº¦ä¸Šå应了 ISP 硬件 208 æ供的寄å˜å™¨çº§æŽ¥å£ã€‚有些方é¢çº¯ç 208 æ供的寄å˜å™¨çº§æŽ¥å£ã€‚有些方é¢çº¯ç²¹å’Œé©±åŠ¨ç¨‹åºçš„实现相关,这些将在下é¢è®¨è®ºã€‚ 209 209 210 VIDIOC_OMAP3ISP_STAT_EN 210 VIDIOC_OMAP3ISP_STAT_EN 211 ----------------------- 211 ----------------------- 212 212 213 这个ç§æœ‰ IOCTL å¯ç”¨/ç¦ç”¨ 一个统计æ 213 这个ç§æœ‰ IOCTL å¯ç”¨/ç¦ç”¨ 一个统计模å—。如果这个申请在视频æµå¯åŠ¨å‰å®Œæˆï¼Œ 214 它将在视频æµæ°´çº¿å¼€å§‹å·¥ä½œæ—¶ç”Ÿæ•ˆã 214 它将在视频æµæ°´çº¿å¼€å§‹å·¥ä½œæ—¶ç”Ÿæ•ˆã€‚如果视频æµæ°´çº¿å·²ç»å¤„于工作状æ€äº†ï¼Œå®ƒå°†åœ¨ 215 CCDC å˜ä¸ºç©ºé—²æ—¶ç”Ÿæ•ˆã€‚ 215 CCDC å˜ä¸ºç©ºé—²æ—¶ç”Ÿæ•ˆã€‚ 216 216 217 VIDIOC_OMAP3ISP_AEWB_CFG, VIDIOC_OMAP3ISP_HIST 217 VIDIOC_OMAP3ISP_AEWB_CFG, VIDIOC_OMAP3ISP_HIST_CFG and VIDIOC_OMAP3ISP_AF_CFG 218 ---------------------------------------------- 218 ----------------------------------------------------------------------------- 219 219 220 这些 IOCTL 用于é…置模å—。它们è¦æ±‚ 220 这些 IOCTL 用于é…置模å—。它们è¦æ±‚用户应用程åºå¯¹ç¡¬ä»¶æœ‰æ·±å…¥çš„认识。对 221 大多数域的解释å¯ä»¥åœ¨ OMAP çš„ TRM ä¸ 221 大多数域的解释å¯ä»¥åœ¨ OMAP çš„ TRM ä¸æ‰¾åˆ°ã€‚以下两个域对于以上所有的 222 ç§æœ‰ IOCTL é…置都很常è§ï¼Œç”±äºŽä»–们 222 ç§æœ‰ IOCTL é…置都很常è§ï¼Œç”±äºŽä»–们没有在 TRM ä¸æåŠï¼Œæ•…需è¦å¯¹å…¶æœ‰ 223 更好的认识。 223 更好的认识。 224 224 225 omap3isp_[h3a_af/h3a_aewb/hist]_config.buf_siz 225 omap3isp_[h3a_af/h3a_aewb/hist]_config.buf_size: 226 226 227 模å—在内部处ç†è‡ªèº«ç¼“冲。对模å—æ 227 模å—在内部处ç†è‡ªèº«ç¼“冲。对模å—æ•°æ®è¾“出所必需的缓å˜å¤§å°ä¾èµ–于已申请的é…置。 228 虽然驱动支æŒåœ¨è§†é¢‘æµå·¥ä½œæ—¶é‡æ–°é 228 虽然驱动支æŒåœ¨è§†é¢‘æµå·¥ä½œæ—¶é‡æ–°é…置,但对于所需缓å˜é‡å¤§äºŽæ¨¡å—å¯ç”¨æ—¶å†…部 229 所分é…æ•°é‡çš„情况,则ä¸æ”¯æŒé‡æ–°é 229 所分é…æ•°é‡çš„情况,则ä¸æ”¯æŒé‡æ–°é…置。在这ç§æƒ…况下将返回 -EBUSY。为了é¿å… 230 æ¤ç±»çŠ¶å†µï¼Œæ— 论是ç¦ç”¨/é‡é…/å¯ç”¨æ¨ 230 æ¤ç±»çŠ¶å†µï¼Œæ— 论是ç¦ç”¨/é‡é…/å¯ç”¨æ¨¡å—,还是第一次é…置时申请必须的缓å˜å¤§å°ï¼Œ 231 都应在模å—ç¦ç”¨çš„情况下进行。 231 都应在模å—ç¦ç”¨çš„情况下进行。 232 232 233 内部缓冲分é…的大å°éœ€ç»¼åˆè€ƒè™‘所ç 233 内部缓冲分é…的大å°éœ€ç»¼åˆè€ƒè™‘所申请é…置的最å°ç¼“å˜é‡ä»¥åŠ buf_size åŸŸä¸ 234 所设的值。如果 buf_size 域在[minimumï 234 所设的值。如果 buf_size 域在[minimum(最å°å€¼ï¼‰, maximum(最大值)] 235 缓冲大å°èŒƒå›´ä¹‹å¤–,则应该将其调æ 235 缓冲大å°èŒƒå›´ä¹‹å¤–,则应该将其调整到其范围ä¸ã€‚驱动则会选择最大值。æ£ç¡®çš„ 236 buf_size 值将回写到用户应用程åºä¸ã 236 buf_size 值将回写到用户应用程åºä¸ã€‚ 237 237 238 omap3isp_[h3a_af/h3a_aewb/hist]_config.config_ 238 omap3isp_[h3a_af/h3a_aewb/hist]_config.config_counter: 239 239 240 由于é…置并未在申请之åŽåŒæ¥ç”Ÿæ•ˆï 240 由于é…置并未在申请之åŽåŒæ¥ç”Ÿæ•ˆï¼Œé©±åŠ¨å¿…é¡»æ供一个跟踪这类信æ¯çš„方法, 241 以æ供更准确的数æ®ã€‚在一个é…ç½®è 241 以æ供更准确的数æ®ã€‚在一个é…置被申请之åŽï¼Œè¿”回到用户空间应用程åºçš„ 242 config_counter 是一个与其é…置相关的å 242 config_counter 是一个与其é…置相关的唯一值。当用户应用程åºæŽ¥æ”¶åˆ° 243 一个缓冲å¯ç”¨æˆ–一个新的缓冲申请ä 243 一个缓冲å¯ç”¨æˆ–一个新的缓冲申请事件时,这个 config_counter 用于 244 一个缓冲数æ®å’Œä¸€ä¸ªé…置的匹é…。 244 一个缓冲数æ®å’Œä¸€ä¸ªé…置的匹é…。 245 245 246 VIDIOC_OMAP3ISP_STAT_REQ 246 VIDIOC_OMAP3ISP_STAT_REQ 247 ------------------------ 247 ------------------------ 248 248 249 将内部缓冲队列ä¸æœ€æ—©çš„æ•°æ®å‘é€å 249 将内部缓冲队列ä¸æœ€æ—©çš„æ•°æ®å‘é€åˆ°ç”¨æˆ·ç©ºé—´ï¼Œç„¶åŽä¸¢å¼ƒæ¤ç¼“冲区。 250 omap3isp_stat_data.frame_number åŸŸä¸Žè§†é¢‘ç¼ 250 omap3isp_stat_data.frame_number 域与视频缓冲的 field_count 251 域相匹é…。 251 域相匹é…。 252 252 253 253 254 技术å‚考手册 (TRMs) 和其他文档 254 技术å‚考手册 (TRMs) 和其他文档 255 ========================== 255 ========================== 256 256 257 OMAP 3430 TRM: 257 OMAP 3430 TRM: 258 <URL:http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES 258 <URL:http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZM.zip> 259 å‚考于 2011-03-05. 259 å‚考于 2011-03-05. 260 260 261 OMAP 35xx TRM: 261 OMAP 35xx TRM: 262 <URL:http://www.ti.com/litv/pdf/spruf98o> å‚è 262 <URL:http://www.ti.com/litv/pdf/spruf98o> å‚考于 2011-03-05. 263 263 264 OMAP 3630 TRM: 264 OMAP 3630 TRM: 265 <URL:http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES 265 <URL:http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES1.x_PUBLIC_TRM_vQ.zip> 266 å‚考于 2011-03-05. 266 å‚考于 2011-03-05. 267 267 268 DM 3730 TRM: 268 DM 3730 TRM: 269 <URL:http://www.ti.com/litv/pdf/sprugn4h> å‚è 269 <URL:http://www.ti.com/litv/pdf/sprugn4h> å‚考于 2011-03-06. 270 270 271 271 272 å‚考资料 272 å‚考资料 273 ======= 273 ======= 274 274 275 [1] include/linux/omap3isp.h 275 [1] include/linux/omap3isp.h 276 276 277 [2] http://git.ideasonboard.org/?p=media-ctl.g 277 [2] http://git.ideasonboard.org/?p=media-ctl.git;a=summary
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.