Lines Matching +full:- +full:p
4 * SPDX-License-Identifier: GPL-2.0+
21 unsigned long poly; /* polynomial exclusive-or pattern */ in rockchip_display_make_crc32_table()
23 static const char p[] = {0, 1, 2, 4, 5, 7, 8, 10, 11, 12, 16, 22, 23, 26}; in rockchip_display_make_crc32_table() local
25 /* make exclusive-or pattern from polynomial (0xedb88320L) */ in rockchip_display_make_crc32_table()
27 for (n = 0; n < sizeof(p) / sizeof(char); n++) in rockchip_display_make_crc32_table()
28 poly |= 1L << (31 - p[n]); in rockchip_display_make_crc32_table()
53 * drm_mode_max_resolution_filter - mark modes out of vop max resolution
62 for (i = 0; i < edid_data->modes; i++) { in drm_mode_max_resolution_filter()
63 if (edid_data->mode_buf[i].hdisplay > max_output->width || in drm_mode_max_resolution_filter()
64 edid_data->mode_buf[i].vdisplay > max_output->height) in drm_mode_max_resolution_filter()
65 edid_data->mode_buf[i].invalid = true; in drm_mode_max_resolution_filter()
74 if (mode->vrefresh > 0) { in drm_mode_vrefresh()
75 refresh = mode->vrefresh; in drm_mode_vrefresh()
76 } else if (mode->htotal > 0 && mode->vtotal > 0) { in drm_mode_vrefresh()
79 vtotal = mode->vtotal; in drm_mode_vrefresh()
81 calc_val = (mode->clock * 1000); in drm_mode_vrefresh()
82 calc_val /= mode->htotal; in drm_mode_vrefresh()
85 if (mode->flags & DRM_MODE_FLAG_INTERLACE) in drm_mode_vrefresh()
87 if (mode->flags & DRM_MODE_FLAG_DBLSCAN) in drm_mode_vrefresh()
89 if (mode->vscan > 1) in drm_mode_vrefresh()
90 refresh /= mode->vscan; in drm_mode_vrefresh()
96 * drm_mode_set_crtcinfo - set CRTC modesetting timing parameters
97 * @p: mode
100 * Setup the CRTC modesetting timing parameters for @p, adjusting if necessary.
102 * - The CRTC_INTERLACE_HALVE_V flag can be used to halve vertical timings of
104 * - The CRTC_STEREO_DOUBLE flag can be used to compute the timings for
107 * - The CRTC_NO_DBLSCAN and CRTC_NO_VSCAN flags request that adjustment *not*
110 void drm_mode_set_crtcinfo(struct drm_display_mode *p, int adjust_flags) in drm_mode_set_crtcinfo() argument
112 if ((p == NULL) || ((p->type & DRM_MODE_TYPE_CRTC_C) == DRM_MODE_TYPE_BUILTIN)) in drm_mode_set_crtcinfo()
115 p->crtc_clock = p->clock; in drm_mode_set_crtcinfo()
116 p->crtc_hdisplay = p->hdisplay; in drm_mode_set_crtcinfo()
117 p->crtc_hsync_start = p->hsync_start; in drm_mode_set_crtcinfo()
118 p->crtc_hsync_end = p->hsync_end; in drm_mode_set_crtcinfo()
119 p->crtc_htotal = p->htotal; in drm_mode_set_crtcinfo()
120 p->crtc_hskew = p->hskew; in drm_mode_set_crtcinfo()
121 p->crtc_vdisplay = p->vdisplay; in drm_mode_set_crtcinfo()
122 p->crtc_vsync_start = p->vsync_start; in drm_mode_set_crtcinfo()
123 p->crtc_vsync_end = p->vsync_end; in drm_mode_set_crtcinfo()
124 p->crtc_vtotal = p->vtotal; in drm_mode_set_crtcinfo()
126 if (p->flags & DRM_MODE_FLAG_INTERLACE) { in drm_mode_set_crtcinfo()
128 p->crtc_vdisplay /= 2; in drm_mode_set_crtcinfo()
129 p->crtc_vsync_start /= 2; in drm_mode_set_crtcinfo()
130 p->crtc_vsync_end /= 2; in drm_mode_set_crtcinfo()
131 p->crtc_vtotal /= 2; in drm_mode_set_crtcinfo()
136 if (p->flags & DRM_MODE_FLAG_DBLSCAN) { in drm_mode_set_crtcinfo()
137 p->crtc_vdisplay *= 2; in drm_mode_set_crtcinfo()
138 p->crtc_vsync_start *= 2; in drm_mode_set_crtcinfo()
139 p->crtc_vsync_end *= 2; in drm_mode_set_crtcinfo()
140 p->crtc_vtotal *= 2; in drm_mode_set_crtcinfo()
145 if (p->vscan > 1) { in drm_mode_set_crtcinfo()
146 p->crtc_vdisplay *= p->vscan; in drm_mode_set_crtcinfo()
147 p->crtc_vsync_start *= p->vscan; in drm_mode_set_crtcinfo()
148 p->crtc_vsync_end *= p->vscan; in drm_mode_set_crtcinfo()
149 p->crtc_vtotal *= p->vscan; in drm_mode_set_crtcinfo()
154 unsigned int layout = p->flags & DRM_MODE_FLAG_3D_MASK; in drm_mode_set_crtcinfo()
158 p->crtc_clock *= 2; in drm_mode_set_crtcinfo()
159 p->crtc_vdisplay += p->crtc_vtotal; in drm_mode_set_crtcinfo()
160 p->crtc_vsync_start += p->crtc_vtotal; in drm_mode_set_crtcinfo()
161 p->crtc_vsync_end += p->crtc_vtotal; in drm_mode_set_crtcinfo()
162 p->crtc_vtotal += p->crtc_vtotal; in drm_mode_set_crtcinfo()
167 p->crtc_vblank_start = min(p->crtc_vsync_start, p->crtc_vdisplay); in drm_mode_set_crtcinfo()
168 p->crtc_vblank_end = max(p->crtc_vsync_end, p->crtc_vtotal); in drm_mode_set_crtcinfo()
169 p->crtc_hblank_start = min(p->crtc_hsync_start, p->crtc_hdisplay); in drm_mode_set_crtcinfo()
170 p->crtc_hblank_end = max(p->crtc_hsync_end, p->crtc_htotal); in drm_mode_set_crtcinfo()
177 hactive = mode->hdisplay; in drm_mode_convert_to_origin_mode()
178 hfp = mode->hsync_start - mode->hdisplay; in drm_mode_convert_to_origin_mode()
179 hsync = mode->hsync_end - mode->hsync_start; in drm_mode_convert_to_origin_mode()
180 hbp = mode->htotal - mode->hsync_end; in drm_mode_convert_to_origin_mode()
182 mode->clock /= 2; in drm_mode_convert_to_origin_mode()
183 mode->crtc_clock /= 2; in drm_mode_convert_to_origin_mode()
184 mode->hdisplay = hactive / 2; in drm_mode_convert_to_origin_mode()
185 mode->hsync_start = mode->hdisplay + hfp / 2; in drm_mode_convert_to_origin_mode()
186 mode->hsync_end = mode->hsync_start + hsync / 2; in drm_mode_convert_to_origin_mode()
187 mode->htotal = mode->hsync_end + hbp / 2; in drm_mode_convert_to_origin_mode()
194 hactive = mode->hdisplay; in drm_mode_convert_to_split_mode()
195 hfp = mode->hsync_start - mode->hdisplay; in drm_mode_convert_to_split_mode()
196 hsync = mode->hsync_end - mode->hsync_start; in drm_mode_convert_to_split_mode()
197 hbp = mode->htotal - mode->hsync_end; in drm_mode_convert_to_split_mode()
199 mode->clock *= 2; in drm_mode_convert_to_split_mode()
200 mode->crtc_clock *= 2; in drm_mode_convert_to_split_mode()
201 mode->hdisplay = hactive * 2; in drm_mode_convert_to_split_mode()
202 mode->hsync_start = mode->hdisplay + hfp * 2; in drm_mode_convert_to_split_mode()
203 mode->hsync_end = mode->hsync_start + hsync * 2; in drm_mode_convert_to_split_mode()
204 mode->htotal = mode->hsync_end + hbp * 2; in drm_mode_convert_to_split_mode()
208 * drm_mode_is_420_only - if a given videomode can be only supported in YCBCR420
223 return test_bit(vic, display->hdmi.y420_vdb_modes); in drm_mode_is_420_only()
227 * drm_mode_is_420_also - if a given videomode can be supported in YCBCR420
242 return test_bit(vic, display->hdmi.y420_cmdb_modes); in drm_mode_is_420_also()
246 * drm_mode_is_420 - if a given videomode can be supported in YCBCR420
268 return -EINVAL; in display_rect_calc_scale()
286 int hscale = display_rect_calc_scale(src->w, dst->w); in display_rect_calc_hscale()
288 if (hscale < 0 || dst->w == 0) in display_rect_calc_hscale()
292 return -ERANGE; in display_rect_calc_hscale()
300 int vscale = display_rect_calc_scale(src->h, dst->h); in display_rect_calc_vscale()
302 if (vscale < 0 || dst->h == 0) in display_rect_calc_vscale()
306 return -ERANGE; in display_rect_calc_vscale()