drm/i915/gvt: add functions to get default resolution
authorHang Yuan <hang.yuan@linux.intel.com>
Wed, 30 Jan 2019 10:25:52 +0000 (18:25 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 31 Jan 2019 03:26:48 +0000 (11:26 +0800)
These functions will get default resolution according to vgpu type.

Signed-off-by: Hang Yuan <hang.yuan@linux.intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/display.c
drivers/gpu/drm/i915/gvt/display.h

index 4f25b6b..6a86fac 100644 (file)
@@ -342,6 +342,7 @@ static int setup_virtual_dp_monitor(struct intel_vgpu *vgpu, int port_num,
        port->dpcd->data_valid = true;
        port->dpcd->data[DPCD_SINK_COUNT] = 0x1;
        port->type = type;
+       port->id = resolution;
 
        emulate_monitor_status_change(vgpu);
 
index ea7c1c5..a87f33e 100644 (file)
@@ -146,18 +146,19 @@ enum intel_vgpu_port_type {
        GVT_PORT_MAX
 };
 
+enum intel_vgpu_edid {
+       GVT_EDID_1024_768,
+       GVT_EDID_1920_1200,
+       GVT_EDID_NUM,
+};
+
 struct intel_vgpu_port {
        /* per display EDID information */
        struct intel_vgpu_edid_data *edid;
        /* per display DPCD information */
        struct intel_vgpu_dpcd_data *dpcd;
        int type;
-};
-
-enum intel_vgpu_edid {
-       GVT_EDID_1024_768,
-       GVT_EDID_1920_1200,
-       GVT_EDID_NUM,
+       enum intel_vgpu_edid id;
 };
 
 static inline char *vgpu_edid_str(enum intel_vgpu_edid id)
@@ -172,6 +173,30 @@ static inline char *vgpu_edid_str(enum intel_vgpu_edid id)
        }
 }
 
+static inline unsigned int vgpu_edid_xres(enum intel_vgpu_edid id)
+{
+       switch (id) {
+       case GVT_EDID_1024_768:
+               return 1024;
+       case GVT_EDID_1920_1200:
+               return 1920;
+       default:
+               return 0;
+       }
+}
+
+static inline unsigned int vgpu_edid_yres(enum intel_vgpu_edid id)
+{
+       switch (id) {
+       case GVT_EDID_1024_768:
+               return 768;
+       case GVT_EDID_1920_1200:
+               return 1200;
+       default:
+               return 0;
+       }
+}
+
 void intel_gvt_emulate_vblank(struct intel_gvt *gvt);
 void intel_gvt_check_vblank_emulation(struct intel_gvt *gvt);