diff options
author | Mario Kleiner <mario.kleiner.de@gmail.com> | 2014-05-23 15:40:55 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-06-02 18:37:35 -0400 |
commit | bc5b96414cf8fe1cf73f778144ed6e10cbd849b4 (patch) | |
tree | a690529897b23892cb16f1c7e405379f73a22125 | |
parent | d0c94692e0a360828745a469bcf90b5c4f9273d0 (diff) |
drm/edid: Add quirk for Sony PVM-2541A to get 12 bpc hdmi deep color.
The Sony PVM-2541A OLED high precision color display supports
both 10 bpc and 12 bpc hdmi deep color input, but its edid
does not signal any deep color support.
Add a quirk to force it being treated as a 12 bpc panel.
Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/drm_edid.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 3989c185579f..643f830f3413 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
@@ -70,6 +70,8 @@ | |||
70 | #define EDID_QUIRK_FORCE_REDUCED_BLANKING (1 << 7) | 70 | #define EDID_QUIRK_FORCE_REDUCED_BLANKING (1 << 7) |
71 | /* Force 8bpc */ | 71 | /* Force 8bpc */ |
72 | #define EDID_QUIRK_FORCE_8BPC (1 << 8) | 72 | #define EDID_QUIRK_FORCE_8BPC (1 << 8) |
73 | /* Force 12bpc */ | ||
74 | #define EDID_QUIRK_FORCE_12BPC (1 << 9) | ||
73 | 75 | ||
74 | struct detailed_mode_closure { | 76 | struct detailed_mode_closure { |
75 | struct drm_connector *connector; | 77 | struct drm_connector *connector; |
@@ -125,6 +127,9 @@ static struct edid_quirk { | |||
125 | { "SAM", 596, EDID_QUIRK_PREFER_LARGE_60 }, | 127 | { "SAM", 596, EDID_QUIRK_PREFER_LARGE_60 }, |
126 | { "SAM", 638, EDID_QUIRK_PREFER_LARGE_60 }, | 128 | { "SAM", 638, EDID_QUIRK_PREFER_LARGE_60 }, |
127 | 129 | ||
130 | /* Sony PVM-2541A does up to 12 bpc, but only reports max 8 bpc */ | ||
131 | { "SNY", 0x2541, EDID_QUIRK_FORCE_12BPC }, | ||
132 | |||
128 | /* ViewSonic VA2026w */ | 133 | /* ViewSonic VA2026w */ |
129 | { "VSC", 5020, EDID_QUIRK_FORCE_REDUCED_BLANKING }, | 134 | { "VSC", 5020, EDID_QUIRK_FORCE_REDUCED_BLANKING }, |
130 | 135 | ||
@@ -3660,6 +3665,9 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) | |||
3660 | if (quirks & EDID_QUIRK_FORCE_8BPC) | 3665 | if (quirks & EDID_QUIRK_FORCE_8BPC) |
3661 | connector->display_info.bpc = 8; | 3666 | connector->display_info.bpc = 8; |
3662 | 3667 | ||
3668 | if (quirks & EDID_QUIRK_FORCE_12BPC) | ||
3669 | connector->display_info.bpc = 12; | ||
3670 | |||
3663 | return num_modes; | 3671 | return num_modes; |
3664 | } | 3672 | } |
3665 | EXPORT_SYMBOL(drm_add_edid_modes); | 3673 | EXPORT_SYMBOL(drm_add_edid_modes); |