diff options
| author | Rafał Miłecki <zajec5@gmail.com> | 2013-12-07 07:22:42 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-01-09 15:24:21 -0500 |
| commit | a6443066fcb7cf9ae9e0740cfaff6f615affca5c (patch) | |
| tree | 5938b3000c92694cbd346462cf6cfe0070819100 /drivers/gpu | |
| parent | b69ec589136c6300ddf03af45a1c9006a942c321 (diff) | |
drm/edid: add quirk for BPC in Samsung NP700G7A-S01PL notebook
commit 49d45a31b71d7d9da74485922bdb63faf3dc9684 upstream.
This bug in EDID was exposed by:
commit eccea7920cfb009c2fa40e9ecdce8c36f61cab66
Author: Alex Deucher <alexander.deucher@amd.com>
Date: Mon Mar 26 15:12:54 2012 -0400
drm/radeon/kms: improve bpc handling (v2)
Which resulted in kind of regression in 3.5. This fixes
https://bugs.freedesktop.org/show_bug.cgi?id=70934
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpu')
| -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 0cb9b5d8e30a..83f0ba5859c0 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
| @@ -68,6 +68,8 @@ | |||
| 68 | #define EDID_QUIRK_DETAILED_SYNC_PP (1 << 6) | 68 | #define EDID_QUIRK_DETAILED_SYNC_PP (1 << 6) |
| 69 | /* Force reduced-blanking timings for detailed modes */ | 69 | /* Force reduced-blanking timings for detailed modes */ |
| 70 | #define EDID_QUIRK_FORCE_REDUCED_BLANKING (1 << 7) | 70 | #define EDID_QUIRK_FORCE_REDUCED_BLANKING (1 << 7) |
| 71 | /* Force 8bpc */ | ||
| 72 | #define EDID_QUIRK_FORCE_8BPC (1 << 8) | ||
| 71 | 73 | ||
| 72 | struct detailed_mode_closure { | 74 | struct detailed_mode_closure { |
| 73 | struct drm_connector *connector; | 75 | struct drm_connector *connector; |
| @@ -128,6 +130,9 @@ static struct edid_quirk { | |||
| 128 | 130 | ||
| 129 | /* Medion MD 30217 PG */ | 131 | /* Medion MD 30217 PG */ |
| 130 | { "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 }, | 132 | { "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 }, |
| 133 | |||
| 134 | /* Panel in Samsung NP700G7A-S01PL notebook reports 6bpc */ | ||
| 135 | { "SEC", 0xd033, EDID_QUIRK_FORCE_8BPC }, | ||
| 131 | }; | 136 | }; |
| 132 | 137 | ||
| 133 | /* | 138 | /* |
| @@ -2955,6 +2960,9 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid) | |||
| 2955 | 2960 | ||
| 2956 | drm_add_display_info(edid, &connector->display_info); | 2961 | drm_add_display_info(edid, &connector->display_info); |
| 2957 | 2962 | ||
| 2963 | if (quirks & EDID_QUIRK_FORCE_8BPC) | ||
| 2964 | connector->display_info.bpc = 8; | ||
| 2965 | |||
| 2958 | return num_modes; | 2966 | return num_modes; |
| 2959 | } | 2967 | } |
| 2960 | EXPORT_SYMBOL(drm_add_edid_modes); | 2968 | EXPORT_SYMBOL(drm_add_edid_modes); |
