From nobody Mon Oct 6 13:17:47 2025 Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C7DDF28FAA8; Mon, 21 Jul 2025 10:44:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094655; cv=none; b=mvwUnrTY4IIx7iYTESyWQMAzPJ5sfXP8hibwEOXPhpeMNGU8zQPpBuEIzxuOwzVTgrHYq644XU1E0+owm9tI4cttknlbTOx5NGfNg/TiroizjwVtR+Hp+m0nysUgkCWAcmS3QjCmuVhisQIN+/jdoB1++SGVkfkGhCjRw2VEZgM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094655; c=relaxed/simple; bh=IBvWsfd1qdqQU3Rg1nmav2yYeSIn047JyVePtD2ctPQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=rUVx5ssD8ozF54nlZ7/EaeRXENNonOiNcRnZCuKk2N3BFiXvfxPs8EaVl7Cor7wvZ9VlZE7Nendbu7zVIvxRx8eLJH6B3+yYvVczC1qRyCNdIx4s6fwxdChl/erIBMLFodzMo0nmiCTCqcBwdx1lo5pHE1g9j8CP+tHDOzo/kkU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ioGnzcqZ; arc=none smtp.client-ip=209.85.167.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ioGnzcqZ" Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-555024588a8so3887064e87.0; Mon, 21 Jul 2025 03:44:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753094651; x=1753699451; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uZgi0IGCTQu+xFbtpDGEBKVDI7Gw2v7i+CZyebbbBrc=; b=ioGnzcqZtmZsbAUppHqFG43SBRcDaBUycuR+cw4IPMRsYLV0zA56sYMHBycActFJj+ xXMkKK1ZarnybnR3p4OzVodzC9ykmOUu69MPAca+btFuOAS4ytAc/Rar2P1K1tpEBIRT k7s10gA/hPGZDrIRLSro6rbshXtWyEs4AQXbY+vBIrje/UaTPduROtNjQ3/5Baprmbz2 p6aaEoox8lvuuN55WKH/YKwB6W366qNetyG9hhEHvY5AO7DprXcSQC/ieeCHDpfp2hFW jcfHiHFzLUuJmt910mht41oKjv4fOGQTMZXblVfuTzPlKYDbcsQMKkwWvGmxfNkAJ8I/ HKEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753094651; x=1753699451; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=uZgi0IGCTQu+xFbtpDGEBKVDI7Gw2v7i+CZyebbbBrc=; b=AfsezZv0bsYk+DHDUp4c0UWOTiGWAhYPDT93j4mT6eIjm6TzVfzLKH2/qOScEWszNz PM3CuxH0/nltR4QTzMM7g8RT+h5f1m10sXrm+al5fBPJ7NjFaOGOlg6VgC5/PIx+crr2 GUomoYzM6VQgkRtr86KIFmbsTqxqSvN4SGDRPlK5S1Psj2qD8EQgZPSVfIc9/9sF7IbT q3HAr8KUOOb6M2Pkn1cisBR6lW7g1M3fbKcJF7vwe2YLvctiUXfZ4TQMlOgJA1nU/+kN /dwJ74Zbf7vvtRvS+DL926ptxo27qHgXDLouaJWx8svEf+r73/kXqYZlXJ69ibWSh69M L/Nw== X-Forwarded-Encrypted: i=1; AJvYcCWGt96AzNu4XWGgQZYwRHsV+DgGZ/kSNmk4N72YkM5FF1Wu8PQfD3hzKSb8o4qQ1i/HaiI5tK7tcT5Qp3fy@vger.kernel.org, AJvYcCWaivzqPaMQ7AdF383e+LhCSrWi7Dn8vxSK1Elbm6kpidHB6x2dzuQGHcHUX7LZMueJckHY4Iq6JPl3@vger.kernel.org X-Gm-Message-State: AOJu0YwpxXtGAmxJhTU1z0n5ClWF0w3wl62dQ2OB22DnbDRWnjSV6ho7 nYbgDWQTqcFwGNM5ie1kJwxcM/wJlT1qk6ANHBGBdw4cjCfHtYRAqpzJ06d3wwsCCPY= X-Gm-Gg: ASbGncvq0VH0tpn8Dc3f0bhnWeE+Rvkk3Y7EuMyWja2RFMYIruvrVW3WiYWSeNKYN5F Xt0MpBmWITeLmu5PRRdd84DWJfs4sCD9lGQVj7dz69Jnr2DkhNOcqXno4mrhoxDW0MhmhTzZckf OAqk5jMFzD7wd+UpsvesKG113kEA0Faykmd/MBro+Ca5+jUGgkNhM7kcTZ4bKwDwE6puT7FRX3S nONxnWMdXEgvfe/lew93WHLom/5fptsOUmX2Qg8X9ZUd86D6xL5CXMQhycXX3ve0N9eizJe2mY0 akdFD0Kp7DA0fwuHb6KnomycZkG03x+WNtGswu/9qfCIFhGmnKfL+GL5O6tH7V+ikPaIf5W6rti CQrGY+YLH4eQ4sk5Vu97XLWyOCtgdA0BfxKEJqcUyfwkevSB2RgYvX7eqTj8D8giDD10N5wAyif NW6w== X-Google-Smtp-Source: AGHT+IGuVsyJ1VoNtlX4uZdFa9de1M9socYdCeEuJ0l7LOrUdQ47lJmy6BhpBpxRED+In30jMQumsg== X-Received: by 2002:ac2:54a5:0:b0:554:f9cc:bea5 with SMTP id 2adb3069b0e04-55a23f56157mr4445936e87.34.1753094651264; Mon, 21 Jul 2025 03:44:11 -0700 (PDT) Received: from [192.168.1.198] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31db89bbsm1505164e87.237.2025.07.21.03.44.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:44:10 -0700 (PDT) From: Marcus Folkesson Date: Mon, 21 Jul 2025 12:43:31 +0200 Subject: [PATCH v2 1/6] drm/st7571-i2c: correct pixel data format description Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-st7571-format-v2-1-159f4134098c@gmail.com> References: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> In-Reply-To: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Javier Martinez Canillas Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Marcus Folkesson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1260; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=IBvWsfd1qdqQU3Rg1nmav2yYeSIn047JyVePtD2ctPQ=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBofhnZ77JL3v/9CnCts1MBF/beUtSWOM1Zx4r1l WDEMf69H3WJAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaH4Z2QAKCRCIgE5vWV1S MrlOD/9190vl9+6uV8EbrJXDTugXGNXbo9Brq3oO8as6X3Q4KC7xtF+xgG2OZH6mpLq3BSlHo31 jUWRusoZ9g8IERx42w8TWzIwxa+ukcZh8s+6bmw8pTG7yka0FhiH0e5TrSx0qADksGtEENVYFff 9GSBsOAnzQPmMZCkk0UpIUFZ3OL8B8pr59zznppEr6eSMEjm+fdXCvPHDm7AGARnDm5dzIOn7UE EL6ZOfndlLePFOzp+jGv1nqXC1MI9f0sI/s46wM2EEbQUQ4N2AG41Oxg1l8u0N9FwfASN1nqOlT uMu8fq2YRa8ukI/AAeZKHNwbiau7tXIJqZE2d8uVA9Lm6OwqLL2RafZRyOZTOs2zCSCB3JPKP+B idXkuval3ZKCoRvUJxqRYLFm0VVvRA2gB8scZW7JrIKsVlZU44V5S28vL3JHshVrexBlaaYhdoT vuGMAeoTu6Pyi2U8AfGviPG46PlvD0puZ5KTL44i4BYKNpyyDRjPuAojSTARcYx4r6FxcsMMRku G1I2B5tEuDkhRPon9G017rsMB0UQ83Upgix82n4TM0Esr4G7DNNx8dAzknIrOfeREBRZT39ijf9 /dNjrhOxeX9qU+j1pdnYIPpiUJ/pWqxhmPH9IVcwadzlBX4MAGeKp8yAebrxQH+tXoIpIMjzujv ka3cu8FDVHlWz/A== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 The comment describes the pixel data format as stated in the st7571 datasheet, which is not necessary the same as for the connected display. Instead, describe the expected pixel data format which is used for R1/R2/XRGB8888. Reviewed-by: Javier Martinez Canillas Signed-off-by: Marcus Folkesson --- drivers/gpu/drm/sitronix/st7571-i2c.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/sitronix/st7571-i2c.c b/drivers/gpu/drm/sitron= ix/st7571-i2c.c index 453eb7e045e5fb5942720d6020b6279a4b7315d7..dfdd0fa4ff24090c3cbe7ab1622= 85be45464d6a6 100644 --- a/drivers/gpu/drm/sitronix/st7571-i2c.c +++ b/drivers/gpu/drm/sitronix/st7571-i2c.c @@ -386,10 +386,10 @@ static int st7571_fb_update_rect_grayscale(struct drm= _framebuffer *fb, struct dr * even if the format is monochrome. * * The bit values maps to the following grayscale: - * 0 0 =3D White - * 0 1 =3D Light gray - * 1 0 =3D Dark gray - * 1 1 =3D Black + * 0 0 =3D Black + * 0 1 =3D Dark gray + * 1 0 =3D Light gray + * 1 1 =3D White * * For monochrome formats, write the same value twice to get * either a black or white pixel. --=20 2.49.0 From nobody Mon Oct 6 13:17:47 2025 Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38166290D98; Mon, 21 Jul 2025 10:44:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094657; cv=none; b=cT3H/jQmU1nXudHG1bf86r6ldLVIDmu/HXmIP84KLleXh5tO3L8ofCaOIBzHZHXIcTf4JjAs3PP/AqtjsjaBSpVk1cgjH8Fr9OmUQ3cqndJh6PHWLcf2+0/wC+1CMhpau+ILtZqfM7VggILJrXxx7Qhh3kR35rpus+J6G12bv8o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094657; c=relaxed/simple; bh=XIXfugSBmQKeH6uIwZx9ckJkpPo+fuu6lofaI3f2ies=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nbQnOGs7PUPQ/XR3aiRRz2kL4kYSrj4a+rSFV/B3SHQRDRQH41Yo4kPiG3ZeA/wPPLMpF+8hGptci9yjMCpxG/6BloerfiajTzUyR6tv+p/qD7d3dmlFW7IlxxSVnp95ltjcd5HodO3dWqD1Tb8NRZVQl+/7EVzGDBCEo/j3LzU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bKX4wnvj; arc=none smtp.client-ip=209.85.167.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bKX4wnvj" Received: by mail-lf1-f51.google.com with SMTP id 2adb3069b0e04-555024588b1so4441375e87.1; Mon, 21 Jul 2025 03:44:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753094653; x=1753699453; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gCPC3/B/40jAlTbemOzcO7vBZCF5L9R92GLtIRc3FkI=; b=bKX4wnvjQ4nC1LlH6I0kXSKsI3LwTkghU2veapPYwb4KkJd5ETTiDS0VvylWBhDbtH exiGcj3aif6ZXJ0VCUYcFY6GC48sMDO/F5u4huPiGttE+cK1XqgFsubTzE7Xb/Yhw/Ws Fh30fg3hgdSau6OJ5iKsN+Q1XH9wjDx8SNqRDvhGzzJIwUVWFV34GS6wDMbKfgDOngJe ETYOkC4OFRKtJz/nC2P2TWWrthtg4+blp0DjbQe91c0A/e/mMA0XON8sLz9s/HGcK9pc 1av4jS+xLJeYYqBT/1Sp6wyVnI2iVJI6Z01reYpc3FvHGvInfzZhsxq1Gt8EbWVs7aH+ dsZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753094653; x=1753699453; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gCPC3/B/40jAlTbemOzcO7vBZCF5L9R92GLtIRc3FkI=; b=djdZZW0NYMw+mBwoaoJh8525Lm62xzAHBwhIWBN1o3LGoeFIM5A82fpIh8sRncUe18 JDMuH0bFUG2mtk13hGLnW8PXsINkedApMylZU6KOmRr4TJStOx3VvszY29bLr/IeIYOo LHhBJjSYIsycc5vgq/owEPgLQmEM2/rYjpcZgIJG0tczxxK0tmaSwMEZY/8VdoweGPmo VoWIzTPB68vAUdEU9XUlWxxjNHPglQfng0bdTx1qfaaGCtgVDVOeUlQJ7Kq3P4wReT8p qXe/lWpPisAWUuRtp6rVM3ca8ta9wVhEfRD5QGgQjzCfuYBd0UWIzcb0y5Jdvpu22x4T Ffhg== X-Forwarded-Encrypted: i=1; AJvYcCUL1b+V/abKBkC865f2qYDOljAbBGw6qYMJvn2t49aYiPY4ofMjtMcX6dRAOSM+3Z9ZyilDspfVuSpgWF4y@vger.kernel.org, AJvYcCUMpWdb3X696y44tpKvw7q2naYEN+5UdtrWbT8+4v+XeT8aXKeeLKcKjy6WldODdMW0DPz/Gec1AcoR@vger.kernel.org X-Gm-Message-State: AOJu0YxY1ShOgEwZVZ4qXO4CcYIEO5tJU8Gi+OLJCUoI5BUD94jGfXPc AVhNglN5yF43y7dcS+7rANFidHtMcDHFN3MVhcS0Qn4EWJu6Aam0yIhI1R3+l0XibEQ= X-Gm-Gg: ASbGncsh7c+5Kc5nOFafiA9gSMY//Oxvr58GXfknwoX+sa9u/kmEuZf+jsNWOeISaDR FCZiOSWCzBHAEE8l5Q3pVK14ljW/6w2sMOTSKQbflTMJl82GJg1blRvLe8eJ00RfOGDAW/3elJp 4eGh9cdda8GmIHItcF6b7IveEbJhO6sgR24Fmz4bbo8Ym5xyoRA773k2+ChmIOzW/oyavNWYiX+ pG/k8z2gxBgUvTm3qdk1xQqcqEesh6aigiArKcmskjL47OPBgHgcKQ1Ez/wpKCoVIDTN+C8JUUb r7OnRcnMgrRRFNibydEbRWI9zCK6ZuiLYoKG1E3/V6cMZaqLqOtx6FuIgPSn2DxCN3+oIDM3t71 lbn/vEZQ4PhDqNQ+22gsmHBKPLaub1vD4XyAmTNH27EY1SjZdmmnNKAKn3TpdVYqfvEY= X-Google-Smtp-Source: AGHT+IGyeZybIXRYBG+59fD7/AqqBR7UHXGER0tn9h2axe8m3o//fUdJoCEozITZqAu2nxMPNux1wA== X-Received: by 2002:a05:6512:618b:b0:553:3770:c907 with SMTP id 2adb3069b0e04-55a23ee7fedmr5751878e87.10.1753094652675; Mon, 21 Jul 2025 03:44:12 -0700 (PDT) Received: from [192.168.1.198] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31db89bbsm1505164e87.237.2025.07.21.03.44.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:44:12 -0700 (PDT) From: Marcus Folkesson Date: Mon, 21 Jul 2025 12:43:32 +0200 Subject: [PATCH v2 2/6] dt-bindings: display: sitronix,st7571: add optional inverted property Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-st7571-format-v2-2-159f4134098c@gmail.com> References: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> In-Reply-To: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Javier Martinez Canillas Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Marcus Folkesson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1285; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=XIXfugSBmQKeH6uIwZx9ckJkpPo+fuu6lofaI3f2ies=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBofhnew7GMv2NT+v3oyNgCh5g4eMNJigShe13GT gvspkzM0BaJAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaH4Z3gAKCRCIgE5vWV1S Mth8D/9/skTcbCDfamLf/A6lQPq0n1R3ljI2JNRzOoSpcuZ46YCMGSLOqXbQydXwPmMkcUFhVD0 KuEnzkAbo+Kos4wnWfFsJH9dOElrGwH+vZqxX2D2tNPdao+SxkL1sIY6Mb6pBUmY/ISjZF89PTn yoInDREznwj0erBhPs2DBxJAcyhBnE8ysmqwcSFdrtp+m1/x04mmh8fB45wRsawOc2iQqwjIDpm jo2r6Jx9XkYWGPjrNZvu/lgtc002gQ+kCeqYh5D9d/yYwBgyvlDA6BeZRBD27M1krPjVP6aZ/S6 fyoIRk+Hwk5D3nT4d7wB7vJe79Xf3TVbZhI23lsW+VRecDKkg48tQHAM0ozw/vRPFyuB+/0uk6O /aBgPrhIV9YdNw765oHxHIfcbWqsgByeLEcJ8wpCHhchYcJMZgLRk+sGUtNt4cxjdHU3qUBRqUe lwyi7vD4obav4HdLl1b5GhlEB19YeGrmABTVdRZ0ZHhfJlKTbuYQ/Fkk7k/jub1ZNFqmPCQEM/9 fq7hP4RxoiintnwxAi0GKnwn08xfUQZF/orx+oEfKwuPAryWluG/lxE5erV8pr0F5WvmVBSc7th zDaX+gy8G+izen9G012TC3Kn2W/TSWW87pQyrlWAMtifDvT46qms85VxPokg/kwMz0KOACTBwkL qjVfxbV49T8xHqw== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 Depending on which display that is connected to the controller, an "1" means either a black or a white pixel. The supported formats (R1/R2/XRGB8888) expects the pixels to map against (4bit): 00 =3D> Black 01 =3D> Dark Gray 10 =3D> Light Gray 11 =3D> White If this is not what the display map against, the controller has support to invert these values. Reviewed-by: Javier Martinez Canillas Signed-off-by: Marcus Folkesson Reviewed-by: Rob Herring (Arm) --- Documentation/devicetree/bindings/display/sitronix,st7571.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/display/sitronix,st7571.yaml= b/Documentation/devicetree/bindings/display/sitronix,st7571.yaml index 4fea782fccd701f5095a08290c13722a12a58b52..b83721eb4b7f8d258b4e845f107= b056696b8d4a8 100644 --- a/Documentation/devicetree/bindings/display/sitronix,st7571.yaml +++ b/Documentation/devicetree/bindings/display/sitronix,st7571.yaml @@ -28,6 +28,11 @@ properties: description: Display supports 4-level grayscale. =20 + sitronix,inverted: + type: boolean + description: + Display pixels are inverted, i.e. 0 is white and 1 is black. + reset-gpios: true width-mm: true height-mm: true --=20 2.49.0 From nobody Mon Oct 6 13:17:47 2025 Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 89860291C2D; Mon, 21 Jul 2025 10:44:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094659; cv=none; b=BIywYf1Je7t376MOGOCFuDKNaz1dSJMlTUH3pqiobYupr/Kg8NyNL4VLLgYO/xanxCeg08ABt4LIGuRt7cm32in+8EScjU7ENeCLPr1+lroBVkbPRcUKJXif1gr0R4yKrh/ycxSHta9FXFMYgO9epzNfdKsKhP7Usn3b7K86gNA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094659; c=relaxed/simple; bh=pofdZO+wzv4XwsWqba5LTe4zsUx4ThM2T3T7ftsOpsk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YzgbFQcqPj3uOgB/Nse/cddjJ9p/rba9PUZZplPw++kOngDq23kBZ24ofeX6v1D8HJbUdfWiBvyFu219WHbB/3/JzxPQiM24r7RlkJx4NMYwIm+V8TWY9tgrITIVN05ZvM3ry8lzu3SdfM5nFEH/SDT1oVfUbJMRs4CpBMBmeQc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PWY2xoIz; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PWY2xoIz" Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-553c31542b1so3637185e87.2; Mon, 21 Jul 2025 03:44:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753094655; x=1753699455; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=VxAdZWe4deFkVw4HveAlQFq3r8kE1/6molhjhEtjNCc=; b=PWY2xoIzj0k2GRVUwTqRqDaY8BgQwfD+u5TiVEin9igi5bNOKssdGN6mTCRM3iAyln XztIdTorkTwOLaDJE8s3R2n4p2//NCS8jyL1EhNstiIvEG0sEdo8Jga5CuV14tIHuCza niKrf9EA2yyK9Uz+ZI1MsV/ADcKVqE40P9LPxXejlWzSGc9FhsQJnBG6i4t4FY2AhyWf JKevnUwUwmgs18MdxCZ56FyoNy80cikLZyOHoZ1LU1tUH8DPLh1N67p02rYvLvRuuyop zNv1KDdcZhQ4LjkCIHAGozZZcubSkOc1mxh7x/brkxSp7LyeVPS/t9UYPsIshw0JKd5Y 0I0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753094655; x=1753699455; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VxAdZWe4deFkVw4HveAlQFq3r8kE1/6molhjhEtjNCc=; b=gf5JB8F7CF2DTGa8N3DHHPxoRVpn5mhzD+nIl7DgG6QNEjgrB6vmrsxHyWcX/DbND4 tT/PYpVqaiB4lPNnWrrw4h+tjQmVZQWrM9LdHPGKXK922kCXKuRk7M0slZl/RbDSN9AY wVNRzir3uLIbusBeSYITMlr0vlB7qNtPESGMfE1QFQYxe8THYvV0FPNyRZzyMhJFXoCp RDQ4L0RtFz90np+iaIJMIMwwx2O3TbdhRW0M0JWQJKDZ+0c7BmvF3v+EvZs/VbgPUVSj jEIOSNFeG7sVrZlDMh1EPJVRSCYnwD0bIaFQY+i0rUYrNHlHH1uZXb74SrQz10lXQhPI BepA== X-Forwarded-Encrypted: i=1; AJvYcCUbWcbkVDLI3R8CO+XgdBaYNRireo5Skeyidegtxz2ljbcit38JgwXfzG9vcmCdoZiLJ4feXNb5T8LPsyy6@vger.kernel.org, AJvYcCXnwYTPDNgQX8ckiFh5ovTfb2t7wiCMaWtJCCD/OzdklTEF2VJfFvC5SDqD7ucPNX+suRzzS7PsFZ8b@vger.kernel.org X-Gm-Message-State: AOJu0YxGZqvtt4D6Mrbqm3zCYVvR3q303OfV5haGJePwQ3cKCQlOTUFU VsPmRIPltx6ABk5xR5nxid72QJhOdP6FNUrh1Jb4IpXVjqqwzSl+pApEhVN9xovuXao= X-Gm-Gg: ASbGncv1GOHjb19r2tXwVby9UD8rg1Qo9iZrtAR76ms/CL6kAsnkoxZcb4QdUoWihVh B4m4LUQ56eEdLyF5u7LNtRL6+oOczSmwA9Cr6W1niu2G6xS2bb4dB63iaB0P/0A/O5GmfIr9r6f tB4FX0/bEZV0ZXWqzrBqUA7Z/YYm5UqZstKwST/n+PFixJ7egGPpWqEgC2VLxgT2Zn2KAP8MZOX wN0pSj/nEQWp6KqCVn1uHF56JZUsSp069q5BID6jjgUNBC/HNcFneFIolrfcdFXhvz1qCsrc9JF uILQJ1lsNqFOo8jpYsFOebKGiUFHNvBzbyTf5OQzwlUcQOF4qHOjNEf/cAthQMXI74LyXQ0J+oc Y0KsXuYuxk0zfoxQaHp3egV7g6MqeLVnYBbomlmOV++cZETPj2lJvESnzd2RWOLTHKOvJs5g0MA AD0A== X-Google-Smtp-Source: AGHT+IGYWaCFL8xA5EyMa434EWfdLSheJ3rDLZChUay5GLugk1edqdQ6zS2UsVz48U3bLv0JPWIcIQ== X-Received: by 2002:a05:6512:1387:b0:553:cab0:37f6 with SMTP id 2adb3069b0e04-55a23f06ca5mr5166596e87.20.1753094654822; Mon, 21 Jul 2025 03:44:14 -0700 (PDT) Received: from [192.168.1.198] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31db89bbsm1505164e87.237.2025.07.21.03.44.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:44:14 -0700 (PDT) From: Marcus Folkesson Date: Mon, 21 Jul 2025 12:43:33 +0200 Subject: [PATCH v2 3/6] dt-bindings: display: sitronix,st7567: add optional inverted property Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-st7571-format-v2-3-159f4134098c@gmail.com> References: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> In-Reply-To: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Javier Martinez Canillas Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Marcus Folkesson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1140; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=pofdZO+wzv4XwsWqba5LTe4zsUx4ThM2T3T7ftsOpsk=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBofhnjRBHsrqsSV2/fq/jzKaw5WsrLQutrj7Ebn 19MT6dUgMyJAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaH4Z4wAKCRCIgE5vWV1S MkKfEAC+ZSML1KYLh3tZHsiCOqR1W2O3/mHSafftlzqaA14RiJnPYhJvXz5qVVWNAuRq1/v9LSe yT6nYzzDECSCpoaGtBEMjk1CiOoyy+6O0Hn9mdi+kO/93E/PDBc5sPgeqbKWxLFgvNRd8eHhw++ S2rOZZKE4vQ45RH0DIPK+pe4o2ZCRjGmC5SmE0OyGUM63cg6Yk2IN2S3aDuHhQZyrv5cxhNTlmV cLqB7st8fondSA/XsvDbB8ocDnGCfmycS0Jtg9TUUjZo0ZhKV/DoSRbxVL76jzsTBfhl172DNM0 hDBfSVm9O3Ll4D2iyrzvGfnGxYExP/akGr3zw8DTRuRH/54I/IYulAtwFJuUK3wYMqeNeSVXj7W JNvp2lRUhvGzceRhJVf4pbtBFrtOIlfH+DRCizq8IMig/99BCjlSMukEUoOGnI1ZJxbQLICsdT1 ZRgYGxNqokdFj3BunFvdfa1/TAWoXqH/QeexWnCZUQFuUjtsjdCcNL1J7aOtn3qsY/2HDF2IESP 5VIAVR443VJwoEXsSjaE9rGhHNGMabpcif546yvD6ipORAsv4KlrrI3TZTLIgfYtpilvrcwMrPO 7rgrJIEv6xZO5/0vdFAQ0Ox9xp4k+89m1NCjte3wRPRJ9qWYNtYnT0ivlO6xOVPBB8rgQsMVypW PQFH2GN0k2tFiYw== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 Depending on which display that is connected to the controller, an "1" means either a black or a white pixel. The supported format (R1) expects the pixels to map against: 0 =3D> Black 1 =3D> White If this is not what the display map against, the controller has support to invert these values. Signed-off-by: Marcus Folkesson Reviewed-by: Javier Martinez Canillas Reviewed-by: Rob Herring (Arm) --- Documentation/devicetree/bindings/display/sitronix,st7567.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/display/sitronix,st7567.yaml= b/Documentation/devicetree/bindings/display/sitronix,st7567.yaml index e8a5b8ad18fe01429146b20a0b8237a164a7dd47..2eb6d00b5a25632a1ce121c1b43= a92b2a4010fde 100644 --- a/Documentation/devicetree/bindings/display/sitronix,st7567.yaml +++ b/Documentation/devicetree/bindings/display/sitronix,st7567.yaml @@ -23,6 +23,11 @@ properties: reg: maxItems: 1 =20 + sitronix,inverted: + type: boolean + description: + Display pixels are inverted, i.e. 0 is white and 1 is black. + width-mm: true height-mm: true panel-timing: true --=20 2.49.0 From nobody Mon Oct 6 13:17:47 2025 Received: from mail-lf1-f42.google.com (mail-lf1-f42.google.com [209.85.167.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFA7D28C862; Mon, 21 Jul 2025 10:44:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094661; cv=none; b=KEwfEQ4K/85zR5c1gfoucOdo/kk9Lj7iXiCaCj6wLSV6B89fgmoLndRCKP4naZgkW8qKu3sR4QVFIaAvpv32xp1FPy627bPii09l2KYbzpXrzRJRQsvwsaqRhy0NRVp40kIu4M/ZqZm969xUGeTGHPL264BkCEshTEdfeLUFLYY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094661; c=relaxed/simple; bh=XXw5Ljs40nuD+6Xw/IEzZjAPPPvss4V5WiaBhIEjKmM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ioR9tPR9dqK3q5ig7YRsqFe0mr3MYVNJAvh3G9B1VDg5KMimgHkmLIcs8ku6ToVFP2deOBqQWK8SKZ4gSb/5jjn1W4i6UXih5nSjKV5voOPwVHmcrGC4UPo4BQvLSeO5WezDw5xlakZrqCJQla9ZcuGk2XdyhXiUfS64LypWjyw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=M1f5vlR0; arc=none smtp.client-ip=209.85.167.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="M1f5vlR0" Received: by mail-lf1-f42.google.com with SMTP id 2adb3069b0e04-55a25635385so4844111e87.3; Mon, 21 Jul 2025 03:44:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753094656; x=1753699456; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=g94RElh8n5FdWhINQBgf3TM1P9IZtqRvM+lGnJwdOEI=; b=M1f5vlR0xVKB6BHHkJ3yMUM7VcmJZTJf90/2l5j6tBXyP7TA6A8AN78HD/PEHm8Bz6 15O0zxzQxE/LSYWifuDxnrtgLmFM6KJWItGsFq/0D6d7aGlUNI0bvNFPfRpUUr7p6120 GyHPwYPqecQywozUxbVWK4xDxajWFXGRs46FnjbZuBZmZ/6pgVYKY6UEEyhh87+W2amc xaWhdYtr9wQCy57HaQkc8IMiu/QgMsUaNAlS8h9xpJ5xMO6a7t2HPvK9u3hs3YWgADaT i5pMIUe7oL9W0Qd9FHIIyRUC3i2HS0Z6UnkPAulEh3sE1lEip2MhDMf5aR55vmVlCl9F ETlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753094656; x=1753699456; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g94RElh8n5FdWhINQBgf3TM1P9IZtqRvM+lGnJwdOEI=; b=vXlIQVzokk95FL4mxMVK67wUOsrVCWcL0av4F05CY4Yb4L2J8fel+NxpVZVHsU1wq4 Z0gEPaMbCX0kTKVbOU8/gEslr9OfGN3ZE4/lUR1WznLV6QBzX0Lqb2sgK1/VV1BIi/G0 eQHPMlpMO6Wo14wBCw964zqsg+A4NMKmuzEkDtn3aJW5N0uaFNFSYKdyhXbuyHjpIeNa x//MDfeja5ueyL5ET+/pCze9MGogi+RFZ7s81mZFplJSnV8ziL2ne6kMzrAHgfMfhZjt NNUFEduvonVgfLxsol76RGIbXVT7FdqgljDniwfMVc3m3RNKbhHifZIiPNAZH/CB7gwy 5Y1g== X-Forwarded-Encrypted: i=1; AJvYcCUF94sjC0RryUYgfJHcGQELny43kR8PL1iTxu3HRRazDKNjcW3ckXUWhqqmamkhRS7PqgiWDf8PVzeId/W0@vger.kernel.org, AJvYcCWsjdZagu2CpSUDUa52CV0Hr2B2yZgF9+a+dvuwcWITrkE3RyQBcFrye8MDO8Ap/Qhq4y35mm8yjRDg@vger.kernel.org X-Gm-Message-State: AOJu0Yzxk8iXJDVeYB+2zONNoQESR7B2zVRsac+U3t5ffB6i9iPuUIGk fIJfwJmhlp5Dy3M7AELiItoBMJQDPJTtq2tdhRHOOecGqRdsZV1BxUsgmYm+3eLA1uM= X-Gm-Gg: ASbGncviRk5Ia0GioYRSOTrZcMAeFUjdh+H2VvTaYNBn93F0y4bhTDc+SY0oZ/UhyyX hFHvPuV3mPYcX2GRBj70Gcm+Ie2kayPPwMHLfigm2If8UhsDxKPNfheLeUhvNphWQzn2TjtKD2z wZmg7QW/9CHh71hfMdQ+b40IPnzjQFODueeVZcl0RDvocZlo0YF0wVegPBAyCpK892GM3R3SEbZ Nd78gHd94Efv+PBH2bH9WaOuGmZ/WnjZJn/GYyuy2Bg3BoxNg2h1RlCbpieR+Zog2+Iqe6wThCc laMTnd1T12jsEtBNXjQNGqOPMbj+t6pEnc5pGvWIRZoFiQ5Cut6p8kpfugHgfyLpF26Jc/9BkyJ DAvrzVs1nhbyrnRY0clkXNDdJ8YQaFcL19DntdQ3/K6qSqgCJuUFQTn2V0AhXplZj6uI= X-Google-Smtp-Source: AGHT+IHkGSC0km51BD6ZF4Mf93uahDRHJELprcnQqkqQ/veK9u3GssP0LAfbM5e/0BcP+puuCr3y7g== X-Received: by 2002:a05:6512:3d02:b0:553:510d:f470 with SMTP id 2adb3069b0e04-55a23300e4amr6363513e87.4.1753094656252; Mon, 21 Jul 2025 03:44:16 -0700 (PDT) Received: from [192.168.1.198] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31db89bbsm1505164e87.237.2025.07.21.03.44.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:44:15 -0700 (PDT) From: Marcus Folkesson Date: Mon, 21 Jul 2025 12:43:34 +0200 Subject: [PATCH v2 4/6] drm/st7571-i2c: add support for inverted pixel format Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-st7571-format-v2-4-159f4134098c@gmail.com> References: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> In-Reply-To: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Javier Martinez Canillas Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Marcus Folkesson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2429; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=XXw5Ljs40nuD+6Xw/IEzZjAPPPvss4V5WiaBhIEjKmM=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBofhnoXeJ5E1rL0wCRLER895ZymN6j36cstqv2u RpuZEaFDjGJAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaH4Z6AAKCRCIgE5vWV1S MonCEACA0O2iGW1ogh59ZdknKyjz24l/VRyP5T2CXUH073SIz9mlwGnd2KV5VvDbkID0c0CbRMQ Po+hscDGzVgk+p5ml1yzX1TcG6RF/EIL4pP3HLr4yLhu7KcEGLxgAoUYbp6U4p1ymmOgyXlj673 ZZUHs0yVw/E49bfNnrg2tcTFC6frf0IyJN+ADrZVIsyvQDF00smM48V38BxPQFoRLZAGB0jcB3Y oH8kV9LfkbELthvvlYX4MUMvdowjQw4qBu0bNO1Ek8E64u1pruat8kO0HhF8B/8nHtHBW37B/dA /uiWpIuBDGn0EEr+NOMDWn71otV0+3SB+tDYZbnbmVbPFKgFOppjVh7su/N+drgcwKFr6W3S+VP km6xdnY47b1j5YgQgEqJQCKgYpFMYyZNHtf5Y8ViuN6PeEmUliPr865Ct9QuOv0FHKcaew3HP27 hOja8noIRsN/ZxnqEXsFVyZvQclXU+Jr0X1utlzU/p4lwpHtMt5YQG73X3kgLp2QV/JYC4xLID9 0OrGcPDIIwdtHgxKBICTELJzr7m9gpBJE3c01akRl2moohTKHwW6or0Ee4nA6MdVD8BdRtfsePq laA604TFpnPVepLMNc5gcCeHTPbobvF1Sk1sDkdBwuG+aqk0oLOXOLAMKlDeyAdWox5c971k27m QATuWptg+wz7ESw== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 Depending on which display that is connected to the controller, an "1" means either a black or a white pixel. The supported formats (R1/R2/XRGB8888) expects the pixels to map against (4bit): 00 =3D> Black 01 =3D> Dark Gray 10 =3D> Light Gray 11 =3D> White If this is not what the display map against, make it possible to invert the pixels. Reviewed-by: Javier Martinez Canillas Signed-off-by: Marcus Folkesson --- drivers/gpu/drm/sitronix/st7571-i2c.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/sitronix/st7571-i2c.c b/drivers/gpu/drm/sitron= ix/st7571-i2c.c index dfdd0fa4ff24090c3cbe7ab162285be45464d6a6..9f2de057ce9d990fdd77e395a6c= 32ba1e2f36137 100644 --- a/drivers/gpu/drm/sitronix/st7571-i2c.c +++ b/drivers/gpu/drm/sitronix/st7571-i2c.c @@ -151,6 +151,7 @@ struct st7571_device { bool ignore_nak; =20 bool grayscale; + bool inverted; u32 height_mm; u32 width_mm; u32 startline; @@ -792,6 +793,7 @@ static int st7567_parse_dt(struct st7571_device *st7567) =20 of_property_read_u32(np, "width-mm", &st7567->width_mm); of_property_read_u32(np, "height-mm", &st7567->height_mm); + st7567->inverted =3D of_property_read_bool(np, "sitronix,inverted"); =20 st7567->pformat =3D &st7571_monochrome; st7567->bpp =3D 1; @@ -819,6 +821,7 @@ static int st7571_parse_dt(struct st7571_device *st7571) of_property_read_u32(np, "width-mm", &st7571->width_mm); of_property_read_u32(np, "height-mm", &st7571->height_mm); st7571->grayscale =3D of_property_read_bool(np, "sitronix,grayscale"); + st7571->inverted =3D of_property_read_bool(np, "sitronix,inverted"); =20 if (st7571->grayscale) { st7571->pformat =3D &st7571_grayscale; @@ -873,7 +876,7 @@ static int st7567_lcd_init(struct st7571_device *st7567) ST7571_SET_POWER(0x6), /* Power Control, VC: ON, VR: ON, VF: OFF */ ST7571_SET_POWER(0x7), /* Power Control, VC: ON, VR: ON, VF: ON */ =20 - ST7571_SET_REVERSE(0), + ST7571_SET_REVERSE(st7567->inverted ? 1 : 0), ST7571_SET_ENTIRE_DISPLAY_ON(0), }; =20 @@ -917,7 +920,7 @@ static int st7571_lcd_init(struct st7571_device *st7571) ST7571_SET_COLOR_MODE(st7571->pformat->mode), ST7571_COMMAND_SET_NORMAL, =20 - ST7571_SET_REVERSE(0), + ST7571_SET_REVERSE(st7571->inverted ? 1 : 0), ST7571_SET_ENTIRE_DISPLAY_ON(0), }; =20 --=20 2.49.0 From nobody Mon Oct 6 13:17:47 2025 Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1779B293B7E; Mon, 21 Jul 2025 10:44:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094662; cv=none; b=GZRof+w8wdQmFVHEvQHNV9J82yb5Vweu+1ZIjsiM9zIBGmGmAUdMnH1WSMoLWlAVBLydJi7LGboa1cJ1Pvysn7rvNVRKXbK/6r7BoTQHjIQqz3R5eSlvpaq5XHsCSPHwBwfglGEm9xmT+KwYAli382Tc74ZYa4RZ5PugMtXOBVI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094662; c=relaxed/simple; bh=I4G+JbRsrDS4oV8BaxIOe0VI1PnFurXtnr3+a5PfHc8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AUq73d6Hy87esFBLrIpcoN47/sYb1nOvhQT08KqROc3mj8tuAFz0MCGH1Muhs+gPN48mnqatvMOCuYiwAPcL+jD6HR5OaVc6MC6fNB7sdMmVpBpFQHaLEx7rv3Ra33QXLqd13HSbUFQSmWQiy9cLmRMnCwsv+YK6MgW6vXvtfqI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HLxmMStp; arc=none smtp.client-ip=209.85.167.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HLxmMStp" Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-5562838ce68so4064756e87.2; Mon, 21 Jul 2025 03:44:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753094658; x=1753699458; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=RB5lNaovChCD8tOuVlmGSmp/T+ZYteObQVStiP2KQcA=; b=HLxmMStpAHc+YZ9pDOe6zw8SGnaQuZHPI4rql1Xn75VeX5s4OjrJeDYYRr37kc0lq/ ePtSSd8cn0WxNaQEEZX192u61ryuKlX5tDQD9ib+InIwwgG77/Y8CBstIzP1bS31miXf Mjti88e/+8LjvLicLBKSiCPng/SyF3wJDKenkNO7j3BykfatdW/qJbJyRefQZ1IqqRxY Dw1QXspHpIy2ZX0eMFulUKSHoNI2v8jPhoevxzkZllWkjqZN2RXU35bwJ+3bD6+lxeG3 CkvfUrseSb5Eq+UbaYoj7xrxjA+NgxO2xVyJ16iWYJ0/CZmcXbPe1OA5pjVumB3L4Rcb a3zQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753094658; x=1753699458; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RB5lNaovChCD8tOuVlmGSmp/T+ZYteObQVStiP2KQcA=; b=vcnUIdjEvbIUjNAZKfGCMm720wvUrxJSKFNyK/VQV7ZmFpkaVAV1EkNScnoTQ9GxS7 l6co3noJUvEPV3Oq0xkyo0KE8YUrj0ygEKFhnEUS5dH2zKZ+nUTUpuPULEe3QnQhZLsM HjHVibuuseii/6DreFtL2APbtnEMpVJhbWs3aBiEIBV/31ekAQJKtcmgoobYiQKXrMp2 AYrKmrE0iFqim8ub3H2/MPrazW4GBtLb15yfZMiz5cOOrJh+f4IlEbwRkDiRnKyHgdti R4sD01B4Zfdc6d/KIbv6CxFLEXreOlFv1kp/IuFDH1pjO7p3YM9ANkiBP0/vRTScYHS/ mw/Q== X-Forwarded-Encrypted: i=1; AJvYcCWUV+eOL9WQSFHxRjlQqvj/YgmdX4m6Y4t/EE03DiRF8YHNzeWv6xDsyHK7zQsOz/pXrILPdTFsJyePqY4d@vger.kernel.org, AJvYcCXl6dJBeQG3deZUrxPV7WdATXlnvjgdOkU8IuGKMRhow/tbu93BnN4GDz9NAJjwy1mk4EP4dWjxoDHS@vger.kernel.org X-Gm-Message-State: AOJu0YwnnEBeDHT/G5bb2pi8YUB13qi2cMQOVQVkrDJMrKFNhiN5nG3C CF7nT2oSOFjQnlhHoG/wmklOweSUUMmld2LMZYtgQ3Gtbfn44xNQVT/gwPHXgB82Kzo= X-Gm-Gg: ASbGncupX9SQ6SR6xmjQRgeAhS/MA0dYzDpzU/3GzPF703MN8wZrxz7LgmPXQPJZ329 DyTt/AYUgx+JLPKYojgiI4KxYNezalionzFN7SZw08c7Or5mJr4+8+Ck5j2h21ASjWGOYW7k/X7 FrCZ/GryzC0NpSZ3Dif9sYFKEAgMDzjZJU/8N7b9hBwFVVHhZRKNriEDGtNlmR8O/dJiIOQbW9E wGYKy93A3TR8eAzyFuWUEs9pSd1KaeEDFU3yrFVUSzAjj3CVQE1H5tg+xwBtytipLPS/12VgsRR jGFOWLSMeo2vm2hH+YLeJt+M01E+sfc+dG40aotUnkRYyvikpvRrsneFnT75BByy3dtr8GC3kFK YFo+0RcmSX2FU191eg31ypFMrEW+6SPqMYOB5NVgeRtqtUGwDXe3pwcGIuKtLfO1NHHE= X-Google-Smtp-Source: AGHT+IHGsOjqFEHcEedZtuyZb6FZVdOlC4x4WmTDRlK+Kfy/7WqcMJrzVPtzqLQcqUNw+Lsn6He+rQ== X-Received: by 2002:a05:6512:15a7:b0:556:c4f1:c7c8 with SMTP id 2adb3069b0e04-55a23edf989mr6883902e87.3.1753094657570; Mon, 21 Jul 2025 03:44:17 -0700 (PDT) Received: from [192.168.1.198] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31db89bbsm1505164e87.237.2025.07.21.03.44.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:44:16 -0700 (PDT) From: Marcus Folkesson Date: Mon, 21 Jul 2025 12:43:35 +0200 Subject: [PATCH v2 5/6] drm/format-helper: introduce drm_fb_xrgb8888_to_gray2() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-st7571-format-v2-5-159f4134098c@gmail.com> References: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> In-Reply-To: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Javier Martinez Canillas Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Marcus Folkesson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=5865; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=I4G+JbRsrDS4oV8BaxIOe0VI1PnFurXtnr3+a5PfHc8=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBofhntAIhYW7Ru64HRSQ9tF2adBEFc8r1kE6pGt 347ncirUmOJAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaH4Z7QAKCRCIgE5vWV1S MkqAD/42Gtw753U89r020ZUpRSb79kQummDbxmfUUJvvn90m+3IqG1mqI8H5gupczDBp20+nQ27 1oJUtqwIXXwY3b+MtgILXzRqLdbQ7oVqNe1OhCg9EDANnawA2iXMY/mWg9cgRNfId9KTpHj230k L9QvUTsePwfAjdDEPwDZB3DcwUnsDwf+Mynq8e2YOHEH84Qe9iec45JDjsUEQReSJFI/6f2JKeo 5CEZgM0XuNSPFLalICab0r/v+EcA4ieOqdOPiGxdSv/iCNJIcb7NiYQhtkkh7313J3FbCyUGeD9 li1pZ2une7hHLaJqyojwV0GpmrXAsbbigEW89IPZBWRrTiluhaI97NZwncr0Azeqo3LFaZZ15jJ BduqfJpR94GZH10fjIHdkO36CrU4AUylpmyc+w3qiqdDGU2EprLB2OnJ7svooEeoFMkDpPiwWj5 wp2lrMZ8lu7NGTqzoADpjftq0wU1TxF88rXqDXQUEmozquylftG0pCApr51Xm1OAL3GVWgz5F8x wOaZsWp64k5D8tjapjh6rS9wfdOqgdKdfBO8gR0QVY1BHypYETHgRxGV9Rrl3qG7/gzV7UIKibX NFZVmIIF5pqxO9yy/6QaeXutdSEMjUF8iJ39EQNljRqUBdg6nvH4edqFPfgXBq3WJ+GyuF0UA9R fSNiPPs/c+bgF3w== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 Convert XRGB8888 to 2bit grayscale. It uses drm_fb_xrgb8888_to_gray8() to convert the pixels to gray8 as an intermediate step before converting to gray2. Signed-off-by: Marcus Folkesson Acked-by: Thomas Zimmermann Reviewed-by: Javier Martinez Canillas --- drivers/gpu/drm/drm_format_helper.c | 108 ++++++++++++++++++++++++++++++++= ++++ include/drm/drm_format_helper.h | 4 ++ 2 files changed, 112 insertions(+) diff --git a/drivers/gpu/drm/drm_format_helper.c b/drivers/gpu/drm/drm_form= at_helper.c index 8f3daf38ca639d3d39742c2c9fa0c54a3a9297a5..bfeaa4db6929859ea029192a868= e6d42741b31f2 100644 --- a/drivers/gpu/drm/drm_format_helper.c +++ b/drivers/gpu/drm/drm_format_helper.c @@ -1253,6 +1253,25 @@ int drm_fb_blit(struct iosys_map *dst, const unsigne= d int *dst_pitch, uint32_t d } EXPORT_SYMBOL(drm_fb_blit); =20 +static void drm_fb_gray8_to_gray2_line(void *dbuf, const void *sbuf, unsig= ned int pixels) +{ + u8 *dbuf8 =3D dbuf; + const u8 *sbuf8 =3D sbuf; + u8 px; + + while (pixels) { + unsigned int i, bits =3D min(pixels, 4U); + u8 byte =3D 0; + + for (i =3D 0; i < bits; i++, pixels--) { + byte >>=3D 2; + px =3D (*sbuf8++ * 3 + 127) / 255; + byte |=3D (px &=3D 0x03) << 6; + } + *dbuf8++ =3D byte; + } +} + static void drm_fb_gray8_to_mono_line(void *dbuf, const void *sbuf, unsign= ed int pixels) { u8 *dbuf8 =3D dbuf; @@ -1359,3 +1378,92 @@ void drm_fb_xrgb8888_to_mono(struct iosys_map *dst, = const unsigned int *dst_pitc } } EXPORT_SYMBOL(drm_fb_xrgb8888_to_mono); + +/** + * drm_fb_xrgb8888_to_gray2 - Convert XRGB8888 to gray2 + * @dst: Array of gray2 destination buffer + * @dst_pitch: Array of numbers of bytes between the start of two consecut= ive scanlines + * within @dst; can be NULL if scanlines are stored next to ea= ch other. + * @src: Array of XRGB8888 source buffers + * @fb: DRM framebuffer + * @clip: Clip rectangle area to copy + * @state: Transform and conversion state + * + * This function copies parts of a framebuffer to display memory and conve= rts the + * color format during the process. Destination and framebuffer formats mu= st match. The + * parameters @dst, @dst_pitch and @src refer to arrays. Each array must h= ave at + * least as many entries as there are planes in @fb's format. Each entry s= tores the + * value for the format's respective color plane at the same index. + * + * This function does not apply clipping on @dst (i.e. the destination is = at the + * top-left corner). The first pixel (upper left corner of the clip rectan= gle) will + * be converted and copied to the two first bits (LSB) in the first byte o= f the gray2 + * destination buffer. If the caller requires that the first pixel in a by= te must + * be located at an x-coordinate that is a multiple of 8, then the caller = must take + * care itself of supplying a suitable clip rectangle. + * + * DRM doesn't have native gray2 support. Drivers can use this function for + * gray2 devices that don't support XRGB8888 natively. Such drivers can + * announce the commonly supported XR24 format to userspace and use this f= unction + * to convert to the native format. + * + */ +void drm_fb_xrgb8888_to_gray2(struct iosys_map *dst, const unsigned int *d= st_pitch, + const struct iosys_map *src, const struct drm_framebuffer *fb, + const struct drm_rect *clip, struct drm_format_conv_state *state) +{ + static const unsigned int default_dst_pitch[DRM_FORMAT_MAX_PLANES] =3D { + 0, 0, 0, 0 + }; + unsigned int linepixels =3D drm_rect_width(clip); + unsigned int lines =3D drm_rect_height(clip); + unsigned int cpp =3D fb->format->cpp[0]; + unsigned int len_src32 =3D linepixels * cpp; + struct drm_device *dev =3D fb->dev; + void *vaddr =3D src[0].vaddr; + unsigned int dst_pitch_0; + unsigned int y; + u8 *gray2 =3D dst[0].vaddr, *gray8; + u32 *src32; + + if (drm_WARN_ON(dev, fb->format->format !=3D DRM_FORMAT_XRGB8888)) + return; + + if (!dst_pitch) + dst_pitch =3D default_dst_pitch; + dst_pitch_0 =3D dst_pitch[0]; + + /* + * The gray2 destination buffer contains 2 bit per pixel + */ + if (!dst_pitch_0) + dst_pitch_0 =3D DIV_ROUND_UP(linepixels, 4); + + /* + * The dma memory is write-combined so reads are uncached. + * Speed up by fetching one line at a time. + * + * Also, format conversion from XR24 to gray2 are done + * line-by-line but are converted to 8-bit grayscale as an + * intermediate step. + * + * Allocate a buffer to be used for both copying from the cma + * memory and to store the intermediate grayscale line pixels. + */ + src32 =3D drm_format_conv_state_reserve(state, len_src32 + linepixels, GF= P_KERNEL); + if (!src32) + return; + + gray8 =3D (u8 *)src32 + len_src32; + + vaddr +=3D clip_offset(clip, fb->pitches[0], cpp); + for (y =3D 0; y < lines; y++) { + src32 =3D memcpy(src32, vaddr, len_src32); + drm_fb_xrgb8888_to_gray8_line(gray8, src32, linepixels); + drm_fb_gray8_to_gray2_line(gray2, gray8, linepixels); + vaddr +=3D fb->pitches[0]; + gray2 +=3D dst_pitch_0; + } +} +EXPORT_SYMBOL(drm_fb_xrgb8888_to_gray2); + diff --git a/include/drm/drm_format_helper.h b/include/drm/drm_format_helpe= r.h index 562bc383ece4e90d96aa92b47b4f69609f825a6e..8488befafb7e0e0311f87bd2fef= 5011bab45065b 100644 --- a/include/drm/drm_format_helper.h +++ b/include/drm/drm_format_helper.h @@ -136,4 +136,8 @@ void drm_fb_xrgb8888_to_mono(struct iosys_map *dst, con= st unsigned int *dst_pitc const struct iosys_map *src, const struct drm_framebuffer *fb, const struct drm_rect *clip, struct drm_format_conv_state *state); =20 +void drm_fb_xrgb8888_to_gray2(struct iosys_map *dst, const unsigned int *d= st_pitch, + const struct iosys_map *src, const struct drm_framebuffer *fb, + const struct drm_rect *clip, struct drm_format_conv_state *state); + #endif /* __LINUX_DRM_FORMAT_HELPER_H */ --=20 2.49.0 From nobody Mon Oct 6 13:17:47 2025 Received: from mail-lf1-f47.google.com (mail-lf1-f47.google.com [209.85.167.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 589C4293C53; Mon, 21 Jul 2025 10:44:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094663; cv=none; b=JlH7ZeEmLUrAcuvy7JIF0/Qd9YNR2FUhYXuYqcXUrl0jS6a4FJBKh6n6f7g++QrI/RoJHoawAFDcH2kmXa2tdd1bNG6E2oDjyQi0dCKNT8iQLImpBMTvgImGlSjzC8C8fvihX8m5eRSl4mTVZehKqitKg1coZ+k1S0mLJSRcKVo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753094663; c=relaxed/simple; bh=ja2G1eJ+TGuBldLn7eDuIWTNyT69bULS5f7eLL4mV1U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=huBFeO3G7YMD2sYe0pt2lWIONgGaWO+D51KxBiNV8oXRa2/edNAgY0fIDpJnzp5E6mLuXU1sRarXatgfd1UdPZFqEJ3yC5pm7NhIC3tDIvxUYceSxGTfGTlW2cTVe4Izbh+QM/M9/76OrUNnN5MGQ3Q0XmeiF2CTj7A4o+KWb84= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OMInJzBg; arc=none smtp.client-ip=209.85.167.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OMInJzBg" Received: by mail-lf1-f47.google.com with SMTP id 2adb3069b0e04-5561d41fc96so4829371e87.1; Mon, 21 Jul 2025 03:44:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1753094659; x=1753699459; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=cEVQJX/SYaok2ELlEAnWGTHXSwBKm7K9AhgOU6uSUA4=; b=OMInJzBgkmGJbBkAp3sX0fZpWX0RR84w4u4/xwOTZYo+x5ttoofgVsUBG5KloOZZs/ gQl9WZUkV/9qTIjW6vJCfDNmjHvdpP+YEFMQJ3h8dpix/EN/Pqw6roUJ3ZGE7dVp3F/O 6LK09kvYkrnimXvxaTyYcJrgVAzwe6fCGZlEV9MGZx7fMvHcT6LJSWnyCRIg4848sJDd oTUpiwiObzS5nWVuaL/VcQrurtNLsSR7h+mN0TsJH/nOWrZfSjZu4AJKb7upG//T83fh X/GfxIzroo5jLoGQrCgqDJtmYMBNn/tbsHrsgBy+UIP/ZC1Ffbys3GjNYDWQZO18ABdT 7elw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1753094659; x=1753699459; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cEVQJX/SYaok2ELlEAnWGTHXSwBKm7K9AhgOU6uSUA4=; b=aiZSycnHiXO4zK3O1f3GW36AEUiA1lERGK3e1n34OxmH0jZHx/nlE+bJwrhE5+oOv9 TL5cXxptr7NrqkKkXkc5qv3rRnFOz5hw5Ug89ldm75KN9myK4U7cbU7hk4gD8iNVco1A joc1UcYzRhZkn9FN1cFGNF3/RPwUVbo8pMPb+6R2jHg7bIL7kxzMZvlFob1Ba/VbKasI ahJL8ESpurBWlUQ6njKNsLncpXJ2IkmdYqCJDjFV8JNve9iLomUPVf2nC/6EKtA6yOsU XGEOFNCMp6XyzG2MnokZmEtBoD5kuPMyH6ZfgA/dAj8MdoV3LP8p1ZkX1Bhq8r9BrCqF E67A== X-Forwarded-Encrypted: i=1; AJvYcCXj35NXLrIDu5bGq46fDumMhfkTxFGeYv654EPg78kjxil8s7O5zihw/HoIoQrO5Xv9GgMB2H0Q4MIf@vger.kernel.org, AJvYcCXsiLaw3wwygTpT5uRASEuIqU+TttTB75EhSVHipjcxxFLh7rcXUGxpiMCwxqy65hvolJ93xuzwT0gwFy//@vger.kernel.org X-Gm-Message-State: AOJu0YzispUcr+WvkpP6KCOLdnKyJTv3AQXqmNuPGmusU044WifWFOZS H0sFbM29b4OS3GXNZt/z+K7xhW9t5Un5tSbFLC7yNT7/vuHtF1ZIP4pBhO2YL2h9KvM= X-Gm-Gg: ASbGnct8ZCgi9BvR4VEKE5EhlosF6lM5rKGmm9TeBbJY4JSKVTsP6yl5PwdcZ+m+LeY MV9SeJwOCo9UjNPncRkvN6nADpFGDJ5swx6LSyekp92vIKcWDWGuhS2cIDoAJ0kJXgnUmBsP6sd KcdKICHIUrMJr1mg1sMuFEAzevHVLeaK314oh2ia2fWU8SqUk6/ic/3U2mr3aqFtkcosZZuDqo7 WWj8GrDIGVWSjr4DO5vYGC8VStVJg+C31l8A+sI4c1KEehdfwxkXt3ICO5X0VcY1iMdJUurhVUx WCf9tq+ED/RUKhbiBdKetngRv7xmpLBI9DQ5O2gm3Ui0K/RSlUYmZDFqz/SIgzxYu9keV54dcSd gfOQx8tApDPzZMsEHjeDslDUETNIhVLgKoIjbXOMIn7uCI/M2fTxrCwuX88c9Asd/5hY= X-Google-Smtp-Source: AGHT+IHXrE/b7Rgb/FIQPijG5gK8yp/2SErYc3pBimq59GRkoNvzydms1sqxH8TRJFa3u4jKeHLB9Q== X-Received: by 2002:a05:6512:4002:b0:551:f0ce:80e3 with SMTP id 2adb3069b0e04-55a23f2d1e1mr5119301e87.25.1753094658913; Mon, 21 Jul 2025 03:44:18 -0700 (PDT) Received: from [192.168.1.198] (83-233-6-197.cust.bredband2.com. [83.233.6.197]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-55a31db89bbsm1505164e87.237.2025.07.21.03.44.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Jul 2025 03:44:18 -0700 (PDT) From: Marcus Folkesson Date: Mon, 21 Jul 2025 12:43:36 +0200 Subject: [PATCH v2 6/6] drm/st7571-i2c: add support for 2bit grayscale for XRGB8888 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250721-st7571-format-v2-6-159f4134098c@gmail.com> References: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> In-Reply-To: <20250721-st7571-format-v2-0-159f4134098c@gmail.com> To: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Javier Martinez Canillas Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Marcus Folkesson X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=3639; i=marcus.folkesson@gmail.com; h=from:subject:message-id; bh=ja2G1eJ+TGuBldLn7eDuIWTNyT69bULS5f7eLL4mV1U=; b=owEBbQKS/ZANAwAIAYiATm9ZXVIyAcsmYgBofhnyibw5+htt8L/mz/Z6LY19g2cML7+of3ndE OqD2okki9yJAjMEAAEIAB0WIQQFUaLotmy1TWTBLGWIgE5vWV1SMgUCaH4Z8gAKCRCIgE5vWV1S MoaXD/9EaTHWfHlZ+G1qRPSwOSFiQsBlb/EiAKzsJwKXxKbakXiCIXx9td6UhhxPUR/IyJuvVn/ mHP3Goy+tleR+6GD5woJb/5ZhNT1i7ixI918yfPeDF96GbX3EPp8/8Fqn/cbvvOMxAqBt/Y47Zu 9KffqVAa0Jkw3q9+yse1eX+9aaO0PjzAr8Sdsf4xbggmoRMU4kKNN0mgo6jqy25XP1Mi6beXDHf HzToFKyAcESqeLuN8d4OG/ELhs62cLRYpL5A5C2NdIU4kHH0RCjGhDFyQgTLE5WaUzV07rFz9Sx VVRzRyG8FIpc1N2p5r60+FJNTJuDL08znCG1187KgPiL2fk8g6DdijmeapZlviN3FZtE2wDNklC PHfs3DeZfD9YGgn9OsbvQoC3taMhet8qvpBIHTxMNM15sH2hkjlTwt2IKGLy+SqOK26d9oSJ11R V7Xl4yIEiRi88m4ZXo4UJR+n0PdfUAOmvzLNpkwQ1NEK5UUDUHqO+gT07DuQRUp3YkBAQYoF+XH qm3I5q7S0RM23k+oAsFTw2kllk2tLXJ+T4+UydTIIaL9F1VcWdmZnVlh/vF/+qBN1T+EeOF3818 9uF0ru6G7rAw+XGorLS5VnqeGI+6Q60cKFfXp7dcXenUypYI40xLMDhQ1KV2k+AWk59BJYFpB4e DgdrnByYHPxK3NQ== X-Developer-Key: i=marcus.folkesson@gmail.com; a=openpgp; fpr=AB91D46C7E0F6E6FB2AB640EC0FE25D598F6C127 Add support for 2bit grayscale and use it for XRGB8888 when grayscale is supported. Reviewed-by: Javier Martinez Canillas Signed-off-by: Marcus Folkesson --- drivers/gpu/drm/sitronix/st7571-i2c.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/sitronix/st7571-i2c.c b/drivers/gpu/drm/sitron= ix/st7571-i2c.c index 9f2de057ce9d990fdd77e395a6c32ba1e2f36137..6c5935c37a2abf99116f8c2f67e= ec25bad90c8a8 100644 --- a/drivers/gpu/drm/sitronix/st7571-i2c.c +++ b/drivers/gpu/drm/sitronix/st7571-i2c.c @@ -219,10 +219,11 @@ static int st7571_send_command_list(struct st7571_dev= ice *st7571, return ret; } =20 -static inline u8 st7571_transform_xy(const char *p, int x, int y) +static inline u8 st7571_transform_xy(const char *p, int x, int y, u8 bpp) { int xrest =3D x % 8; u8 result =3D 0; + u8 row_len =3D 16 * bpp; =20 /* * Transforms an (x, y) pixel coordinate into a vertical 8-bit @@ -237,7 +238,7 @@ static inline u8 st7571_transform_xy(const char *p, int= x, int y) =20 for (int i =3D 0; i < 8; i++) { int row_idx =3D y + i; - u8 byte =3D p[row_idx * 16 + x]; + u8 byte =3D p[row_idx * row_len + x]; u8 bit =3D (byte >> xrest) & 1; =20 result |=3D (bit << i); @@ -304,11 +305,11 @@ static void st7571_prepare_buffer_grayscale(struct st= 7571_device *st7571, struct iosys_map dst; =20 switch (fb->format->format) { - case DRM_FORMAT_XRGB8888: /* Only support XRGB8888 in monochrome mode */ - dst_pitch =3D DIV_ROUND_UP(drm_rect_width(rect), 8); + case DRM_FORMAT_XRGB8888: + dst_pitch =3D DIV_ROUND_UP(drm_rect_width(rect), 4); iosys_map_set_vaddr(&dst, st7571->hwbuf); =20 - drm_fb_xrgb8888_to_mono(&dst, &dst_pitch, vmap, fb, rect, fmtcnv_state); + drm_fb_xrgb8888_to_gray2(&dst, &dst_pitch, vmap, fb, rect, fmtcnv_state); break; =20 case DRM_FORMAT_R1: @@ -334,7 +335,7 @@ static int st7571_fb_update_rect_monochrome(struct drm_= framebuffer *fb, struct d =20 for (int y =3D rect->y1; y < rect->y2; y +=3D ST7571_PAGE_HEIGHT) { for (int x =3D rect->x1; x < rect->x2; x++) - row[x] =3D st7571_transform_xy(st7571->hwbuf, x, y); + row[x] =3D st7571_transform_xy(st7571->hwbuf, x, y, 1); =20 st7571_set_position(st7571, rect->x1, y); =20 @@ -359,14 +360,13 @@ static int st7571_fb_update_rect_grayscale(struct drm= _framebuffer *fb, struct dr rect->y2 =3D min_t(unsigned int, round_up(rect->y2, ST7571_PAGE_HEIGHT), = st7571->nlines); =20 switch (format) { - case DRM_FORMAT_XRGB8888: - /* Threated as monochrome (R1) */ - fallthrough; case DRM_FORMAT_R1: - x1 =3D rect->x1; - x2 =3D rect->x2; + x1 =3D rect->x1 * 1; + x2 =3D rect->x2 * 1; break; case DRM_FORMAT_R2: + fallthrough; + case DRM_FORMAT_XRGB8888: x1 =3D rect->x1 * 2; x2 =3D rect->x2 * 2; break; @@ -374,7 +374,7 @@ static int st7571_fb_update_rect_grayscale(struct drm_f= ramebuffer *fb, struct dr =20 for (int y =3D rect->y1; y < rect->y2; y +=3D ST7571_PAGE_HEIGHT) { for (int x =3D x1; x < x2; x++) - row[x] =3D st7571_transform_xy(st7571->hwbuf, x, y); + row[x] =3D st7571_transform_xy(st7571->hwbuf, x, y, 2); =20 st7571_set_position(st7571, rect->x1, y); =20 @@ -395,7 +395,7 @@ static int st7571_fb_update_rect_grayscale(struct drm_f= ramebuffer *fb, struct dr * For monochrome formats, write the same value twice to get * either a black or white pixel. */ - if (format =3D=3D DRM_FORMAT_R1 || format =3D=3D DRM_FORMAT_XRGB8888) + if (format =3D=3D DRM_FORMAT_R1) regmap_bulk_write(st7571->regmap, ST7571_DATA_MODE, row + x, 1); } } --=20 2.49.0