All of lore.kernel.org
 help / color / mirror / Atom feed
From: Deepak Rawat <drawat.floss@gmail.com>
To: Michael Kelley <mikelley@microsoft.com>
Cc: K Y Srinivasan <kys@microsoft.com>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Stephen Hemminger <sthemmin@microsoft.com>,
	Wei Liu <wei.liu@kernel.org>,
	linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	Dexuan Cui <decui@microsoft.com>, David Airlie <airlied@linux.ie>,
	Daniel Vetter <daniel@ffwll.ch>,
	jejb@linux.ibm.com, martin.petersen@oracle.com, deller@gmx.de,
	dri-devel@lists.freedesktop.org, linux-scsi@vger.kernel.org,
	linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 4/4] drm/hyperv: Remove support for Hyper-V 2008 and 2008R2/Win7
Date: Tue, 3 May 2022 21:02:44 -0700	[thread overview]
Message-ID: <CAHFnvW3TDTh_iRpF5zH4uPKnB+_AisniVgam=Fj_Gog6KOfKrQ@mail.gmail.com> (raw)
In-Reply-To: <1651509391-2058-5-git-send-email-mikelley@microsoft.com>

On Mon, May 2, 2022 at 9:37 AM Michael Kelley <mikelley@microsoft.com> 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@microsoft.com>
> ---
>  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@gmail.com>

> --
> 1.8.3.1
>

WARNING: multiple messages have this Message-ID (diff)
From: Deepak Rawat <drawat.floss@gmail.com>
To: Michael Kelley <mikelley@microsoft.com>
Cc: Wei Liu <wei.liu@kernel.org>,
	Stephen Hemminger <sthemmin@microsoft.com>,
	linux-scsi@vger.kernel.org, martin.petersen@oracle.com,
	David Airlie <airlied@linux.ie>,
	Haiyang Zhang <haiyangz@microsoft.com>,
	Dexuan Cui <decui@microsoft.com>,
	linux-hyperv@vger.kernel.org, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org, linux-fbdev@vger.kernel.org,
	deller@gmx.de, Vitaly Kuznetsov <vkuznets@redhat.com>,
	K Y Srinivasan <kys@microsoft.com>,
	jejb@linux.ibm.com
Subject: Re: [PATCH 4/4] drm/hyperv: Remove support for Hyper-V 2008 and 2008R2/Win7
Date: Tue, 3 May 2022 21:02:44 -0700	[thread overview]
Message-ID: <CAHFnvW3TDTh_iRpF5zH4uPKnB+_AisniVgam=Fj_Gog6KOfKrQ@mail.gmail.com> (raw)
In-Reply-To: <1651509391-2058-5-git-send-email-mikelley@microsoft.com>

On Mon, May 2, 2022 at 9:37 AM Michael Kelley <mikelley@microsoft.com> 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@microsoft.com>
> ---
>  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@gmail.com>

> --
> 1.8.3.1
>

  reply	other threads:[~2022-05-04  4:03 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-02 16:36 [PATCH 0/4] Remove support for Hyper-V 2008 and 2008R2/Win7 Michael Kelley
2022-05-02 16:36 ` [PATCH 1/4] Drivers: hv: vmbus: Remove support for Hyper-V 2008 and Hyper-V 2008R2/Win7 Michael Kelley
2022-05-02 16:36 ` [PATCH 2/4] scsi: storvsc: Remove support for Hyper-V 2008 and 2008R2/Win7 Michael Kelley
2022-05-02 16:36 ` [PATCH 3/4] video: hyperv_fb: " Michael Kelley
2022-05-02 16:36 ` [PATCH 4/4] drm/hyperv: " Michael Kelley
2022-05-04  4:02   ` Deepak Rawat [this message]
2022-05-04  4:02     ` Deepak Rawat
2022-05-03 11:22 ` [PATCH 0/4] " Wei Liu
2022-05-03 11:22   ` Wei Liu
2022-05-03 12:30 ` Andrea Parri
2022-05-03 12:30   ` Andrea Parri
2022-05-04 17:23 ` Pavel Machek
2022-05-04 17:23   ` Pavel Machek
2022-05-08 15:43   ` Michael Kelley (LINUX)
2022-05-08 15:43     ` Michael Kelley (LINUX)
2022-05-09 10:44     ` Wei Liu
2022-05-09 10:44       ` Wei Liu
2022-05-11 14:42 ` Wei Liu
2022-05-11 14:42   ` Wei Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHFnvW3TDTh_iRpF5zH4uPKnB+_AisniVgam=Fj_Gog6KOfKrQ@mail.gmail.com' \
    --to=drawat.floss@gmail.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=decui@microsoft.com \
    --cc=deller@gmx.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=haiyangz@microsoft.com \
    --cc=jejb@linux.ibm.com \
    --cc=kys@microsoft.com \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=mikelley@microsoft.com \
    --cc=sthemmin@microsoft.com \
    --cc=vkuznets@redhat.com \
    --cc=wei.liu@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.