Home
last modified time | relevance | path

Searched full:ipu (Results 1 – 25 of 138) sorted by relevance

123456

/linux/drivers/gpu/drm/ingenic/
H A Dingenic-ipu.c3 // Ingenic JZ47xx IPU driver
9 #include "ingenic-ipu.h"
43 void (*set_coefs)(struct ingenic_ipu *ipu, unsigned int reg,
155 static void jz4760_set_coefs(struct ingenic_ipu *ipu, unsigned int reg, in jz4760_set_coefs() argument
199 regmap_write(ipu->map, reg, val); in jz4760_set_coefs()
204 regmap_write(ipu->map, reg, val); in jz4760_set_coefs()
207 static void jz4725b_set_coefs(struct ingenic_ipu *ipu, unsigned int reg, in jz4725b_set_coefs() argument
223 regmap_write(ipu->map, reg, val); in jz4725b_set_coefs()
227 regmap_write(ipu->map, reg, JZ4725B_IPU_RSZ_LUT_IN_EN); in jz4725b_set_coefs()
231 static void ingenic_ipu_set_downscale_coefs(struct ingenic_ipu *ipu, in ingenic_ipu_set_downscale_coefs() argument
249 ingenic_ipu_set_integer_upscale_coefs(struct ingenic_ipu * ipu,unsigned int reg,unsigned int num) ingenic_ipu_set_integer_upscale_coefs() argument
263 ingenic_ipu_set_upscale_coefs(struct ingenic_ipu * ipu,unsigned int reg,unsigned int num,unsigned int denom) ingenic_ipu_set_upscale_coefs() argument
283 ingenic_ipu_set_coefs(struct ingenic_ipu * ipu,unsigned int reg,unsigned int num,unsigned int denom) ingenic_ipu_set_coefs() argument
326 struct ingenic_ipu *ipu = plane_to_ingenic_ipu(plane); ingenic_ipu_plane_atomic_update() local
575 struct ingenic_ipu *ipu = plane_to_ingenic_ipu(plane); ingenic_ipu_plane_atomic_check() local
658 struct ingenic_ipu *ipu = plane_to_ingenic_ipu(plane); ingenic_ipu_plane_atomic_disable() local
682 struct ingenic_ipu *ipu = plane_to_ingenic_ipu(plane); ingenic_ipu_plane_atomic_get_property() local
697 struct ingenic_ipu *ipu = plane_to_ingenic_ipu(plane); ingenic_ipu_plane_atomic_set_property() local
760 struct ingenic_ipu *ipu = arg; ingenic_ipu_irq_handler() local
800 struct ingenic_ipu *ipu; ingenic_ipu_bind() local
909 struct ingenic_ipu *ipu = dev_get_drvdata(dev); ingenic_ipu_unbind() local
[all...]
H A DKconfig25 bool "IPU support for Ingenic SoCs"
27 Choose this option to enable support for the IPU found in Ingenic SoCs.
29 The Image Processing Unit (IPU) will appear as a second primary plane.
/linux/drivers/gpu/ipu-v3/
H A DMakefile2 obj-$(CONFIG_IMX_IPUV3_CORE) += imx-ipu-v3.o
4 imx-ipu-v3-objs := ipu-common.o ipu-cpmem.o ipu-csi.o ipu-dc.o ipu-di.o \
5 ipu-dp.o ipu-dmfc.o ipu
[all...]
H A Dipu-dmfc.c11 #include <video/imx-ipu-v3.h>
12 #include "ipu-prv.h"
87 struct ipu_soc *ipu; member
93 struct ipu_soc *ipu; member
107 ipu_module_enable(priv->ipu, IPU_CONF_DMFC_EN); in ipu_dmfc_enable_channel()
126 ipu_module_disable(priv->ipu, IPU_CONF_DMFC_EN); in ipu_dmfc_disable_channel()
155 struct dmfc_channel *ipu_dmfc_get(struct ipu_soc *ipu, int ipu_channel) in ipu_dmfc_get() argument
157 struct ipu_dmfc_priv *priv = ipu->dmfc_priv; in ipu_dmfc_get()
172 int ipu_dmfc_init(struct ipu_soc *ipu, struct device *dev, unsigned long base, in ipu_dmfc_init() argument
187 priv->ipu in ipu_dmfc_init()
212 ipu_dmfc_exit(struct ipu_soc * ipu) ipu_dmfc_exit() argument
[all...]
H A Dipu-ic.c15 #include "ipu-prv.h"
158 struct ipu_soc *ipu; member
222 struct ipu_soc *ipu = priv->ipu; in calc_resize_coeffs() local
230 dev_err(ipu->dev, "Unsupported resize (in_size > 4096)\n"); in calc_resize_coeffs()
234 dev_err(ipu->dev, "Unsupported resize (out_size > 1024)\n"); in calc_resize_coeffs()
240 dev_err(ipu->dev, "Unsupported downsize\n"); in calc_resize_coeffs()
261 dev_err(ipu->dev, "Warning! Overflow on resize coeff.\n"); in calc_resize_coeffs()
384 struct ipu_soc *ipu = priv->ipu; in ipu_ic_task_idma_init() local
586 ipu_ic_get(struct ipu_soc * ipu,enum ipu_ic_task task) ipu_ic_get() argument
624 ipu_ic_init(struct ipu_soc * ipu,struct device * dev,unsigned long base,unsigned long tpmem_base) ipu_ic_init() argument
658 ipu_ic_exit(struct ipu_soc * ipu) ipu_ic_exit() argument
665 struct ipu_soc *ipu = priv->ipu; ipu_ic_dump() local
[all...]
H A Dipu-dp.c14 #include <video/imx-ipu-v3.h>
15 #include "ipu-prv.h"
61 struct ipu_soc *ipu; member
107 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_set_global_alpha()
122 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_set_window_pos()
221 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_setup_channel()
229 int ipu_dp_enable(struct ipu_soc *ipu) in ipu_dp_enable() argument
231 struct ipu_dp_priv *priv = ipu->dp_priv; in ipu_dp_enable()
236 ipu_module_enable(priv->ipu, IPU_CONF_DP_EN); in ipu_dp_enable()
261 ipu_srm_dp_update(priv->ipu, tru in ipu_dp_enable_channel()
298 ipu_dp_disable(struct ipu_soc * ipu) ipu_dp_disable() argument
316 ipu_dp_get(struct ipu_soc * ipu,unsigned int flow) ipu_dp_get() argument
344 ipu_dp_init(struct ipu_soc * ipu,struct device * dev,unsigned long base) ipu_dp_init() argument
374 ipu_dp_exit(struct ipu_soc * ipu) ipu_dp_exit() argument
[all...]
H A Dipu-smfc.c13 #include <video/imx-ipu-v3.h>
15 #include "ipu-prv.h"
26 struct ipu_soc *ipu; member
104 ipu_module_enable(priv->ipu, IPU_CONF_SMFC_EN); in ipu_smfc_enable()
124 ipu_module_disable(priv->ipu, IPU_CONF_SMFC_EN); in ipu_smfc_disable()
135 struct ipu_smfc *ipu_smfc_get(struct ipu_soc *ipu, unsigned int chno) in ipu_smfc_get() argument
137 struct ipu_smfc_priv *priv = ipu->smfc_priv; in ipu_smfc_get()
172 int ipu_smfc_init(struct ipu_soc *ipu, struct device *dev, in ipu_smfc_init() argument
182 ipu->smfc_priv = priv; in ipu_smfc_init()
184 priv->ipu in ipu_smfc_init()
200 ipu_smfc_exit(struct ipu_soc * ipu) ipu_smfc_exit() argument
[all...]
H A Dipu-cpmem.c11 #include "ipu-prv.h"
27 struct ipu_soc *ipu; member
95 struct ipu_cpmem *cpmem = ch->ipu->cpmem_priv; in ipu_get_cpmem()
154 * point of view of the IPU corresponds to little-endian words with the first
156 * The DRM pixel formats and IPU internal representation are ordered the other
260 struct ipu_soc *ipu = ch->ipu; in ipu_cpmem_set_high_priority() local
263 if (ipu->ipu_type == IPUV3EX) in ipu_cpmem_set_high_priority()
266 val = ipu_idmac_read(ipu, IDMAC_CHA_PRI(ch->num)); in ipu_cpmem_set_high_priority()
268 ipu_idmac_write(ipu, va in ipu_cpmem_set_high_priority()
601 struct ipu_soc *ipu = ch->ipu; ipu_cpmem_set_separate_alpha() local
869 struct ipu_soc *ipu = ch->ipu; ipu_cpmem_dump() local
929 ipu_cpmem_init(struct ipu_soc * ipu,struct device * dev,unsigned long base) ipu_cpmem_init() argument
951 ipu_cpmem_exit(struct ipu_soc * ipu) ipu_cpmem_exit() argument
[all...]
H A Dipu-vdi.c7 #include "ipu-prv.h"
14 struct ipu_soc *ipu; member
160 ipu_module_enable(vdi->ipu, vdi->module); in ipu_vdi_enable()
178 ipu_module_disable(vdi->ipu, vdi->module); in ipu_vdi_disable()
187 struct ipu_vdi *ipu_vdi_get(struct ipu_soc *ipu) in ipu_vdi_get() argument
189 return ipu->vdi_priv; in ipu_vdi_get()
198 int ipu_vdi_init(struct ipu_soc *ipu, struct device *dev, in ipu_vdi_init() argument
207 ipu->vdi_priv = vdi; in ipu_vdi_init()
216 vdi->ipu = ipu; in ipu_vdi_init()
221 ipu_vdi_exit(struct ipu_soc * ipu) ipu_vdi_exit() argument
[all...]
H A Dipu-csi.c20 #include "ipu-prv.h"
26 struct clk *clk_ipu; /* IPU bus clock */
29 struct ipu_soc *ipu; member
408 dev_dbg(csi->ipu->dev, "capture field swap\n"); in ipu_csi_set_bt_interlaced_codes()
475 dev_err(csi->ipu->dev, in ipu_csi_init_interface()
503 dev_dbg(csi->ipu->dev, "CSI_SENS_CONF = 0x%08X\n", in ipu_csi_init_interface()
505 dev_dbg(csi->ipu->dev, "CSI_ACT_FRM_SIZE = 0x%08X\n", in ipu_csi_init_interface()
629 ipu_module_enable(csi->ipu, csi->module); in ipu_csi_enable()
637 ipu_module_disable(csi->ipu, csi->module); in ipu_csi_disable()
643 struct ipu_csi *ipu_csi_get(struct ipu_soc *ipu, in argument
678 ipu_csi_init(struct ipu_soc * ipu,struct device * dev,int id,unsigned long base,u32 module,struct clk * clk_ipu) ipu_csi_init() argument
707 ipu_csi_exit(struct ipu_soc * ipu,int id) ipu_csi_exit() argument
[all...]
H A Dipu-di.c14 #include <video/imx-ipu-v3.h>
15 #include "ipu-prv.h"
22 struct clk *clk_ipu; /* IPU bus clock */
25 struct ipu_soc *ipu; member
170 dev_err(di->ipu->dev, "DI%d counters out of range.\n", in ipu_di_sync_config()
435 * the DI specific clock and the internal IPU clock. See in ipu_di_config_clock()
436 * DI_GENERAL bit 20. We select the IPU clock if it can in ipu_di_config_clock()
450 dev_dbg(di->ipu->dev, " IPU clock can give %lu with divider %u, error %c%d.%d%%\n", in ipu_di_config_clock()
494 dev_dbg(di->ipu in ipu_di_config_clock()
677 ipu_di_get(struct ipu_soc * ipu,int disp) ipu_di_get() argument
711 ipu_di_init(struct ipu_soc * ipu,struct device * dev,int id,unsigned long base,u32 module,struct clk * clk_ipu) ipu_di_init() argument
747 ipu_di_exit(struct ipu_soc * ipu,int id) ipu_di_exit() argument
[all...]
H A Dipu-dc.c15 #include <video/imx-ipu-v3.h>
16 #include "ipu-prv.h"
101 struct ipu_soc *ipu; member
180 * to DI moves to signal generator #6 (see ipu-di.c). In progressive in ipu_dc_init_sync()
231 void ipu_dc_enable(struct ipu_soc *ipu) in ipu_dc_enable() argument
233 struct ipu_dc_priv *priv = ipu->dc_priv; in ipu_dc_enable()
238 ipu_module_enable(priv->ipu, IPU_CONF_DC_EN); in ipu_dc_enable()
266 void ipu_dc_disable(struct ipu_soc *ipu) in ipu_dc_disable() argument
268 struct ipu_dc_priv *priv = ipu->dc_priv; in ipu_dc_disable()
274 ipu_module_disable(priv->ipu, IPU_CONF_DC_E in ipu_dc_disable()
308 ipu_dc_get(struct ipu_soc * ipu,int channel) ipu_dc_get() argument
343 ipu_dc_init(struct ipu_soc * ipu,struct device * dev,unsigned long base,unsigned long template_base) ipu_dc_init() argument
424 ipu_dc_exit(struct ipu_soc * ipu) ipu_dc_exit() argument
[all...]
H A Dipu-prg.c17 #include <video/imx-ipu-v3.h>
19 #include "ipu-prv.h"
115 bool ipu_prg_present(struct ipu_soc *ipu) in ipu_prg_present() argument
117 if (ipu->prg_priv) in ipu_prg_present()
124 bool ipu_prg_format_supported(struct ipu_soc *ipu, uint32_t format, in ipu_prg_format_supported() argument
143 int ipu_prg_enable(struct ipu_soc *ipu) in ipu_prg_enable() argument
145 struct ipu_prg *prg = ipu->prg_priv; in ipu_prg_enable()
154 void ipu_prg_disable(struct ipu_soc *ipu) in ipu_prg_disable() argument
156 struct ipu_prg *prg = ipu->prg_priv; in ipu_prg_disable()
173 * This isn't clearly documented in the RM, but IPU t in ipu_prg_ipu_to_prg_chan()
[all...]
H A Dipu-image-convert.c12 #include <video/imx-ipu-image-convert.h>
14 #include "ipu-prv.h"
208 /* the IPU end-of-frame irqs */
229 struct ipu_soc *ipu; member
346 dev_dbg(priv->ipu->dev, in dump_format()
362 dma_free_coherent(priv->ipu->dev, in free_dma_buf()
373 buf->virt = dma_alloc_coherent(priv->ipu->dev, buf->len, &buf->phys, in alloc_dma_buf()
376 dev_err(priv->ipu->dev, "failed to alloc dma buffer\n"); in alloc_dma_buf()
447 dev_dbg(ctx->chan->priv->ipu->dev, in calc_image_resize_coefficients()
500 struct device *dev = ctx->chan->priv->ipu in find_best_seam()
2055 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_convert_cb_t complete,void * complete_context) ipu_image_convert_prepare() argument
2390 ipu_image_convert(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_convert_cb_t complete,void * complete_context) ipu_image_convert() argument
2426 ipu_image_convert_init(struct ipu_soc * ipu,struct device * dev) ipu_image_convert_init() argument
2458 ipu_image_convert_exit(struct ipu_soc * ipu) ipu_image_convert_exit() argument
[all...]
/linux/include/video/
H A Dimx-ipu-v3.h65 * Enumeration of IPU rotation modes
120 * NOTE: channels 6,7 are unused in the IPU and are not IDMAC channels,
187 int ipu_map_irq(struct ipu_soc *ipu, int irq);
188 int ipu_idmac_channel_irq(struct ipu_soc *ipu, struct ipuv3_channel *channel,
204 * IPU Common functions
206 int ipu_get_num(struct ipu_soc *ipu);
207 void ipu_set_csi_src_mux(struct ipu_soc *ipu, int csi_id, bool mipi_csi2);
208 void ipu_set_ic_src_mux(struct ipu_soc *ipu, int csi_id, bool vdi);
209 void ipu_dump(struct ipu_soc *ipu);
212 * IPU Imag
[all...]
H A Dimx-ipu-image-convert.h10 #include <video/imx-ipu-v3.h>
44 * ipu_image_convert_adjust() - adjust input/output images to IPU restrictions.
57 * and rotation mode meet IPU restrictions.
63 * Returns 0 if the formats and rotation mode meet IPU restrictions,
72 * @ipu: the IPU handle to use for the conversions
82 * IPU retrictions.
87 ipu_image_convert_prepare(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
142 * @ipu: the IPU handl
[all...]
/linux/Documentation/devicetree/bindings/display/
H A Dingenic,ipu.yaml4 $id: http://devicetree.org/schemas/display/ingenic,ipu.yaml#
7 title: Ingenic SoCs Image Processing Unit (IPU)
16 - ingenic,jz4725b-ipu
17 - ingenic,jz4760-ipu
19 - const: ingenic,jz4770-ipu
20 - const: ingenic,jz4760-ipu
32 const: ipu
49 ipu@13080000 {
50 compatible = "ingenic,jz4770-ipu", "ingenic,jz4760-ipu";
[all...]
/linux/Documentation/devicetree/bindings/display/imx/
H A Dfsl,imx6q-ipu.yaml4 $id: http://devicetree.org/schemas/display/imx/fsl,imx6q-ipu.yaml#
16 - fsl,imx51-ipu
17 - fsl,imx53-ipu
18 - fsl,imx6q-ipu
20 - const: fsl,imx6qp-ipu
21 - const: fsl,imx6q-ipu
50 description: phandle to prg node associated with this IPU instance
83 compatible = "fsl,imx53-ipu";
/linux/drivers/staging/media/imx/
H A Dimx-media-internal-sd.c5 * Adds the IPU internal subdevices and the media links between them.
36 struct ipu_soc *ipu,
196 struct ipu_soc *ipu; in imx_media_register_ipu_internal_subdevs() local
199 ipu = dev_get_drvdata(ipu_dev); in imx_media_register_ipu_internal_subdevs()
200 if (!ipu) { in imx_media_register_ipu_internal_subdevs()
201 v4l2_err(&imxmd->v4l2_dev, "invalid IPU device!\n"); in imx_media_register_ipu_internal_subdevs()
205 ipu_id = ipu_get_num(ipu); in imx_media_register_ipu_internal_subdevs()
207 v4l2_err(&imxmd->v4l2_dev, "invalid IPU id %d!\n", ipu_id); in imx_media_register_ipu_internal_subdevs()
213 /* record this IPU */ in imx_media_register_ipu_internal_subdevs()
214 if (!imxmd->ipu[ipu_i in imx_media_register_ipu_internal_subdevs()
[all...]
H A Dimx-media.h16 #include <video/imx-ipu-v3.h>
22 * Enumeration of the IPU internal sub-devices
87 bool ipufmt; /* is one of the IPU internal formats */
94 PIXFMT_SEL_IPU = BIT(3), /* select IPU-internal formats */
157 struct ipu_soc *ipu[2]; member
165 /* the IPU internal subdev's registered synchronously */
258 struct ipu_soc *ipu,
265 struct ipu_soc *ipu,
H A Dimx-ic-common.c23 struct ipu_soc *ipu, in imx_media_ic_register() argument
34 priv->ipu = ipu; in imx_media_ic_register()
60 priv->sd.grp_id, ipu_get_num(ipu)); in imx_media_ic_register()
/linux/drivers/gpu/drm/imx/ipuv3/
H A Dipuv3-crtc.c17 #include <video/imx-ipu-v3.h>
53 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_crtc_atomic_enable() local
55 ipu_prg_enable(ipu); in ipu_crtc_atomic_enable()
56 ipu_dc_enable(ipu); in ipu_crtc_atomic_enable()
87 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_crtc_atomic_disable() local
94 * the IPU or even system. in ipu_crtc_atomic_disable()
97 ipu_dc_disable(ipu); in ipu_crtc_atomic_disable()
98 ipu_prg_disable(ipu); in ipu_crtc_atomic_disable()
285 * If we have DAC or LDB, then we need the IPU DI clock to be in ipu_crtc_mode_set_nofb()
286 * the same as the LDB DI clock. For TVDAC, derive the IPU D in ipu_crtc_mode_set_nofb()
346 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); ipu_get_resources() local
367 struct ipu_soc *ipu = dev_get_drvdata(dev->parent); ipu_drm_bind() local
[all...]
H A Dipuv3-plane.c18 #include <video/imx-ipu-v3.h>
120 return ipu_idmac_channel_irq(ipu_plane->ipu, ipu_plane->ipu_ch, in ipu_plane_irq()
197 ipu_plane->ipu_ch = ipu_idmac_get(ipu_plane->ipu, ipu_plane->dma); in ipu_plane_get_resources()
210 ipu_plane->alpha_ch = ipu_idmac_get(ipu_plane->ipu, alpha_ch); in ipu_plane_get_resources()
219 ipu_plane->dmfc = ipu_dmfc_get(ipu_plane->ipu, ipu_plane->dma); in ipu_plane_get_resources()
227 ipu_plane->dp = ipu_dp_get(ipu_plane->ipu, ipu_plane->dp_flow); in ipu_plane_get_resources()
256 ipu_dp_enable(ipu_plane->ipu); in ipu_plane_enable()
284 ipu_dp_disable(ipu_plane->ipu); in ipu_plane_disable()
285 if (ipu_prg_present(ipu_plane->ipu)) in ipu_plane_disable()
343 struct ipu_soc *ipu in ipu_plane_format_mod_supported() local
887 ipu_plane_init(struct drm_device * dev,struct ipu_soc * ipu,int dma,int dp,unsigned int possible_crtcs,enum drm_plane_type type) ipu_plane_init() argument
[all...]
/linux/drivers/staging/media/ipu7/
H A Dipu7.h22 #define IPU7_FIRMWARE_NAME "intel/ipu/ipu7_fw.bin"
23 #define IPU7P5_FIRMWARE_NAME "intel/ipu/ipu7ptl_fw.bin"
24 #define IPU8_FIRMWARE_NAME "intel/ipu/ipu8_fw.bin"
117 * To maximize the IOSF utlization, IPU need to send requests in bursts.
126 * evaluations on a type of IPU
131 * IPU must configure correct arbitration mechanism related to the IOSF VC
/linux/arch/arm/boot/dts/nxp/imx/
H A Dimx6qp.dtsi95 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
100 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";

123456