linux/include/video
Steve Longerbeam cd98e85a6b gpu: ipu-v3: Add queued image conversion support
This patch implements image conversion support using the IC tasks, with
tiling to support scaling to and from images up to 4096x4096. Image
rotation is also supported. Image conversion requests are added to
a run queue under the IC tasks.

The internal API is subsystem agnostic (no V4L2 dependency except
for the use of V4L2 fourcc pixel formats).

Callers prepare for image conversion by calling
ipu_image_convert_prepare(), which initializes the parameters of
the conversion. The caller passes in the ipu and IC task to use for
the conversion, the input and output image formats, a rotation mode,
and a completion callback and completion context pointer:

struct ipu_image_converter_ctx *
ipu_image_convert_prepare(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
                          struct ipu_image *in, struct ipu_image *out,
                          enum ipu_rotate_mode rot_mode,
                          ipu_image_converter_cb_t complete,
                          void *complete_context);

A new conversion context is created that is added to an IC task
context queue. The caller is given the new conversion context,
which can then be passed to the further APIs:

int ipu_image_convert_queue(struct ipu_image_converter_run *run);

This queues the given image conversion request run to a run queue,
and starts the conversion immediately if the run queue is empty. Only
the physaddr's of the input and output image buffers are needed,
since the conversion context was created previously with
ipu_image_convert_prepare(). When the conversion completes, the run
pointer is returned to the completion callback.

void ipu_image_convert_abort(struct ipu_image_converter_ctx *ctx);

This will abort any active or pending conversions for this context.
Any currently active or pending runs belonging to this context are
returned via the completion callback with an error status.

void ipu_image_convert_unprepare(struct ipu_image_converter_ctx *ctx);

Unprepares the conversion context. Any active or pending runs will
be aborted by calling ipu_image_convert_abort().

Signed-off-by: Steve Longerbeam <steve_longerbeam@mentor.com>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
2016-09-19 08:30:27 +02:00
..
Kbuild UAPI: (Scripted) Disintegrate include/video 2012-12-20 17:14:26 +00:00
atmel_lcdc.h video: atmel_lcdfb: pass the pdata as params 2013-09-27 09:26:20 +03:00
aty128.h atyfb: fix header file trailing whitespace 2009-04-01 08:59:26 -07:00
auo_k190xfb.h AUO-K190x: Add resolutions for portrait displays 2013-04-04 13:08:07 +03:00
broadsheetfb.h broadsheetfb: support storing waveform 2010-03-12 15:52:34 -08:00
cirrus.h cirrusfb: Laguna chipset 8bpp fix 2009-04-01 08:59:27 -07:00
cvisionppc.h
da8xx-fb.h video: da8xx-fb: improve readability of code 2013-08-09 14:02:42 +03:00
display_timing.h video: display_timing: add doubleclk flag 2013-06-03 18:42:32 +10:00
edid.h UAPI: (Scripted) Disintegrate include/video 2012-12-20 17:14:26 +00:00
exynos7_decon.h drm/exynos: Add DECON driver 2015-02-11 20:27:08 +09:00
exynos5433_decon.h drm/exynos: clean up register definions for fimd and decon 2016-04-30 11:34:14 +09:00
exynos_mipi_dsim.h video: exynos_mipi_dsim: Use the generic PHY driver 2013-10-16 13:48:08 -07:00
gbe.h
hecubafb.h fbdev: platforming hecubafb and n411 2008-04-28 08:58:41 -07:00
iga.h
ili9320.h fb: add support for the ILI9320 video display controller 2008-07-24 10:47:40 -07:00
imx-ipu-image-convert.h gpu: ipu-v3: Add queued image conversion support 2016-09-19 08:30:27 +02:00
imx-ipu-v3.h gpu: ipu-v3: Add ipu_rot_mode_is_irt() 2016-09-19 08:30:14 +02:00
kyro.h drivers/video/fbdev/kyrofb: Use arch_phys_wc_add() and pci_ioremap_wc_bar() 2015-08-25 09:59:44 +02:00
mach64.h atyfb: fix CONFIG_ namespace violations 2009-02-05 12:56:48 -08:00
maxinefb.h
mbxfb.h
metronomefb.h [ARM] 5209/1: metronomefb: changes to use platform framebuffer 2008-08-26 17:01:12 +01:00
mipi_display.h drm: Add new DCS commands in the enum list 2016-03-31 08:00:06 +02:00
mmp_disp.h video: mmp: add pitch info in mmp_win structure 2013-09-20 12:52:33 +03:00
neomagic.h video: fbdev: neofb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:49 +03:00
newport.h Merge branch 'master' into for-next 2011-04-26 10:22:59 +02:00
of_display_timing.h videomode: provide dummy inline functions for !CONFIG_OF 2014-10-07 09:31:45 +03:00
of_videomode.h video: add of helper for display timings/videomode 2013-01-24 09:03:48 +01:00
omap-panel-data.h omapdss: omap-panel-data.h: Remove connector_type from atv pdata 2016-06-03 16:06:32 +03:00
omapfb_dss.h Merge omapdss header refactoring 2016-06-07 12:42:58 +03:00
omapvrfb.h OMAPDSS: VRFB: add omap_vrfb_supported() 2012-10-17 12:17:18 +03:00
permedia2.h
platform_lcd.h drivers/video/backlight/platform_lcd.c: introduce probe callback 2013-04-29 18:28:18 -07:00
pm3fb.h
pmag-ba-fb.h
pmagb-b-fb.h
pxa168fb.h video: pxa168fb: Cleanup pxa168fb.h file 2014-01-17 10:57:43 +02:00
radeon.h atyfb: fix header file trailing whitespace 2009-04-01 08:59:26 -07:00
s1d13xxxfb.h s1d13xxxfb: drop unused code 2010-12-21 01:05:43 +09:00
sa1100fb.h FB: sa1100: remove global sa1100fb_.*_power function pointers 2012-02-21 11:56:19 +00:00
samsung_fimd.h drm/exynos: add macro to get the address of START_S reg 2015-08-31 00:27:37 +09:00
sh_mobile_lcdc.h fbdev: sh_mobile_lcdc: Remove unused get_brightness pdata callback 2012-11-21 15:50:02 +01:00
sh_mobile_meram.h sh_mobile_meram: Add direct MERAM allocation API 2012-07-19 02:05:22 +02:00
sisfb.h UAPI: (Scripted) Disintegrate include/video 2012-12-20 17:14:26 +00:00
sstfb.h Fix common misspellings 2011-03-31 11:26:23 -03:00
tdfx.h video: fbdev: tdfxfb: use arch_phys_wc_add() and ioremap_wc() 2015-06-03 12:41:52 +03:00
tgafb.h
trident.h tridentfb: add imageblit acceleration for Blade3D family 2008-07-24 10:47:36 -07:00
udlfb.h udlfb: fix hcd_buffer_free panic on unplug/replug 2012-03-01 17:46:27 -08:00
uvesafb.h uvesafb: Clean up MTRR code 2013-05-31 13:37:36 +10:00
vga.h arch, drivers: don't include <asm/io.h> directly, use <linux/io.h> instead 2015-08-10 23:07:05 -04:00
videomode.h videomode: videomode_from_timing work 2013-03-21 14:34:33 +02:00
w100fb.h