The bounding rectangle is adjusted to ensure it aligns to
SSD132X_SEGMENT_WIDTH, which may adjust the pitch.  Calculate the pitch
after aligning the left and right edge.

Fixes: fdd591e00a9c ("drm/ssd130x: Add support for the SSD132x OLED controller 
family")
Signed-off-by: John Keeping <jkeep...@inmusicbrands.com>
Reviewed-by: Javier Martinez Canillas <javi...@redhat.com>
---
Changes since v1:
- Correct typos in the commit message
- Add Fixes and Reviewed-by tags (thanks Javier!)

 drivers/gpu/drm/solomon/ssd130x.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/solomon/ssd130x.c 
b/drivers/gpu/drm/solomon/ssd130x.c
index 4bb663f984ce3..dd2006d51c7a2 100644
--- a/drivers/gpu/drm/solomon/ssd130x.c
+++ b/drivers/gpu/drm/solomon/ssd130x.c
@@ -1037,7 +1037,7 @@ static int ssd132x_fb_blit_rect(struct drm_framebuffer 
*fb,
                                struct drm_format_conv_state *fmtcnv_state)
 {
        struct ssd130x_device *ssd130x = drm_to_ssd130x(fb->dev);
-       unsigned int dst_pitch = drm_rect_width(rect);
+       unsigned int dst_pitch;
        struct iosys_map dst;
        int ret = 0;
 
@@ -1046,6 +1046,8 @@ static int ssd132x_fb_blit_rect(struct drm_framebuffer 
*fb,
        rect->x2 = min_t(unsigned int, round_up(rect->x2, 
SSD132X_SEGMENT_WIDTH),
                         ssd130x->width);
 
+       dst_pitch = drm_rect_width(rect);
+
        ret = drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE);
        if (ret)
                return ret;
-- 
2.48.0

Reply via email to