/kernel/linux/linux-5.10/drivers/gpu/drm/imx/dcss/ |
H A D | dcss-dtg.c | 98 static void dcss_dtg_write(struct dcss_dtg *dtg, u32 val, u32 ofs) in dcss_dtg_write() argument 100 if (!dtg->in_use) in dcss_dtg_write() 101 dcss_writel(val, dtg->base_reg + ofs); in dcss_dtg_write() 103 dcss_ctxld_write(dtg->ctxld, dtg->ctx_id, in dcss_dtg_write() 104 val, dtg->base_ofs + ofs); in dcss_dtg_write() 109 struct dcss_dtg *dtg = data; in dcss_dtg_irq_handler() local 112 status = dcss_readl(dtg->base_reg + DCSS_DTG_INT_STATUS); in dcss_dtg_irq_handler() 117 dcss_ctxld_kick(dtg->ctxld); in dcss_dtg_irq_handler() 119 dcss_writel(status & LINE0_IRQ, dtg in dcss_dtg_irq_handler() 124 dcss_dtg_irq_config(struct dcss_dtg *dtg, struct platform_device *pdev) dcss_dtg_irq_config() argument 153 struct dcss_dtg *dtg; dcss_dtg_init() local 193 dcss_dtg_exit(struct dcss_dtg *dtg) dcss_dtg_exit() argument 203 dcss_dtg_sync_set(struct dcss_dtg *dtg, struct videomode *vm) dcss_dtg_sync_set() argument 258 dcss_dtg_plane_pos_set(struct dcss_dtg *dtg, int ch_num, int px, int py, int pw, int ph) dcss_dtg_plane_pos_set() argument 280 dcss_dtg_global_alpha_changed(struct dcss_dtg *dtg, int ch_num, int alpha) dcss_dtg_global_alpha_changed() argument 288 dcss_dtg_plane_alpha_set(struct dcss_dtg *dtg, int ch_num, const struct drm_format_info *format, int alpha) dcss_dtg_plane_alpha_set() argument 307 dcss_dtg_css_set(struct dcss_dtg *dtg) dcss_dtg_css_set() argument 313 dcss_dtg_enable(struct dcss_dtg *dtg) dcss_dtg_enable() argument 325 dcss_dtg_shutoff(struct dcss_dtg *dtg) dcss_dtg_shutoff() argument 335 dcss_dtg_is_enabled(struct dcss_dtg *dtg) dcss_dtg_is_enabled() argument 340 dcss_dtg_ch_enable(struct dcss_dtg *dtg, int ch_num, bool en) dcss_dtg_ch_enable() argument 357 dcss_dtg_vblank_irq_enable(struct dcss_dtg *dtg, bool en) dcss_dtg_vblank_irq_enable() argument 371 dcss_dtg_ctxld_kick_irq_enable(struct dcss_dtg *dtg, bool en) dcss_dtg_ctxld_kick_irq_enable() argument 400 dcss_dtg_vblank_irq_clear(struct dcss_dtg *dtg) dcss_dtg_vblank_irq_clear() argument 405 dcss_dtg_vblank_irq_valid(struct dcss_dtg *dtg) dcss_dtg_vblank_irq_valid() argument [all...] |
H A D | dcss-dev.h | 70 struct dcss_dtg *dtg; member 139 void dcss_dtg_exit(struct dcss_dtg *dtg); 140 bool dcss_dtg_vblank_irq_valid(struct dcss_dtg *dtg); 141 void dcss_dtg_vblank_irq_enable(struct dcss_dtg *dtg, bool en); 142 void dcss_dtg_vblank_irq_clear(struct dcss_dtg *dtg); 143 void dcss_dtg_sync_set(struct dcss_dtg *dtg, struct videomode *vm); 144 void dcss_dtg_css_set(struct dcss_dtg *dtg); 145 void dcss_dtg_enable(struct dcss_dtg *dtg); 146 void dcss_dtg_shutoff(struct dcss_dtg *dtg); 147 bool dcss_dtg_is_enabled(struct dcss_dtg *dtg); [all...] |
H A D | dcss-crtc.c | 20 dcss_dtg_vblank_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 22 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 37 dcss_dtg_vblank_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 40 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 75 if (dcss_dtg_is_enabled(dcss->dtg)) in dcss_crtc_atomic_flush() 96 dcss_dtg_css_set(dcss->dtg); in dcss_crtc_atomic_enable() 99 dcss_dtg_sync_set(dcss->dtg, &vm); in dcss_crtc_atomic_enable() 131 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true); in dcss_crtc_atomic_disable() 168 if (!dcss_dtg_vblank_irq_valid(dcss->dtg)) in dcss_crtc_irq_handler() 174 dcss_dtg_vblank_irq_clear(dcss->dtg); in dcss_crtc_irq_handler() [all...] |
H A D | dcss-plane.c | 324 dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, in dcss_plane_atomic_update() 326 dcss_dtg_plane_alpha_set(dcss->dtg, dcss_plane->ch_num, in dcss_plane_atomic_update() 336 dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, in dcss_plane_atomic_update() 339 dcss_dtg_ch_enable(dcss->dtg, dcss_plane->ch_num, enable); in dcss_plane_atomic_update() 350 dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, 0, 0, 0, 0); in dcss_plane_atomic_disable() 351 dcss_dtg_ch_enable(dcss->dtg, dcss_plane->ch_num, false); in dcss_plane_atomic_disable()
|
H A D | dcss-dev.c | 43 dcss_dtg_shutoff(dcss->dtg); in dcss_disable_dtg_and_ss_cb() 58 dcss_dtg_enable(dcss->dtg); in dcss_enable_dtg_and_ss() 105 dcss_dtg_exit(dcss->dtg); in dcss_submodules_init() 124 dcss_dtg_exit(dcss->dtg); in dcss_submodules_stop()
|
H A D | Makefile | 1 imx-dcss-objs := dcss-drv.o dcss-dev.o dcss-blkctl.o dcss-ctxld.o dcss-dtg.o \
|
/kernel/linux/linux-6.6/drivers/gpu/drm/imx/dcss/ |
H A D | dcss-dtg.c | 98 static void dcss_dtg_write(struct dcss_dtg *dtg, u32 val, u32 ofs) in dcss_dtg_write() argument 100 if (!dtg->in_use) in dcss_dtg_write() 101 dcss_writel(val, dtg->base_reg + ofs); in dcss_dtg_write() 103 dcss_ctxld_write(dtg->ctxld, dtg->ctx_id, in dcss_dtg_write() 104 val, dtg->base_ofs + ofs); in dcss_dtg_write() 109 struct dcss_dtg *dtg = data; in dcss_dtg_irq_handler() local 112 status = dcss_readl(dtg->base_reg + DCSS_DTG_INT_STATUS); in dcss_dtg_irq_handler() 117 dcss_ctxld_kick(dtg->ctxld); in dcss_dtg_irq_handler() 119 dcss_writel(status & LINE0_IRQ, dtg in dcss_dtg_irq_handler() 124 dcss_dtg_irq_config(struct dcss_dtg *dtg, struct platform_device *pdev) dcss_dtg_irq_config() argument 153 struct dcss_dtg *dtg; dcss_dtg_init() local 193 dcss_dtg_exit(struct dcss_dtg *dtg) dcss_dtg_exit() argument 203 dcss_dtg_sync_set(struct dcss_dtg *dtg, struct videomode *vm) dcss_dtg_sync_set() argument 258 dcss_dtg_plane_pos_set(struct dcss_dtg *dtg, int ch_num, int px, int py, int pw, int ph) dcss_dtg_plane_pos_set() argument 280 dcss_dtg_global_alpha_changed(struct dcss_dtg *dtg, int ch_num, int alpha) dcss_dtg_global_alpha_changed() argument 288 dcss_dtg_plane_alpha_set(struct dcss_dtg *dtg, int ch_num, const struct drm_format_info *format, int alpha) dcss_dtg_plane_alpha_set() argument 307 dcss_dtg_css_set(struct dcss_dtg *dtg) dcss_dtg_css_set() argument 313 dcss_dtg_enable(struct dcss_dtg *dtg) dcss_dtg_enable() argument 325 dcss_dtg_shutoff(struct dcss_dtg *dtg) dcss_dtg_shutoff() argument 335 dcss_dtg_is_enabled(struct dcss_dtg *dtg) dcss_dtg_is_enabled() argument 340 dcss_dtg_ch_enable(struct dcss_dtg *dtg, int ch_num, bool en) dcss_dtg_ch_enable() argument 357 dcss_dtg_vblank_irq_enable(struct dcss_dtg *dtg, bool en) dcss_dtg_vblank_irq_enable() argument 371 dcss_dtg_ctxld_kick_irq_enable(struct dcss_dtg *dtg, bool en) dcss_dtg_ctxld_kick_irq_enable() argument 400 dcss_dtg_vblank_irq_clear(struct dcss_dtg *dtg) dcss_dtg_vblank_irq_clear() argument 405 dcss_dtg_vblank_irq_valid(struct dcss_dtg *dtg) dcss_dtg_vblank_irq_valid() argument [all...] |
H A D | dcss-dev.h | 72 struct dcss_dtg *dtg; member 139 void dcss_dtg_exit(struct dcss_dtg *dtg); 140 bool dcss_dtg_vblank_irq_valid(struct dcss_dtg *dtg); 141 void dcss_dtg_vblank_irq_enable(struct dcss_dtg *dtg, bool en); 142 void dcss_dtg_vblank_irq_clear(struct dcss_dtg *dtg); 143 void dcss_dtg_sync_set(struct dcss_dtg *dtg, struct videomode *vm); 144 void dcss_dtg_css_set(struct dcss_dtg *dtg); 145 void dcss_dtg_enable(struct dcss_dtg *dtg); 146 void dcss_dtg_shutoff(struct dcss_dtg *dtg); 147 bool dcss_dtg_is_enabled(struct dcss_dtg *dtg); [all...] |
H A D | dcss-crtc.c | 21 dcss_dtg_vblank_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 23 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true); in dcss_enable_vblank() 38 dcss_dtg_vblank_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 41 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, false); in dcss_disable_vblank() 76 if (dcss_dtg_is_enabled(dcss->dtg)) in dcss_crtc_atomic_flush() 99 dcss_dtg_css_set(dcss->dtg); in dcss_crtc_atomic_enable() 102 dcss_dtg_sync_set(dcss->dtg, &vm); in dcss_crtc_atomic_enable() 136 dcss_dtg_ctxld_kick_irq_enable(dcss->dtg, true); in dcss_crtc_atomic_disable() 173 if (!dcss_dtg_vblank_irq_valid(dcss->dtg)) in dcss_crtc_irq_handler() 179 dcss_dtg_vblank_irq_clear(dcss->dtg); in dcss_crtc_irq_handler() [all...] |
H A D | dcss-plane.c | 335 dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, in dcss_plane_atomic_update() 337 dcss_dtg_plane_alpha_set(dcss->dtg, dcss_plane->ch_num, in dcss_plane_atomic_update() 347 dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, in dcss_plane_atomic_update() 350 dcss_dtg_ch_enable(dcss->dtg, dcss_plane->ch_num, enable); in dcss_plane_atomic_update() 361 dcss_dtg_plane_pos_set(dcss->dtg, dcss_plane->ch_num, 0, 0, 0, 0); in dcss_plane_atomic_disable() 362 dcss_dtg_ch_enable(dcss->dtg, dcss_plane->ch_num, false); in dcss_plane_atomic_disable()
|
H A D | dcss-dev.c | 44 dcss_dtg_shutoff(dcss->dtg); in dcss_disable_dtg_and_ss_cb() 59 dcss_dtg_enable(dcss->dtg); in dcss_enable_dtg_and_ss() 106 dcss_dtg_exit(dcss->dtg); in dcss_submodules_init() 125 dcss_dtg_exit(dcss->dtg); in dcss_submodules_stop()
|
H A D | Makefile | 1 imx-dcss-objs := dcss-drv.o dcss-dev.o dcss-blkctl.o dcss-ctxld.o dcss-dtg.o \
|