linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC v2 00/10] Exynos5 FIMC-IS driver
@ 2013-05-31 13:03 Arun Kumar K
  2013-05-31 13:03 ` [RFC v2 01/10] exynos5-fimc-is: Add Exynos5 FIMC-IS device tree bindings documentation Arun Kumar K
                   ` (9 more replies)
  0 siblings, 10 replies; 49+ messages in thread
From: Arun Kumar K @ 2013-05-31 13:03 UTC (permalink / raw)
  To: linux-media; +Cc: s.nawrocki, kilyeon.im, shaik.ameer, arunkk.samsung

Changes from v1
---------------
- Addressed all review comments from Sylwester
- Made sensor subdevs as independent i2c devices
- Lots of cleanup
- Debugfs support added
- Removed PMU global register access

Description
-----------
This patchset adds a new driver for the FIMC-IS IP available in
Samsung Exynos5 SoC onwards. The camera subsystem in Exynos5 is significantly
different from that of Exynos4 and before.
In Exynos4, the FIMC-IS is a sub component of the camera subsystem which
takes input from fimc-lite and does post processing of the image and passes
it to the fimc-capture which writes to the output DMA.

But in case of Exynos5, the fimc-capture IP is removed and instead a more
powerful fimc-is takes the role of giving scaled image output via DMA.
FIMC-IS internally has two scalers for this in addition to other
post-processing components like dynamic range compression,
optical distortion correction, digital image stabilization, 3D noise reduction
and face detection.

FIMC-IS firmware can directly control certain sensors and the
sensors compatible with the fimc-is will be termed as fimc-is sensors.
This patchset adds support for two such fimc-is sensors - s5k4e5 and s5k6a3.
These sensors are controlled exclusively by the fimc-is firmware at present.
They provide only SRGB unscaled output which will reach fimc-is
via mipi-csis and fimc-lite. The color space conversion, scaling and all other
post processing will be then done by the fimc-is IP components.

The fimc-is driver operates in the following manner:
The sensor subdevice created by this driver will be used by the exynos5
media-device's pipeline0 which connects it with mipi-csis and fimc-lite.

|fimc-is-sensor|--->|mipi-csis|--->|fimc-lite|--->|Memory|

The output bayer image dumped by the fimc-lite subdev into memory is fed
into the ISP subdev of fimc-is driver. For that the pipeline1 of exynos5
media-device will look like this:

|Memory|--->|fimc-is-isp|--->|fimc-is-scaler-codec|--->|fimc-is-scaler-preview|

The isp subdev accepts bayer input buffer at its OUTPUT_MPLANE. It will
do a set of post processing operations and passes it on-the-fly to the
scalers. The two scalers can give two different scaled outputs which can
be used for recording and preview simultaneously. Both scaler-codec and
scaler-preview dumps DMA data out through its CAPTURE_MPLANE.

This patchset adds basic version of the driver which accepts
bayer input data and provides 2 different scaled outputs with most of
the post processing blocks disabled.


