Hi, > - add a small core function to registerr HOT_X/HOT_Y for a (cursor) plane, > e.g. drm_plane_register_hotspot(). That should allocate the properties > (if they don't exist yet) and then attach those props to the cursor. We > don't want those props everywhere, but only on drivers that support/need > them, aka virtual hw. Hmm, why is this special to virtual hw? > if (crtc->cursor) { > - ret = drm_mode_cursor_universal(crtc, req, file_priv); > + if (drm_core_check_feature(DRIVER_ATOMIC)) > + ret = drm_mode_cursor_atomic(crtc, req, file_priv); > + else > + ret = drm_mode_cursor_universal(crtc, req, file_priv); > goto out; > drm_mode_cursor_atomic would simply be a fusing of > drm_mode_cursor_universal + drm_atomic_helper_update_plane (dump all the > intermediate variables and store directly in the plane state), with the > addition of also storing hot_x/y into the plane state. Hmm, that'll either make drm_mode_cursor_atomic a big cut+pasted function, or need quite some refactoring to move common code into functions callable from both drm_mode_cursor_atomic +drm_mode_cursor_universal ... Why attach the hotspot to the plane? Wouldn't it make more sense to make it a framebuffer property? cheers, Gerd _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization