/Linux-v6.6/drivers/gpu/ipu-v3/ |
D | ipu-common.c | 29 static inline u32 ipu_cm_read(struct ipu_soc *ipu, unsigned offset) in ipu_cm_read() argument 31 return readl(ipu->cm_reg + offset); in ipu_cm_read() 34 static inline void ipu_cm_write(struct ipu_soc *ipu, u32 value, unsigned offset) in ipu_cm_write() argument 36 writel(value, ipu->cm_reg + offset); in ipu_cm_write() 39 int ipu_get_num(struct ipu_soc *ipu) in ipu_get_num() argument 41 return ipu->id; in ipu_get_num() 45 void ipu_srm_dp_update(struct ipu_soc *ipu, bool sync) in ipu_srm_dp_update() argument 49 val = ipu_cm_read(ipu, IPU_SRM_PRI2); in ipu_srm_dp_update() 53 ipu_cm_write(ipu, val, IPU_SRM_PRI2); in ipu_srm_dp_update() 200 struct ipuv3_channel *ipu_idmac_get(struct ipu_soc *ipu, unsigned num) in ipu_idmac_get() argument [all …]
|
D | Makefile | 2 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-ic-csc.o \ 6 ipu-image-convert.o ipu-smfc.o ipu-vdi.o 9 imx-ipu-v3-objs += ipu-pre.o ipu-prg.o
|
D | ipu-prv.h | 152 struct ipu_soc *ipu; member 203 static inline u32 ipu_idmac_read(struct ipu_soc *ipu, unsigned offset) in ipu_idmac_read() argument 205 return readl(ipu->idmac_reg + offset); in ipu_idmac_read() 208 static inline void ipu_idmac_write(struct ipu_soc *ipu, u32 value, in ipu_idmac_write() argument 211 writel(value, ipu->idmac_reg + offset); in ipu_idmac_write() 214 void ipu_srm_dp_update(struct ipu_soc *ipu, bool sync); 216 int ipu_module_enable(struct ipu_soc *ipu, u32 mask); 217 int ipu_module_disable(struct ipu_soc *ipu, u32 mask); 219 bool ipu_idmac_channel_busy(struct ipu_soc *ipu, unsigned int chno); 221 int ipu_csi_init(struct ipu_soc *ipu, struct device *dev, int id, [all …]
|
D | ipu-ic.c | 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() 457 struct ipu_soc *ipu = priv->ipu; in ipu_ic_task_idma_init() local 465 dev_err(ipu->dev, "Illegal burst length for IC\n"); in ipu_ic_task_idma_init() 597 ipu_module_enable(priv->ipu, IPU_CONF_ROT_EN); in ipu_irt_enable() 608 ipu_module_disable(priv->ipu, IPU_CONF_ROT_EN); in ipu_irt_disable() [all …]
|
D | ipu-dmfc.c | 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 = ipu; in ipu_dmfc_init() 190 ipu->dmfc_priv = priv; in ipu_dmfc_init() 194 priv->channels[i].ipu = ipu; in ipu_dmfc_init() [all …]
|
D | ipu-dp.c | 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, true); in ipu_dp_enable_channel() 292 ipu_srm_dp_update(priv->ipu, sync); in ipu_dp_disable_channel() 298 void ipu_dp_disable(struct ipu_soc *ipu) in ipu_dp_disable() argument [all …]
|
D | ipu-cpmem.c | 27 struct ipu_soc *ipu; member 95 struct ipu_cpmem *cpmem = ch->ipu->cpmem_priv; in ipu_get_cpmem() 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, val, IDMAC_CHA_PRI(ch->num)); in ipu_cpmem_set_high_priority() 624 struct ipu_soc *ipu = ch->ipu; in ipu_cpmem_set_separate_alpha() local 636 val = ipu_idmac_read(ipu, IDMAC_SEP_ALPHA); in ipu_cpmem_set_separate_alpha() 638 ipu_idmac_write(ipu, val, IDMAC_SEP_ALPHA); in ipu_cpmem_set_separate_alpha() 892 struct ipu_soc *ipu = ch->ipu; in ipu_cpmem_dump() local [all …]
|
D | ipu-csi.c | 29 struct ipu_soc *ipu; member 201 dev_err(csi->ipu->dev, in ipu_csi_set_testgen_mclk() 434 dev_dbg(csi->ipu->dev, "capture field swap\n"); in ipu_csi_set_bt_interlaced_codes() 501 dev_err(csi->ipu->dev, in ipu_csi_init_interface() 529 dev_dbg(csi->ipu->dev, "CSI_SENS_CONF = 0x%08X\n", in ipu_csi_init_interface() 531 dev_dbg(csi->ipu->dev, "CSI_ACT_FRM_SIZE = 0x%08X\n", in ipu_csi_init_interface() 565 dev_err(csi->ipu->dev, in ipu_csi_is_interlaced() 737 ipu_module_enable(csi->ipu, csi->module); in ipu_csi_enable() 745 ipu_module_disable(csi->ipu, csi->module); in ipu_csi_disable() 751 struct ipu_csi *ipu_csi_get(struct ipu_soc *ipu, int id) in ipu_csi_get() argument [all …]
|
D | ipu-smfc.c | 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 = ipu; in ipu_smfc_init() 200 void ipu_smfc_exit(struct ipu_soc *ipu) in ipu_smfc_exit() argument
|
D | ipu-vdi.c | 14 struct ipu_soc *ipu; member 171 ipu_module_enable(vdi->ipu, vdi->module); in ipu_vdi_enable() 189 ipu_module_disable(vdi->ipu, vdi->module); in ipu_vdi_disable() 198 struct ipu_vdi *ipu_vdi_get(struct ipu_soc *ipu) in ipu_vdi_get() argument 200 return ipu->vdi_priv; in ipu_vdi_get() 209 int ipu_vdi_init(struct ipu_soc *ipu, struct device *dev, in ipu_vdi_init() argument 218 ipu->vdi_priv = vdi; in ipu_vdi_init() 227 vdi->ipu = ipu; in ipu_vdi_init() 232 void ipu_vdi_exit(struct ipu_soc *ipu) in ipu_vdi_exit() argument
|
D | ipu-dc.c | 101 struct ipu_soc *ipu; member 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_EN); in ipu_dc_disable() 308 struct ipu_dc *ipu_dc_get(struct ipu_soc *ipu, int channel) in ipu_dc_get() argument 310 struct ipu_dc_priv *priv = ipu->dc_priv; in ipu_dc_get() 343 int ipu_dc_init(struct ipu_soc *ipu, struct device *dev, in ipu_dc_init() argument [all …]
|
D | ipu-di.c | 25 struct ipu_soc *ipu; member 170 dev_err(di->ipu->dev, "DI%d counters out of range.\n", in ipu_di_sync_config() 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->dev, "Want %luHz IPU %luHz DI %luHz using %s, %luHz\n", in ipu_di_config_clock() 512 …dev_err(di->ipu->dev, "hactive %d is not aligned to 8 and front porch is too small to compensate\n… in ipu_di_adjust_videomode() 529 dev_warn(di->ipu->dev, "failed to adjust videomode\n"); in ipu_di_adjust_videomode() 533 dev_dbg(di->ipu->dev, "videomode adapted for IPU restrictions\n"); in ipu_di_adjust_videomode() 567 dev_dbg(di->ipu->dev, "disp %d: panel size = %d x %d\n", in ipu_di_init_sync_panel() 570 dev_dbg(di->ipu->dev, "Clocks: IPU %luHz DI %luHz Needed %luHz\n", in ipu_di_init_sync_panel() 651 ipu_module_enable(di->ipu, di->module); in ipu_di_enable() [all …]
|
D | ipu-image-convert.c | 229 struct ipu_soc *ipu; member 346 dev_dbg(priv->ipu->dev, in dump_format() 376 dma_free_coherent(priv->ipu->dev, in free_dma_buf() 387 buf->virt = dma_alloc_coherent(priv->ipu->dev, buf->len, &buf->phys, in alloc_dma_buf() 390 dev_err(priv->ipu->dev, "failed to alloc dma buffer\n"); in alloc_dma_buf() 461 dev_dbg(ctx->chan->priv->ipu->dev, in calc_image_resize_coefficients() 514 struct device *dev = ctx->chan->priv->ipu->dev; in find_best_seam() 734 struct device *dev = ctx->chan->priv->ipu->dev; in find_seams() 892 dev_dbg(priv->ipu->dev, in calc_tile_dimensions() 901 dev_err(priv->ipu->dev, "invalid %s tile size: %ux%u\n", in calc_tile_dimensions() [all …]
|
D | ipu-prg.c | 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() 245 struct ipu_prg *prg = ipu_chan->ipu->prg_priv; in ipu_prg_channel_disable() 279 struct ipu_prg *prg = ipu_chan->ipu->prg_priv; in ipu_prg_channel_configure() 345 struct ipu_prg *prg = ipu_chan->ipu->prg_priv; in ipu_prg_channel_configure_pending()
|
/Linux-v6.6/drivers/gpu/drm/ingenic/ |
D | ingenic-ipu.c | 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 244 ipu->soc_info->set_coefs(ipu, reg, ipu->sharpness, in ingenic_ipu_set_downscale_coefs() 249 static void ingenic_ipu_set_integer_upscale_coefs(struct ingenic_ipu *ipu, in ingenic_ipu_set_integer_upscale_coefs() argument [all …]
|
/Linux-v6.6/include/video/ |
D | imx-ipu-v3.h | 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, 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); 214 struct ipuv3_channel *ipu_idmac_get(struct ipu_soc *ipu, unsigned channel); 229 int ipu_fsu_link(struct ipu_soc *ipu, int src_ch, int sink_ch); 230 int ipu_fsu_unlink(struct ipu_soc *ipu, int src_ch, int sink_ch); 287 struct ipu_dc *ipu_dc_get(struct ipu_soc *ipu, int channel); [all …]
|
D | imx-ipu-image-convert.h | 100 ipu_image_convert_prepare(struct ipu_soc *ipu, enum ipu_ic_task ic_task, 173 ipu_image_convert(struct ipu_soc *ipu, enum ipu_ic_task ic_task, 193 int ipu_image_convert_sync(struct ipu_soc *ipu, enum ipu_ic_task ic_task,
|
/Linux-v6.6/drivers/staging/media/imx/ |
D | imx-media-internal-sd.c | 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() 205 ipu_id = ipu_get_num(ipu); in imx_media_register_ipu_internal_subdevs() 214 if (!imxmd->ipu[ipu_id]) in imx_media_register_ipu_internal_subdevs() 215 imxmd->ipu[ipu_id] = ipu; in imx_media_register_ipu_internal_subdevs() 231 sd = intsd->sync_register(&imxmd->v4l2_dev, ipu_dev, ipu, in imx_media_register_ipu_internal_subdevs()
|
D | imx-ic-common.c | 23 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()
|
D | imx-media-vdic.c | 62 struct ipu_soc *ipu; member 140 vdi = ipu_vdi_get(priv->ipu); in vdic_get_ipu_resources() 149 ch = ipu_idmac_get(priv->ipu, IPUV3_CHANNEL_MEM_VDI_PREV); in vdic_get_ipu_resources() 157 ch = ipu_idmac_get(priv->ipu, IPUV3_CHANNEL_MEM_VDI_CUR); in vdic_get_ipu_resources() 165 ch = ipu_idmac_get(priv->ipu, IPUV3_CHANNEL_MEM_VDI_NEXT); in vdic_get_ipu_resources() 274 ipu_fsu_link(priv->ipu, IPUV3_CHANNEL_CSI_DIRECT, in vdic_setup_direct() 290 ipu_fsu_unlink(priv->ipu, IPUV3_CHANNEL_CSI_DIRECT, in vdic_disable_direct() 915 struct ipu_soc *ipu, in imx_media_vdic_register() argument 926 priv->ipu = ipu; in imx_media_vdic_register() 937 priv->sd.grp_id, ipu_get_num(ipu)); in imx_media_vdic_register()
|
/Linux-v6.6/drivers/gpu/drm/imx/ipuv3/ |
D | ipuv3-crtc.c | 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 97 ipu_dc_disable(ipu); in ipu_crtc_atomic_disable() 98 ipu_prg_disable(ipu); in ipu_crtc_atomic_disable() 346 struct ipu_soc *ipu = dev_get_drvdata(ipu_crtc->dev->parent); in ipu_get_resources() local 349 ipu_crtc->dc = ipu_dc_get(ipu, pdata->dc); in ipu_get_resources() 357 ipu_crtc->di = ipu_di_get(ipu, pdata->di); in ipu_get_resources() 367 struct ipu_soc *ipu = dev_get_drvdata(dev->parent); in ipu_drm_bind() local [all …]
|
D | ipuv3-plane.c | 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 = to_ipu_plane(plane)->ipu; in ipu_plane_format_mod_supported() local 354 return ipu_prg_format_supported(ipu, format, modifier); in ipu_plane_format_mod_supported() [all …]
|
D | ipuv3-plane.h | 20 struct ipu_soc *ipu; member 32 struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
|
/Linux-v6.6/arch/arm/boot/dts/nxp/imx/ |
D | imx6qp.dtsi | 95 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu"; 100 compatible = "fsl,imx6qp-ipu", "fsl,imx6q-ipu";
|
/Linux-v6.6/Documentation/devicetree/bindings/display/imx/ |
D | fsl-imx-drm.txt | 24 - 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";
|