Lines Matching refs:lcrtc
21 static void lsdc_crtc0_soft_reset(struct lsdc_crtc *lcrtc)
23 struct lsdc_device *ldev = lcrtc->ldev;
47 static void lsdc_crtc1_soft_reset(struct lsdc_crtc *lcrtc)
49 struct lsdc_device *ldev = lcrtc->ldev;
73 static void lsdc_crtc0_enable(struct lsdc_crtc *lcrtc)
75 struct lsdc_device *ldev = lcrtc->ldev;
86 drm_warn(&ldev->base, "%s stall\n", lcrtc->base.name);
87 return lsdc_crtc0_soft_reset(lcrtc);
93 static void lsdc_crtc0_disable(struct lsdc_crtc *lcrtc)
95 struct lsdc_device *ldev = lcrtc->ldev;
102 static void lsdc_crtc1_enable(struct lsdc_crtc *lcrtc)
104 struct lsdc_device *ldev = lcrtc->ldev;
114 drm_warn(&ldev->base, "%s stall\n", lcrtc->base.name);
115 return lsdc_crtc1_soft_reset(lcrtc);
121 static void lsdc_crtc1_disable(struct lsdc_crtc *lcrtc)
123 struct lsdc_device *ldev = lcrtc->ldev;
132 static void lsdc_crtc0_scan_pos(struct lsdc_crtc *lcrtc, int *hpos, int *vpos)
134 struct lsdc_device *ldev = lcrtc->ldev;
143 static void lsdc_crtc1_scan_pos(struct lsdc_crtc *lcrtc, int *hpos, int *vpos)
145 struct lsdc_device *ldev = lcrtc->ldev;
154 static void lsdc_crtc0_enable_vblank(struct lsdc_crtc *lcrtc)
156 struct lsdc_device *ldev = lcrtc->ldev;
161 static void lsdc_crtc0_disable_vblank(struct lsdc_crtc *lcrtc)
163 struct lsdc_device *ldev = lcrtc->ldev;
168 static void lsdc_crtc1_enable_vblank(struct lsdc_crtc *lcrtc)
170 struct lsdc_device *ldev = lcrtc->ldev;
175 static void lsdc_crtc1_disable_vblank(struct lsdc_crtc *lcrtc)
177 struct lsdc_device *ldev = lcrtc->ldev;
182 static void lsdc_crtc0_flip(struct lsdc_crtc *lcrtc)
184 struct lsdc_device *ldev = lcrtc->ldev;
189 static void lsdc_crtc1_flip(struct lsdc_crtc *lcrtc)
191 struct lsdc_device *ldev = lcrtc->ldev;
203 static void lsdc_crtc0_clone(struct lsdc_crtc *lcrtc)
205 struct lsdc_device *ldev = lcrtc->ldev;
210 static void lsdc_crtc1_clone(struct lsdc_crtc *lcrtc)
212 struct lsdc_device *ldev = lcrtc->ldev;
217 static void lsdc_crtc0_set_mode(struct lsdc_crtc *lcrtc,
220 struct lsdc_device *ldev = lcrtc->ldev;
235 static void lsdc_crtc1_set_mode(struct lsdc_crtc *lcrtc,
238 struct lsdc_device *ldev = lcrtc->ldev;
264 static void lsdc_crtc0_reset(struct lsdc_crtc *lcrtc)
266 struct lsdc_device *ldev = lcrtc->ldev;
271 static void lsdc_crtc1_reset(struct lsdc_crtc *lcrtc)
273 struct lsdc_device *ldev = lcrtc->ldev;
313 static u32 lsdc_crtc0_get_vblank_count(struct lsdc_crtc *lcrtc)
315 struct lsdc_device *ldev = lcrtc->ldev;
320 static u32 lsdc_crtc1_get_vblank_count(struct lsdc_crtc *lcrtc)
322 struct lsdc_device *ldev = lcrtc->ldev;
334 static void lsdc_crtc0_set_dma_step(struct lsdc_crtc *lcrtc,
337 struct lsdc_device *ldev = lcrtc->ldev;
346 static void lsdc_crtc1_set_dma_step(struct lsdc_crtc *lcrtc,
349 struct lsdc_device *ldev = lcrtc->ldev;
391 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
392 const struct lsdc_crtc_hw_ops *ops = lcrtc->hw_ops;
406 ops->reset(lcrtc);
441 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
444 return lcrtc->hw_ops->get_vblank_counter(lcrtc);
449 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
451 if (!lcrtc->has_vblank)
454 lcrtc->hw_ops->enable_vblank(lcrtc);
461 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
463 if (!lcrtc->has_vblank)
466 lcrtc->hw_ops->disable_vblank(lcrtc);
532 struct lsdc_crtc *lcrtc = (struct lsdc_crtc *)node->info_ent->data;
533 struct lsdc_device *ldev = lcrtc->ldev;
536 for (i = 0; i < lcrtc->nreg; i++) {
537 const struct lsdc_reg32 *preg = &lcrtc->preg[i];
550 struct lsdc_crtc *lcrtc = (struct lsdc_crtc *)node->info_ent->data;
553 lcrtc->hw_ops->get_scan_pos(lcrtc, &x, &y);
562 struct lsdc_crtc *lcrtc = (struct lsdc_crtc *)node->info_ent->data;
564 if (lcrtc->hw_ops->get_vblank_counter)
565 seq_printf(m, "%s vblank counter: %08u\n\n", lcrtc->base.name,
566 lcrtc->hw_ops->get_vblank_counter(lcrtc));
574 struct lsdc_crtc *lcrtc = (struct lsdc_crtc *)node->info_ent->data;
575 struct lsdc_pixpll *pixpll = &lcrtc->pixpll;
577 struct drm_crtc *crtc = &lcrtc->base;
637 struct lsdc_crtc *lcrtc = m->private;
638 const struct lsdc_crtc_hw_ops *ops = lcrtc->hw_ops;
650 ops->soft_reset(lcrtc);
652 ops->enable(lcrtc);
654 ops->disable(lcrtc);
656 ops->flip(lcrtc);
658 ops->clone(lcrtc);
675 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
680 lcrtc->preg = lsdc_crtc_regs_array[index];
681 lcrtc->nreg = ARRAY_SIZE(lsdc_crtc_regs_array[index]);
682 lcrtc->p_info_list = lsdc_crtc_debugfs_list[index];
683 lcrtc->n_info_list = ARRAY_SIZE(lsdc_crtc_debugfs_list[index]);
685 for (i = 0; i < lcrtc->n_info_list; ++i)
686 lcrtc->p_info_list[i].data = lcrtc;
688 drm_debugfs_create_files(lcrtc->p_info_list, lcrtc->n_info_list,
692 debugfs_create_file("ops", 0644, crtc->debugfs_entry, lcrtc,
776 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
777 struct lsdc_pixpll *pixpll = &lcrtc->pixpll;
806 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
807 const struct lsdc_crtc_hw_ops *crtc_hw_ops = lcrtc->hw_ops;
808 struct lsdc_pixpll *pixpll = &lcrtc->pixpll;
833 crtc_hw_ops->set_dma_step(lcrtc, dma_step);
836 crtc_hw_ops->set_mode(lcrtc, mode);
858 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
860 if (lcrtc->has_vblank)
863 lcrtc->hw_ops->enable(lcrtc);
869 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
871 if (lcrtc->has_vblank)
874 lcrtc->hw_ops->disable(lcrtc);
905 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
906 const struct lsdc_crtc_hw_ops *ops = lcrtc->hw_ops;
922 ops->get_scan_pos(lcrtc, &x, &y);
955 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
958 ret = lsdc_pixpll_init(&lcrtc->pixpll, ddev, index);
964 lcrtc->ldev = to_lsdc(ddev);
965 lcrtc->has_vblank = has_vblank;
966 lcrtc->hw_ops = &ls7a1000_crtc_hw_ops[index];
994 struct lsdc_crtc *lcrtc = to_lsdc_crtc(crtc);
997 ret = lsdc_pixpll_init(&lcrtc->pixpll, ddev, index);
1003 lcrtc->ldev = to_lsdc(ddev);
1004 lcrtc->has_vblank = has_vblank;
1005 lcrtc->hw_ops = &ls7a2000_crtc_hw_ops[index];