요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>
OMAP 3 Image Signal Processor (ISP) driver
==========================================
Copyright |copy| 2010 Nokia Corporation
Copyright |copy| 2009 Texas Instruments, Inc.
Contacts: Laurent Pinchart <[email protected]>,
Sakari Ailus <[email protected]>, David Cohen <[email protected]>
Introduction
------------
This file documents the Texas Instruments OMAP 3 Image Signal Processor (ISP)
driver located under drivers/media/platform/ti/omap3isp. The original driver was
written by Texas Instruments but since that it has been rewritten (twice) at
Nokia.
The driver has been successfully used on the following versions of OMAP 3:
- 3430
- 3530
- 3630
The driver implements V4L2, Media controller and v4l2_subdev interfaces.
Sensor, lens and flash drivers using the v4l2_subdev interface in the kernel
are supported.
Split to subdevs
----------------
The OMAP 3 ISP is split into V4L2 subdevs, each of the blocks inside the ISP
having one subdev to represent it. Each of the subdevs provide a V4L2 subdev
interface to userspace.
- OMAP3 ISP CCP2
- OMAP3 ISP CSI2a
- OMAP3 ISP CCDC
- OMAP3 ISP preview
- OMAP3 ISP resizer
- OMAP3 ISP AEWB
- OMAP3 ISP AF
- OMAP3 ISP histogram
Each possible link in the ISP is modelled by a link in the Media controller
interface. For an example program see [#]_.
Controlling the OMAP 3 ISP
--------------------------
In general, the settings given to the OMAP 3 ISP take effect at the beginning
of the following frame. This is done when the module becomes idle during the
vertical blanking period on the sensor. In memory-to-memory operation the pipe
is run one frame at a time. Applying the settings is done between the frames.
All the blocks in the ISP, excluding the CSI-2 and possibly the CCP2 receiver,
insist on receiving complete frames. Sensors must thus never send the ISP
partial frames.
Autoidle does have issues with some ISP blocks on the 3430, at least.
Autoidle is only enabled on 3630 when the omap3isp module parameter autoidle
is non-zero.
Technical reference manuals (TRMs) and other documentation
----------------------------------------------------------
OMAP 3430 TRM:
<URL:http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZM.zip>
Referenced 2011-03-05.
OMAP 35xx TRM:
<URL:http://www.ti.com/litv/pdf/spruf98o> Referenced 2011-03-05.
OMAP 3630 TRM:
<URL:http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES1.x_PUBLIC_TRM_vQ.zip>
Referenced 2011-03-05.
DM 3730 TRM:
<URL:http://www.ti.com/litv/pdf/sprugn4h> Referenced 2011-03-06.
References
----------
.. [#] http://git.ideasonboard.org/?p=media-ctl.git;a=summary
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
OMAP 3 Image Signal Processor driver
1-15이 문서는 GPL-2.0 라이선스를 따릅니다. Copyright © 2010 Nokia Corporation 및 Copyright © 2009 Texas Instruments, Inc.
연락처는 Laurent Pinchart <[email protected]>, Sakari Ailus <[email protected]>, David Cohen <[email protected]>입니다.
소개
16-34이 문서는 `drivers/media/platform/ti/omap3isp`에 있는 Texas Instruments OMAP 3 Image Signal Processor(ISP) driver를 설명합니다. 원래 driver는 Texas Instruments가 작성했으며 이후 Nokia에서 두 번 다시 작성했습니다.
Driver는 다음 OMAP 3 version에서 성공적으로 사용됐습니다.
- 3430
- 3530
- 3630
Driver는 V4L2, Media Controller, `v4l2_subdev` interface를 구현합니다. Kernel에서 `v4l2_subdev` interface를 사용하는 sensor, lens, flash driver를 지원합니다.
Subdev 분할
35-54OMAP 3 ISP는 V4L2 subdev로 분할되며 ISP 내부의 각 block을 하나의 subdev가 나타냅니다. 각 subdev는 userspace에 V4L2 subdev interface를 제공합니다.
- OMAP3 ISP CCP2
- OMAP3 ISP CSI2a
- OMAP3 ISP CCDC
- OMAP3 ISP preview
- OMAP3 ISP resizer
- OMAP3 ISP AEWB
- OMAP3 ISP AF
- OMAP3 ISP histogram
ISP 안에서 가능한 각 link는 Media Controller interface의 link 하나로 model됩니다. 예제 program은 문서 끝의 media-ctl reference를 참조하십시오.
Receiver와 image-processing block, statistics block이 개별 V4L2 subdev로 노출되고 Media Controller link로 연결됩니다.
OMAP 3 ISP 제어
55-70일반적으로 OMAP 3 ISP에 지정한 설정은 다음 frame 시작 시 적용됩니다. Sensor의 vertical blanking period 동안 module이 idle 상태가 될 때 적용되며, memory-to-memory operation에서는 pipe를 frame 단위로 실행하고 frame 사이에 설정을 적용합니다.
CSI-2 receiver와 경우에 따라 CCP2 receiver를 제외한 ISP의 모든 block은 complete frame을 받아야 합니다. 따라서 sensor는 ISP에 partial frame을 보내면 안 됩니다.
적어도 OMAP 3430의 일부 ISP block에는 autoidle 문제가 있습니다. Autoidle은 OMAP 3630에서만 `omap3isp` module parameter `autoidle`이 0이 아닐 때 활성화됩니다.
기술 참조 문서
71-88다음 TRM과 관련 문서를 참조할 수 있습니다.
- OMAP 3430 TRM, 2011-03-05 참조
http://focus.ti.com/pdfs/wtbu/OMAP34xx_ES3.1.x_PUBLIC_TRM_vZM.zip - OMAP 35xx TRM, 2011-03-05 참조
http://www.ti.com/litv/pdf/spruf98o - OMAP 3630 TRM, 2011-03-05 참조
http://focus.ti.com/pdfs/wtbu/OMAP36xx_ES1.x_PUBLIC_TRM_vQ.zip - DM 3730 TRM, 2011-03-06 참조
http://www.ti.com/litv/pdf/sprugn4h
Reference
89-92Media Controller link를 구성하는 예제 program은 다음 media-ctl project에서 확인할 수 있습니다.
OMAP3 ISP pipeline
omap3isp.rst:1-92OMAP3 ISP는 receiver, capture, preview, resize, statistics block을 8개 V4L2 subdev로 노출합니다. 설정은 보통 다음 frame 경계에서 적용되고 대부분의 block은 complete frame을 요구합니다.
Media Controller link가 sensor에서 image output과 statistics block까지의 경로를 구성합니다.