mtk_crtc 71 drivers/gpu/drm/mediatek/mtk_drm_crtc.c static void mtk_drm_crtc_finish_page_flip(struct mtk_drm_crtc *mtk_crtc) mtk_crtc 73 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_crtc *crtc = &mtk_crtc->base; mtk_crtc 77 drivers/gpu/drm/mediatek/mtk_drm_crtc.c drm_crtc_send_vblank_event(crtc, mtk_crtc->event); mtk_crtc 79 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->event = NULL; mtk_crtc 83 drivers/gpu/drm/mediatek/mtk_drm_crtc.c static void mtk_drm_finish_page_flip(struct mtk_drm_crtc *mtk_crtc) mtk_crtc 85 drivers/gpu/drm/mediatek/mtk_drm_crtc.c drm_crtc_handle_vblank(&mtk_crtc->base); mtk_crtc 86 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (mtk_crtc->pending_needs_vblank) { mtk_crtc 87 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_drm_crtc_finish_page_flip(mtk_crtc); mtk_crtc 88 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->pending_needs_vblank = false; mtk_crtc 94 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 96 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_put(mtk_crtc->mutex); mtk_crtc 164 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 165 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0]; mtk_crtc 167 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_ddp_comp_enable_vblank(comp, &mtk_crtc->base); mtk_crtc 174 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 175 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0]; mtk_crtc 180 drivers/gpu/drm/mediatek/mtk_drm_crtc.c static int mtk_crtc_ddp_clk_enable(struct mtk_drm_crtc *mtk_crtc) mtk_crtc 186 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { mtk_crtc 187 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = clk_prepare_enable(mtk_crtc->ddp_comp[i]->clk); mtk_crtc 197 drivers/gpu/drm/mediatek/mtk_drm_crtc.c clk_disable_unprepare(mtk_crtc->ddp_comp[i]->clk); mtk_crtc 201 drivers/gpu/drm/mediatek/mtk_drm_crtc.c static void mtk_crtc_ddp_clk_disable(struct mtk_drm_crtc *mtk_crtc) mtk_crtc 206 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) mtk_crtc 207 drivers/gpu/drm/mediatek/mtk_drm_crtc.c clk_disable_unprepare(mtk_crtc->ddp_comp[i]->clk); mtk_crtc 210 drivers/gpu/drm/mediatek/mtk_drm_crtc.c static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc) mtk_crtc 212 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_crtc *crtc = &mtk_crtc->base; mtk_crtc 249 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = mtk_disp_mutex_prepare(mtk_crtc->mutex); mtk_crtc 255 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = mtk_crtc_ddp_clk_enable(mtk_crtc); mtk_crtc 262 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) { mtk_crtc 263 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_ddp_add_comp_to_path(mtk_crtc->config_regs, mtk_crtc 264 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i]->id, mtk_crtc 265 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i + 1]->id); mtk_crtc 266 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_add_comp(mtk_crtc->mutex, mtk_crtc 267 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i]->id); mtk_crtc 269 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_add_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); mtk_crtc 270 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_enable(mtk_crtc->mutex); mtk_crtc 272 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { mtk_crtc 273 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[i]; mtk_crtc 280 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->layer_nr; i++) { mtk_crtc 281 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_plane *plane = &mtk_crtc->planes[i]; mtk_crtc 285 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_ddp_comp_layer_config(mtk_crtc->ddp_comp[0], i, mtk_crtc 292 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_unprepare(mtk_crtc->mutex); mtk_crtc 298 drivers/gpu/drm/mediatek/mtk_drm_crtc.c static void mtk_crtc_ddp_hw_fini(struct mtk_drm_crtc *mtk_crtc) mtk_crtc 300 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_device *drm = mtk_crtc->base.dev; mtk_crtc 301 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_crtc *crtc = &mtk_crtc->base; mtk_crtc 305 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) mtk_crtc 306 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_ddp_comp_stop(mtk_crtc->ddp_comp[i]); mtk_crtc 307 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) mtk_crtc 308 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc 309 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i]->id); mtk_crtc 310 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_disable(mtk_crtc->mutex); mtk_crtc 311 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr - 1; i++) { mtk_crtc 312 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_ddp_remove_comp_from_path(mtk_crtc->config_regs, mtk_crtc 313 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i]->id, mtk_crtc 314 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i + 1]->id); mtk_crtc 315 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc 316 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i]->id); mtk_crtc 318 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_remove_comp(mtk_crtc->mutex, mtk_crtc->ddp_comp[i]->id); mtk_crtc 319 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc_ddp_clk_disable(mtk_crtc); mtk_crtc 320 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_unprepare(mtk_crtc->mutex); mtk_crtc 334 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 335 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_crtc_state *state = to_mtk_crtc_state(mtk_crtc->base.state); mtk_crtc 336 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0]; mtk_crtc 352 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (mtk_crtc->pending_planes) { mtk_crtc 353 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->layer_nr; i++) { mtk_crtc 354 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_plane *plane = &mtk_crtc->planes[i]; mtk_crtc 364 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->pending_planes = false; mtk_crtc 371 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 372 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0]; mtk_crtc 383 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = mtk_crtc_ddp_hw_init(mtk_crtc); mtk_crtc 390 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->enabled = true; mtk_crtc 396 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 397 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_ddp_comp *comp = mtk_crtc->ddp_comp[0]; mtk_crtc 401 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (!mtk_crtc->enabled) mtk_crtc 405 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->layer_nr; i++) { mtk_crtc 406 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_plane *plane = &mtk_crtc->planes[i]; mtk_crtc 413 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->pending_planes = true; mtk_crtc 419 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc_ddp_hw_fini(mtk_crtc); mtk_crtc 422 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->enabled = false; mtk_crtc 429 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 431 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (mtk_crtc->event && state->base.event) mtk_crtc 437 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->event = state->base.event; mtk_crtc 445 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 450 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (mtk_crtc->event) mtk_crtc 451 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->pending_needs_vblank = true; mtk_crtc 452 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->layer_nr; i++) { mtk_crtc 453 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct drm_plane *plane = &mtk_crtc->planes[i]; mtk_crtc 464 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->pending_planes = true; mtk_crtc 466 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) mtk_crtc 467 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_ddp_gamma_set(mtk_crtc->ddp_comp[i], crtc->state); mtk_crtc 470 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_acquire(mtk_crtc->mutex); mtk_crtc 472 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_disp_mutex_release(mtk_crtc->mutex); mtk_crtc 498 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc, mtk_crtc 505 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->layer_nr; i++) { mtk_crtc 506 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (mtk_crtc->planes[i].type == DRM_PLANE_TYPE_PRIMARY) mtk_crtc 507 drivers/gpu/drm/mediatek/mtk_drm_crtc.c primary = &mtk_crtc->planes[i]; mtk_crtc 508 drivers/gpu/drm/mediatek/mtk_drm_crtc.c else if (mtk_crtc->planes[i].type == DRM_PLANE_TYPE_CURSOR) mtk_crtc 509 drivers/gpu/drm/mediatek/mtk_drm_crtc.c cursor = &mtk_crtc->planes[i]; mtk_crtc 512 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = drm_crtc_init_with_planes(drm, &mtk_crtc->base, primary, cursor, mtk_crtc 517 drivers/gpu/drm/mediatek/mtk_drm_crtc.c drm_crtc_helper_add(&mtk_crtc->base, &mtk_crtc_helper_funcs); mtk_crtc 522 drivers/gpu/drm/mediatek/mtk_drm_crtc.c drm_crtc_cleanup(&mtk_crtc->base); mtk_crtc 528 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc = to_mtk_crtc(crtc); mtk_crtc 534 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_drm_finish_page_flip(mtk_crtc); mtk_crtc 542 drivers/gpu/drm/mediatek/mtk_drm_crtc.c struct mtk_drm_crtc *mtk_crtc; mtk_crtc 566 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc = devm_kzalloc(dev, sizeof(*mtk_crtc), GFP_KERNEL); mtk_crtc 567 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (!mtk_crtc) mtk_crtc 570 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->config_regs = priv->config_regs; mtk_crtc 571 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp_nr = path_len; mtk_crtc 572 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp = devm_kmalloc_array(dev, mtk_crtc->ddp_comp_nr, mtk_crtc 573 drivers/gpu/drm/mediatek/mtk_drm_crtc.c sizeof(*mtk_crtc->ddp_comp), mtk_crtc 575 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (!mtk_crtc->ddp_comp) mtk_crtc 578 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->mutex = mtk_disp_mutex_get(priv->mutex_dev, pipe); mtk_crtc 579 drivers/gpu/drm/mediatek/mtk_drm_crtc.c if (IS_ERR(mtk_crtc->mutex)) { mtk_crtc 580 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = PTR_ERR(mtk_crtc->mutex); mtk_crtc 585 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (i = 0; i < mtk_crtc->ddp_comp_nr; i++) { mtk_crtc 598 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->ddp_comp[i] = comp; mtk_crtc 604 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->layer_nr = mtk_ddp_comp_layer_nr(mtk_crtc->ddp_comp[0]); mtk_crtc 605 drivers/gpu/drm/mediatek/mtk_drm_crtc.c mtk_crtc->planes = devm_kcalloc(dev, mtk_crtc->layer_nr, mtk_crtc 609 drivers/gpu/drm/mediatek/mtk_drm_crtc.c for (zpos = 0; zpos < mtk_crtc->layer_nr; zpos++) { mtk_crtc 613 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = mtk_plane_init(drm_dev, &mtk_crtc->planes[zpos], mtk_crtc 619 drivers/gpu/drm/mediatek/mtk_drm_crtc.c ret = mtk_drm_crtc_init(drm_dev, mtk_crtc, pipe); mtk_crtc 624 drivers/gpu/drm/mediatek/mtk_drm_crtc.c drm_mode_crtc_set_gamma_size(&mtk_crtc->base, gamma_lut_size); mtk_crtc 625 drivers/gpu/drm/mediatek/mtk_drm_crtc.c drm_crtc_enable_color_mgmt(&mtk_crtc->base, 0, false, gamma_lut_size);