1. 02 6月, 2017 15 次提交
  2. 22 5月, 2017 1 次提交
  3. 19 12月, 2016 5 次提交
  4. 15 12月, 2016 3 次提交
    • V
      drm: Nuke fb->pixel_format · 438b74a5
      Ville Syrjälä 提交于
      Replace uses of fb->pixel_format with fb->format->format.
      Less duplicated information is a good thing.
      
      Note that coccinelle failed to eliminate the
      "/* fourcc format */" comment from drm_framebuffer.h, so I had
      to do that part manually.
      
      @@
      struct drm_framebuffer *FB;
      expression E;
      @@
       drm_helper_mode_fill_fb_struct(...) {
      	...
      -	FB->pixel_format = E;
      	...
       }
      
      @@
      struct drm_framebuffer *FB;
      expression E;
      @@
       i9xx_get_initial_plane_config(...) {
      	...
      -	FB->pixel_format = E;
      	...
       }
      
      @@
      struct drm_framebuffer *FB;
      expression E;
      @@
       ironlake_get_initial_plane_config(...) {
      	...
      -	FB->pixel_format = E;
      	...
       }
      
      @@
      struct drm_framebuffer *FB;
      expression E;
      @@
       skylake_get_initial_plane_config(...) {
      	...
      -	FB->pixel_format = E;
      	...
       }
      
      @@
      struct drm_framebuffer *a;
      struct drm_framebuffer b;
      @@
      (
      - a->pixel_format
      + a->format->format
      |
      - b.pixel_format
      + b.format->format
      )
      
      @@
      struct drm_plane_state *a;
      struct drm_plane_state b;
      @@
      (
      - a->fb->pixel_format
      + a->fb->format->format
      |
      - b.fb->pixel_format
      + b.fb->format->format
      )
      
      @@
      struct drm_crtc *CRTC;
      @@
      (
      - CRTC->primary->fb->pixel_format
      + CRTC->primary->fb->format->format
      |
      - CRTC->primary->state->fb->pixel_format
      + CRTC->primary->state->fb->format->format
      )
      
      @@
      struct drm_mode_set *set;
      @@
      (
      - set->fb->pixel_format
      + set->fb->format->format
      |
      - set->crtc->primary->fb->pixel_format
      + set->crtc->primary->fb->format->format
      )
      
      @@
      @@
       struct drm_framebuffer {
      	 ...
      -	 uint32_t pixel_format;
      	 ...
       };
      
      v2: Fix commit message (Laurent)
          Rebase due to earlier removal of many fb->pixel_format uses,
          including the 'fb->format = drm_format_info(fb->format->format);'
          snafu
      v3: Adjusted the semantic patch a bit and regenerated due to code
          changes
      
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: Alex Deucher <alexander.deucher@amd.com> (v1)
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481751175-18463-1-git-send-email-ville.syrjala@linux.intel.com
      438b74a5
    • V
      drm: Replace drm_format_num_planes() with fb->format->num_planes · bcb0b461
      Ville Syrjälä 提交于
      Replace drm_format_num_planes(fb->pixel_format) with just
      fb->format->num_planes. Avoids the expensive format info lookup.
      
      @@
      struct drm_framebuffer *a;
      struct drm_framebuffer b;
      @@
      (
      - drm_format_num_planes(a->pixel_format)
      + a->format->num_planes
      |
      - drm_format_num_planes(b.pixel_format)
      + b.format->num_planes
      )
      
      @@
      struct drm_plane_state *a;
      struct drm_plane_state b;
      @@
      (
      - drm_format_num_planes(a->fb->pixel_format)
      + a->fb->format->num_planes
      |
      - drm_format_num_planes(b.fb->pixel_format)
      + b.fb->format->num_planes
      )
      
      @@
      struct drm_framebuffer *a;
      identifier T;
      @@
        T = a->pixel_format
      <+...
      - drm_format_num_planes(T)
      + a->format->num_planes
      ...+>
      
      @@
      struct drm_framebuffer b;
      identifier T;
      @@
        T = b.pixel_format
      <+...
      - drm_format_num_planes(T)
      + b.format->num_planes
      ...+>
      
      v2: Rerun spatch due to code changes
      
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Suggested-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481751022-18015-1-git-send-email-ville.syrjala@linux.intel.com
      bcb0b461
    • V
      drm: Pass 'dev' to drm_helper_mode_fill_fb_struct() · a3f913ca
      Ville Syrjälä 提交于
      Pass the drm_device to drm_helper_mode_fill_fb_struct() so that we can
      populate fb->dev early. Will make it easier to use the fb before we
      register it.
      
      @@
      identifier fb, mode_cmd;
      @@
       void drm_helper_mode_fill_fb_struct(
      +				     struct drm_device *dev,
      				     struct drm_framebuffer *fb,
      				     const struct drm_mode_fb_cmd2 *mode_cmd
      				     );
      
      @@
      identifier fb, mode_cmd;
      @@
       void drm_helper_mode_fill_fb_struct(
      +				     struct drm_device *dev,
      				     struct drm_framebuffer *fb,
      				     const struct drm_mode_fb_cmd2 *mode_cmd
      				     )
      { ... }
      
      @@
      function func;
      identifier dev;
      expression E1, E2;
      @@
      func(struct drm_device *dev, ...)
      {
       ...
       drm_helper_mode_fill_fb_struct(
      +				dev,
      				E1, E2);
       ...
      }
      
      @@
      expression E1, E2;
      @@
       drm_helper_mode_fill_fb_struct(
      +				dev,
      				E1, E2);
      
      v2: Rerun spatch due to code changes
      Signed-off-by: NVille Syrjälä <ville.syrjala@linux.intel.com>
      Reviewed-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      Reviewed-by: NAlex Deucher <alexander.deucher@amd.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/1481748539-18283-1-git-send-email-ville.syrjala@linux.intel.com
      a3f913ca
  5. 09 8月, 2016 1 次提交
  6. 22 7月, 2016 1 次提交
  7. 06 6月, 2016 1 次提交
  8. 01 6月, 2016 1 次提交
  9. 31 5月, 2016 1 次提交
    • A
      drm/omap: include linux/seq_file.h where needed · 2d802453
      Arnd Bergmann 提交于
      The omapdrm driver relies on this header to be included
      implicitly, but this does not always work, and I get
      this error in randconfig builds:
      
      gpu/drm/omapdrm/dss/hdmi_phy.c: In function 'hdmi_phy_dump':
      gpu/drm/omapdrm/dss/hdmi_phy.c:34:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
      gpu/drm/omapdrm/dss/hdmi_wp.c: In function 'hdmi_wp_dump':
      gpu/drm/omapdrm/dss/hdmi_wp.c:26:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
      gpu/drm/omapdrm/dss/hdmi_pll.c: In function 'hdmi_pll_dump':
      gpu/drm/omapdrm/dss/hdmi_pll.c:30:2: error: implicit declaration of function 'seq_printf' [-Werror=implicit-function-declaration]
      
      This adds the #include statements in all files that have
      a seq_printf statement.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2d802453
  10. 17 5月, 2016 1 次提交
  11. 03 3月, 2016 2 次提交
  12. 24 11月, 2015 1 次提交
  13. 05 10月, 2015 1 次提交
  14. 02 7月, 2015 1 次提交
    • T
      drm/omap: fix omap_framebuffer_unpin() error handling · 9c368506
      Tomi Valkeinen 提交于
      omap_framebuffer_unpin() check the return value of omap_gem_put_paddr()
      and return immediately if omap_gem_put_paddr() fails.
      
      This patch removes the check for the return value, and also removes the
      return value of omap_framebuffer_unpin(), because:
      
       * Nothing checks the return value of omap_framebuffer_unpin(), and even
         something did check it, there's nothing the caller can do to handle
         the error.
      
       * If a omap_gem_put_paddr() fails, the framebuffer's other planes will
         be left unreleased. So it's better to call omap_gem_put_paddr() for
         all the planes, even if one would fail.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com>
      9c368506
  15. 13 6月, 2015 2 次提交
  16. 24 3月, 2015 3 次提交
    • T
      drm/omap: handle incompatible buffer stride and pixel size · 2dab0bab
      Tomi Valkeinen 提交于
      omapdrm doesn't check if the pitch of the framebuffer and the color
      format's bits-per-pixel are compatible. omapdss requires that the stride
      of a buffer is an integer number of pixels
      
      For example, when using modetest with a display that has x resolution of
      1280, and using packed 24 RGB mode (3 bytes per pixel), modetest
      allocates a buffer with a byte stride of 4 * 1280 = 5120. But 5120 / 3 =
      1706.666... pixels, which causes wrong colors and a tilt on the screen.
      
      Add a check into omapdrm to return an error if the user tries to use
      such a combination.
      
      Note: this is not a HW requirement at least for non-rotation use cases,
      but a SW driver requirement. In the future we should study if also
      rotation use cases are fine with any stride size, and if so, change the
      driver to allow these strides.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      2dab0bab
    • T
      drm/omap: fix error handling in omap_framebuffer_create() · 925e4940
      Tomi Valkeinen 提交于
      When an error happens in omap_framebuffer_create(),
      omap_framebuffer_create() calls omap_framebuffer_destroy() if the fb
      struct has been allocated. However, that crashes, as
      omap_framebuffer_destroy(), which calls drm_framebuffer_cleanup(),
      should only be called after drm_framebuffer_init()
      
      Fix this by just calling kfree() for the allocated fb when an error
      happens.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      925e4940
    • T
      drm/omap: add pin refcounting to omap_framebuffer · f36eb5a8
      Tomi Valkeinen 提交于
      omap_framebuffer_pin() and omap_framebuffer_unpin() are currently
      broken, as they cannot be called multiple times (i.e. pin, pin, unpin,
      unpin), which is what happens in certain cases. This issue causes the
      driver to possibly use 0 as an address for a displayed buffer, leading
      to OCP error from DSS.
      
      This patch fixes the issue by adding a simple pin_count, used to track
      the number of pins.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      f36eb5a8