| /linux/drivers/media/platform/renesas/vsp1/ |
| H A D | vsp1_drv.c | 52 struct vsp1_device *vsp1 = data; in vsp1_irq_handler() local 57 for (i = 0; i < vsp1->info->wpf_count; ++i) { in vsp1_irq_handler() 58 struct vsp1_rwpf *wpf = vsp1->wpf[i]; in vsp1_irq_handler() 63 status = vsp1_read(vsp1, VI6_WPF_IRQ_STA(i)); in vsp1_irq_handler() 64 vsp1_write(vsp1, VI6_WPF_IRQ_STA(i), ~status & mask); in vsp1_irq_handler() 69 dev_warn_ratelimited(vsp1->dev, in vsp1_irq_handler() 101 static int vsp1_create_sink_links(struct vsp1_device *vsp1, in vsp1_create_sink_links() argument 109 list_for_each_entry(source, &vsp1->entities, list_dev) { in vsp1_create_sink_links() 144 static int vsp1_uapi_create_links(struct vsp1_device *vsp1) in vsp1_uapi_create_links() argument 150 list_for_each_entry(entity, &vsp1->entities, list_dev) { in vsp1_uapi_create_links() [all …]
|
| H A D | vsp1_drm.c | 64 static int vsp1_du_insert_uif(struct vsp1_device *vsp1, in vsp1_du_insert_uif() argument 100 dev_dbg(vsp1->dev, "%s: set format %ux%u (%x) on UIF sink\n", in vsp1_du_insert_uif() 116 static int vsp1_du_pipeline_setup_rpf(struct vsp1_device *vsp1, in vsp1_du_pipeline_setup_rpf() argument 122 const struct vsp1_drm_input *input = &vsp1->drm->inputs[rpf->entity.index]; in vsp1_du_pipeline_setup_rpf() 148 dev_dbg(vsp1->dev, in vsp1_du_pipeline_setup_rpf() 162 dev_dbg(vsp1->dev, in vsp1_du_pipeline_setup_rpf() 178 dev_dbg(vsp1->dev, in vsp1_du_pipeline_setup_rpf() 191 ret = vsp1_du_insert_uif(vsp1, pipe, uif, &rpf->entity, RWPF_PAD_SOURCE, in vsp1_du_pipeline_setup_rpf() 204 dev_dbg(vsp1->dev, "%s: set format %ux%u (%x) on %s pad %u\n", in vsp1_du_pipeline_setup_rpf() 210 sel.r = vsp1->drm->inputs[rpf->entity.index].compose; in vsp1_du_pipeline_setup_rpf() [all …]
|
| H A D | vsp1_vspx.c | 80 struct vsp1_device *vsp1; member 85 static int vsp1_vspx_rwpf_set_subdev_fmt(struct vsp1_device *vsp1, in vsp1_vspx_rwpf_set_subdev_fmt() argument 114 rwpf->fmtinfo = vsp1_get_format_info(vsp1, vspx_fourcc); in vsp1_vspx_rwpf_set_subdev_fmt() 127 static int vsp1_vspx_pipeline_configure(struct vsp1_device *vsp1, in vsp1_vspx_pipeline_configure() argument 135 struct vsp1_vspx_pipeline *vspx_pipe = &vsp1->vspx->pipe; in vsp1_vspx_pipeline_configure() 140 ret = vsp1_vspx_rwpf_set_subdev_fmt(vsp1, rpf0, isp_fourcc, width, in vsp1_vspx_pipeline_configure() 145 ret = vsp1_vspx_rwpf_set_subdev_fmt(vsp1, pipe->output, isp_fourcc, in vsp1_vspx_pipeline_configure() 204 struct vsp1_device *vsp1 = dev_get_drvdata(dev); in vsp1_isp_init() local 206 if (!vsp1) in vsp1_isp_init() 225 struct vsp1_device *vsp1 = dev_get_drvdata(dev); in vsp1_isp_get_bus_master() local [all …]
|
| H A D | Makefile | 2 vsp1-y := vsp1_drv.o vsp1_entity.o vsp1_pipe.o 3 vsp1-y += vsp1_dl.o vsp1_drm.o vsp1_video.o 4 vsp1-y += vsp1_rpf.o vsp1_rwpf.o vsp1_wpf.o 5 vsp1-y += vsp1_clu.o vsp1_hsit.o vsp1_lut.o 6 vsp1-y += vsp1_brx.o vsp1_sru.o vsp1_uds.o 7 vsp1-y += vsp1_hgo.o vsp1_hgt.o vsp1_histo.o 8 vsp1-y += vsp1_iif.o vsp1_lif.o vsp1_uif.o 9 vsp1-y += vsp1_vspx.o 11 obj-$(CONFIG_VIDEO_RENESAS_VSP1) += vsp1.o
|
| H A D | vsp1_dl.c | 142 struct vsp1_device *vsp1; member 166 struct vsp1_device *vsp1; member 224 struct vsp1_device *vsp1; member 255 vsp1_dl_body_pool_create(struct vsp1_device *vsp1, unsigned int num_bodies, in vsp1_dl_body_pool_create() argument 266 pool->vsp1 = vsp1; in vsp1_dl_body_pool_create() 283 pool->mem = dma_alloc_wc(vsp1->bus_master, pool->size, &pool->dma, in vsp1_dl_body_pool_create() 321 dma_free_wc(pool->vsp1->bus_master, pool->size, pool->mem, in vsp1_dl_body_pool_destroy() 430 vsp1_dl_cmd_pool_create(struct vsp1_device *vsp1, enum vsp1_extcmd_type type, in vsp1_dl_cmd_pool_create() argument 441 pool->vsp1 = vsp1; in vsp1_dl_cmd_pool_create() 457 pool->mem = dma_alloc_wc(vsp1->bus_master, pool->size, &pool->dma, in vsp1_dl_cmd_pool_create() [all …]
|
| H A D | vsp1.h | 78 #define vsp1_feature(vsp1, f) ((vsp1)->info->features & (f)) argument 117 int vsp1_device_get(struct vsp1_device *vsp1); 118 void vsp1_device_put(struct vsp1_device *vsp1); 120 int vsp1_reset_wpf(struct vsp1_device *vsp1, unsigned int index); 122 static inline u32 vsp1_read(struct vsp1_device *vsp1, u32 reg) in vsp1_read() argument 124 return ioread32(vsp1->mmio + reg); in vsp1_read() 127 static inline void vsp1_write(struct vsp1_device *vsp1, u32 reg, u32 data) in vsp1_write() argument 129 iowrite32(data, vsp1->mmio + reg); in vsp1_write()
|
| H A D | vsp1_wpf.c | 134 struct vsp1_device *vsp1 = wpf->entity.vsp1; in wpf_init_controls() local 143 } else if (vsp1_feature(vsp1, VSP1_HAS_WPF_HFLIP)) { in wpf_init_controls() 149 } else if (vsp1_feature(vsp1, VSP1_HAS_WPF_VFLIP)) { in wpf_init_controls() 192 struct vsp1_device *vsp1 = wpf->entity.vsp1; in vsp1_wpf_stop() local 198 vsp1_write(vsp1, VI6_WPF_IRQ_ENB(wpf->entity.index), 0); in vsp1_wpf_stop() 199 vsp1_write(vsp1, wpf->entity.index * VI6_WPF_OFFSET + in vsp1_wpf_stop() 219 dev_err(wpf->entity.vsp1->dev, in wpf_configure_writeback_chain() 238 struct vsp1_device *vsp1 = wpf->entity.vsp1; in wpf_configure_stream() local 279 if (vsp1_feature(vsp1, VSP1_HAS_WPF_HFLIP) && index == 0) in wpf_configure_stream() 324 for (i = 0; i < vsp1->info->rpf_count; ++i) { in wpf_configure_stream() [all …]
|
| H A D | vsp1_pipe.c | 240 const struct vsp1_format_info *vsp1_get_format_info(struct vsp1_device *vsp1, in vsp1_get_format_info() argument 252 if (vsp1->info->gen == 2) { in vsp1_get_format_info() 262 if (vsp1_feature(vsp1, VSP1_HAS_HSIT)) { in vsp1_get_format_info() 287 vsp1_get_format_info_by_index(struct vsp1_device *vsp1, unsigned int index, in vsp1_get_format_info_by_index() argument 296 if (vsp1->info->gen == 2) { in vsp1_get_format_info_by_index() 302 if (vsp1_feature(vsp1, VSP1_HAS_HSIT)) { in vsp1_get_format_info_by_index() 321 if (vsp1->info->gen == 2) { in vsp1_get_format_info_by_index() 334 if (vsp1_feature(vsp1, VSP1_HAS_HSIT)) { in vsp1_get_format_info_by_index() 453 struct vsp1_device *vsp1 = pipe->output->entity.vsp1; in __vsp1_pipeline_dump() local 457 printk(KERN_DEBUG "%s: %s: pipe: ", dev_name(vsp1->dev), msg); in __vsp1_pipeline_dump() [all …]
|
| H A D | vsp1_video.c | 82 dev_dbg(video->vsp1->dev, in vsp1_video_verify_format() 125 info = vsp1_get_format_info(video->vsp1, pix->pixelformat); in __vsp1_video_try_format() 127 info = vsp1_get_format_info(video->vsp1, VSP1_VIDEO_DEF_FORMAT); in __vsp1_video_try_format() 271 struct vsp1_device *vsp1 = pipe->output->entity.vsp1; in vsp1_video_pipeline_run() local 308 dev_err(vsp1->dev, "Failed to obtain a dl list. Frame will be incomplete\n"); in vsp1_video_pipeline_run() 326 struct vsp1_device *vsp1 = pipe->output->entity.vsp1; in vsp1_video_pipeline_frame_end() local 337 for (i = 0; i < vsp1->info->rpf_count; ++i) { in vsp1_video_pipeline_frame_end() 371 ret = media_entity_enum_init(&ent_enum, &input->entity.vsp1->media_dev); in vsp1_video_pipeline_build_branch() 525 for (i = 0; i < video->vsp1->info->rpf_count; ++i) { in vsp1_video_pipeline_build() 596 struct media_device *mdev = &pipe->output->entity.vsp1->media_dev; in vsp1_video_pipeline_put() [all …]
|
| H A D | vsp1_video.h | 33 struct vsp1_device *vsp1; member 54 void vsp1_video_suspend(struct vsp1_device *vsp1); 55 void vsp1_video_resume(struct vsp1_device *vsp1); 57 struct vsp1_video *vsp1_video_create(struct vsp1_device *vsp1,
|
| H A D | vsp1_hgo.c | 28 return vsp1_read(hgo->histo.entity.vsp1, reg); in vsp1_hgo_read() 60 vsp1_write(hgo->histo.entity.vsp1, in vsp1_hgo_frame_end() 186 struct vsp1_hgo *vsp1_hgo_create(struct vsp1_device *vsp1) in vsp1_hgo_create() argument 191 hgo = devm_kzalloc(vsp1->dev, sizeof(*hgo), GFP_KERNEL); in vsp1_hgo_create() 196 ret = vsp1_histogram_init(vsp1, &hgo->histo, VSP1_ENTITY_HGO, "hgo", in vsp1_hgo_create() 207 vsp1->info->gen >= 3 ? 2 : 1); in vsp1_hgo_create() 210 if (vsp1->info->gen >= 3) in vsp1_hgo_create()
|
| H A D | vsp1_lif.c | 99 switch (entity->vsp1->version & VI6_IP_VERSION_MODEL_MASK) { in lif_configure_stream() 139 if (vsp1_feature(entity->vsp1, VSP1_HAS_NON_ZERO_LBA)) in lif_configure_stream() 153 struct vsp1_lif *vsp1_lif_create(struct vsp1_device *vsp1, unsigned int index) in vsp1_lif_create() argument 158 lif = devm_kzalloc(vsp1->dev, sizeof(*lif), GFP_KERNEL); in vsp1_lif_create() 171 ret = vsp1_entity_init(vsp1, &lif->entity, "lif", 2, &lif_ops, in vsp1_lif_create()
|
| H A D | vsp1_rpf.c | 133 if (entity->vsp1->info->gen == 4) { in rpf_configure_stream() 229 if (entity->vsp1->info->gen >= 3) { in rpf_configure_stream() 320 struct vsp1_device *vsp1 = rpf->entity.vsp1; in rpf_configure_partition() local 363 if (vsp1->info->gen >= 3 && format->num_planes == 3 && in rpf_configure_partition() 418 struct vsp1_rwpf *vsp1_rpf_create(struct vsp1_device *vsp1, unsigned int index) in vsp1_rpf_create() argument 424 rpf = devm_kzalloc(vsp1->dev, sizeof(*rpf), GFP_KERNEL); in vsp1_rpf_create() 436 ret = vsp1_entity_init(vsp1, &rpf->entity, name, 2, &vsp1_rwpf_subdev_ops, in vsp1_rpf_create() 444 dev_err(vsp1->dev, "rpf%u: failed to initialize controls\n", in vsp1_rpf_create()
|
| H A D | vsp1_lut.c | 198 struct vsp1_lut *vsp1_lut_create(struct vsp1_device *vsp1) in vsp1_lut_create() argument 203 lut = devm_kzalloc(vsp1->dev, sizeof(*lut), GFP_KERNEL); in vsp1_lut_create() 212 ret = vsp1_entity_init(vsp1, &lut->entity, "lut", 2, &lut_ops, in vsp1_lut_create() 222 lut->pool = vsp1_dl_body_pool_create(vsp1, 3, LUT_SIZE, 0); in vsp1_lut_create() 233 dev_err(vsp1->dev, "lut: failed to initialize controls\n"); in vsp1_lut_create()
|
| H A D | vsp1_clu.c | 237 struct vsp1_clu *vsp1_clu_create(struct vsp1_device *vsp1) in vsp1_clu_create() argument 242 clu = devm_kzalloc(vsp1->dev, sizeof(*clu), GFP_KERNEL); in vsp1_clu_create() 251 ret = vsp1_entity_init(vsp1, &clu->entity, "clu", 2, &clu_ops, in vsp1_clu_create() 262 clu->pool = vsp1_dl_body_pool_create(clu->entity.vsp1, 3, CLU_SIZE + 1, in vsp1_clu_create() 275 dev_err(vsp1->dev, "clu: failed to initialize controls\n"); in vsp1_clu_create()
|
| H A D | vsp1_dl.h | 52 void vsp1_dlm_setup(struct vsp1_device *vsp1); 54 struct vsp1_dl_manager *vsp1_dlm_create(struct vsp1_device *vsp1, 69 vsp1_dl_body_pool_create(struct vsp1_device *vsp1, unsigned int num_bodies,
|
| H A D | vsp1_iif.c | 98 struct vsp1_iif *vsp1_iif_create(struct vsp1_device *vsp1) in vsp1_iif_create() argument 103 iif = devm_kzalloc(vsp1->dev, sizeof(*iif), GFP_KERNEL); in vsp1_iif_create() 115 ret = vsp1_entity_init(vsp1, &iif->entity, "iif", 3, &iif_ops, in vsp1_iif_create()
|
| H A D | vsp1_hgt.c | 28 return vsp1_read(hgt->histo.entity.vsp1, reg); in vsp1_hgt_read() 185 struct vsp1_hgt *vsp1_hgt_create(struct vsp1_device *vsp1) in vsp1_hgt_create() argument 190 hgt = devm_kzalloc(vsp1->dev, sizeof(*hgt), GFP_KERNEL); in vsp1_hgt_create() 195 ret = vsp1_histogram_init(vsp1, &hgt->histo, VSP1_ENTITY_HGT, "hgt", in vsp1_hgt_create()
|
| H A D | vsp1_vspx.h | 13 int vsp1_vspx_init(struct vsp1_device *vsp1); 14 void vsp1_vspx_cleanup(struct vsp1_device *vsp1);
|
| H A D | vsp1_drm.h | 77 int vsp1_drm_init(struct vsp1_device *vsp1); 78 void vsp1_drm_cleanup(struct vsp1_device *vsp1);
|
| H A D | vsp1_entity.c | 590 int vsp1_entity_init(struct vsp1_device *vsp1, struct vsp1_entity *entity, in vsp1_entity_init() argument 612 entity->vsp1 = vsp1; in vsp1_entity_init() 616 entity->pads = devm_kcalloc(vsp1->dev, in vsp1_entity_init() 625 entity->sources = devm_kcalloc(vsp1->dev, max(num_pads - 1, 1U), in vsp1_entity_init() 646 subdev->entity.ops = &vsp1->media_ops; in vsp1_entity_init() 650 dev_name(vsp1->dev), name); in vsp1_entity_init()
|
| H A D | vsp1_uif.c | 31 return vsp1_read(uif->entity.vsp1, in vsp1_uif_read() 237 struct vsp1_uif *vsp1_uif_create(struct vsp1_device *vsp1, unsigned int index) in vsp1_uif_create() argument 243 uif = devm_kzalloc(vsp1->dev, sizeof(*uif), GFP_KERNEL); in vsp1_uif_create() 256 ret = vsp1_entity_init(vsp1, &uif->entity, name, 2, &uif_ops, in vsp1_uif_create()
|
| H A D | vsp1_brx.c | 404 struct vsp1_brx *vsp1_brx_create(struct vsp1_device *vsp1, in vsp1_brx_create() argument 412 brx = devm_kzalloc(vsp1->dev, sizeof(*brx), GFP_KERNEL); in vsp1_brx_create() 421 num_pads = vsp1->info->num_bru_inputs + 1; in vsp1_brx_create() 428 ret = vsp1_entity_init(vsp1, &brx->entity, name, num_pads, &brx_ops, in vsp1_brx_create() 443 dev_err(vsp1->dev, "%s: failed to initialize controls\n", name); in vsp1_brx_create()
|
| H A D | vsp1_hsit.c | 160 struct vsp1_hsit *vsp1_hsit_create(struct vsp1_device *vsp1, bool inverse) in vsp1_hsit_create() argument 165 hsit = devm_kzalloc(vsp1->dev, sizeof(*hsit), GFP_KERNEL); in vsp1_hsit_create() 178 ret = vsp1_entity_init(vsp1, &hsit->entity, inverse ? "hsi" : "hst", in vsp1_hsit_create()
|
| /linux/Documentation/userspace-api/media/v4l/ |
| H A D | meta-formats.rst | 27 metafmt-vsp1-hgo 28 metafmt-vsp1-hgt
|