summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2014-08-05 15:36:26 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2014-08-05 15:38:44 +0100
commit999c8dc700a0573859ec1aaae4500493d01d0c0c (patch)
tree110a1f4dd6f5c3a403bb38e874755daeced1c85c
parentcea47f8cfcd810c103740ec7ee9caeecba1e30f4 (diff)
sna: Add intermediate modes to any output with a scaler
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--src/sna/sna_display.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 59449a0d..0a6d35e6 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -166,6 +166,7 @@ struct sna_output {
unsigned attached_encoders;
unsigned int is_panel : 1;
+ unsigned int has_scaler : 1;
uint32_t edid_idx;
uint32_t edid_blob_id;
@@ -2845,7 +2846,7 @@ sna_output_get_modes(xf86OutputPtr output)
* If it is incorrect, please fix me.
*/
sna_output->has_panel_limits = false;
- if (sna_output->is_panel) {
+ if (sna_output->has_scaler) {
sna_output->panel_hdisplay = sna_output->panel_vdisplay = 0;
for (i = 0; i < sna_output->num_modes; i++) {
struct drm_mode_modeinfo *m;
@@ -3674,6 +3675,7 @@ reset:
sna_output->id = compat_conn.conn.connector_id;
sna_output->is_panel = is_panel(compat_conn.conn.connector_type);
sna_output->edid_idx = find_property(sna, sna_output, "EDID");
+ sna_output->has_scaler = find_property(sna, sna_output, "scaling mode") != -1;
i = find_property(sna, sna_output, "DPMS");
if (i != -1) {
sna_output->dpms_id = sna_output->prop_ids[i];