From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sdore.me (unknown [95.165.1.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9537C221541 for ; Fri, 14 Feb 2025 11:36:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.165.1.78 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739532990; cv=none; b=N+MP9wBTWKZ0RWNRSr8T6EqSBByZrQ5t32hqVU5vNNMN2E5vFjzEa6MW3WKYMsF85RQLAmfvQkRkquzRiUsW5tJuZYOqNOJbErDGWA755gb1HxF5OgPUQV33aKeRYSY1vojBYGOVvNY8x0u3A3AaJh1UjyXhN2XxK/Rt0Y52Aps= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739532990; c=relaxed/simple; bh=2RRFJdZSLxB0chJqJ8QRDckIZFkpyeAvXlKfsB6hWVk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sZCYWccufMG33Qh+WOvKNWSIIO0B/y7y9yRCmz9U74mvMze5UDj0G+CoLsAzVfZE/npz9aji2ZyY7YQGF0pBUHuDm6oJxgTgY0XHZfJd3zoHjInzvym1OOBBFX0JaMt7cf7yeILK2gohoS9C/DSnK3BUJc4TNAmnmUlh+RcVUMU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sdore.me; spf=pass smtp.mailfrom=sdore.me; dkim=pass (1024-bit key) header.d=sdore.me header.i=@sdore.me header.b=L7ew2HQO; arc=none smtp.client-ip=95.165.1.78 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=sdore.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=sdore.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=sdore.me header.i=@sdore.me header.b="L7ew2HQO" Received: by sdore.me (Postfix, from userid 1000) id E192BEEA01BF7; Fri, 14 Feb 2025 14:36:26 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=sdore.me; s=SERV; t=1739532986; bh=2RRFJdZSLxB0chJqJ8QRDckIZFkpyeAvXlKfsB6hWVk=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=L7ew2HQOQPkneLx8nfuW2OKCPwzxH5o12m79PompgYwmaym1g3bNCwhJNq/EHMKg1 opqUC8/94hU0Ck8dOgwVLCWPfJkVDGqbw1soNyF4CoTq7MmPbg7cZT+ld0BBQvuLu9 mzhTVTzkM1UP4SADBZzllCEoECnjxSgyR7wYWgSg= From: Egor Vorontsov To: linux-kernel@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jani Nikula , Egor Vorontsov Subject: [PATCH v3 2/2] drm/edid: Refactor DisplayID timing block structs Date: Fri, 14 Feb 2025 14:06:42 +0300 Message-ID: <20250214110643.506740-2-sdoregor@sdore.me> X-Mailer: git-send-email 2.48.0 In-Reply-To: <20250214110643.506740-1-sdoregor@sdore.me> References: <20250214110643.506740-1-sdoregor@sdore.me> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Using le16 instead of u8[2]. Suggested-by: Jani Nikula Signed-off-by: Egor Vorontsov --- drivers/gpu/drm/drm_displayid_internal.h | 18 +++++++-------- drivers/gpu/drm/drm_edid.c | 28 ++++++++++++------------ 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/drivers/gpu/drm/drm_displayid_internal.h b/drivers/gpu/drm/drm_displayid_internal.h index 84831ecfdb6e..957dd0619f5c 100644 --- a/drivers/gpu/drm/drm_displayid_internal.h +++ b/drivers/gpu/drm/drm_displayid_internal.h @@ -115,20 +115,20 @@ struct displayid_tiled_block { struct displayid_detailed_timings_1 { u8 pixel_clock[3]; u8 flags; - u8 hactive[2]; - u8 hblank[2]; - u8 hsync[2]; - u8 hsw[2]; - u8 vactive[2]; - u8 vblank[2]; - u8 vsync[2]; - u8 vsw[2]; + __le16 hactive; + __le16 hblank; + __le16 hsync; + __le16 hsw; + __le16 vactive; + __le16 vblank; + __le16 vsync; + __le16 vsw; } __packed; struct displayid_detailed_timing_block { struct displayid_block base; struct displayid_detailed_timings_1 timings[]; -}; +} __packed; struct displayid_formula_timings_9 { u8 flags; diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 03edf0e1598e..32807cefc819 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -6760,23 +6760,23 @@ static void update_display_info(struct drm_connector *connector, } static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev, - struct displayid_detailed_timings_1 *timings, + const struct displayid_detailed_timings_1 *timings, bool type_7) { struct drm_display_mode *mode; - unsigned pixel_clock = (timings->pixel_clock[0] | - (timings->pixel_clock[1] << 8) | - (timings->pixel_clock[2] << 16)) + 1; - unsigned hactive = (timings->hactive[0] | timings->hactive[1] << 8) + 1; - unsigned hblank = (timings->hblank[0] | timings->hblank[1] << 8) + 1; - unsigned hsync = (timings->hsync[0] | (timings->hsync[1] & 0x7f) << 8) + 1; - unsigned hsync_width = (timings->hsw[0] | timings->hsw[1] << 8) + 1; - unsigned vactive = (timings->vactive[0] | timings->vactive[1] << 8) + 1; - unsigned vblank = (timings->vblank[0] | timings->vblank[1] << 8) + 1; - unsigned vsync = (timings->vsync[0] | (timings->vsync[1] & 0x7f) << 8) + 1; - unsigned vsync_width = (timings->vsw[0] | timings->vsw[1] << 8) + 1; - bool hsync_positive = (timings->hsync[1] >> 7) & 0x1; - bool vsync_positive = (timings->vsync[1] >> 7) & 0x1; + unsigned int pixel_clock = (timings->pixel_clock[0] | + (timings->pixel_clock[1] << 8) | + (timings->pixel_clock[2] << 16)) + 1; + unsigned int hactive = le16_to_cpu(timings->hactive) + 1; + unsigned int hblank = le16_to_cpu(timings->hblank) + 1; + unsigned int hsync = (le16_to_cpu(timings->hsync) & 0x7fff) + 1; + unsigned int hsync_width = le16_to_cpu(timings->hsw) + 1; + unsigned int vactive = le16_to_cpu(timings->vactive) + 1; + unsigned int vblank = le16_to_cpu(timings->vblank) + 1; + unsigned int vsync = (le16_to_cpu(timings->vsync) & 0x7fff) + 1; + unsigned int vsync_width = le16_to_cpu(timings->vsw) + 1; + bool hsync_positive = le16_to_cpu(timings->hsync) & (1 << 15); + bool vsync_positive = le16_to_cpu(timings->vsync) & (1 << 15); mode = drm_mode_create(dev); if (!mode) -- 2.48.0