From nobody Mon Apr 6 17:06:17 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A4CF9C54EE9 for ; Tue, 6 Sep 2022 07:40:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239057AbiIFHku (ORCPT ); Tue, 6 Sep 2022 03:40:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34392 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233797AbiIFHj7 (ORCPT ); Tue, 6 Sep 2022 03:39:59 -0400 Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2001:67c:2178:6::1c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD52023161 for ; Tue, 6 Sep 2022 00:39:58 -0700 (PDT) Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 8FDBC337A8; Tue, 6 Sep 2022 07:39:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1662449995; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Bh+E7R1HGe5EZgG23eyCtbShTB7coPIuMbejQLp56a8=; b=yooRTCnToo/T7kFxK7/r63DKRTEtpzEPcNKTSHbbORAqeMpUEvZaFBHkUDzsUctkp6oLQ7 560SNnUW/89XiJ7gWg5U5IbGumi0CXdOScWGAON/uyhAthoWSy2vhhmx2iWGdgBjBVIq5u p70Be1vHIdjM16VI1dCNrBW2E9z7Sk0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1662449995; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Bh+E7R1HGe5EZgG23eyCtbShTB7coPIuMbejQLp56a8=; b=RYVEXwXhzocUxhs26Zb6eHQw5Jd8S5cdXk9Nq9buMlYuDqvccmAMkh8howiohqsbgTh6i+ IdZFSnEjth5OmLAw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 7160413A93; Tue, 6 Sep 2022 07:39:55 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id uLO/Gkv5FmPeOgAAMHmgww (envelope-from ); Tue, 06 Sep 2022 07:39:55 +0000 From: Takashi Iwai To: Thomas Zimmermann Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 07/11] drm/udl: Drop unneeded alignment Date: Tue, 6 Sep 2022 09:39:47 +0200 Message-Id: <20220906073951.2085-8-tiwai@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220906073951.2085-1-tiwai@suse.de> References: <20220906073951.2085-1-tiwai@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The alignment of damaged area was needed for the original udlfb driver that tried to trim the superfluous copies between front and backend buffers and handle data in long int. It's not the case for udl DRM driver, hence we can omit the whole unneeded alignment, as well as the dead code. Signed-off-by: Takashi Iwai Acked-by: Thomas Zimmermann --- drivers/gpu/drm/udl/udl_modeset.c | 28 +-------------------- drivers/gpu/drm/udl/udl_transfer.c | 40 ------------------------------ 2 files changed, 1 insertion(+), 67 deletions(-) diff --git a/drivers/gpu/drm/udl/udl_modeset.c b/drivers/gpu/drm/udl/udl_mo= deset.c index c34d564773a3..9896c16c74f5 100644 --- a/drivers/gpu/drm/udl/udl_modeset.c +++ b/drivers/gpu/drm/udl/udl_modeset.c @@ -243,28 +243,6 @@ static long udl_log_cpp(unsigned int cpp) return __ffs(cpp); } =20 -static int udl_aligned_damage_clip(struct drm_rect *clip, int x, int y, - int width, int height) -{ - int x1, x2; - - if (WARN_ON_ONCE(x < 0) || - WARN_ON_ONCE(y < 0) || - WARN_ON_ONCE(width < 0) || - WARN_ON_ONCE(height < 0)) - return -EINVAL; - - x1 =3D ALIGN_DOWN(x, sizeof(unsigned long)); - x2 =3D ALIGN(width + (x - x1), sizeof(unsigned long)) + x1; - - clip->x1 =3D x1; - clip->y1 =3D y; - clip->x2 =3D x2; - clip->y2 =3D y + height; - - return 0; -} - static int udl_handle_damage(struct drm_framebuffer *fb, const struct iosys_map *map, int x, int y, int width, int height) @@ -282,11 +260,7 @@ static int udl_handle_damage(struct drm_framebuffer *f= b, return ret; log_bpp =3D ret; =20 - ret =3D udl_aligned_damage_clip(&clip, x, y, width, height); - if (ret) - return ret; - else if ((clip.x2 > fb->width) || (clip.y2 > fb->height)) - return -EINVAL; + drm_rect_init(&clip, x, y, width, height); =20 ret =3D drm_gem_fb_begin_cpu_access(fb, DMA_FROM_DEVICE); if (ret) diff --git a/drivers/gpu/drm/udl/udl_transfer.c b/drivers/gpu/drm/udl/udl_t= ransfer.c index 176ef2a6a731..a431208dda85 100644 --- a/drivers/gpu/drm/udl/udl_transfer.c +++ b/drivers/gpu/drm/udl/udl_transfer.c @@ -25,46 +25,6 @@ #define MIN_RAW_PIX_BYTES 2 #define MIN_RAW_CMD_BYTES (RAW_HEADER_BYTES + MIN_RAW_PIX_BYTES) =20 -/* - * Trims identical data from front and back of line - * Sets new front buffer address and width - * And returns byte count of identical pixels - * Assumes CPU natural alignment (unsigned long) - * for back and front buffer ptrs and width - */ -#if 0 -static int udl_trim_hline(const u8 *bback, const u8 **bfront, int *width_b= ytes) -{ - int j, k; - const unsigned long *back =3D (const unsigned long *) bback; - const unsigned long *front =3D (const unsigned long *) *bfront; - const int width =3D *width_bytes / sizeof(unsigned long); - int identical =3D width; - int start =3D width; - int end =3D width; - - for (j =3D 0; j < width; j++) { - if (back[j] !=3D front[j]) { - start =3D j; - break; - } - } - - for (k =3D width - 1; k > j; k--) { - if (back[k] !=3D front[k]) { - end =3D k+1; - break; - } - } - - identical =3D start + (width - end); - *bfront =3D (u8 *) &front[start]; - *width_bytes =3D (end - start) * sizeof(unsigned long); - - return identical * sizeof(unsigned long); -} -#endif - static inline u16 pixel32_to_be16(const uint32_t pixel) { return (((pixel >> 3) & 0x001f) | --=20 2.35.3