diff --git a/drivers/gpu/drm/drm_modes.c b/drivers/gpu/drm/drm_modes.c index ac9a406250c5..e3f05539f704 100644 --- a/drivers/gpu/drm/drm_modes.c +++ b/drivers/gpu/drm/drm_modes.c @@ -1283,9 +1283,9 @@ EXPORT_SYMBOL(drm_mode_set_name); * @modes's vrefresh rate in Hz, rounded to the nearest integer. Calculates the * value first if it is not yet set. */ -int drm_mode_vrefresh(const struct drm_display_mode *mode) +long drm_mode_vrefresh(const struct drm_display_mode *mode) { - unsigned int num, den; + unsigned long num, den; if (mode->htotal == 0 || mode->vtotal == 0) return 0; @@ -1300,6 +1300,8 @@ int drm_mode_vrefresh(const struct drm_display_mode *mode) if (mode->vscan > 1) den *= mode->vscan; + printk("mode: %p, ht: %llu, vt: %llu, c: %llu, vsc: %llu, den: %llu, num: %llu, %s", + mode, mode->htotal, mode->vtotal, mode->clock, mode->vscan, den, num, __func__); return DIV_ROUND_CLOSEST_ULL(mul_u32_u32(num, 1000), den); } EXPORT_SYMBOL(drm_mode_vrefresh); diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h index c613f0abe9dc..19e37e92dfaf 100644 --- a/include/drm/drm_modes.h +++ b/include/drm/drm_modes.h @@ -422,7 +422,7 @@ struct drm_display_mode { /** * DRM_MODE_FMT - printf string for &struct drm_display_mode */ -#define DRM_MODE_FMT "\"%s\": %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x" +#define DRM_MODE_FMT "\"%s\": %llu %d %d %d %d %d %d %d %d %d 0x%x 0x%x" /** * DRM_MODE_ARG - printf arguments for &struct drm_display_mode @@ -526,7 +526,7 @@ static inline int of_get_drm_panel_display_mode(struct device_node *np, #endif void drm_mode_set_name(struct drm_display_mode *mode); -int drm_mode_vrefresh(const struct drm_display_mode *mode); +long drm_mode_vrefresh(const struct drm_display_mode *mode); void drm_mode_get_hv_timing(const struct drm_display_mode *mode, int *hdisplay, int *vdisplay);