Skip to contentSkip to conversation

drm/hyperv: Fix double mouse pointers

PATCH In review Dexuan Cui 2 participants 3 messages Sep 16, 2021 – Oct 7, 2021

Subsystems (5)
lore
Share & tools
lore

Dexuan Cui

author maintainer
#0 lore raw

PATCH v2 1/1 drm/hyperv: Fix double mouse pointers

Hyper-V supports a hardware cursor feature. It is not used by Linux VM, but the Hyper-V host still draws a point as an extra mouse pointer, which is unwanted, especially when Xorg is running.

The hyperv_fb driver uses synthvid_send_ptr() to hide the unwanted pointer. When the hyperv_drm driver was developed, the function synthvid_send_ptr() was not copied from the hyperv_fb driver. Fix the issue by adding the function into hyperv_drm.

Fixes 76c56a5affeb ("drm/hyperv: Add DRM driver for hyperv synthetic video device")

---

Changes in v2:
Renamed hyperv_send_ptr() to hyperv_hide_hw_ptr(). Improved the comments and the git commit message. Added Reviewed-by's from Haiyang and Deepak.

 drivers/gpu/drm/hyperv/hyperv_drm.h         |  1 +
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c |  1 +
 drivers/gpu/drm/hyperv/hyperv_drm_proto.c   | 54 ++++++++++++++++++++-
 3 files changed, 55 insertions(+), 1 deletion(-)
drivers/gpu/drm/hyperv/hyperv_drm.h +1 -0
index 886add4f9cd0..d2d8582b36df 100644
@@ -46,6 +46,7 @@ int hyperv_mode_config_init(struct hyperv_drm_device *hv);
 int hyperv_update_vram_location(struct hv_device *hdev, phys_addr_t vram_pp);
 int hyperv_update_situation(struct hv_device *hdev, u8 active, u32 bpp,
 			    u32 w, u32 h, u32 pitch);
+int hyperv_hide_hw_ptr(struct hv_device *hdev);
 int hyperv_update_dirt(struct hv_device *hdev, struct drm_rect *rect);
 int hyperv_connect_vsp(struct hv_device *hdev);
 
drivers/gpu/drm/hyperv/hyperv_drm_modeset.c +1 -0
index 3aaee4730ec6..5f01ca817517 100644
@@ -101,6 +101,7 @@ static void hyperv_pipe_enable(struct drm_simple_display_pipe *pipe,
 	struct hyperv_drm_device *hv = to_hv(pipe->crtc.dev);
 	struct drm_shadow_plane_state *shadow_plane_state = to_drm_shadow_plane_state(plane_state);
 
+	hyperv_hide_hw_ptr(hv->hdev);
 	hyperv_update_situation(hv->hdev, 1,  hv->screen_depth,
 				crtc_state->mode.hdisplay,
 				crtc_state->mode.vdisplay,
drivers/gpu/drm/hyperv/hyperv_drm_proto.c +53 -1

67 lines not on this page · raw message

Signature · 1 line
2.25.1
author maintainer
#1 lore raw
Quoted 30 lines

From: Dexuan Cui <[email protected]>
Sent: Thursday, September 16, 2021 12:37 PM
To: [email protected]; Haiyang Zhang <[email protected]>; [email protected]; [email protected]; [email protected]; [email protected]
Cc: [email protected]; [email protected]; Dexuan Cui <[email protected]>
Subject: [PATCH v2] drm/hyperv: Fix double mouse pointers

Hyper-V supports a hardware cursor feature. It is not used by Linux VM, but the Hyper-V host still draws a point as an extra mouse pointer, which is unwanted, especially when Xorg is running.

The hyperv_fb driver uses synthvid_send_ptr() to hide the unwanted pointer. When the hyperv_drm driver was developed, the function synthvid_send_ptr() was not copied from the hyperv_fb driver. Fix the issue by adding the function into hyperv_drm.

Fixes 76c56a5affeb ("drm/hyperv: Add DRM driver for hyperv synthetic video

device")

---

Changes in v2:
Renamed hyperv_send_ptr() to hyperv_hide_hw_ptr(). Improved the comments and the git commit message. Added Reviewed-by's from Haiyang and Deepak.

Quoted 5 lines
 drivers/gpu/drm/hyperv/hyperv_drm.h         |  1 +
 drivers/gpu/drm/hyperv/hyperv_drm_modeset.c |  1 +
 drivers/gpu/drm/hyperv/hyperv_drm_proto.c   | 54
++++++++++++++++++++-
 3 files changed, 55 insertions(+), 1 deletion(-)

Hi DRM maintainers,
Could you please take a look at the patch?

Thanks,
-- Dexuan

#2 lore raw

Hi

Am 06.10.21 um 20:43 schrieb Dexuan Cui:

Quoted 30 lines
Quoted 30 lines

From: Dexuan Cui <[email protected]>
Sent: Thursday, September 16, 2021 12:37 PM
To: [email protected]; Haiyang Zhang <[email protected]>; [email protected]; [email protected]; [email protected]; [email protected]
Cc: [email protected]; [email protected]; Dexuan Cui <[email protected]>
Subject: [PATCH v2] drm/hyperv: Fix double mouse pointers

Hyper-V supports a hardware cursor feature. It is not used by Linux VM, but the Hyper-V host still draws a point as an extra mouse pointer, which is unwanted, especially when Xorg is running.

The hyperv_fb driver uses synthvid_send_ptr() to hide the unwanted pointer. When the hyperv_drm driver was developed, the function synthvid_send_ptr() was not copied from the hyperv_fb driver. Fix the issue by adding the function into hyperv_drm.

Fixes 76c56a5affeb ("drm/hyperv: Add DRM driver for hyperv synthetic video

device")

---

Changes in v2:
Renamed hyperv_send_ptr() to hyperv_hide_hw_ptr(). Improved the comments and the git commit message. Added Reviewed-by's from Haiyang and Deepak.

Quoted 8 lines
Quoted 5 lines
  drivers/gpu/drm/hyperv/hyperv_drm.h         |  1 +
  drivers/gpu/drm/hyperv/hyperv_drm_modeset.c |  1 +
  drivers/gpu/drm/hyperv/hyperv_drm_proto.c   | 54
++++++++++++++++++++-
  3 files changed, 55 insertions(+), 1 deletion(-)

Hi DRM maintainers,
Could you please take a look at the patch?

I pushed the patch into drm-misc-fixes. It should reach upstream sooned.

Best regards
Thomas

Quoted 4 lines

Thanks,
-- Dexuan

Signature · 6 lines
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer