/Linux-v5.10/drivers/gpu/drm/ |
D | drm_crtc.c | 6 * DRM core CRTC related functions 55 * A CRTC represents the overall display pipeline. It receives pixel data from 57 * to the CRTC, specifying display timings. On the output side the data is fed 61 * To create a CRTC, a KMS drivers allocates and zeroes an instances of 65 * The CRTC is also the entry point for legacy modeset operations, see 74 * drm_crtc_from_index - find the registered CRTC at an index 76 * @idx: index of registered CRTC to find for 78 * Given a CRTC index, return the registered CRTC from DRM device's 86 struct drm_crtc *crtc; in drm_crtc_from_index() local 88 drm_for_each_crtc(crtc, dev) in drm_crtc_from_index() [all …]
|
D | drm_crtc_helper.c | 5 * DRM core CRTC related functions 56 * The CRTC modeset helper library provides a default set_config implementation 69 * to the CRTC state. For easier transition this library provides functions to 70 * implement the old semantics required by the CRTC helpers using the new plane 126 * drm_helper_crtc_in_use - check if a given CRTC is in a mode_config 127 * @crtc: CRTC to check 129 * Checks whether @crtc is with the current mode setting output configuration 134 * True if @crtc is used, false otherwise. 136 bool drm_helper_crtc_in_use(struct drm_crtc *crtc) in drm_helper_crtc_in_use() argument 139 struct drm_device *dev = crtc->dev; in drm_helper_crtc_in_use() [all …]
|
D | drm_atomic_helper.c | 51 * top of the CRTC modeset helper callbacks and the plane helper callbacks. It 82 if (old_plane_state->crtc) { in drm_atomic_helper_plane_changed() 84 old_plane_state->crtc); in drm_atomic_helper_plane_changed() 92 if (plane_state->crtc) { in drm_atomic_helper_plane_changed() 93 crtc_state = drm_atomic_get_new_crtc_state(state, plane_state->crtc); in drm_atomic_helper_plane_changed() 121 if (!new_conn_state->crtc) in handle_conflicting_encoders() 154 * If the flag is set conflicting connectors are removed from the CRTC in handle_conflicting_encoders() 155 * and the CRTC is disabled if no encoder is left. This preserves in handle_conflicting_encoders() 170 DRM_DEBUG_ATOMIC("[ENCODER:%d:%s] in use on [CRTC:%d:%s] by [CONNECTOR:%d:%s]\n", in handle_conflicting_encoders() 172 connector->state->crtc->base.id, in handle_conflicting_encoders() [all …]
|
/Linux-v5.10/drivers/gpu/drm/tidss/ |
D | tidss_crtc.c | 26 struct drm_device *ddev = tcrtc->crtc.dev; in tidss_crtc_finish_page_flip() 54 drm_crtc_send_vblank_event(&tcrtc->crtc, event); in tidss_crtc_finish_page_flip() 58 drm_crtc_vblank_put(&tcrtc->crtc); in tidss_crtc_finish_page_flip() 61 void tidss_crtc_vblank_irq(struct drm_crtc *crtc) in tidss_crtc_vblank_irq() argument 63 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_vblank_irq() 65 drm_crtc_handle_vblank(crtc); in tidss_crtc_vblank_irq() 70 void tidss_crtc_framedone_irq(struct drm_crtc *crtc) in tidss_crtc_framedone_irq() argument 72 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_framedone_irq() 77 void tidss_crtc_error_irq(struct drm_crtc *crtc, u64 irqstatus) in tidss_crtc_error_irq() argument 79 struct tidss_crtc *tcrtc = to_tidss_crtc(crtc); in tidss_crtc_error_irq() [all …]
|
/Linux-v5.10/drivers/gpu/drm/sun4i/ |
D | sun4i_crtc.c | 36 static struct drm_encoder *sun4i_crtc_get_encoder(struct drm_crtc *crtc) in sun4i_crtc_get_encoder() argument 40 drm_for_each_encoder(encoder, crtc->dev) in sun4i_crtc_get_encoder() 41 if (encoder->crtc == crtc) in sun4i_crtc_get_encoder() 47 static int sun4i_crtc_atomic_check(struct drm_crtc *crtc, in sun4i_crtc_atomic_check() argument 50 struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); in sun4i_crtc_atomic_check() 60 static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc, in sun4i_crtc_atomic_begin() argument 63 struct sun4i_crtc *scrtc = drm_crtc_to_sun4i_crtc(crtc); in sun4i_crtc_atomic_begin() 64 struct drm_device *dev = crtc->dev; in sun4i_crtc_atomic_begin() 68 if (crtc->state->event) { in sun4i_crtc_atomic_begin() 69 WARN_ON(drm_crtc_vblank_get(crtc) != 0); in sun4i_crtc_atomic_begin() [all …]
|
/Linux-v5.10/drivers/gpu/drm/msm/disp/dpu1/ |
D | dpu_crtc.c | 48 static struct dpu_kms *_dpu_crtc_get_kms(struct drm_crtc *crtc) in _dpu_crtc_get_kms() argument 50 struct msm_drm_private *priv = crtc->dev->dev_private; in _dpu_crtc_get_kms() 55 static void dpu_crtc_destroy(struct drm_crtc *crtc) in dpu_crtc_destroy() argument 57 struct dpu_crtc *dpu_crtc = to_dpu_crtc(crtc); in dpu_crtc_destroy() 61 if (!crtc) in dpu_crtc_destroy() 64 drm_crtc_cleanup(crtc); in dpu_crtc_destroy() 94 static void _dpu_crtc_program_lm_output_roi(struct drm_crtc *crtc) in _dpu_crtc_program_lm_output_roi() argument 99 crtc_state = to_dpu_crtc_state(crtc->state); in _dpu_crtc_program_lm_output_roi() 118 static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc, in _dpu_crtc_blend_setup_mixer() argument 124 struct dpu_crtc_state *cstate = to_dpu_crtc_state(crtc->state); in _dpu_crtc_blend_setup_mixer() [all …]
|
D | dpu_crtc.h | 23 * enum dpu_crtc_client_type: crtc client type 73 * struct dpu_crtc_mixer: stores the map for each virtual pipeline in the CRTC 89 * struct dpu_crtc_frame_event: stores crtc frame event for crtc processing 91 * @crtc: Pointer to crtc handling this event 98 struct drm_crtc *crtc; member 110 * struct dpu_crtc - virtualized CRTC data structure 111 * @base : Base drm crtc structure 112 * @name : ASCII description of this crtc 122 * @play_count : frame count between crtc enable and disable 124 * @enabled : whether the DPU CRTC is currently enabled. updated in the [all …]
|
D | dpu_core_perf.c | 34 * @_dpu_core_perf_calc_bw() - to calculate BW per crtc 36 * @crtc - pointer to a crtc 37 * Return: returns aggregated BW for all planes in crtc. 40 struct drm_crtc *crtc) in _dpu_core_perf_calc_bw() argument 47 drm_atomic_crtc_for_each_plane(plane, crtc) { in _dpu_core_perf_calc_bw() 65 * _dpu_core_perf_calc_clk() - to calculate clock per crtc 67 * @crtc - pointer to a crtc 68 * @state - pointer to a crtc state 69 * Return: returns max clk for all planes in crtc. 72 struct drm_crtc *crtc, struct drm_crtc_state *state) in _dpu_core_perf_calc_clk() argument [all …]
|
/Linux-v5.10/drivers/gpu/drm/exynos/ |
D | exynos_drm_crtc.c | 21 static void exynos_drm_crtc_atomic_enable(struct drm_crtc *crtc, in exynos_drm_crtc_atomic_enable() argument 24 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_atomic_enable() 29 drm_crtc_vblank_on(crtc); in exynos_drm_crtc_atomic_enable() 32 static void exynos_drm_crtc_atomic_disable(struct drm_crtc *crtc, in exynos_drm_crtc_atomic_disable() argument 35 struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc); in exynos_drm_crtc_atomic_disable() 37 drm_crtc_vblank_off(crtc); in exynos_drm_crtc_atomic_disable() 42 if (crtc->state->event && !crtc->state->active) { in exynos_drm_crtc_atomic_disable() 43 spin_lock_irq(&crtc->dev->event_lock); in exynos_drm_crtc_atomic_disable() 44 drm_crtc_send_vblank_event(crtc, crtc->state->event); in exynos_drm_crtc_atomic_disable() 45 spin_unlock_irq(&crtc->dev->event_lock); in exynos_drm_crtc_atomic_disable() [all …]
|
/Linux-v5.10/drivers/gpu/drm/omapdrm/ |
D | omap_crtc.c | 56 struct videomode *omap_crtc_timings(struct drm_crtc *crtc) in omap_crtc_timings() argument 58 struct omap_crtc *omap_crtc = to_omap_crtc(crtc); in omap_crtc_timings() 62 enum omap_channel omap_crtc_channel(struct drm_crtc *crtc) in omap_crtc_channel() argument 64 struct omap_crtc *omap_crtc = to_omap_crtc(crtc); in omap_crtc_channel() 68 static bool omap_crtc_is_pending(struct drm_crtc *crtc) in omap_crtc_is_pending() argument 70 struct omap_crtc *omap_crtc = to_omap_crtc(crtc); in omap_crtc_is_pending() 74 spin_lock_irqsave(&crtc->dev->event_lock, flags); in omap_crtc_is_pending() 76 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); in omap_crtc_is_pending() 81 int omap_crtc_wait_pending(struct drm_crtc *crtc) in omap_crtc_wait_pending() argument 83 struct omap_crtc *omap_crtc = to_omap_crtc(crtc); in omap_crtc_wait_pending() [all …]
|
/Linux-v5.10/drivers/gpu/drm/imx/dcss/ |
D | dcss-crtc.c | 14 static int dcss_enable_vblank(struct drm_crtc *crtc) in dcss_enable_vblank() argument 16 struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc, in dcss_enable_vblank() 18 struct dcss_dev *dcss = crtc->dev->dev_private; in dcss_enable_vblank() 29 static void dcss_disable_vblank(struct drm_crtc *crtc) in dcss_disable_vblank() argument 31 struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc, in dcss_disable_vblank() 54 static void dcss_crtc_atomic_begin(struct drm_crtc *crtc, in dcss_crtc_atomic_begin() argument 57 drm_crtc_vblank_on(crtc); in dcss_crtc_atomic_begin() 60 static void dcss_crtc_atomic_flush(struct drm_crtc *crtc, in dcss_crtc_atomic_flush() argument 63 struct dcss_crtc *dcss_crtc = container_of(crtc, struct dcss_crtc, in dcss_crtc_atomic_flush() 67 spin_lock_irq(&crtc->dev->event_lock); in dcss_crtc_atomic_flush() [all …]
|
/Linux-v5.10/drivers/rtc/ |
D | rtc-cadence.c | 87 static void cdns_rtc_set_enabled(struct cdns_rtc *crtc, bool enabled) in cdns_rtc_set_enabled() argument 91 writel(reg, crtc->regs + CDNS_RTC_CTLR); in cdns_rtc_set_enabled() 94 static bool cdns_rtc_get_enabled(struct cdns_rtc *crtc) in cdns_rtc_get_enabled() argument 96 return !(readl(crtc->regs + CDNS_RTC_CTLR) & CDNS_RTC_CTLR_TIME_CAL); in cdns_rtc_get_enabled() 102 struct cdns_rtc *crtc = dev_get_drvdata(dev); in cdns_rtc_irq_handler() local 105 if (!(readl(crtc->regs + CDNS_RTC_EFLR) & CDNS_RTC_AEI_ALRM)) in cdns_rtc_irq_handler() 108 rtc_update_irq(crtc->rtc_dev, 1, RTC_IRQF | RTC_AF); in cdns_rtc_irq_handler() 128 struct cdns_rtc *crtc = dev_get_drvdata(dev); in cdns_rtc_read_time() local 132 if (!cdns_rtc_get_enabled(crtc)) in cdns_rtc_read_time() 135 cdns_rtc_set_enabled(crtc, false); in cdns_rtc_read_time() [all …]
|
/Linux-v5.10/drivers/gpu/drm/sti/ |
D | sti_crtc.c | 25 static void sti_crtc_atomic_enable(struct drm_crtc *crtc, in sti_crtc_atomic_enable() argument 28 struct sti_mixer *mixer = to_sti_mixer(crtc); in sti_crtc_atomic_enable() 34 drm_crtc_vblank_on(crtc); in sti_crtc_atomic_enable() 37 static void sti_crtc_atomic_disable(struct drm_crtc *crtc, in sti_crtc_atomic_disable() argument 40 struct sti_mixer *mixer = to_sti_mixer(crtc); in sti_crtc_atomic_disable() 46 drm_crtc_wait_one_vblank(crtc); in sti_crtc_atomic_disable() 50 sti_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode) in sti_crtc_mode_set() argument 52 struct sti_mixer *mixer = to_sti_mixer(crtc); in sti_crtc_mode_set() 58 DRM_DEBUG_KMS("CRTC:%d (%s) mode: (%s)\n", in sti_crtc_mode_set() 59 crtc->base.id, sti_mixer_to_str(mixer), mode->name); in sti_crtc_mode_set() [all …]
|
/Linux-v5.10/drivers/gpu/drm/vkms/ |
D | vkms_crtc.c | 14 struct drm_crtc *crtc = &output->crtc; in vkms_vblank_simulate() local 24 ret = drm_crtc_handle_vblank(crtc); in vkms_vblank_simulate() 32 u64 frame = drm_crtc_accurate_vblank_count(crtc); in vkms_vblank_simulate() 55 static int vkms_enable_vblank(struct drm_crtc *crtc) in vkms_enable_vblank() argument 57 struct drm_device *dev = crtc->dev; in vkms_enable_vblank() 58 unsigned int pipe = drm_crtc_index(crtc); in vkms_enable_vblank() 60 struct vkms_output *out = drm_crtc_to_vkms_output(crtc); in vkms_enable_vblank() 62 drm_calc_timestamping_constants(crtc, &crtc->mode); in vkms_enable_vblank() 72 static void vkms_disable_vblank(struct drm_crtc *crtc) in vkms_disable_vblank() argument 74 struct vkms_output *out = drm_crtc_to_vkms_output(crtc); in vkms_disable_vblank() [all …]
|
/Linux-v5.10/drivers/gpu/drm/nouveau/dispnv04/ |
D | crtc.c | 53 nv04_crtc_mode_set_base(struct drm_crtc *crtc, int x, int y, 57 crtc_wr_cio_state(struct drm_crtc *crtc, struct nv04_crtc_reg *crtcstate, int index) in crtc_wr_cio_state() argument 59 NVWriteVgaCrtc(crtc->dev, nouveau_crtc(crtc)->index, index, in crtc_wr_cio_state() 60 crtcstate->CRTC[index]); in crtc_wr_cio_state() 63 static void nv_crtc_set_digital_vibrance(struct drm_crtc *crtc, int level) in nv_crtc_set_digital_vibrance() argument 65 struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); in nv_crtc_set_digital_vibrance() 66 struct drm_device *dev = crtc->dev; in nv_crtc_set_digital_vibrance() 69 regp->CRTC[NV_CIO_CRE_CSB] = nv_crtc->saturation = level; in nv_crtc_set_digital_vibrance() 70 if (nv_crtc->saturation && nv_gf4_disp_arch(crtc->dev)) { in nv_crtc_set_digital_vibrance() 71 regp->CRTC[NV_CIO_CRE_CSB] = 0x80; in nv_crtc_set_digital_vibrance() [all …]
|
/Linux-v5.10/drivers/gpu/drm/msm/disp/mdp5/ |
D | mdp5_crtc.c | 65 static void mdp5_crtc_restore_cursor(struct drm_crtc *crtc); 67 static struct mdp5_kms *get_kms(struct drm_crtc *crtc) in get_kms() argument 69 struct msm_drm_private *priv = crtc->dev->dev_private; in get_kms() 73 static void request_pending(struct drm_crtc *crtc, uint32_t pending) in request_pending() argument 75 struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc); in request_pending() 78 mdp_irq_register(&get_kms(crtc)->base, &mdp5_crtc->vblank); in request_pending() 81 static void request_pp_done_pending(struct drm_crtc *crtc) in request_pp_done_pending() argument 83 struct mdp5_crtc *mdp5_crtc = to_mdp5_crtc(crtc); in request_pp_done_pending() 87 static u32 crtc_flush(struct drm_crtc *crtc, u32 flush_mask) in crtc_flush() argument 89 struct mdp5_crtc_state *mdp5_cstate = to_mdp5_crtc_state(crtc->state); in crtc_flush() [all …]
|
/Linux-v5.10/drivers/gpu/drm/msm/disp/mdp4/ |
D | mdp4_crtc.c | 61 static struct mdp4_kms *get_kms(struct drm_crtc *crtc) in get_kms() argument 63 struct msm_drm_private *priv = crtc->dev->dev_private; in get_kms() 67 static void request_pending(struct drm_crtc *crtc, uint32_t pending) in request_pending() argument 69 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); in request_pending() 72 mdp_irq_register(&get_kms(crtc)->base, &mdp4_crtc->vblank); in request_pending() 75 static void crtc_flush(struct drm_crtc *crtc) in crtc_flush() argument 77 struct mdp4_crtc *mdp4_crtc = to_mdp4_crtc(crtc); in crtc_flush() 78 struct mdp4_kms *mdp4_kms = get_kms(crtc); in crtc_flush() 82 drm_atomic_crtc_for_each_plane(plane, crtc) { in crtc_flush() 97 static void complete_flip(struct drm_crtc *crtc, struct drm_file *file) in complete_flip() argument [all …]
|
/Linux-v5.10/drivers/gpu/drm/arm/display/komeda/ |
D | komeda_crtc.c | 30 if (conn_st->crtc != crtc_st->crtc) in komeda_crtc_get_color_config() 65 * @crtc: DRM crtc 66 * @state: the crtc state object 76 komeda_crtc_atomic_check(struct drm_crtc *crtc, in komeda_crtc_atomic_check() argument 79 struct komeda_crtc *kcrtc = to_kcrtc(crtc); in komeda_crtc_atomic_check() 104 /* For active a crtc, mainly need two parts of preparation 200 struct drm_crtc *crtc = &kcrtc->base; in komeda_crtc_handle_event() local 204 drm_crtc_handle_vblank(crtc); in komeda_crtc_handle_event() 212 DRM_WARN("CRTC[%d]: EOW happen but no wb_connector.\n", in komeda_crtc_handle_event() 223 spin_lock_irqsave(&crtc->dev->event_lock, flags); in komeda_crtc_handle_event() [all …]
|
/Linux-v5.10/drivers/gpu/drm/tilcdc/ |
D | tilcdc_crtc.c | 62 static void set_scanout(struct drm_crtc *crtc, struct drm_framebuffer *fb) in set_scanout() argument 64 struct drm_device *dev = crtc->dev; in set_scanout() 73 crtc->y * fb->pitches[0] + in set_scanout() 74 crtc->x * fb->format->cpp[0]; in set_scanout() 76 end = start + (crtc->mode.vdisplay * fb->pitches[0]); in set_scanout() 96 static void tilcdc_crtc_load_palette(struct drm_crtc *crtc) in tilcdc_crtc_load_palette() argument 98 struct tilcdc_crtc *tilcdc_crtc = to_tilcdc_crtc(crtc); in tilcdc_crtc_load_palette() 99 struct drm_device *dev = crtc->dev; in tilcdc_crtc_load_palette() 179 static void reset(struct drm_crtc *crtc) in reset() argument 181 struct drm_device *dev = crtc->dev; in reset() [all …]
|
/Linux-v5.10/drivers/gpu/drm/atmel-hlcdc/ |
D | atmel_hlcdc_crtc.c | 28 * Atmel HLCDC CRTC state structure 30 * @base: base CRTC state 45 * Atmel HLCDC CRTC structure 47 * @base: base DRM CRTC structure 50 * @id: CRTC id (returned by drm_crtc_index) 60 drm_crtc_to_atmel_hlcdc_crtc(struct drm_crtc *crtc) in drm_crtc_to_atmel_hlcdc_crtc() argument 62 return container_of(crtc, struct atmel_hlcdc_crtc, base); in drm_crtc_to_atmel_hlcdc_crtc() 67 struct atmel_hlcdc_crtc *crtc = drm_crtc_to_atmel_hlcdc_crtc(c); in atmel_hlcdc_crtc_mode_set_nofb() local 68 struct regmap *regmap = crtc->dc->hlcdc->regmap; in atmel_hlcdc_crtc_mode_set_nofb() 78 ret = clk_prepare_enable(crtc->dc->hlcdc->sys_clk); in atmel_hlcdc_crtc_mode_set_nofb() [all …]
|
/Linux-v5.10/drivers/gpu/drm/radeon/ |
D | radeon_cursor.c | 32 static void radeon_lock_cursor(struct drm_crtc *crtc, bool lock) in radeon_lock_cursor() argument 34 struct radeon_device *rdev = crtc->dev->dev_private; in radeon_lock_cursor() 35 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in radeon_lock_cursor() 62 static void radeon_hide_cursor(struct drm_crtc *crtc) in radeon_hide_cursor() argument 64 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in radeon_hide_cursor() 65 struct radeon_device *rdev = crtc->dev->dev_private; in radeon_hide_cursor() 90 static void radeon_show_cursor(struct drm_crtc *crtc) in radeon_show_cursor() argument 92 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in radeon_show_cursor() 93 struct radeon_device *rdev = crtc->dev->dev_private; in radeon_show_cursor() 144 static int radeon_cursor_move_locked(struct drm_crtc *crtc, int x, int y) in radeon_cursor_move_locked() argument [all …]
|
/Linux-v5.10/drivers/gpu/drm/imx/ |
D | ipuv3-crtc.c | 44 static inline struct ipu_crtc *to_ipu_crtc(struct drm_crtc *crtc) in to_ipu_crtc() argument 46 return container_of(crtc, struct ipu_crtc, base); in to_ipu_crtc() 49 static void ipu_crtc_atomic_enable(struct drm_crtc *crtc, in ipu_crtc_atomic_enable() argument 52 struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc); in ipu_crtc_atomic_enable() 81 static void ipu_crtc_atomic_disable(struct drm_crtc *crtc, in ipu_crtc_atomic_disable() argument 84 struct ipu_crtc *ipu_crtc = to_ipu_crtc(crtc); in ipu_crtc_atomic_disable() 98 drm_crtc_vblank_off(crtc); in ipu_crtc_atomic_disable() 100 spin_lock_irq(&crtc->dev->event_lock); in ipu_crtc_atomic_disable() 101 if (crtc->state->event && !crtc->state->active) { in ipu_crtc_atomic_disable() 102 drm_crtc_send_vblank_event(crtc, crtc->state->event); in ipu_crtc_atomic_disable() [all …]
|
/Linux-v5.10/drivers/gpu/drm/amd/display/amdgpu_dm/ |
D | amdgpu_dm_crc.c | 35 "crtc", 36 "crtc dither", 46 if (!strcmp(source, "auto") || !strcmp(source, "crtc")) in dm_parse_crc_source() 50 if (!strcmp(source, "crtc dither")) in dm_parse_crc_source() 77 const char *const *amdgpu_dm_crtc_get_crc_sources(struct drm_crtc *crtc, in amdgpu_dm_crtc_get_crc_sources() argument 85 amdgpu_dm_crtc_verify_crc_source(struct drm_crtc *crtc, const char *src_name, in amdgpu_dm_crtc_verify_crc_source() argument 91 DRM_DEBUG_DRIVER("Unknown CRC source %s for CRTC%d\n", in amdgpu_dm_crtc_verify_crc_source() 92 src_name, crtc->index); in amdgpu_dm_crtc_verify_crc_source() 100 int amdgpu_dm_crtc_configure_crc_source(struct drm_crtc *crtc, in amdgpu_dm_crtc_configure_crc_source() argument 104 struct amdgpu_device *adev = drm_to_adev(crtc->dev); in amdgpu_dm_crtc_configure_crc_source() [all …]
|
/Linux-v5.10/drivers/gpu/drm/mediatek/ |
D | mtk_drm_crtc.c | 27 * struct mtk_drm_crtc - MediaTek specific crtc structure. 28 * @base: crtc object. 35 * @ddp_comp: array of pointers the mtk_ddp_comp structures used by this crtc 84 struct drm_crtc *crtc = &mtk_crtc->base; in mtk_drm_crtc_finish_page_flip() local 87 spin_lock_irqsave(&crtc->dev->event_lock, flags); in mtk_drm_crtc_finish_page_flip() 88 drm_crtc_send_vblank_event(crtc, mtk_crtc->event); in mtk_drm_crtc_finish_page_flip() 89 drm_crtc_vblank_put(crtc); in mtk_drm_crtc_finish_page_flip() 91 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); in mtk_drm_crtc_finish_page_flip() 103 static void mtk_drm_crtc_destroy(struct drm_crtc *crtc) in mtk_drm_crtc_destroy() argument 105 struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); in mtk_drm_crtc_destroy() [all …]
|
/Linux-v5.10/drivers/gpu/drm/vc4/ |
D | vc4_crtc.c | 7 * DOC: VC4 CRTC module 10 * DRM's concept of a CRTC. The PV generates video timings from the 14 * However, the DRM CRTC also collects the configuration of all the 15 * DRM planes attached to it. As a result, the CRTC is also 17 * the CRTC will use. 82 static bool vc4_crtc_get_scanout_position(struct drm_crtc *crtc, in vc4_crtc_get_scanout_position() argument 88 struct drm_device *dev = crtc->dev; in vc4_crtc_get_scanout_position() 90 struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc); in vc4_crtc_get_scanout_position() 91 struct vc4_crtc_state *vc4_crtc_state = to_vc4_crtc_state(crtc->state); in vc4_crtc_get_scanout_position() 204 void vc4_crtc_destroy(struct drm_crtc *crtc) in vc4_crtc_destroy() argument [all …]
|