Lines Matching refs:crtc
34 static void atombios_overscan_setup(struct drm_crtc *crtc, in atombios_overscan_setup() argument
38 struct drm_device *dev = crtc->dev; in atombios_overscan_setup()
40 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_overscan_setup()
79 static void atombios_scaler_setup(struct drm_crtc *crtc) in atombios_scaler_setup() argument
81 struct drm_device *dev = crtc->dev; in atombios_scaler_setup()
83 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_scaler_setup()
163 static void atombios_lock_crtc(struct drm_crtc *crtc, int lock) in atombios_lock_crtc() argument
165 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_lock_crtc()
166 struct drm_device *dev = crtc->dev; in atombios_lock_crtc()
180 static void atombios_enable_crtc(struct drm_crtc *crtc, int state) in atombios_enable_crtc() argument
182 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_enable_crtc()
183 struct drm_device *dev = crtc->dev; in atombios_enable_crtc()
196 static void atombios_enable_crtc_memreq(struct drm_crtc *crtc, int state) in atombios_enable_crtc_memreq() argument
198 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_enable_crtc_memreq()
199 struct drm_device *dev = crtc->dev; in atombios_enable_crtc_memreq()
222 static void atombios_blank_crtc(struct drm_crtc *crtc, int state) in atombios_blank_crtc() argument
224 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_blank_crtc()
225 struct drm_device *dev = crtc->dev; in atombios_blank_crtc()
248 static void atombios_powergate_crtc(struct drm_crtc *crtc, int state) in atombios_powergate_crtc() argument
250 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_powergate_crtc()
251 struct drm_device *dev = crtc->dev; in atombios_powergate_crtc()
264 void atombios_crtc_dpms(struct drm_crtc *crtc, int mode) in atombios_crtc_dpms() argument
266 struct drm_device *dev = crtc->dev; in atombios_crtc_dpms()
268 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_dpms()
273 atombios_enable_crtc(crtc, ATOM_ENABLE); in atombios_crtc_dpms()
275 atombios_enable_crtc_memreq(crtc, ATOM_ENABLE); in atombios_crtc_dpms()
276 atombios_blank_crtc(crtc, ATOM_DISABLE); in atombios_crtc_dpms()
278 radeon_crtc_load_lut(crtc); in atombios_crtc_dpms()
285 atombios_blank_crtc(crtc, ATOM_ENABLE); in atombios_crtc_dpms()
287 atombios_enable_crtc_memreq(crtc, ATOM_DISABLE); in atombios_crtc_dpms()
288 atombios_enable_crtc(crtc, ATOM_DISABLE); in atombios_crtc_dpms()
297 atombios_set_crtc_dtd_timing(struct drm_crtc *crtc, in atombios_set_crtc_dtd_timing() argument
300 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_set_crtc_dtd_timing()
301 struct drm_device *dev = crtc->dev; in atombios_set_crtc_dtd_timing()
344 static void atombios_crtc_set_timing(struct drm_crtc *crtc, in atombios_crtc_set_timing() argument
347 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_set_timing()
348 struct drm_device *dev = crtc->dev; in atombios_crtc_set_timing()
552 static u32 atombios_adjust_pll(struct drm_crtc *crtc, in atombios_adjust_pll() argument
555 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_adjust_pll()
556 struct drm_device *dev = crtc->dev; in atombios_adjust_pll()
814 static void atombios_crtc_program_pll(struct drm_crtc *crtc, in atombios_crtc_program_pll() argument
828 struct drm_device *dev = crtc->dev; in atombios_crtc_program_pll()
954 static bool atombios_crtc_prepare_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) in atombios_crtc_prepare_pll() argument
956 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_prepare_pll()
957 struct drm_device *dev = crtc->dev; in atombios_crtc_prepare_pll()
967 radeon_dp_mst_prepare_pll(crtc, mode); in atombios_crtc_prepare_pll()
1049 radeon_crtc->adjusted_clock = atombios_adjust_pll(crtc, mode); in atombios_crtc_prepare_pll()
1054 static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) in atombios_crtc_set_pll() argument
1056 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_set_pll()
1057 struct drm_device *dev = crtc->dev; in atombios_crtc_set_pll()
1106 atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id, in atombios_crtc_set_pll()
1135 static int dce4_crtc_do_set_base(struct drm_crtc *crtc, in dce4_crtc_do_set_base() argument
1139 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in dce4_crtc_do_set_base()
1140 struct drm_device *dev = crtc->dev; in dce4_crtc_do_set_base()
1155 if (!atomic && !crtc->primary->fb) { in dce4_crtc_do_set_base()
1165 radeon_fb = to_radeon_framebuffer(crtc->primary->fb); in dce4_crtc_do_set_base()
1166 target_fb = crtc->primary->fb; in dce4_crtc_do_set_base()
1419 viewport_w = crtc->mode.hdisplay; in dce4_crtc_do_set_base()
1420 viewport_h = (crtc->mode.vdisplay + 1) & ~1; in dce4_crtc_do_set_base()
1422 (crtc->mode.flags & DRM_MODE_FLAG_INTERLACE)) in dce4_crtc_do_set_base()
1436 if (!atomic && fb && fb != crtc->primary->fb) { in dce4_crtc_do_set_base()
1452 static int avivo_crtc_do_set_base(struct drm_crtc *crtc, in avivo_crtc_do_set_base() argument
1456 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in avivo_crtc_do_set_base()
1457 struct drm_device *dev = crtc->dev; in avivo_crtc_do_set_base()
1471 if (!atomic && !crtc->primary->fb) { in avivo_crtc_do_set_base()
1481 radeon_fb = to_radeon_framebuffer(crtc->primary->fb); in avivo_crtc_do_set_base()
1482 target_fb = crtc->primary->fb; in avivo_crtc_do_set_base()
1622 viewport_w = crtc->mode.hdisplay; in avivo_crtc_do_set_base()
1623 viewport_h = (crtc->mode.vdisplay + 1) & ~1; in avivo_crtc_do_set_base()
1636 if (!atomic && fb && fb != crtc->primary->fb) { in avivo_crtc_do_set_base()
1652 int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, in atombios_crtc_set_base() argument
1655 struct drm_device *dev = crtc->dev; in atombios_crtc_set_base()
1659 return dce4_crtc_do_set_base(crtc, old_fb, x, y, 0); in atombios_crtc_set_base()
1661 return avivo_crtc_do_set_base(crtc, old_fb, x, y, 0); in atombios_crtc_set_base()
1663 return radeon_crtc_do_set_base(crtc, old_fb, x, y, 0); in atombios_crtc_set_base()
1666 int atombios_crtc_set_base_atomic(struct drm_crtc *crtc, in atombios_crtc_set_base_atomic() argument
1670 struct drm_device *dev = crtc->dev; in atombios_crtc_set_base_atomic()
1674 return dce4_crtc_do_set_base(crtc, fb, x, y, 1); in atombios_crtc_set_base_atomic()
1676 return avivo_crtc_do_set_base(crtc, fb, x, y, 1); in atombios_crtc_set_base_atomic()
1678 return radeon_crtc_do_set_base(crtc, fb, x, y, 1); in atombios_crtc_set_base_atomic()
1682 static void radeon_legacy_atom_fixup(struct drm_crtc *crtc) in radeon_legacy_atom_fixup() argument
1684 struct drm_device *dev = crtc->dev; in radeon_legacy_atom_fixup()
1686 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in radeon_legacy_atom_fixup()
1712 static u32 radeon_get_pll_use_mask(struct drm_crtc *crtc) in radeon_get_pll_use_mask() argument
1714 struct drm_device *dev = crtc->dev; in radeon_get_pll_use_mask()
1720 if (crtc == test_crtc) in radeon_get_pll_use_mask()
1739 static int radeon_get_shared_dp_ppll(struct drm_crtc *crtc) in radeon_get_shared_dp_ppll() argument
1741 struct drm_device *dev = crtc->dev; in radeon_get_shared_dp_ppll()
1746 if (crtc == test_crtc) in radeon_get_shared_dp_ppll()
1768 static int radeon_get_shared_nondp_ppll(struct drm_crtc *crtc) in radeon_get_shared_nondp_ppll() argument
1770 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in radeon_get_shared_nondp_ppll()
1771 struct drm_device *dev = crtc->dev; in radeon_get_shared_nondp_ppll()
1782 if (crtc == test_crtc) in radeon_get_shared_nondp_ppll()
1795 if ((crtc->mode.clock == test_crtc->mode.clock) && in radeon_get_shared_nondp_ppll()
1842 static int radeon_atom_pick_pll(struct drm_crtc *crtc) in radeon_atom_pick_pll() argument
1844 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in radeon_atom_pick_pll()
1845 struct drm_device *dev = crtc->dev; in radeon_atom_pick_pll()
1859 pll = radeon_get_shared_dp_ppll(crtc); in radeon_atom_pick_pll()
1865 pll = radeon_get_shared_nondp_ppll(crtc); in radeon_atom_pick_pll()
1873 pll_in_use = radeon_get_pll_use_mask(crtc); in radeon_atom_pick_pll()
1882 pll_in_use = radeon_get_pll_use_mask(crtc); in radeon_atom_pick_pll()
1907 pll = radeon_get_shared_dp_ppll(crtc); in radeon_atom_pick_pll()
1913 pll = radeon_get_shared_nondp_ppll(crtc); in radeon_atom_pick_pll()
1918 pll_in_use = radeon_get_pll_use_mask(crtc); in radeon_atom_pick_pll()
1932 pll_in_use = radeon_get_pll_use_mask(crtc); in radeon_atom_pick_pll()
1962 pll = radeon_get_shared_dp_ppll(crtc); in radeon_atom_pick_pll()
1968 pll = radeon_get_shared_nondp_ppll(crtc); in radeon_atom_pick_pll()
1973 pll_in_use = radeon_get_pll_use_mask(crtc); in radeon_atom_pick_pll()
2020 int atombios_crtc_mode_set(struct drm_crtc *crtc, in atombios_crtc_mode_set() argument
2025 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_mode_set()
2026 struct drm_device *dev = crtc->dev; in atombios_crtc_mode_set()
2039 atombios_crtc_set_pll(crtc, adjusted_mode); in atombios_crtc_mode_set()
2042 atombios_set_crtc_dtd_timing(crtc, adjusted_mode); in atombios_crtc_mode_set()
2045 atombios_crtc_set_timing(crtc, adjusted_mode); in atombios_crtc_mode_set()
2047 atombios_set_crtc_dtd_timing(crtc, adjusted_mode); in atombios_crtc_mode_set()
2049 atombios_crtc_set_timing(crtc, adjusted_mode); in atombios_crtc_mode_set()
2051 atombios_set_crtc_dtd_timing(crtc, adjusted_mode); in atombios_crtc_mode_set()
2052 radeon_legacy_atom_fixup(crtc); in atombios_crtc_mode_set()
2054 atombios_crtc_set_base(crtc, x, y, old_fb); in atombios_crtc_mode_set()
2055 atombios_overscan_setup(crtc, mode, adjusted_mode); in atombios_crtc_mode_set()
2056 atombios_scaler_setup(crtc); in atombios_crtc_mode_set()
2057 radeon_cursor_reset(crtc); in atombios_crtc_mode_set()
2064 static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc, in atombios_crtc_mode_fixup() argument
2068 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_mode_fixup()
2069 struct drm_device *dev = crtc->dev; in atombios_crtc_mode_fixup()
2074 if (encoder->crtc == crtc) { in atombios_crtc_mode_fixup()
2091 if (!radeon_crtc_scaling_mode_fixup(crtc, mode, adjusted_mode)) in atombios_crtc_mode_fixup()
2093 if (!atombios_crtc_prepare_pll(crtc, adjusted_mode)) in atombios_crtc_mode_fixup()
2096 radeon_crtc->pll_id = radeon_atom_pick_pll(crtc); in atombios_crtc_mode_fixup()
2105 static void atombios_crtc_prepare(struct drm_crtc *crtc) in atombios_crtc_prepare() argument
2107 struct drm_device *dev = crtc->dev; in atombios_crtc_prepare()
2112 atombios_powergate_crtc(crtc, ATOM_DISABLE); in atombios_crtc_prepare()
2114 atombios_lock_crtc(crtc, ATOM_ENABLE); in atombios_crtc_prepare()
2115 atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); in atombios_crtc_prepare()
2118 static void atombios_crtc_commit(struct drm_crtc *crtc) in atombios_crtc_commit() argument
2120 atombios_crtc_dpms(crtc, DRM_MODE_DPMS_ON); in atombios_crtc_commit()
2121 atombios_lock_crtc(crtc, ATOM_DISABLE); in atombios_crtc_commit()
2124 static void atombios_crtc_disable(struct drm_crtc *crtc) in atombios_crtc_disable() argument
2126 struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); in atombios_crtc_disable()
2127 struct drm_device *dev = crtc->dev; in atombios_crtc_disable()
2132 atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); in atombios_crtc_disable()
2133 if (crtc->primary->fb) { in atombios_crtc_disable()
2138 radeon_fb = to_radeon_framebuffer(crtc->primary->fb); in atombios_crtc_disable()
2155 atombios_powergate_crtc(crtc, ATOM_ENABLE); in atombios_crtc_disable()
2173 atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id, in atombios_crtc_disable()
2182 atombios_crtc_program_pll(crtc, radeon_crtc->crtc_id, radeon_crtc->pll_id, in atombios_crtc_disable()