Skip to content

Commit 511c3ec

Browse files
Nilesh LaadMahadevan P
authored andcommitted
FROMLIST: drm/bridge: lt9611uxc: extend mode valid checks
Currently valid mode checks are only for hdisplay and vdisplay, add htotal and vtotal to filter only specific modes. Link:https://lore.kernel.org/lkml/[email protected]/ Signed-off-by: Nilesh Laad <[email protected]> Signed-off-by: Mahadevan P <[email protected]>
1 parent 4272358 commit 511c3ec

File tree

1 file changed

+20
-16
lines changed

1 file changed

+20
-16
lines changed

drivers/gpu/drm/bridge/lontium-lt9611uxc.c

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ static const struct regmap_config lt9611uxc_regmap_config = {
8989

9090
struct lt9611uxc_mode {
9191
u16 hdisplay;
92+
u16 htotal;
9293
u16 vdisplay;
94+
u16 vtotal;
9395
u8 vrefresh;
9496
};
9597

@@ -98,22 +100,22 @@ struct lt9611uxc_mode {
98100
* Enumerate them here to check whether the mode is supported.
99101
*/
100102
static struct lt9611uxc_mode lt9611uxc_modes[] = {
101-
{ 1920, 1080, 60 },
102-
{ 1920, 1080, 30 },
103-
{ 1920, 1080, 25 },
104-
{ 1366, 768, 60 },
105-
{ 1360, 768, 60 },
106-
{ 1280, 1024, 60 },
107-
{ 1280, 800, 60 },
108-
{ 1280, 720, 60 },
109-
{ 1280, 720, 50 },
110-
{ 1280, 720, 30 },
111-
{ 1152, 864, 60 },
112-
{ 1024, 768, 60 },
113-
{ 800, 600, 60 },
114-
{ 720, 576, 50 },
115-
{ 720, 480, 60 },
116-
{ 640, 480, 60 },
103+
{ 1920, 2200, 1080, 1125, 60 },
104+
{ 1920, 2200, 1080, 1125, 30 },
105+
{ 1920, 2640, 1080, 1125, 25 },
106+
{ 1366, 1792, 768, 798, 60 },
107+
{ 1360, 1792, 768, 795, 60 },
108+
{ 1280, 1688, 1024, 1066, 60 },
109+
{ 1280, 1680, 800, 831, 60 },
110+
{ 1280, 1650, 720, 750, 60 },
111+
{ 1280, 1980, 720, 750, 50 },
112+
{ 1280, 3300, 720, 750, 30 },
113+
{ 1152, 1600, 864, 900, 60 },
114+
{ 1024, 1344, 768, 806, 60 },
115+
{ 800, 1056, 600, 628, 60 },
116+
{ 720, 864, 576, 625, 50 },
117+
{ 720, 858, 480, 525, 60 },
118+
{ 640, 800, 480, 525, 60 },
117119
};
118120

119121
static struct lt9611uxc *bridge_to_lt9611uxc(struct drm_bridge *bridge)
@@ -237,7 +239,9 @@ static struct lt9611uxc_mode *lt9611uxc_find_mode(const struct drm_display_mode
237239

238240
for (i = 0; i < ARRAY_SIZE(lt9611uxc_modes); i++) {
239241
if (lt9611uxc_modes[i].hdisplay == mode->hdisplay &&
242+
lt9611uxc_modes[i].htotal == mode->htotal &&
240243
lt9611uxc_modes[i].vdisplay == mode->vdisplay &&
244+
lt9611uxc_modes[i].vtotal == mode->vtotal &&
241245
lt9611uxc_modes[i].vrefresh == drm_mode_vrefresh(mode)) {
242246
return &lt9611uxc_modes[i];
243247
}

0 commit comments

Comments
 (0)