Arun Kumar K (10):
  exynos5-fimc-is: Add Exynos5 FIMC-IS device tree bindings
    documentation
  exynos5-fimc-is: Adds fimc-is driver core files
  exynos5-fimc-is: Adds common driver header files
  exynos5-fimc-is: Adds the register definition and context header
  exynos5-fimc-is: Adds the sensor subdev
  exynos5-fimc-is: Adds isp subdev
  exynos5-fimc-is: Adds scaler subdev
  exynos5-fimc-is: Adds the hardware pipeline control
  exynos5-fimc-is: Adds the hardware interface module
  exynos5-fimc-is: Adds the Kconfig and Makefile

 .../devicetree/bindings/media/exynos5-fimc-is.txt  |   41 +
 drivers/media/platform/exynos5-is/Kconfig          |   12 +
 drivers/media/platform/exynos5-is/Makefile         |    3 +
 drivers/media/platform/exynos5-is/fimc-is-cmd.h    |  201 ++
 drivers/media/platform/exynos5-is/fimc-is-core.c   |  304 +++
 drivers/media/platform/exynos5-is/fimc-is-core.h   |  126 ++
 drivers/media/platform/exynos5-is/fimc-is-err.h    |  261 +++
 .../media/platform/exynos5-is/fimc-is-interface.c  | 1025 ++++++++++
 .../media/platform/exynos5-is/fimc-is-interface.h  |  131 ++
 drivers/media/platform/exynos5-is/fimc-is-isp.c    |  438 +++++
 drivers/media/platform/exynos5-is/fimc-is-isp.h    |   89 +
 .../media/platform/exynos5-is/fimc-is-metadata.h   |  771 ++++++++
 drivers/media/platform/exynos5-is/fimc-is-param.h  | 1259 +++++++++++++
 .../media/platform/exynos5-is/fimc-is-pipeline.c   | 1959 ++++++++++++++++++++
 .../media/platform/exynos5-is/fimc-is-pipeline.h   |  129 ++
 drivers/media/platform/exynos5-is/fimc-is-regs.h   |  107 ++
 drivers/media/platform/exynos5-is/fimc-is-scaler.c |  492 +++++
 drivers/media/platform/exynos5-is/fimc-is-scaler.h |  107 ++
 drivers/media/platform/exynos5-is/fimc-is-sensor.c |  463 +++++
 drivers/media/platform/exynos5-is/fimc-is-sensor.h |  168 ++
 drivers/media/platform/exynos5-is/fimc-is.h        |  151 ++
 21 files changed, 8237 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/media/exynos5-fimc-is.txt
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-cmd.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-core.c
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-core.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-err.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-interface.c
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-interface.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-isp.c
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-isp.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-metadata.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-param.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-pipeline.c
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-pipeline.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-regs.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-scaler.c
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-scaler.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-sensor.c
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is-sensor.h
 create mode 100644 drivers/media/platform/exynos5-is/fimc-is.h

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2013-08-03 21:38 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-31 13:03 [RFC v2 00/10] Exynos5 FIMC-IS driver Arun Kumar K
2013-05-31 13:03 ` [RFC v2 01/10] exynos5-fimc-is: Add Exynos5 FIMC-IS device tree bindings documentation Arun Kumar K
2013-06-20 22:45   ` Sylwester Nawrocki
2013-07-09 11:08     ` Arun Kumar K
2013-07-16 21:23       ` Sylwester Nawrocki
2013-07-17  4:42         ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 02/10] exynos5-fimc-is: Adds fimc-is driver core files Arun Kumar K
2013-06-06  5:20   ` Sachin Kamat
2013-06-07 10:26     ` Arun Kumar K
2013-06-20 22:46   ` Sylwester Nawrocki
2013-07-09 11:10     ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 03/10] exynos5-fimc-is: Adds common driver header files Arun Kumar K
2013-06-20 22:46   ` Sylwester Nawrocki
2013-06-21  7:14     ` Arun Kumar K
2013-07-09 11:20     ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 04/10] exynos5-fimc-is: Adds the register definition and context header Arun Kumar K
2013-06-06  6:24   ` Sachin Kamat
2013-06-07 10:27     ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 05/10] exynos5-fimc-is: Adds the sensor subdev Arun Kumar K
2013-06-06  6:39   ` Sachin Kamat
2013-06-07 10:30     ` Arun Kumar K
2013-06-20 23:04   ` Sylwester Nawrocki
2013-07-09 12:01     ` Arun Kumar K
2013-06-26  7:27   ` Hans Verkuil
2013-07-09 12:04     ` Arun Kumar K
2013-07-16 22:03       ` Sylwester Nawrocki
2013-07-17  4:55         ` Arun Kumar K
2013-07-17 14:14           ` Sylwester Nawrocki
2013-07-18  4:35             ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 06/10] exynos5-fimc-is: Adds isp subdev Arun Kumar K
2013-06-06  6:18   ` Sachin Kamat
2013-06-07 10:28     ` Arun Kumar K
2013-06-20 23:25   ` Sylwester Nawrocki
2013-07-09 11:42     ` Arun Kumar K
2013-07-16 22:11       ` Sylwester Nawrocki
2013-07-17  4:56         ` Arun Kumar K
2013-08-02  4:31     ` Arun Kumar K
2013-08-03 21:38       ` Sylwester Nawrocki
2013-06-26  7:15   ` Hans Verkuil
2013-07-09 11:42     ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 07/10] exynos5-fimc-is: Adds scaler subdev Arun Kumar K
2013-06-06  6:45   ` Sachin Kamat
2013-06-26  7:13   ` Hans Verkuil
2013-07-09 11:30     ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 08/10] exynos5-fimc-is: Adds the hardware pipeline control Arun Kumar K
2013-05-31 13:03 ` [RFC v2 09/10] exynos5-fimc-is: Adds the hardware interface module Arun Kumar K
2013-06-21 11:23   ` Andrzej Hajda
2013-07-09 11:26     ` Arun Kumar K
2013-05-31 13:03 ` [RFC v2 10/10] exynos5-fimc-is: Adds the Kconfig and Makefile Arun Kumar K

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).