Facebook
From sumo, 2 Years ago, written in Diff-output.
This paste is a reply to Untitled from sumo - view diff
Embed
Download Paste or View Raw
Hits: 171
  1. diff --git a/drivers/gpu/drm/vkms/vkms_composer.c b/drivers/gpu/drm/vkms/vkms_composer.c
  2. index 2988d5b49eb6..2b516e60c07f 100644
  3. --- a/drivers/gpu/drm/vkms/vkms_composer.c
  4. +++ b/drivers/gpu/drm/vkms/vkms_composer.c
  5. @@ -373,8 +373,22 @@ int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name)
  6.         int ret = 0;
  7.  
  8.         ret = vkms_crc_parse_source(src_name, &enabled);
  9. -
  10. +       printk(KERN_CRIT "enabled after parsing is %d\n", enabled);
  11.         vkms_set_composer(out, enabled);
  12.  
  13.         return ret;
  14.  }
  15. +
  16. +
  17. +int vkms_set_crc_vhw_source(struct drm_crtc *crtc, const char *src_name)
  18. +{
  19. +       struct vkms_output *out = drm_crtc_to_vkms_output(crtc);
  20. +       bool enabled = false;
  21. +       int ret = 0;
  22. +
  23. +       ret = vkms_crc_parse_source(src_name, &enabled);
  24. +
  25. +       //vkms_set_composer(out, enabled);
  26. +
  27. +       return ret;
  28. +}
  29. \ No newline at end of file
  30. diff --git a/drivers/gpu/drm/vkms/vkms_crtc.c b/drivers/gpu/drm/vkms/vkms_crtc.c
  31. index 8477b33c4d09..957f560612f1 100644
  32. --- a/drivers/gpu/drm/vkms/vkms_crtc.c
  33. +++ b/drivers/gpu/drm/vkms/vkms_crtc.c
  34. @@ -174,6 +174,21 @@ static const struct drm_crtc_funcs vkms_crtc_funcs = {
  35.         .verify_crc_source      = vkms_verify_crc_source,
  36.  };
  37.  
  38. +static const struct drm_crtc_funcs vkms_crtc_vhw_funcs = {
  39. +       .set_config             = drm_atomic_helper_set_config,
  40. +       .destroy                = drm_crtc_cleanup,
  41. +       .page_flip              = drm_atomic_helper_page_flip,
  42. +       .reset                  = vkms_atomic_crtc_reset,
  43. +       .atomic_duplicate_state = vkms_atomic_crtc_duplicate_state,
  44. +       .atomic_destroy_state   = vkms_atomic_crtc_destroy_state,
  45. +       //.enable_vblank                = vkms_enable_vblank,
  46. +       //.disable_vblank               = vkms_disable_vblank,
  47. +       //.get_vblank_timestamp = vkms_get_vblank_timestamp,
  48. +       .get_crc_sources        = vkms_get_crc_sources,
  49. +       .set_crc_source         = vkms_set_crc_vhw_source,
  50. +       .verify_crc_source      = vkms_verify_crc_source,
  51. +};
  52. +
  53.  static int vkms_crtc_atomic_check(struct drm_crtc *crtc,
  54.                                   struct drm_atomic_state *state)
  55.  {
  56. @@ -302,8 +317,15 @@ int vkms_crtc_init(struct drm_device *dev, struct drm_crtc *crtc,
  57.         struct vkms_device *vkmsdev = drm_device_to_vkms_device(dev);
  58.         int ret;
  59.  
  60. -       ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor,
  61. +       if (vkmsdev->config->virtual_hw)
  62. +               ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor,
  63. +                                       &vkms_crtc_vhw_funcs, NULL);
  64. +       else
  65. +               ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor,
  66.                                         &vkms_crtc_funcs, NULL);
  67. +
  68. +       //ret = drm_crtc_init_with_planes(dev, crtc, primary, cursor,
  69. +       //                              &vkms_crtc_funcs, NULL);
  70.         if (ret) {
  71.                 DRM_ERROR("Failed to init CRTC\n");
  72.                 return ret;
  73. diff --git a/drivers/gpu/drm/vkms/vkms_drv.h b/drivers/gpu/drm/vkms/vkms_drv.h
  74. index 770594e07f0e..1959e78746c5 100644
  75. --- a/drivers/gpu/drm/vkms/vkms_drv.h
  76. +++ b/drivers/gpu/drm/vkms/vkms_drv.h
  77. @@ -129,6 +129,7 @@ struct vkms_plane *vkms_plane_init(struct vkms_device *vkmsdev,
  78.  const char *const *vkms_get_crc_sources(struct drm_crtc *crtc,
  79.                                         size_t *count);
  80.  int vkms_set_crc_source(struct drm_crtc *crtc, const char *src_name);
  81. +int vkms_set_crc_vhw_source(struct drm_crtc *crtc, const char *src_name);
  82.  int vkms_verify_crc_source(struct drm_crtc *crtc, const char *source_name,
  83.                            size_t *values_cnt);
  84.  
  85.