Home
last modified time | relevance | path

Searched refs:ipu (Results 1 – 25 of 43) sorted by relevance

12

/Linux-v4.19/drivers/gpu/ipu-v3/
Dipu-common.c38 static inline u32 ipu_cm_read(struct ipu_soc *ipu, unsigned offset) in ipu_cm_read() argument
40 return readl(ipu->cm_reg + offset); in ipu_cm_read()
43 static inline void ipu_cm_write(struct ipu_soc *ipu, u32 value, unsigned offset) in ipu_cm_write() argument
45 writel(value, ipu->cm_reg + offset); in ipu_cm_write()
48 int ipu_get_num(struct ipu_soc *ipu) in ipu_get_num() argument
50 return ipu->id; in ipu_get_num()
54 void ipu_srm_dp_update(struct ipu_soc *ipu, bool sync) in ipu_srm_dp_update() argument
58 val = ipu_cm_read(ipu, IPU_SRM_PRI2); in ipu_srm_dp_update()
62 ipu_cm_write(ipu, val, IPU_SRM_PRI2); in ipu_srm_dp_update()
270 struct ipuv3_channel *ipu_idmac_get(struct ipu_soc *ipu, unsigned num) in ipu_idmac_get() argument
[all …]
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-ic.o ipu-image-convert.o \
6 ipu-smfc.o ipu-vdi.o
9 imx-ipu-v3-objs += ipu-pre.o ipu-prg.o
Dipu-prv.h160 struct ipu_soc *ipu; member
211 static inline u32 ipu_idmac_read(struct ipu_soc *ipu, unsigned offset) in ipu_idmac_read() argument
213 return readl(ipu->idmac_reg + offset); in ipu_idmac_read()
216 static inline void ipu_idmac_write(struct ipu_soc *ipu, u32 value, in ipu_idmac_write() argument
219 writel(value, ipu->idmac_reg + offset); in ipu_idmac_write()
222 void ipu_srm_dp_update(struct ipu_soc *ipu, bool sync);
224 int ipu_module_enable(struct ipu_soc *ipu, u32 mask);
225 int ipu_module_disable(struct ipu_soc *ipu, u32 mask);
227 bool ipu_idmac_channel_busy(struct ipu_soc *ipu, unsigned int chno);
229 int ipu_csi_init(struct ipu_soc *ipu, struct device *dev, int id,
[all …]
Dipu-ic.c162 struct ipu_soc *ipu; member
247 dev_err(priv->ipu->dev, "Unsupported color space conversion\n"); in init_csc()
286 struct ipu_soc *ipu = priv->ipu; in calc_resize_coeffs() local
294 dev_err(ipu->dev, "Unsupported resize (in_size > 4096)\n"); in calc_resize_coeffs()
298 dev_err(ipu->dev, "Unsupported resize (out_size > 1024)\n"); in calc_resize_coeffs()
304 dev_err(ipu->dev, "Unsupported downsize\n"); in calc_resize_coeffs()
325 dev_err(ipu->dev, "Warning! Overflow on resize coeff.\n"); in calc_resize_coeffs()
497 struct ipu_soc *ipu = priv->ipu; in ipu_ic_task_idma_init() local
505 dev_err(ipu->dev, "Illegal burst length for IC\n"); in ipu_ic_task_idma_init()
637 ipu_module_enable(priv->ipu, IPU_CONF_ROT_EN); in ipu_irt_enable()
[all …]
Dipu-dp.c69 struct ipu_soc *ipu; member
115 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_set_global_alpha()
130 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_set_window_pos()
210 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_setup_channel()
218 int ipu_dp_enable(struct ipu_soc *ipu) in ipu_dp_enable() argument
220 struct ipu_dp_priv *priv = ipu->dp_priv; in ipu_dp_enable()
225 ipu_module_enable(priv->ipu, IPU_CONF_DP_EN); in ipu_dp_enable()
250 ipu_srm_dp_update(priv->ipu, true); in ipu_dp_enable_channel()
278 ipu_srm_dp_update(priv->ipu, sync); in ipu_dp_disable_channel()
284 void ipu_dp_disable(struct ipu_soc *ipu) in ipu_dp_disable() argument
[all …]
Dipu-dmfc.c96 struct ipu_soc *ipu; member
102 struct ipu_soc *ipu; member
116 ipu_module_enable(priv->ipu, IPU_CONF_DMFC_EN); in ipu_dmfc_enable_channel()
135 ipu_module_disable(priv->ipu, IPU_CONF_DMFC_EN); in ipu_dmfc_disable_channel()
164 struct dmfc_channel *ipu_dmfc_get(struct ipu_soc *ipu, int ipu_channel) in ipu_dmfc_get() argument
166 struct ipu_dmfc_priv *priv = ipu->dmfc_priv; in ipu_dmfc_get()
181 int ipu_dmfc_init(struct ipu_soc *ipu, struct device *dev, unsigned long base, in ipu_dmfc_init() argument
196 priv->ipu = ipu; in ipu_dmfc_init()
199 ipu->dmfc_priv = priv; in ipu_dmfc_init()
203 priv->channels[i].ipu = ipu; in ipu_dmfc_init()
[all …]
Dipu-cpmem.c33 struct ipu_soc *ipu; member
101 struct ipu_cpmem *cpmem = ch->ipu->cpmem_priv; in ipu_get_cpmem()
248 struct ipu_soc *ipu = ch->ipu; in ipu_cpmem_set_high_priority() local
251 if (ipu->ipu_type == IPUV3EX) in ipu_cpmem_set_high_priority()
254 val = ipu_idmac_read(ipu, IDMAC_CHA_PRI(ch->num)); in ipu_cpmem_set_high_priority()
256 ipu_idmac_write(ipu, val, IDMAC_CHA_PRI(ch->num)); in ipu_cpmem_set_high_priority()
584 struct ipu_soc *ipu = ch->ipu; in ipu_cpmem_set_separate_alpha() local
596 val = ipu_idmac_read(ipu, IDMAC_SEP_ALPHA); in ipu_cpmem_set_separate_alpha()
598 ipu_idmac_write(ipu, val, IDMAC_SEP_ALPHA); in ipu_cpmem_set_separate_alpha()
838 struct ipu_soc *ipu = ch->ipu; in ipu_cpmem_dump() local
[all …]
Dipu-csi.c38 struct ipu_soc *ipu; member
210 dev_err(csi->ipu->dev, in ipu_csi_set_testgen_mclk()
450 dev_err(csi->ipu->dev, in ipu_csi_init_interface()
474 dev_dbg(csi->ipu->dev, "CSI_SENS_CONF = 0x%08X\n", in ipu_csi_init_interface()
476 dev_dbg(csi->ipu->dev, "CSI_ACT_FRM_SIZE = 0x%08X\n", in ipu_csi_init_interface()
509 dev_err(csi->ipu->dev, in ipu_csi_is_interlaced()
681 ipu_module_enable(csi->ipu, csi->module); in ipu_csi_enable()
689 ipu_module_disable(csi->ipu, csi->module); in ipu_csi_disable()
695 struct ipu_csi *ipu_csi_get(struct ipu_soc *ipu, int id) in ipu_csi_get() argument
703 csi = ipu->csi_priv[id]; in ipu_csi_get()
[all …]
Dipu-smfc.c32 struct ipu_soc *ipu; member
110 ipu_module_enable(priv->ipu, IPU_CONF_SMFC_EN); in ipu_smfc_enable()
130 ipu_module_disable(priv->ipu, IPU_CONF_SMFC_EN); in ipu_smfc_disable()
141 struct ipu_smfc *ipu_smfc_get(struct ipu_soc *ipu, unsigned int chno) in ipu_smfc_get() argument
143 struct ipu_smfc_priv *priv = ipu->smfc_priv; in ipu_smfc_get()
178 int ipu_smfc_init(struct ipu_soc *ipu, struct device *dev, in ipu_smfc_init() argument
188 ipu->smfc_priv = priv; in ipu_smfc_init()
190 priv->ipu = ipu; in ipu_smfc_init()
206 void ipu_smfc_exit(struct ipu_soc *ipu) in ipu_smfc_exit() argument
Dipu-vdi.c23 struct ipu_soc *ipu; member
180 ipu_module_enable(vdi->ipu, vdi->module); in ipu_vdi_enable()
198 ipu_module_disable(vdi->ipu, vdi->module); in ipu_vdi_disable()
207 struct ipu_vdi *ipu_vdi_get(struct ipu_soc *ipu) in ipu_vdi_get() argument
209 return ipu->vdi_priv; in ipu_vdi_get()
218 int ipu_vdi_init(struct ipu_soc *ipu, struct device *dev, in ipu_vdi_init() argument
227 ipu->vdi_priv = vdi; in ipu_vdi_init()
236 vdi->ipu = ipu; in ipu_vdi_init()
241 void ipu_vdi_exit(struct ipu_soc *ipu) in ipu_vdi_exit() argument
Dipu-image-convert.c191 struct ipu_soc *ipu; member
302 dev_dbg(priv->ipu->dev, in dump_format()
333 dma_free_coherent(priv->ipu->dev, in free_dma_buf()
344 buf->virt = dma_alloc_coherent(priv->ipu->dev, buf->len, &buf->phys, in alloc_dma_buf()
347 dev_err(priv->ipu->dev, "failed to alloc dma buffer\n"); in alloc_dma_buf()
430 dev_dbg(priv->ipu->dev, "task %u: ctx %p: [%d,%d] --> [%d,%d]\n", in transform_tile_index()
512 dev_dbg(priv->ipu->dev, in calc_tile_offsets_planar()
548 dev_dbg(priv->ipu->dev, in calc_tile_offsets_packed()
593 dev_dbg(priv->ipu->dev, "%s: task %u: stopping ctx %p run %p\n", in convert_stop()
684 if (!channel->ipu->prg_priv) in init_idmac_channel()
[all …]
Dipu-dc.c110 struct ipu_soc *ipu; member
235 void ipu_dc_enable(struct ipu_soc *ipu) in ipu_dc_enable() argument
237 struct ipu_dc_priv *priv = ipu->dc_priv; in ipu_dc_enable()
242 ipu_module_enable(priv->ipu, IPU_CONF_DC_EN); in ipu_dc_enable()
270 void ipu_dc_disable(struct ipu_soc *ipu) in ipu_dc_disable() argument
272 struct ipu_dc_priv *priv = ipu->dc_priv; in ipu_dc_disable()
278 ipu_module_disable(priv->ipu, IPU_CONF_DC_EN); in ipu_dc_disable()
312 struct ipu_dc *ipu_dc_get(struct ipu_soc *ipu, int channel) in ipu_dc_get() argument
314 struct ipu_dc_priv *priv = ipu->dc_priv; in ipu_dc_get()
347 int ipu_dc_init(struct ipu_soc *ipu, struct device *dev, in ipu_dc_init() argument
[all …]
Dipu-di.c34 struct ipu_soc *ipu; member
179 dev_err(di->ipu->dev, "DI%d counters out of range.\n", in ipu_di_sync_config()
463 dev_dbg(di->ipu->dev, " IPU clock can give %lu with divider %u, error %d.%u%%\n", in ipu_di_config_clock()
506 dev_dbg(di->ipu->dev, "Want %luHz IPU %luHz DI %luHz using %s, %luHz\n", in ipu_di_config_clock()
534 dev_warn(di->ipu->dev, "failed to adjust videomode\n"); in ipu_di_adjust_videomode()
538 dev_dbg(di->ipu->dev, "videomode adapted for IPU restrictions\n"); in ipu_di_adjust_videomode()
572 dev_dbg(di->ipu->dev, "disp %d: panel size = %d x %d\n", in ipu_di_init_sync_panel()
575 dev_dbg(di->ipu->dev, "Clocks: IPU %luHz DI %luHz Needed %luHz\n", in ipu_di_init_sync_panel()
656 ipu_module_enable(di->ipu, di->module); in ipu_di_enable()
666 ipu_module_disable(di->ipu, di->module); in ipu_di_disable()
[all …]
Dipu-prg.c123 bool ipu_prg_present(struct ipu_soc *ipu) in ipu_prg_present() argument
125 if (ipu->prg_priv) in ipu_prg_present()
132 bool ipu_prg_format_supported(struct ipu_soc *ipu, uint32_t format, in ipu_prg_format_supported() argument
151 int ipu_prg_enable(struct ipu_soc *ipu) in ipu_prg_enable() argument
153 struct ipu_prg *prg = ipu->prg_priv; in ipu_prg_enable()
162 void ipu_prg_disable(struct ipu_soc *ipu) in ipu_prg_disable() argument
164 struct ipu_prg *prg = ipu->prg_priv; in ipu_prg_disable()
253 struct ipu_prg *prg = ipu_chan->ipu->prg_priv; in ipu_prg_channel_disable()
287 struct ipu_prg *prg = ipu_chan->ipu->prg_priv; in ipu_prg_channel_configure()
/Linux-v4.19/drivers/dma/ipu/
Dipu_idmac.c42 static struct ipu ipu_data;
44 #define to_ipu(id) container_of(id, struct ipu, idmac)
46 static u32 __idmac_read_icreg(struct ipu *ipu, unsigned long reg) in __idmac_read_icreg() argument
48 return __raw_readl(ipu->reg_ic + reg); in __idmac_read_icreg()
51 #define idmac_read_icreg(ipu, reg) __idmac_read_icreg(ipu, reg - IC_CONF) argument
53 static void __idmac_write_icreg(struct ipu *ipu, u32 value, unsigned long reg) in __idmac_write_icreg() argument
55 __raw_writel(value, ipu->reg_ic + reg); in __idmac_write_icreg()
58 #define idmac_write_icreg(ipu, v, reg) __idmac_write_icreg(ipu, v, reg - IC_CONF) argument
60 static u32 idmac_read_ipureg(struct ipu *ipu, unsigned long reg) in idmac_read_ipureg() argument
62 return __raw_readl(ipu->reg_ipu + reg); in idmac_read_ipureg()
[all …]
Dipu_irq.c25 static u32 ipu_read_reg(struct ipu *ipu, unsigned long reg) in ipu_read_reg() argument
27 return __raw_readl(ipu->reg_ipu + reg); in ipu_read_reg()
30 static void ipu_write_reg(struct ipu *ipu, u32 value, unsigned long reg) in ipu_write_reg() argument
32 __raw_writel(value, ipu->reg_ipu + reg); in ipu_write_reg()
47 struct ipu *ipu; member
76 struct ipu *ipu; member
112 reg = ipu_read_reg(bank->ipu, bank->control); in ipu_irq_unmask()
114 ipu_write_reg(bank->ipu, reg, bank->control); in ipu_irq_unmask()
135 reg = ipu_read_reg(bank->ipu, bank->control); in ipu_irq_mask()
137 ipu_write_reg(bank->ipu, reg, bank->control); in ipu_irq_mask()
[all …]
Dipu_intern.h152 struct ipu { struct
169 extern int ipu_irq_attach_irq(struct ipu *ipu, struct platform_device *dev); argument
170 extern void ipu_irq_detach_irq(struct ipu *ipu, struct platform_device *dev);
/Linux-v4.19/include/video/
Dimx-ipu-v3.h186 int ipu_map_irq(struct ipu_soc *ipu, int irq);
187 int ipu_idmac_channel_irq(struct ipu_soc *ipu, struct ipuv3_channel *channel,
205 int ipu_get_num(struct ipu_soc *ipu);
206 void ipu_set_csi_src_mux(struct ipu_soc *ipu, int csi_id, bool mipi_csi2);
207 void ipu_set_ic_src_mux(struct ipu_soc *ipu, int csi_id, bool vdi);
208 void ipu_dump(struct ipu_soc *ipu);
213 struct ipuv3_channel *ipu_idmac_get(struct ipu_soc *ipu, unsigned channel);
228 int ipu_fsu_link(struct ipu_soc *ipu, int src_ch, int sink_ch);
229 int ipu_fsu_unlink(struct ipu_soc *ipu, int src_ch, int sink_ch);
282 struct ipu_dc *ipu_dc_get(struct ipu_soc *ipu, int channel);
[all …]
Dimx-ipu-image-convert.h109 ipu_image_convert_prepare(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
182 ipu_image_convert(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
202 int ipu_image_convert_sync(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
/Linux-v4.19/drivers/gpu/drm/imx/
Dipuv3-plane.c95 return ipu_idmac_channel_irq(ipu_plane->ipu, ipu_plane->ipu_ch, in ipu_plane_irq()
169 ipu_plane->ipu_ch = ipu_idmac_get(ipu_plane->ipu, ipu_plane->dma); in ipu_plane_get_resources()
178 ipu_plane->alpha_ch = ipu_idmac_get(ipu_plane->ipu, alpha_ch); in ipu_plane_get_resources()
187 ipu_plane->dmfc = ipu_dmfc_get(ipu_plane->ipu, ipu_plane->dma); in ipu_plane_get_resources()
195 ipu_plane->dp = ipu_dp_get(ipu_plane->ipu, ipu_plane->dp_flow); in ipu_plane_get_resources()
228 ipu_dp_enable(ipu_plane->ipu); in ipu_plane_enable()
250 ipu_dp_disable(ipu_plane->ipu); in ipu_plane_disable()
251 if (ipu_prg_present(ipu_plane->ipu)) in ipu_plane_disable()
323 struct ipu_soc *ipu = to_ipu_plane(plane)->ipu; in ipu_plane_format_mod_supported() local
330 if (!ipu_prg_present(ipu)) in ipu_plane_format_mod_supported()
[all …]
Dipuv3-crtc.c56 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_crtc_atomic_enable() local
58 ipu_prg_enable(ipu); in ipu_crtc_atomic_enable()
59 ipu_dc_enable(ipu); in ipu_crtc_atomic_enable()
88 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_crtc_atomic_disable() local
98 ipu_dc_disable(ipu); in ipu_crtc_atomic_disable()
99 ipu_prg_disable(ipu); in ipu_crtc_atomic_disable()
315 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_get_resources() local
318 ipu_crtc->dc = ipu_dc_get(ipu, pdata->dc); in ipu_get_resources()
324 ipu_crtc->di = ipu_di_get(ipu, pdata->di); in ipu_get_resources()
340 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_crtc_init() local
[all …]
Dipuv3-plane.h20 struct ipu_soc *ipu; member
32 struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
/Linux-v4.19/arch/arm/boot/dts/
Dimx6qp.dtsi90 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
95 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
/Linux-v4.19/drivers/staging/media/imx/
Dimx-media-dev.c133 struct ipu_soc *ipu; in imx_media_get_ipu() local
136 ipu = dev_get_drvdata(csi_sd->dev->parent); in imx_media_get_ipu()
137 if (!ipu) { in imx_media_get_ipu()
143 ipu_id = ipu_get_num(ipu); in imx_media_get_ipu()
149 if (!imxmd->ipu[ipu_id]) in imx_media_get_ipu()
150 imxmd->ipu[ipu_id] = ipu; in imx_media_get_ipu()
/Linux-v4.19/Documentation/devicetree/bindings/display/imx/
Dfsl-imx-drm.txt24 - compatible: Should be "fsl,<chip>-ipu" where <chip> is one of
35 Additional required properties for fsl,imx6qp-ipu:
45 ipu: ipu@18000000 {
48 compatible = "fsl,imx53-ipu";

12