On Mon, May 2, 2022 at 9:37 AM Michael Kelley <mikelley@xxxxxxxxxxxxx> wrote: > > The DRM Hyper-V driver has special case code for running on the first > released versions of Hyper-V: 2008 and 2008 R2/Windows 7. These versions > are now out of support (except for extended security updates) and lack > support for performance features that are needed for effective production > usage of Linux guests. > > The negotiation of the VMbus protocol versions required by these old > Hyper-V versions has been removed from the VMbus driver. So now remove > the handling of these VMbus protocol versions from the DRM Hyper-V > driver. > > Signed-off-by: Michael Kelley <mikelley@xxxxxxxxxxxxx> > --- > drivers/gpu/drm/hyperv/hyperv_drm_proto.c | 23 +++++++---------------- > 1 file changed, 7 insertions(+), 16 deletions(-) > > diff --git a/drivers/gpu/drm/hyperv/hyperv_drm_proto.c b/drivers/gpu/drm/hyperv/hyperv_drm_proto.c > index c0155c6..76a182a 100644 > --- a/drivers/gpu/drm/hyperv/hyperv_drm_proto.c > +++ b/drivers/gpu/drm/hyperv/hyperv_drm_proto.c > @@ -18,16 +18,16 @@ > #define SYNTHVID_VERSION(major, minor) ((minor) << 16 | (major)) > #define SYNTHVID_VER_GET_MAJOR(ver) (ver & 0x0000ffff) > #define SYNTHVID_VER_GET_MINOR(ver) ((ver & 0xffff0000) >> 16) > + > +/* Support for VERSION_WIN7 is removed. #define is retained for reference. */ > #define SYNTHVID_VERSION_WIN7 SYNTHVID_VERSION(3, 0) > #define SYNTHVID_VERSION_WIN8 SYNTHVID_VERSION(3, 2) > #define SYNTHVID_VERSION_WIN10 SYNTHVID_VERSION(3, 5) > > -#define SYNTHVID_DEPTH_WIN7 16 > #define SYNTHVID_DEPTH_WIN8 32 > -#define SYNTHVID_FB_SIZE_WIN7 (4 * 1024 * 1024) > +#define SYNTHVID_WIDTH_WIN8 1600 > +#define SYNTHVID_HEIGHT_WIN8 1200 > #define SYNTHVID_FB_SIZE_WIN8 (8 * 1024 * 1024) > -#define SYNTHVID_WIDTH_MAX_WIN7 1600 > -#define SYNTHVID_HEIGHT_MAX_WIN7 1200 > > enum pipe_msg_type { > PIPE_MSG_INVALID, > @@ -496,12 +496,6 @@ int hyperv_connect_vsp(struct hv_device *hdev) > case VERSION_WIN8: > case VERSION_WIN8_1: > ret = hyperv_negotiate_version(hdev, SYNTHVID_VERSION_WIN8); > - if (!ret) > - break; > - fallthrough; > - case VERSION_WS2008: > - case VERSION_WIN7: > - ret = hyperv_negotiate_version(hdev, SYNTHVID_VERSION_WIN7); > break; > default: > ret = hyperv_negotiate_version(hdev, SYNTHVID_VERSION_WIN10); > @@ -513,18 +507,15 @@ int hyperv_connect_vsp(struct hv_device *hdev) > goto error; > } > > - if (hv->synthvid_version == SYNTHVID_VERSION_WIN7) > - hv->screen_depth = SYNTHVID_DEPTH_WIN7; > - else > - hv->screen_depth = SYNTHVID_DEPTH_WIN8; > + hv->screen_depth = SYNTHVID_DEPTH_WIN8; > > if (hyperv_version_ge(hv->synthvid_version, SYNTHVID_VERSION_WIN10)) { > ret = hyperv_get_supported_resolution(hdev); > if (ret) > drm_err(dev, "Failed to get supported resolution from host, use default\n"); > } else { > - hv->screen_width_max = SYNTHVID_WIDTH_MAX_WIN7; > - hv->screen_height_max = SYNTHVID_HEIGHT_MAX_WIN7; > + hv->screen_width_max = SYNTHVID_WIDTH_WIN8; > + hv->screen_height_max = SYNTHVID_HEIGHT_WIN8; > } > > hv->mmio_megabytes = hdev->channel->offermsg.offer.mmio_megabytes; Do we need a new version for Windows 11? If the synthetic device version is decoupled from Windows version, then I guess we can rename the macro to reflect that. Reviewed-by: Deepak Rawat <drawat.floss@xxxxxxxxx> > -- > 1.8.3.1 >