Re: [PATCH 04/12] drm: Nuke mode->vrefresh

Andrzej Hajda
2020-02-25T15:19:34Z

On 25.02.2020 12:21, Ville Syrjälä wrote:
> On Mon, Feb 24, 2020 at 03:14:54PM +0100, Andrzej Hajda wrote:
>> On 19.02.2020 21:35, Ville Syrjala wrote:
>>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>
>>> Get rid of mode->vrefresh and just calculate it on demand. Saves
>>> a bit of space and avoids the cached value getting out of sync
>>> with reality.
>>>
>>> Mostly done with cocci, with the following manual fixups:
>>> - Remove the now empty loop in drm_helper_probe_single_connector_modes()
>>> - Fix __MODE() macro in ch7006_mode.c
>>> - Fix DRM_MODE_ARG() macro in drm_modes.h
>>> - Remove leftover comment from samsung_s6d16d0_mode
>> ...
>>> diff --git a/drivers/gpu/drm/panel/panel-arm-versatile.c b/drivers/gpu/drm/panel/panel-arm-versatile.c
>>> index 41444a73c980..47b37fef7ee8 100644
>>> --- a/drivers/gpu/drm/panel/panel-arm-versatile.c
>>> +++ b/drivers/gpu/drm/panel/panel-arm-versatile.c
>>> @@ -143,7 +143,6 @@ static const struct versatile_panel_type versatile_panels[] = {
>>> .vsync_start = 240 + 5,
>>> .vsync_end = 240 + 5 + 6,
>>> .vtotal = 240 + 5 + 6 + 5,
>>> - .vrefresh = 116,
>>
>> Are you sure vrefresh calculated (from totals and clock) is different
>> than this field? If not, we risk regressions.
>>
>> This case is OK, but there is plenty other cases.
> IIRC I did spot check a few of them. But which code exactly do you think
> is abusing vrefresh and thus could break?

I guess suspect/potential victim is every code which uses
drm_mode_vrefresh - after this patch the function can return different
value(if there are differences between provided and calculated vrefresh).

Quick examples where output of this function matters:

https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c#L387

https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c#L42

https://elixir.bootlin.com/linux/latest/source/drivers/gpu/drm/tilcdc/tilcdc_crtc.c#L810

Regards

Andrzej

>
>>
>> Regards
>>
>> Andrzej
>>
>>
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> },
>>> },
>>> @@ -167,7 +166,6 @@ static const struct versatile_panel_type versatile_panels[] = {
>>> .vsync_start = 480 + 11,
>>> .vsync_end = 480 + 11 + 2,
>>> .vtotal = 480 + 11 + 2 + 32,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> },
>>> },
>>> @@ -190,7 +188,6 @@ static const struct versatile_panel_type versatile_panels[] = {
>>> .vsync_start = 220 + 0,
>>> .vsync_end = 220 + 0 + 2,
>>> .vtotal = 220 + 0 + 2 + 1,
>>> - .vrefresh = 390,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
>>> @@ -214,7 +211,6 @@ static const struct versatile_panel_type versatile_panels[] = {
>>> .vsync_start = 320 + 2,
>>> .vsync_end = 320 + 2 + 2,
>>> .vtotal = 320 + 2 + 2 + 2,
>>> - .vrefresh = 116,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE,
>>> diff --git a/drivers/gpu/drm/panel/panel-boe-himax8279d.c b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
>>> index 74d58ee7d04c..7c27bd5e3486 100644
>>> --- a/drivers/gpu/drm/panel/panel-boe-himax8279d.c
>>> +++ b/drivers/gpu/drm/panel/panel-boe-himax8279d.c
>>> @@ -229,7 +229,7 @@ static int boe_panel_get_modes(struct drm_panel *panel,
>>> mode = drm_mode_duplicate(connector->dev, m);
>>> if (!mode) {
>>> DRM_DEV_ERROR(pinfo->base.dev, "failed to add mode %ux%u@%u\n",
>>> - m->hdisplay, m->vdisplay, m->vrefresh);
>>> + m->hdisplay, m->vdisplay, drm_mode_vrefresh(m));
>>> return -ENOMEM;
>>> }
>>>
>>> @@ -262,7 +262,6 @@ static const struct drm_display_mode default_display_mode = {
>>> .vsync_start = 1920 + 10,
>>> .vsync_end = 1920 + 10 + 14,
>>> .vtotal = 1920 + 10 + 14 + 4,
>>> - .vrefresh = 60,
>>> };
>>>
>>> /* 8 inch */
>>> diff --git a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
>>> index 48a164257d18..c580bd1e121c 100644
>>> --- a/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
>>> +++ b/drivers/gpu/drm/panel/panel-boe-tv101wum-nl6.c
>>> @@ -594,7 +594,6 @@ static const struct drm_display_mode boe_tv101wum_nl6_default_mode = {
>>> .vsync_start = 1920 + 10,
>>> .vsync_end = 1920 + 10 + 14,
>>> .vtotal = 1920 + 10 + 14 + 4,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc boe_tv101wum_nl6_desc = {
>>> @@ -622,7 +621,6 @@ static const struct drm_display_mode auo_kd101n80_45na_default_mode = {
>>> .vsync_start = 1920 + 16,
>>> .vsync_end = 1920 + 16 + 4,
>>> .vtotal = 1920 + 16 + 4 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_kd101n80_45na_desc = {
>>> @@ -650,7 +648,6 @@ static const struct drm_display_mode boe_tv101wum_n53_default_mode = {
>>> .vsync_start = 1920 + 20,
>>> .vsync_end = 1920 + 20 + 4,
>>> .vtotal = 1920 + 20 + 4 + 10,
>>> - .vrefresh = 60,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> };
>>>
>>> @@ -678,7 +675,6 @@ static const struct drm_display_mode auo_b101uan08_3_default_mode = {
>>> .vsync_start = 1920 + 34,
>>> .vsync_end = 1920 + 34 + 2,
>>> .vtotal = 1920 + 34 + 2 + 24,
>>> - .vrefresh = 60,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> };
>>>
>>> @@ -706,7 +702,7 @@ static int boe_panel_get_modes(struct drm_panel *panel,
>>> mode = drm_mode_duplicate(connector->dev, m);
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%u@%u\n",
>>> - m->hdisplay, m->vdisplay, m->vrefresh);
>>> + m->hdisplay, m->vdisplay, drm_mode_vrefresh(m));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
>>> index fddbfddf6566..54610651ecdb 100644
>>> --- a/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
>>> +++ b/drivers/gpu/drm/panel/panel-feixin-k101-im2ba02.c
>>> @@ -392,7 +392,6 @@ static int k101_im2ba02_unprepare(struct drm_panel *panel)
>>>
>>> static const struct drm_display_mode k101_im2ba02_default_mode = {
>>> .clock = 70000,
>>> - .vrefresh = 60,
>>>
>>> .hdisplay = 800,
>>> .hsync_start = 800 + 20,
>>> @@ -420,7 +419,7 @@ static int k101_im2ba02_get_modes(struct drm_panel *panel,
>>> DRM_DEV_ERROR(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n",
>>> k101_im2ba02_default_mode.hdisplay,
>>> k101_im2ba02_default_mode.vdisplay,
>>> - k101_im2ba02_default_mode.vrefresh);
>>> + drm_mode_vrefresh(&k101_im2ba02_default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
>>> index 95b789ab9d29..19a6274b10f5 100644
>>> --- a/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
>>> +++ b/drivers/gpu/drm/panel/panel-feiyang-fy07024di26a30d.c
>>> @@ -153,7 +153,6 @@ static const struct drm_display_mode feiyang_default_mode = {
>>> .vsync_start = 600 + 12,
>>> .vsync_end = 600 + 12 + 2,
>>> .vtotal = 600 + 12 + 2 + 21,
>>> - .vrefresh = 60,
>>>
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> };
>>> @@ -169,7 +168,7 @@ static int feiyang_get_modes(struct drm_panel *panel,
>>> DRM_DEV_ERROR(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n",
>>> feiyang_default_mode.hdisplay,
>>> feiyang_default_mode.vdisplay,
>>> - feiyang_default_mode.vrefresh);
>>> + drm_mode_vrefresh(&feiyang_default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
>>> index f394d53a7da4..d2c98d381bef 100644
>>> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
>>> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9322.c
>>> @@ -549,7 +549,6 @@ static const struct drm_display_mode srgb_320x240_mode = {
>>> .vsync_start = 240 + 4,
>>> .vsync_end = 240 + 4 + 1,
>>> .vtotal = 262,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -563,7 +562,6 @@ static const struct drm_display_mode srgb_360x240_mode = {
>>> .vsync_start = 240 + 21,
>>> .vsync_end = 240 + 21 + 1,
>>> .vtotal = 262,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -578,7 +576,6 @@ static const struct drm_display_mode prgb_320x240_mode = {
>>> .vsync_start = 240 + 4,
>>> .vsync_end = 240 + 4 + 1,
>>> .vtotal = 262,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -593,7 +590,6 @@ static const struct drm_display_mode yuv_640x320_mode = {
>>> .vsync_start = 320 + 4,
>>> .vsync_end = 320 + 4 + 1,
>>> .vtotal = 320 + 4 + 1 + 18,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -607,7 +603,6 @@ static const struct drm_display_mode yuv_720x360_mode = {
>>> .vsync_start = 360 + 4,
>>> .vsync_end = 360 + 4 + 1,
>>> .vtotal = 360 + 4 + 1 + 18,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -622,7 +617,6 @@ static const struct drm_display_mode itu_r_bt_656_640_mode = {
>>> .vsync_start = 480 + 4,
>>> .vsync_end = 480 + 4 + 1,
>>> .vtotal = 500,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -637,7 +631,6 @@ static const struct drm_display_mode itu_r_bt_656_720_mode = {
>>> .vsync_start = 480 + 4,
>>> .vsync_end = 480 + 4 + 1,
>>> .vtotal = 500,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
>>> index f54077c216a3..3ed8635a6fbd 100644
>>> --- a/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
>>> +++ b/drivers/gpu/drm/panel/panel-ilitek-ili9881c.c
>>> @@ -370,7 +370,6 @@ static int ili9881c_unprepare(struct drm_panel *panel)
>>>
>>> static const struct drm_display_mode bananapi_default_mode = {
>>> .clock = 62000,
>>> - .vrefresh = 60,
>>>
>>> .hdisplay = 720,
>>> .hsync_start = 720 + 10,
>>> @@ -394,7 +393,7 @@ static int ili9881c_get_modes(struct drm_panel *panel,
>>> dev_err(&ctx->dsi->dev, "failed to add mode %ux%ux@%u\n",
>>> bananapi_default_mode.hdisplay,
>>> bananapi_default_mode.vdisplay,
>>> - bananapi_default_mode.vrefresh);
>>> + drm_mode_vrefresh(&bananapi_default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-innolux-p079zca.c b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
>>> index 7419f1f0acee..fdf030f4cf92 100644
>>> --- a/drivers/gpu/drm/panel/panel-innolux-p079zca.c
>>> +++ b/drivers/gpu/drm/panel/panel-innolux-p079zca.c
>>> @@ -223,7 +223,6 @@ static const struct drm_display_mode innolux_p079zca_mode = {
>>> .vsync_start = 1024 + 20,
>>> .vsync_end = 1024 + 20 + 4,
>>> .vtotal = 1024 + 20 + 4 + 20,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc innolux_p079zca_panel_desc = {
>>> @@ -257,7 +256,6 @@ static const struct drm_display_mode innolux_p097pfg_mode = {
>>> .vsync_start = 2048 + 100,
>>> .vsync_end = 2048 + 100 + 2,
>>> .vtotal = 2048 + 100 + 2 + 18,
>>> - .vrefresh = 60,
>>> };
>>>
>>> /*
>>> @@ -401,7 +399,7 @@ static int innolux_panel_get_modes(struct drm_panel *panel,
>>> mode = drm_mode_duplicate(connector->dev, m);
>>> if (!mode) {
>>> DRM_DEV_ERROR(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> - m->hdisplay, m->vdisplay, m->vrefresh);
>>> + m->hdisplay, m->vdisplay, drm_mode_vrefresh(m));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
>>> index 4bfd8c877c8e..1e3fd6633981 100644
>>> --- a/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
>>> +++ b/drivers/gpu/drm/panel/panel-jdi-lt070me05000.c
>>> @@ -296,7 +296,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1920 + 3,
>>> .vsync_end = 1920 + 3 + 5,
>>> .vtotal = 1920 + 3 + 5 + 6,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -311,7 +310,7 @@ static int jdi_panel_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> dev_err(dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
>>> index bac1a2a06c92..0d397af23afe 100644
>>> --- a/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
>>> +++ b/drivers/gpu/drm/panel/panel-kingdisplay-kd097d04.c
>>> @@ -318,7 +318,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 2048 + 95,
>>> .vsync_end = 2048 + 95 + 2,
>>> .vtotal = 2048 + 95 + 2 + 23,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static int kingdisplay_panel_get_modes(struct drm_panel *panel,
>>> @@ -330,7 +329,7 @@ static int kingdisplay_panel_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_DEV_ERROR(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c b/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c
>>> index 76ecf2de9c44..c39e7f6f5c2d 100644
>>> --- a/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c
>>> +++ b/drivers/gpu/drm/panel/panel-leadtek-ltk500hd1829.c
>>> @@ -376,7 +376,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1280 + 30,
>>> .vsync_end = 1280 + 30 + 4,
>>> .vtotal = 1280 + 30 + 4 + 12,
>>> - .vrefresh = 60,
>>> .clock = 41600,
>>> .width_mm = 62,
>>> .height_mm = 110,
>>> @@ -392,7 +391,7 @@ static int ltk500hd1829_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_DEV_ERROR(ctx->dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-lg-lb035q02.c b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
>>> index e90efeaba4ad..14456b9cd5c0 100644
>>> --- a/drivers/gpu/drm/panel/panel-lg-lb035q02.c
>>> +++ b/drivers/gpu/drm/panel/panel-lg-lb035q02.c
>>> @@ -134,7 +134,6 @@ static const struct drm_display_mode lb035q02_mode = {
>>> .vsync_start = 240 + 4,
>>> .vsync_end = 240 + 4 + 2,
>>> .vtotal = 240 + 4 + 2 + 18,
>>> - .vrefresh = 60,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 70,
>>> diff --git a/drivers/gpu/drm/panel/panel-lg-lg4573.c b/drivers/gpu/drm/panel/panel-lg-lg4573.c
>>> index b262b53dbd85..497f3b888a1d 100644
>>> --- a/drivers/gpu/drm/panel/panel-lg-lg4573.c
>>> +++ b/drivers/gpu/drm/panel/panel-lg-lg4573.c
>>> @@ -206,7 +206,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 800 + 15,
>>> .vsync_end = 800 + 15 + 15,
>>> .vtotal = 800 + 15 + 15 + 15,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static int lg4573_get_modes(struct drm_panel *panel,
>>> @@ -218,7 +217,7 @@ static int lg4573_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
>>> index c4f83f6384e1..f894971c1c7c 100644
>>> --- a/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
>>> +++ b/drivers/gpu/drm/panel/panel-nec-nl8048hl11.c
>>> @@ -116,7 +116,6 @@ static const struct drm_display_mode nl8048_mode = {
>>> .vsync_start = 480 + 3,
>>> .vsync_end = 480 + 3 + 1,
>>> .vtotal = 480 + 3 + 1 + 4,
>>> - .vrefresh = 60,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 89,
>>> diff --git a/drivers/gpu/drm/panel/panel-novatek-nt39016.c b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
>>> index a470810f7dbe..4b545e081b1e 100644
>>> --- a/drivers/gpu/drm/panel/panel-novatek-nt39016.c
>>> +++ b/drivers/gpu/drm/panel/panel-novatek-nt39016.c
>>> @@ -327,7 +327,6 @@ static const struct nt39016_panel_info kd035g6_info = {
>>> .vsync_start = 240 + 5,
>>> .vsync_end = 240 + 5 + 1,
>>> .vtotal = 240 + 5 + 1 + 4,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> },
>>> .width_mm = 71,
>>> diff --git a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
>>> index 09deb99981a4..ecd76b5391d3 100644
>>> --- a/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
>>> +++ b/drivers/gpu/drm/panel/panel-olimex-lcd-olinuxino.c
>>> @@ -170,7 +170,6 @@ static int lcd_olinuxino_get_modes(struct drm_panel *panel,
>>> lcd_mode->vpw;
>>> mode->vtotal = lcd_mode->vactive + lcd_mode->vfp +
>>> lcd_mode->vpw + lcd_mode->vbp;
>>> - mode->vrefresh = lcd_mode->refresh;
>>>
>>> /* Always make the first mode preferred */
>>> if (i == 0)
>>> diff --git a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
>>> index bb0c992171e8..895ee3d1371e 100644
>>> --- a/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
>>> +++ b/drivers/gpu/drm/panel/panel-orisetech-otm8009a.c
>>> @@ -81,7 +81,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 800 + 15,
>>> .vsync_end = 800 + 15 + 10,
>>> .vtotal = 800 + 15 + 10 + 14,
>>> - .vrefresh = 50,
>>> .flags = 0,
>>> .width_mm = 52,
>>> .height_mm = 86,
>>> @@ -358,7 +357,7 @@ static int otm8009a_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_ERROR("failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
>>> index 3a0229d60095..11b3d01aca56 100644
>>> --- a/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
>>> +++ b/drivers/gpu/drm/panel/panel-osd-osd101t2587-53ts.c
>>> @@ -102,7 +102,6 @@ static const struct drm_display_mode default_mode_osd101t2587 = {
>>> .vsync_start = 1200 + 24,
>>> .vsync_end = 1200 + 24 + 6,
>>> .vtotal = 1200 + 24 + 6 + 48,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -117,7 +116,7 @@ static int osd101t2587_panel_get_modes(struct drm_panel *panel,
>>> dev_err(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> osd101t2587->default_mode->hdisplay,
>>> osd101t2587->default_mode->vdisplay,
>>> - osd101t2587->default_mode->vrefresh);
>>> + drm_mode_vrefresh(osd101t2587->default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
>>> index 69693451462e..627dfcf8adb4 100644
>>> --- a/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
>>> +++ b/drivers/gpu/drm/panel/panel-panasonic-vvx10f034n00.c
>>> @@ -149,7 +149,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1200 + 24,
>>> .vsync_end = 1200 + 24 + 6,
>>> .vtotal = 1200 + 24 + 6 + 48,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static int wuxga_nt_panel_get_modes(struct drm_panel *panel,
>>> @@ -161,7 +160,7 @@ static int wuxga_nt_panel_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%u@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
>>> index 8f078b7dd89e..e50ee26474cf 100644
>>> --- a/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
>>> +++ b/drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c
>>> @@ -209,7 +209,6 @@ static const struct drm_display_mode rpi_touchscreen_modes[] = {
>>> .vsync_start = 480 + 7,
>>> .vsync_end = 480 + 7 + 2,
>>> .vtotal = 480 + 7 + 2 + 21,
>>> - .vrefresh = 60,
>>> },
>>> };
>>>
>>> @@ -322,7 +321,8 @@ static int rpi_touchscreen_get_modes(struct drm_panel *panel,
>>> mode = drm_mode_duplicate(connector->dev, m);
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%u@%u\n",
>>> - m->hdisplay, m->vdisplay, m->vrefresh);
>>> + m->hdisplay, m->vdisplay,
>>> + drm_mode_vrefresh(m));
>>> continue;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-raydium-rm67191.c b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
>>> index 313637d53d28..d001c52e0ca9 100644
>>> --- a/drivers/gpu/drm/panel/panel-raydium-rm67191.c
>>> +++ b/drivers/gpu/drm/panel/panel-raydium-rm67191.c
>>> @@ -218,7 +218,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1920 + 10,
>>> .vsync_end = 1920 + 10 + 2,
>>> .vtotal = 1920 + 10 + 2 + 4,
>>> - .vrefresh = 60,
>>> .width_mm = 68,
>>> .height_mm = 121,
>>> .flags = DRM_MODE_FLAG_NHSYNC |
>>> @@ -445,7 +444,7 @@ static int rad_panel_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_DEV_ERROR(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-raydium-rm68200.c b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
>>> index e8982948e0ea..81ae8be62d15 100644
>>> --- a/drivers/gpu/drm/panel/panel-raydium-rm68200.c
>>> +++ b/drivers/gpu/drm/panel/panel-raydium-rm68200.c
>>> @@ -92,7 +92,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1280 + 12,
>>> .vsync_end = 1280 + 12 + 4,
>>> .vtotal = 1280 + 12 + 4 + 12,
>>> - .vrefresh = 50,
>>> .flags = 0,
>>> .width_mm = 68,
>>> .height_mm = 122,
>>> @@ -339,7 +338,7 @@ static int rm68200_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_ERROR("failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
>>> index 38ff742bc120..da4e373291f9 100644
>>> --- a/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
>>> +++ b/drivers/gpu/drm/panel/panel-rocktech-jh057n00900.c
>>> @@ -223,7 +223,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1440 + 20,
>>> .vsync_end = 1440 + 20 + 4,
>>> .vtotal = 1440 + 20 + 4 + 12,
>>> - .vrefresh = 60,
>>> .clock = 75276,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 65,
>>> @@ -240,7 +239,7 @@ static int jh057n_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> @@ -360,7 +359,7 @@ static int jh057n_probe(struct mipi_dsi_device *dsi)
>>>
>>> DRM_DEV_INFO(dev, "%ux%u@%u %ubpp dsi %udl - ready\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh,
>>> + drm_mode_vrefresh(&default_mode),
>>> mipi_dsi_pixel_format_to_bpp(dsi->format), dsi->lanes);
>>>
>>> jh057n_debugfs_init(ctx);
>>> diff --git a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
>>> index ef18559e237e..a7b0b3e39e1a 100644
>>> --- a/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
>>> +++ b/drivers/gpu/drm/panel/panel-ronbo-rb070d30.c
>>> @@ -103,7 +103,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 600 + 12,
>>> .vsync_end = 600 + 12 + 10,
>>> .vtotal = 600 + 12 + 10 + 13,
>>> - .vrefresh = 60,
>>>
>>> .width_mm = 154,
>>> .height_mm = 85,
>>> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
>>> index 2150043dcf6b..f02645d396ac 100644
>>> --- a/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
>>> +++ b/drivers/gpu/drm/panel/panel-samsung-s6d16d0.c
>>> @@ -37,12 +37,6 @@ static const struct drm_display_mode samsung_s6d16d0_mode = {
>>> .vsync_start = 480 + 1,
>>> .vsync_end = 480 + 1 + 1,
>>> .vtotal = 480 + 1 + 1 + 1,
>>> - /*
>>> - * This depends on the clocking HS vs LP rate, this value
>>> - * is calculated as:
>>> - * vrefresh = (clock * 1000) / (htotal*vtotal)
>>> - */
>>> - .vrefresh = 816,
>>> .width_mm = 84,
>>> .height_mm = 48,
>>> };
>>> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
>>> index 36ebd5a4ac7b..80ef122e7466 100644
>>> --- a/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
>>> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e3ha2.c
>>> @@ -617,7 +617,6 @@ static const struct drm_display_mode s6e3ha2_mode = {
>>> .vsync_start = 2560 + 1,
>>> .vsync_end = 2560 + 1 + 1,
>>> .vtotal = 2560 + 1 + 1 + 15,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -636,7 +635,6 @@ static const struct drm_display_mode s6e3hf2_mode = {
>>> .vsync_start = 2560 + 1,
>>> .vsync_end = 2560 + 1 + 1,
>>> .vtotal = 2560 + 1 + 1 + 15,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> @@ -655,7 +653,7 @@ static int s6e3ha2_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_ERROR("failed to add mode %ux%ux@%u\n",
>>> ctx->desc->mode->hdisplay, ctx->desc->mode->vdisplay,
>>> - ctx->desc->mode->vrefresh);
>>> + drm_mode_vrefresh(ctx->desc->mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
>>> index a3570e0a90a8..1247656d73bf 100644
>>> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
>>> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63j0x03.c
>>> @@ -52,7 +52,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 320 + 150,
>>> .vsync_end = 320 + 150 + 1,
>>> .vtotal = 320 + 150 + 1 + 2,
>>> - .vrefresh = 30,
>>> .flags = 0,
>>> };
>>>
>>> @@ -409,7 +408,7 @@ static int s6e63j0x03_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_ERROR("failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
>>> index a5f76eb4fa25..64421347bfd4 100644
>>> --- a/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
>>> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e63m0.c
>>> @@ -117,7 +117,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 800 + 28,
>>> .vsync_end = 800 + 28 + 2,
>>> .vtotal = 800 + 28 + 2 + 1,
>>> - .vrefresh = 60,
>>> .width_mm = 53,
>>> .height_mm = 89,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> @@ -371,7 +370,7 @@ static int s6e63m0_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_ERROR("failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
>>> index 9d843fcc3a22..485eabecfcc9 100644
>>> --- a/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
>>> +++ b/drivers/gpu/drm/panel/panel-samsung-s6e88a0-ams452ef01.c
>>> @@ -177,7 +177,6 @@ static const struct drm_display_mode s6e88a0_ams452ef01_mode = {
>>> .vsync_start = 960 + 14,
>>> .vsync_end = 960 + 14 + 2,
>>> .vtotal = 960 + 14 + 2 + 8,
>>> - .vrefresh = 60,
>>> .width_mm = 56,
>>> .height_mm = 100,
>>> };
>>> diff --git a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
>>> index 40fcbbbacb2c..e417dc4921c2 100644
>>> --- a/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
>>> +++ b/drivers/gpu/drm/panel/panel-seiko-43wvf1g.c
>>> @@ -92,7 +92,8 @@ static int seiko_panel_get_fixed_modes(struct seiko_panel *panel,
>>> mode = drm_mode_duplicate(connector->dev, m);
>>> if (!mode) {
>>> dev_err(panel->base.dev, "failed to add mode %ux%u@%u\n",
>>> - m->hdisplay, m->vdisplay, m->vrefresh);
>>> + m->hdisplay, m->vdisplay,
>>> + drm_mode_vrefresh(m));
>>> continue;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
>>> index b5d1977221a7..f07324b705b3 100644
>>> --- a/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
>>> +++ b/drivers/gpu/drm/panel/panel-sharp-lq101r1sx01.c
>>> @@ -269,7 +269,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1600 + 4,
>>> .vsync_end = 1600 + 4 + 8,
>>> .vtotal = 1600 + 4 + 8 + 32,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static int sharp_panel_get_modes(struct drm_panel *panel,
>>> @@ -281,7 +280,7 @@ static int sharp_panel_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
>>> index 1cf3f02435c1..d7bf13b9e1d6 100644
>>> --- a/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
>>> +++ b/drivers/gpu/drm/panel/panel-sharp-ls037v7dw01.c
>>> @@ -93,7 +93,6 @@ static const struct drm_display_mode ls037v7dw01_mode = {
>>> .vsync_start = 640 + 1,
>>> .vsync_end = 640 + 1 + 1,
>>> .vtotal = 640 + 1 + 1 + 1,
>>> - .vrefresh = 58,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 56,
>>> diff --git a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
>>> index ce586c6d70c7..b2e58935529c 100644
>>> --- a/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
>>> +++ b/drivers/gpu/drm/panel/panel-sharp-ls043t1le01.c
>>> @@ -201,7 +201,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 960 + 3,
>>> .vsync_end = 960 + 3 + 15,
>>> .vtotal = 960 + 3 + 15 + 1,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static int sharp_nt_panel_get_modes(struct drm_panel *panel,
>>> @@ -213,7 +212,7 @@ static int sharp_nt_panel_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%u@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
>>> index 82363d05bad4..9ba9d69df41b 100644
>>> --- a/drivers/gpu/drm/panel/panel-simple.c
>>> +++ b/drivers/gpu/drm/panel/panel-simple.c
>>> @@ -161,7 +161,8 @@ static unsigned int panel_simple_get_display_modes(struct panel_simple *panel,
>>> mode = drm_mode_duplicate(connector->dev, m);
>>> if (!mode) {
>>> dev_err(panel->base.dev, "failed to add mode %ux%u@%u\n",
>>> - m->hdisplay, m->vdisplay, m->vrefresh);
>>> + m->hdisplay, m->vdisplay,
>>> + drm_mode_vrefresh(m));
>>> continue;
>>> }
>>>
>>> @@ -494,7 +495,6 @@ static const struct drm_display_mode ampire_am_480272h3tmqw_t01h_mode = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 10,
>>> .vtotal = 272 + 2 + 10 + 2,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> };
>>>
>>> @@ -519,7 +519,6 @@ static const struct drm_display_mode ampire_am800480r3tmqwa1h_mode = {
>>> .vsync_start = 480 + 2,
>>> .vsync_end = 480 + 2 + 45,
>>> .vtotal = 480 + 2 + 45 + 0,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> };
>>>
>>> @@ -570,7 +569,6 @@ static const struct drm_display_mode auo_b101aw03_mode = {
>>> .vsync_start = 600 + 16,
>>> .vsync_end = 600 + 16 + 6,
>>> .vtotal = 600 + 16 + 6 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_b101aw03 = {
>>> @@ -615,7 +613,6 @@ static const struct drm_display_mode auo_b101xtn01_mode = {
>>> .vsync_start = 768 + 14,
>>> .vsync_end = 768 + 14 + 42,
>>> .vtotal = 768 + 14 + 42,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -639,7 +636,6 @@ static const struct drm_display_mode auo_b116xak01_mode = {
>>> .vsync_start = 768 + 4,
>>> .vsync_end = 768 + 4 + 6,
>>> .vtotal = 768 + 4 + 6 + 15,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -668,7 +664,6 @@ static const struct drm_display_mode auo_b116xw03_mode = {
>>> .vsync_start = 768 + 10,
>>> .vsync_end = 768 + 10 + 12,
>>> .vtotal = 768 + 10 + 12 + 6,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_b116xw03 = {
>>> @@ -691,7 +686,6 @@ static const struct drm_display_mode auo_b133xtn01_mode = {
>>> .vsync_start = 768 + 3,
>>> .vsync_end = 768 + 3 + 6,
>>> .vtotal = 768 + 3 + 6 + 13,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_b133xtn01 = {
>>> @@ -714,7 +708,6 @@ static const struct drm_display_mode auo_b133htn01_mode = {
>>> .vsync_start = 1080 + 25,
>>> .vsync_end = 1080 + 25 + 10,
>>> .vtotal = 1080 + 25 + 10 + 10,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_b133htn01 = {
>>> @@ -770,7 +763,6 @@ static const struct drm_display_mode auo_g101evn010_mode = {
>>> .vsync_start = 800 + 8,
>>> .vsync_end = 800 + 8 + 2,
>>> .vtotal = 800 + 8 + 2 + 6,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_g101evn010 = {
>>> @@ -794,7 +786,6 @@ static const struct drm_display_mode auo_g104sn02_mode = {
>>> .vsync_start = 600 + 10,
>>> .vsync_end = 600 + 10 + 35,
>>> .vtotal = 600 + 10 + 35 + 2,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_g104sn02 = {
>>> @@ -906,7 +897,6 @@ static const struct drm_display_mode auo_t215hvn01_mode = {
>>> .vsync_start = 1080 + 4,
>>> .vsync_end = 1080 + 4 + 5,
>>> .vtotal = 1080 + 4 + 5 + 36,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc auo_t215hvn01 = {
>>> @@ -933,7 +923,6 @@ static const struct drm_display_mode avic_tm070ddh03_mode = {
>>> .vsync_start = 600 + 17,
>>> .vsync_end = 600 + 17 + 1,
>>> .vtotal = 600 + 17 + 1 + 17,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc avic_tm070ddh03 = {
>>> @@ -983,7 +972,6 @@ static const struct drm_display_mode boe_hv070wsa_mode = {
>>> .vsync_start = 600 + 10,
>>> .vsync_end = 600 + 10 + 10,
>>> .vtotal = 600 + 10 + 10 + 10,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc boe_hv070wsa = {
>>> @@ -1006,7 +994,6 @@ static const struct drm_display_mode boe_nv101wxmn51_modes[] = {
>>> .vsync_start = 800 + 3,
>>> .vsync_end = 800 + 3 + 5,
>>> .vtotal = 800 + 3 + 5 + 24,
>>> - .vrefresh = 60,
>>> },
>>> {
>>> .clock = 57500,
>>> @@ -1018,7 +1005,6 @@ static const struct drm_display_mode boe_nv101wxmn51_modes[] = {
>>> .vsync_start = 800 + 3,
>>> .vsync_end = 800 + 3 + 5,
>>> .vtotal = 800 + 3 + 5 + 24,
>>> - .vrefresh = 48,
>>> },
>>> };
>>>
>>> @@ -1048,7 +1034,6 @@ static const struct drm_display_mode boe_nv140fhmn49_modes[] = {
>>> .vsync_start = 1080 + 3,
>>> .vsync_end = 1080 + 3 + 5,
>>> .vtotal = 1125,
>>> - .vrefresh = 60,
>>> },
>>> };
>>>
>>> @@ -1079,7 +1064,6 @@ static const struct drm_display_mode cdtech_s043wq26h_ct7_mode = {
>>> .vsync_start = 272 + 8,
>>> .vsync_end = 272 + 8 + 8,
>>> .vtotal = 272 + 8 + 8 + 8,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -1104,7 +1088,6 @@ static const struct drm_display_mode cdtech_s070wv95_ct16_mode = {
>>> .vsync_start = 480 + 29,
>>> .vsync_end = 480 + 29 + 13,
>>> .vtotal = 480 + 29 + 13 + 3,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -1128,7 +1111,6 @@ static const struct drm_display_mode chunghwa_claa070wp03xg_mode = {
>>> .vsync_start = 1280 + 1,
>>> .vsync_end = 1280 + 1 + 7,
>>> .vtotal = 1280 + 1 + 7 + 15,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -1152,7 +1134,6 @@ static const struct drm_display_mode chunghwa_claa101wa01a_mode = {
>>> .vsync_start = 768 + 4,
>>> .vsync_end = 768 + 4 + 4,
>>> .vtotal = 768 + 4 + 4 + 4,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc chunghwa_claa101wa01a = {
>>> @@ -1175,7 +1156,6 @@ static const struct drm_display_mode chunghwa_claa101wb01_mode = {
>>> .vsync_start = 768 + 16,
>>> .vsync_end = 768 + 16 + 8,
>>> .vtotal = 768 + 16 + 8 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc chunghwa_claa101wb01 = {
>>> @@ -1198,7 +1178,6 @@ static const struct drm_display_mode dataimage_scf0700c48ggu18_mode = {
>>> .vsync_start = 480 + 10,
>>> .vsync_end = 480 + 10 + 2,
>>> .vtotal = 480 + 10 + 2 + 33,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -1285,7 +1264,6 @@ static const struct drm_display_mode edt_et035012dm6_mode = {
>>> .vsync_start = 240 + 4,
>>> .vsync_end = 240 + 4 + 4,
>>> .vtotal = 240 + 4 + 4 + 14,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -1317,7 +1295,6 @@ static const struct drm_display_mode edt_etm043080dh6gp_mode = {
>>> .vsync_start = 288 + 2,
>>> .vsync_end = 288 + 2 + 4,
>>> .vtotal = 288 + 2 + 4 + 10,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc edt_etm043080dh6gp = {
>>> @@ -1342,7 +1319,6 @@ static const struct drm_display_mode edt_etm0430g0dh6_mode = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 10,
>>> .vtotal = 272 + 2 + 10 + 2,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -1366,7 +1342,6 @@ static const struct drm_display_mode edt_et057090dhu_mode = {
>>> .vsync_start = 480 + 10,
>>> .vsync_end = 480 + 10 + 3,
>>> .vtotal = 480 + 10 + 3 + 32,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -1392,7 +1367,6 @@ static const struct drm_display_mode edt_etm0700g0dh6_mode = {
>>> .vsync_start = 480 + 10,
>>> .vsync_end = 480 + 10 + 2,
>>> .vtotal = 480 + 10 + 2 + 33,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -1457,7 +1431,6 @@ static const struct drm_display_mode foxlink_fl500wvr00_a0t_mode = {
>>> .vsync_start = 480 + 37,
>>> .vsync_end = 480 + 37 + 2,
>>> .vtotal = 480 + 37 + 2 + 8,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc foxlink_fl500wvr00_a0t = {
>>> @@ -1481,7 +1454,6 @@ static const struct drm_display_mode frida_frd350h54004_mode = {
>>> .vsync_start = 240 + 2,
>>> .vsync_end = 240 + 2 + 6,
>>> .vtotal = 240 + 2 + 6 + 2,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> };
>>>
>>> @@ -1508,7 +1480,6 @@ static const struct drm_display_mode friendlyarm_hd702e_mode = {
>>> .vsync_start = 1280 + 4,
>>> .vsync_end = 1280 + 4 + 8,
>>> .vtotal = 1280 + 4 + 8 + 4,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -1531,7 +1502,6 @@ static const struct drm_display_mode giantplus_gpg482739qs5_mode = {
>>> .vsync_start = 272 + 8,
>>> .vsync_end = 272 + 8 + 1,
>>> .vtotal = 272 + 8 + 1 + 8,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc giantplus_gpg482739qs5 = {
>>> @@ -1635,7 +1605,6 @@ static const struct drm_display_mode hitachi_tx23d38vm0caa_mode = {
>>> .vsync_start = 480 + 16,
>>> .vsync_end = 480 + 16 + 13,
>>> .vtotal = 480 + 16 + 13 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc hitachi_tx23d38vm0caa = {
>>> @@ -1662,7 +1631,6 @@ static const struct drm_display_mode innolux_at043tn24_mode = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 10,
>>> .vtotal = 272 + 2 + 10 + 2,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -1688,7 +1656,6 @@ static const struct drm_display_mode innolux_at070tn92_mode = {
>>> .vsync_start = 480 + 22,
>>> .vsync_end = 480 + 22 + 10,
>>> .vtotal = 480 + 22 + 23 + 10,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc innolux_at070tn92 = {
>>> @@ -1799,7 +1766,6 @@ static const struct drm_display_mode innolux_g121x1_l03_mode = {
>>> .vsync_start = 768 + 38,
>>> .vsync_end = 768 + 38 + 1,
>>> .vtotal = 768 + 38 + 1 + 0,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -1861,7 +1827,6 @@ static const struct drm_display_mode innolux_n156bge_l21_mode = {
>>> .vsync_start = 768 + 2,
>>> .vsync_end = 768 + 2 + 6,
>>> .vtotal = 768 + 2 + 6 + 12,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc innolux_n156bge_l21 = {
>>> @@ -1884,7 +1849,6 @@ static const struct drm_display_mode innolux_p120zdg_bf1_mode = {
>>> .vsync_start = 1440 + 3,
>>> .vsync_end = 1440 + 3 + 10,
>>> .vtotal = 1440 + 3 + 10 + 27,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> };
>>>
>>> @@ -1912,7 +1876,6 @@ static const struct drm_display_mode innolux_zj070na_01p_mode = {
>>> .vsync_start = 600 + 16,
>>> .vsync_end = 600 + 16 + 4,
>>> .vtotal = 600 + 16 + 4 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc innolux_zj070na_01p = {
>>> @@ -2008,7 +1971,6 @@ static const struct drm_display_mode lemaker_bl035_rgb_002_mode = {
>>> .vsync_start = 240 + 4,
>>> .vsync_end = 240 + 4 + 3,
>>> .vtotal = 240 + 4 + 3 + 15,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc lemaker_bl035_rgb_002 = {
>>> @@ -2032,7 +1994,6 @@ static const struct drm_display_mode lg_lb070wv8_mode = {
>>> .vsync_start = 480 + 10,
>>> .vsync_end = 480 + 10 + 25,
>>> .vtotal = 480 + 10 + 25 + 10,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc lg_lb070wv8 = {
>>> @@ -2057,7 +2018,6 @@ static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
>>> .vsync_start = 2048 + 8,
>>> .vsync_end = 2048 + 8 + 4,
>>> .vtotal = 2048 + 8 + 4 + 8,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -2080,7 +2040,6 @@ static const struct drm_display_mode lg_lp097qx1_spa1_mode = {
>>> .vsync_start = 1536 + 3,
>>> .vsync_end = 1536 + 3 + 1,
>>> .vtotal = 1536 + 3 + 1 + 9,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc lg_lp097qx1_spa1 = {
>>> @@ -2102,7 +2061,6 @@ static const struct drm_display_mode lg_lp120up1_mode = {
>>> .vsync_start = 1280 + 4,
>>> .vsync_end = 1280 + 4 + 4,
>>> .vtotal = 1280 + 4 + 4 + 12,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc lg_lp120up1 = {
>>> @@ -2125,7 +2083,6 @@ static const struct drm_display_mode lg_lp129qe_mode = {
>>> .vsync_start = 1700 + 3,
>>> .vsync_end = 1700 + 3 + 10,
>>> .vtotal = 1700 + 3 + 10 + 36,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc lg_lp129qe = {
>>> @@ -2206,7 +2163,6 @@ static const struct drm_display_mode mitsubishi_aa070mc01_mode = {
>>> .vsync_start = 480 + 0,
>>> .vsync_end = 480 + 48 + 1,
>>> .vtotal = 480 + 48 + 1 + 0,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -2221,7 +2177,6 @@ static const struct drm_display_mode logicpd_type_28_mode = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 11,
>>> .vtotal = 272 + 2 + 11 + 3,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> };
>>>
>>> @@ -2301,7 +2256,6 @@ static const struct drm_display_mode nec_nl4827hc19_05b_mode = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 4,
>>> .vtotal = 272 + 2 + 4 + 2,
>>> - .vrefresh = 74,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -2327,7 +2281,6 @@ static const struct drm_display_mode netron_dy_e231732_mode = {
>>> .vsync_start = 600 + 127,
>>> .vsync_end = 600 + 127 + 20,
>>> .vtotal = 600 + 127 + 20 + 3,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc netron_dy_e231732 = {
>>> @@ -2350,7 +2303,6 @@ static const struct drm_display_mode newhaven_nhd_43_480272ef_atxl_mode = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 10,
>>> .vtotal = 272 + 2 + 10 + 2,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -2458,7 +2410,6 @@ static const struct drm_display_mode olimex_lcd_olinuxino_43ts_mode = {
>>> .vsync_start = 272 + 8,
>>> .vsync_end = 272 + 8 + 5,
>>> .vtotal = 272 + 8 + 5 + 3,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc olimex_lcd_olinuxino_43ts = {
>>> @@ -2486,7 +2437,6 @@ static const struct drm_display_mode ontat_yx700wv03_mode = {
>>> .vsync_start = 483,
>>> .vsync_end = 493,
>>> .vtotal = 500,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -2515,7 +2465,6 @@ static const struct drm_display_mode ortustech_com37h3m_mode = {
>>> .vsync_start = 640 + 4,
>>> .vsync_end = 640 + 4 + 3,
>>> .vtotal = 640 + 4 + 3 + 4,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -2542,7 +2491,6 @@ static const struct drm_display_mode ortustech_com43h4m85ulc_mode = {
>>> .vsync_start = 800 + 3,
>>> .vsync_end = 800 + 3 + 3,
>>> .vtotal = 800 + 3 + 3 + 3,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc ortustech_com43h4m85ulc = {
>>> @@ -2567,7 +2515,6 @@ static const struct drm_display_mode osddisplays_osd070t1718_19ts_mode = {
>>> .vsync_start = 480 + 22,
>>> .vsync_end = 480 + 22 + 13,
>>> .vtotal = 480 + 22 + 13 + 10,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -2594,7 +2541,6 @@ static const struct drm_display_mode pda_91_00156_a0_mode = {
>>> .vsync_start = 480 + 1,
>>> .vsync_end = 480 + 1 + 23,
>>> .vtotal = 480 + 1 + 23 + 22,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc pda_91_00156_a0 = {
>>> @@ -2618,7 +2564,6 @@ static const struct drm_display_mode qd43003c0_40_mode = {
>>> .vsync_start = 272 + 4,
>>> .vsync_end = 272 + 4 + 10,
>>> .vtotal = 272 + 4 + 10 + 2,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc qd43003c0_40 = {
>>> @@ -2672,7 +2617,6 @@ static const struct drm_display_mode rocktech_rk101ii01d_ct_mode = {
>>> .vsync_start = 800 + 2,
>>> .vsync_end = 800 + 2 + 5,
>>> .vtotal = 800 + 2 + 5 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc rocktech_rk101ii01d_ct = {
>>> @@ -2701,7 +2645,6 @@ static const struct drm_display_mode samsung_lsn122dl01_c01_mode = {
>>> .vsync_start = 1600 + 2,
>>> .vsync_end = 1600 + 2 + 5,
>>> .vtotal = 1600 + 2 + 5 + 57,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc samsung_lsn122dl01_c01 = {
>>> @@ -2723,7 +2666,6 @@ static const struct drm_display_mode samsung_ltn101nt05_mode = {
>>> .vsync_start = 600 + 3,
>>> .vsync_end = 600 + 3 + 6,
>>> .vtotal = 600 + 3 + 6 + 61,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc samsung_ltn101nt05 = {
>>> @@ -2746,7 +2688,6 @@ static const struct drm_display_mode samsung_ltn140at29_301_mode = {
>>> .vsync_start = 768 + 2,
>>> .vsync_end = 768 + 2 + 5,
>>> .vtotal = 768 + 2 + 5 + 17,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc samsung_ltn140at29_301 = {
>>> @@ -2793,7 +2734,6 @@ static const struct drm_display_mode sharp_ld_d5116z01b_mode = {
>>> .vsync_start = 1280 + 3,
>>> .vsync_end = 1280 + 3 + 10,
>>> .vtotal = 1280 + 3 + 10 + 57,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> };
>>>
>>> @@ -2819,7 +2759,6 @@ static const struct drm_display_mode sharp_lq070y3dg3b_mode = {
>>> .vsync_start = 480 + 8,
>>> .vsync_end = 480 + 8 + 2,
>>> .vtotal = 480 + 8 + 2 + 35,
>>> - .vrefresh = 60,
>>> .flags = DISPLAY_FLAGS_PIXDATA_POSEDGE,
>>> };
>>>
>>> @@ -2846,7 +2785,6 @@ static const struct drm_display_mode sharp_lq035q7db03_mode = {
>>> .vsync_start = 320 + 9,
>>> .vsync_end = 320 + 9 + 1,
>>> .vtotal = 320 + 9 + 1 + 7,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc sharp_lq035q7db03 = {
>>> @@ -2923,7 +2861,6 @@ static const struct drm_display_mode sharp_lq150x1lg11_mode = {
>>> .vsync_start = 768 + 37,
>>> .vsync_end = 768 + 37 + 2,
>>> .vtotal = 768 + 37 + 2 + 8,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc sharp_lq150x1lg11 = {
>>> @@ -2974,7 +2911,6 @@ static const struct drm_display_mode shelly_sca07010_bfn_lnn_mode = {
>>> .vsync_start = 480 + 1,
>>> .vsync_end = 480 + 1 + 23,
>>> .vtotal = 480 + 1 + 23 + 22,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc shelly_sca07010_bfn_lnn = {
>>> @@ -2997,7 +2933,6 @@ static const struct drm_display_mode starry_kr122ea0sra_mode = {
>>> .vsync_start = 1200 + 15,
>>> .vsync_end = 1200 + 15 + 2,
>>> .vtotal = 1200 + 15 + 2 + 18,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -3025,7 +2960,6 @@ static const struct drm_display_mode tfc_s9700rtwv43tr_01b_mode = {
>>> .vsync_start = 480 + 13,
>>> .vsync_end = 480 + 13 + 2,
>>> .vtotal = 480 + 13 + 2 + 29,
>>> - .vrefresh = 62,
>>> };
>>>
>>> static const struct panel_desc tfc_s9700rtwv43tr_01b = {
>>> @@ -3101,7 +3035,6 @@ static const struct drm_display_mode ti_nspire_cx_lcd_mode[] = {
>>> .vsync_start = 240 + 3,
>>> .vsync_end = 240 + 3 + 1,
>>> .vtotal = 240 + 3 + 1 + 17,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> },
>>> };
>>> @@ -3129,7 +3062,6 @@ static const struct drm_display_mode ti_nspire_classic_lcd_mode[] = {
>>> .vsync_start = 240 + 0,
>>> .vsync_end = 240 + 0 + 1,
>>> .vtotal = 240 + 0 + 1 + 0,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC,
>>> },
>>> };
>>> @@ -3158,7 +3090,6 @@ static const struct drm_display_mode toshiba_lt089ac29000_mode = {
>>> .vsync_start = 768 + 20,
>>> .vsync_end = 768 + 20 + 7,
>>> .vtotal = 768 + 20 + 7 + 3,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc toshiba_lt089ac29000 = {
>>> @@ -3183,7 +3114,6 @@ static const struct drm_display_mode tpk_f07a_0102_mode = {
>>> .vsync_start = 480 + 10,
>>> .vsync_end = 480 + 10 + 2,
>>> .vtotal = 480 + 10 + 2 + 33,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc tpk_f07a_0102 = {
>>> @@ -3206,7 +3136,6 @@ static const struct drm_display_mode tpk_f10a_0102_mode = {
>>> .vsync_start = 600 + 20,
>>> .vsync_end = 600 + 20 + 5,
>>> .vtotal = 600 + 20 + 5 + 25,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc tpk_f10a_0102 = {
>>> @@ -3265,7 +3194,6 @@ static const struct drm_display_mode vl050_8048nt_c01_mode = {
>>> .vsync_start = 480 + 22,
>>> .vsync_end = 480 + 22 + 10,
>>> .vtotal = 480 + 22 + 10 + 23,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> @@ -3291,7 +3219,6 @@ static const struct drm_display_mode winstar_wf35ltiacd_mode = {
>>> .vsync_start = 240 + 4,
>>> .vsync_end = 240 + 4 + 3,
>>> .vtotal = 240 + 4 + 3 + 15,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -3317,7 +3244,6 @@ static const struct drm_display_mode arm_rtsm_mode[] = {
>>> .vsync_start = 768 + 3,
>>> .vsync_end = 768 + 3 + 6,
>>> .vtotal = 768 + 3 + 6 + 29,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> },
>>> };
>>> @@ -3743,7 +3669,6 @@ static const struct drm_display_mode auo_b080uan01_mode = {
>>> .vsync_start = 1920 + 9,
>>> .vsync_end = 1920 + 9 + 2,
>>> .vtotal = 1920 + 9 + 2 + 8,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc_dsi auo_b080uan01 = {
>>> @@ -3771,7 +3696,6 @@ static const struct drm_display_mode boe_tv080wum_nl0_mode = {
>>> .vsync_start = 1920 + 21,
>>> .vsync_end = 1920 + 21 + 3,
>>> .vtotal = 1920 + 21 + 3 + 18,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
>>> };
>>>
>>> @@ -3801,7 +3725,6 @@ static const struct drm_display_mode lg_ld070wx3_sl01_mode = {
>>> .vsync_start = 1280 + 28,
>>> .vsync_end = 1280 + 28 + 1,
>>> .vtotal = 1280 + 28 + 1 + 14,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc_dsi lg_ld070wx3_sl01 = {
>>> @@ -3829,7 +3752,6 @@ static const struct drm_display_mode lg_lh500wx1_sd03_mode = {
>>> .vsync_start = 1280 + 8,
>>> .vsync_end = 1280 + 8 + 4,
>>> .vtotal = 1280 + 8 + 4 + 12,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc_dsi lg_lh500wx1_sd03 = {
>>> @@ -3857,7 +3779,6 @@ static const struct drm_display_mode panasonic_vvx10f004b00_mode = {
>>> .vsync_start = 1200 + 17,
>>> .vsync_end = 1200 + 17 + 2,
>>> .vtotal = 1200 + 17 + 2 + 16,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc_dsi panasonic_vvx10f004b00 = {
>>> @@ -3886,7 +3807,6 @@ static const struct drm_display_mode lg_acx467akm_7_mode = {
>>> .vsync_start = 1920 + 2,
>>> .vsync_end = 1920 + 2 + 2,
>>> .vtotal = 1920 + 2 + 2 + 2,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static const struct panel_desc_dsi lg_acx467akm_7 = {
>>> @@ -3914,7 +3834,6 @@ static const struct drm_display_mode osd101t2045_53ts_mode = {
>>> .vsync_start = 1200 + 16,
>>> .vsync_end = 1200 + 16 + 2,
>>> .vtotal = 1200 + 16 + 2 + 16,
>>> - .vrefresh = 60,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> };
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7701.c b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
>>> index 4b4f2558e3b4..692041ae4eb6 100644
>>> --- a/drivers/gpu/drm/panel/panel-sitronix-st7701.c
>>> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7701.c
>>> @@ -272,7 +272,7 @@ static int st7701_get_modes(struct drm_panel *panel,
>>> DRM_DEV_ERROR(&st7701->dsi->dev,
>>> "failed to add mode %ux%ux@%u\n",
>>> desc_mode->hdisplay, desc_mode->vdisplay,
>>> - desc_mode->vrefresh);
>>> + drm_mode_vrefresh(desc_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
>>> index cc02c54c1b2e..3513ae40efa8 100644
>>> --- a/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
>>> +++ b/drivers/gpu/drm/panel/panel-sitronix-st7789v.c
>>> @@ -165,7 +165,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 320 + 8,
>>> .vsync_end = 320 + 8 + 4,
>>> .vtotal = 320 + 8 + 4 + 4,
>>> - .vrefresh = 60,
>>> };
>>>
>>> static int st7789v_get_modes(struct drm_panel *panel,
>>> @@ -177,7 +176,7 @@ static int st7789v_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> dev_err(panel->dev, "failed to add mode %ux%ux@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-sony-acx424akp.c b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
>>> index de0abf76ae6f..eba05bd6ec9a 100644
>>> --- a/drivers/gpu/drm/panel/panel-sony-acx424akp.c
>>> +++ b/drivers/gpu/drm/panel/panel-sony-acx424akp.c
>>> @@ -57,7 +57,6 @@ static const struct drm_display_mode sony_acx424akp_vid_mode = {
>>> .vsync_start = 864 + 14,
>>> .vsync_end = 864 + 14 + 1,
>>> .vtotal = 864 + 14 + 1 + 11,
>>> - .vrefresh = 60,
>>> .width_mm = 48,
>>> .height_mm = 84,
>>> .flags = DRM_MODE_FLAG_PVSYNC,
>>> @@ -81,7 +80,6 @@ static const struct drm_display_mode sony_acx424akp_cmd_mode = {
>>> * Some desired refresh rate, experiments at the maximum "pixel"
>>> * clock speed (HS clock 420 MHz) yields around 117Hz.
>>> */
>>> - .vrefresh = 60,
>>> .width_mm = 48,
>>> .height_mm = 84,
>>> };
>>> diff --git a/drivers/gpu/drm/panel/panel-sony-acx565akm.c b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
>>> index 5c4b6f6e5c2d..fc6a7e451abe 100644
>>> --- a/drivers/gpu/drm/panel/panel-sony-acx565akm.c
>>> +++ b/drivers/gpu/drm/panel/panel-sony-acx565akm.c
>>> @@ -514,7 +514,6 @@ static const struct drm_display_mode acx565akm_mode = {
>>> .vsync_start = 480 + 3,
>>> .vsync_end = 480 + 3 + 3,
>>> .vtotal = 480 + 3 + 3 + 4,
>>> - .vrefresh = 57,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 77,
>>> diff --git a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
>>> index aeca15dfeb3c..58d683cc5215 100644
>>> --- a/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
>>> +++ b/drivers/gpu/drm/panel/panel-tpo-td028ttec1.c
>>> @@ -281,7 +281,6 @@ static const struct drm_display_mode td028ttec1_mode = {
>>> .vsync_start = 640 + 4,
>>> .vsync_end = 640 + 4 + 2,
>>> .vtotal = 640 + 4 + 2 + 2,
>>> - .vrefresh = 66,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 43,
>>> diff --git a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
>>> index 75f1f1f1b6de..9b2a356c4d9a 100644
>>> --- a/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
>>> +++ b/drivers/gpu/drm/panel/panel-tpo-td043mtea1.c
>>> @@ -339,7 +339,6 @@ static const struct drm_display_mode td043mtea1_mode = {
>>> .vsync_start = 480 + 39,
>>> .vsync_end = 480 + 39 + 1,
>>> .vtotal = 480 + 39 + 1 + 34,
>>> - .vrefresh = 60,
>>> .type = DRM_MODE_TYPE_DRIVER | DRM_MODE_TYPE_PREFERRED,
>>> .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
>>> .width_mm = 94,
>>> diff --git a/drivers/gpu/drm/panel/panel-tpo-tpg110.c b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
>>> index 8472d018c16f..c7a2f0ae5ba5 100644
>>> --- a/drivers/gpu/drm/panel/panel-tpo-tpg110.c
>>> +++ b/drivers/gpu/drm/panel/panel-tpo-tpg110.c
>>> @@ -112,7 +112,6 @@ static const struct tpg110_panel_mode tpg110_modes[] = {
>>> .vsync_start = 480 + 10,
>>> .vsync_end = 480 + 10 + 1,
>>> .vtotal = 480 + 10 + 1 + 35,
>>> - .vrefresh = 60,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
>>> },
>>> @@ -129,7 +128,6 @@ static const struct tpg110_panel_mode tpg110_modes[] = {
>>> .vsync_start = 480 + 18,
>>> .vsync_end = 480 + 18 + 1,
>>> .vtotal = 480 + 18 + 1 + 27,
>>> - .vrefresh = 60,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
>>> },
>>> @@ -146,7 +144,6 @@ static const struct tpg110_panel_mode tpg110_modes[] = {
>>> .vsync_start = 272 + 2,
>>> .vsync_end = 272 + 2 + 1,
>>> .vtotal = 272 + 2 + 1 + 12,
>>> - .vrefresh = 60,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
>>> },
>>> @@ -163,7 +160,6 @@ static const struct tpg110_panel_mode tpg110_modes[] = {
>>> .vsync_start = 640 + 4,
>>> .vsync_end = 640 + 4 + 1,
>>> .vtotal = 640 + 4 + 1 + 8,
>>> - .vrefresh = 60,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
>>> },
>>> @@ -180,7 +176,6 @@ static const struct tpg110_panel_mode tpg110_modes[] = {
>>> .vsync_start = 240 + 2,
>>> .vsync_end = 240 + 2 + 1,
>>> .vtotal = 240 + 2 + 1 + 20,
>>> - .vrefresh = 60,
>>> },
>>> .bus_flags = DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE,
>>> },
>>> diff --git a/drivers/gpu/drm/panel/panel-truly-nt35597.c b/drivers/gpu/drm/panel/panel-truly-nt35597.c
>>> index 012ca62bf30e..9d669088cffc 100644
>>> --- a/drivers/gpu/drm/panel/panel-truly-nt35597.c
>>> +++ b/drivers/gpu/drm/panel/panel-truly-nt35597.c
>>> @@ -536,7 +536,6 @@ static const struct drm_display_mode qcom_sdm845_mtp_2k_mode = {
>>> .vsync_start = 2560 + 8,
>>> .vsync_end = 2560 + 8 + 1,
>>> .vtotal = 2560 + 8 + 1 + 7,
>>> - .vrefresh = 60,
>>> .flags = 0,
>>> };
>>>
>>> diff --git a/drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c b/drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c
>>> index 1645aceab597..8a3b2f906e63 100644
>>> --- a/drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c
>>> +++ b/drivers/gpu/drm/panel/panel-xinpeng-xpp055c272.c
>>> @@ -243,7 +243,6 @@ static const struct drm_display_mode default_mode = {
>>> .vsync_start = 1280 + 22,
>>> .vsync_end = 1280 + 22 + 4,
>>> .vtotal = 1280 + 22 + 4 + 11,
>>> - .vrefresh = 60,
>>> .clock = 64000,
>>> .width_mm = 68,
>>> .height_mm = 121,
>>> @@ -259,7 +258,7 @@ static int xpp055c272_get_modes(struct drm_panel *panel,
>>> if (!mode) {
>>> DRM_DEV_ERROR(ctx->dev, "Failed to add mode %ux%u@%u\n",
>>> default_mode.hdisplay, default_mode.vdisplay,
>>> - default_mode.vrefresh);
>>> + drm_mode_vrefresh(&default_mode));
>>> return -ENOMEM;
>>> }
>>>
>>> diff --git a/drivers/gpu/drm/sti/sti_hda.c b/drivers/gpu/drm/sti/sti_hda.c
>>> index 2bb32009d117..3dc6e2e96541 100644
>>> --- a/drivers/gpu/drm/sti/sti_hda.c
>>> +++ b/drivers/gpu/drm/sti/sti_hda.c
>>> @@ -586,7 +586,6 @@ static int sti_hda_connector_get_modes(struct drm_connector *connector)
>>> &hda_supported_modes[i].mode);
>>> if (!mode)
>>> continue;
>>> - mode->vrefresh = drm_mode_vrefresh(mode);
>>>
>>> /* the first mode is the preferred mode */
>>> if (i == 0)
>>> diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
>>> index eb6e23e8d8ef..0b07f7b5ece4 100644
>>> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
>>> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
>>> @@ -2226,7 +2226,6 @@ void vmw_guess_mode_timing(struct drm_display_mode *mode)
>>> mode->vtotal = mode->vsync_end + 50;
>>>
>>> mode->clock = (u32)mode->htotal * (u32)mode->vtotal / 100 * 6;
>>> - mode->vrefresh = drm_mode_vrefresh(mode);
>>> }
>>>
>>>
>>> @@ -2300,7 +2299,6 @@ int vmw_du_connector_fill_modes(struct drm_connector *connector,
>>> mode = drm_mode_duplicate(dev, bmode);
>>> if (!mode)
>>> return 0;
>>> - mode->vrefresh = drm_mode_vrefresh(mode);
>>>
>>> drm_mode_probed_add(connector, mode);
>>> }
>>> diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h
>>> index 7dab7f172431..52e8ca613e4b 100644
>>> --- a/include/drm/drm_modes.h
>>> +++ b/include/drm/drm_modes.h
>>> @@ -380,16 +380,6 @@ struct drm_display_mode {
>>> */
>>> int private_flags;
>>>
>>> - /**
>>> - * @vrefresh:
>>> - *
>>> - * Vertical refresh rate, for debug output in human readable form. Not
>>> - * used in a functional way.
>>> - *
>>> - * This value is in Hz.
>>> - */
>>> - int vrefresh;
>>> -
>>> /**
>>> * @picture_aspect_ratio:
>>> *
>>> @@ -421,7 +411,7 @@ struct drm_display_mode {
>>> * @m: display mode
>>> */
>>> #define DRM_MODE_ARG(m) \
>>> - (m)->name, (m)->vrefresh, (m)->clock, \
>>> + (m)->name, drm_mode_vrefresh(m), (m)->clock, \
>>> (m)->hdisplay, (m)->hsync_start, (m)->hsync_end, (m)->htotal, \
>>> (m)->vdisplay, (m)->vsync_start, (m)->vsync_end, (m)->vtotal, \
>>> (m)->type, (m)->flags