From nobody Sun Feb 8 05:41:20 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 DE43D2E62A8 for ; Tue, 30 Dec 2025 05:29:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072547; cv=none; b=u1QwYFcNhr0ET04xUH69g0xFsjdETR6ueLqPZIIkHkyT/u7U5+LA3j79Jz+Kdl4tJGqwdrF/UJtHGZwHXV+TrdSVBOA98epCSRCOBExQybZGSYTaNTvDIyTNYQfQnRuRfbgdv9xpiB+Vb4boSZd5ooXeY23RiYcz8b3JzJZpiAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072547; c=relaxed/simple; bh=86Kzw/hKU0nrIm8xZ8jpwyS+2DiCcDwmWTX+qvqHhFE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mdvEwtC6mJshEL37zRscPlmyGg1ONASjkLOAb8eZF6BJvcH/0kil/P4uSStJnbl+Xf+zAI9gexvMURSL3n1FywWC8G6PbtrxKHOTjX02Td70BzO8XvNxWAaJQAvI5nZyZ+mfnE55PxwZsA/EvydV6LwLsREcw5otfapwaSbIX3Q= 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=HJzkLHf0; arc=none smtp.client-ip=209.85.214.180 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="HJzkLHf0" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a1022dda33so79056435ad.2 for ; Mon, 29 Dec 2025 21:29:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767072545; x=1767677345; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fKkdwzvSXz/T9pEqrvQ0VdQLUSbrQRl3ctUuH0zUyRA=; b=HJzkLHf06dwAcn9J4Ab7958kyg5hAF0iIVEkXaoxbcEv0m0K6stJusjo1zc/w1K/lt Tr/19rFS1zNs5R/rJe9uvFxujaOYHYdCLdILTCxqDoWykR1n3pCR+JXzl4n2SobSgt0p zX1MyEOUWaAIBj3iRZa+7BSqoVrXNOqYHXN67UCA/3lMP2KJH2GfhQdPGrD/qJKRe4+/ BkMRIIldwFvgqZRXwS1kXyXPSuJIZHNotrQ+5vT0g6Zy9PNqQbak/Fl5kAc+F+9B+W+9 XOHU+uTLi6r52e1Zk+bQxL2BJNVFCU30egBOY5T7qW5S9RL3lL+fvpuSJPhvdDog2XWv f43A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767072545; x=1767677345; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fKkdwzvSXz/T9pEqrvQ0VdQLUSbrQRl3ctUuH0zUyRA=; b=WGLJ3lPaRrxnYVDlqewvCyr3g/1hjhdvMD2G/MBycLOC8FBnHAivCEaNs+vC22Bjew hRKqnp30OKX81Yja22tuT2mmTMzTI7EfTuD4DmuySJYKGCSwuqthOUVzzMqSX3cqwUqG PZYfCgvlCzG67KfNWRupRwncKptBoCnaERkKvbUTq1ZrBnxMNHfqXawq9N23dFe8PKmo TH1KWMeifDS6/gJCH9ZBoAKb1jKhQVb2CFCBZ8ldeoO9Kl4m2ZS7l+IWbc81I4yAjEz/ Cd+XlgbWwqLY3AXKtkO8fRezJBRVoZ4Cv6dBSm6qux4CjTEv4VeYaY3qoOCviMNAPHgf f1rg== X-Gm-Message-State: AOJu0YyY1VVbVYXUWSv9A3hOGvONEINrBvfeLBu1XT6j/fPrU9MzoDeY 3gJbJ9x11RdgRe+EAkMiAmnFkcsgcaN3I2WV1O+NsmOYn7VQy1VvPrMx X-Gm-Gg: AY/fxX6bKhuwJoTp3V5MKA8MANyNjSI9QRGEDP1tx2sW1QcJUmbeLNg9kOHBFz02v91 T/YtprJnxdlITk7SjC4l1fwXmYVZmNxmwpDqGzy0+VHcH6TQKdk+76P/tZzkFh2Z7pIX2Jn9B6o /ilLbfRYyCFCKA0mOg6uNewt6fcjtrfcwInlsxYYnnxh7WTf90Uro97NHNYxjvkYuREMLioxbve AiLBypT7htG2Gg/eT2so+R+HDaHOd6qm5nvj9MoZ/Gc7riIBISTHH+pzBJyouvqHpg3MLtjGdji Du00YiIig79emvqRRf6cIgN6Rb9gN8Ff90q8E9KglCtYbcyaqVC/FGrWaT8ilrzTTBaZNERHpXl +VM52ZjWzcsIPeZVfhNSUNLfpjbQWriLwUYlOJLZ3PxTvNz1xASLklVPF1nLiBWqR4LtuxXnoCK f/T3aonDABIWU3Rjf6jlJWAMkNIRuNjXw8ASEE0h9jRJqItwuhp/Fb X-Google-Smtp-Source: AGHT+IEF20IOQ3ACEEG5Q9roz15yiegJkgEV49gziCCB4yVsuyx2zyUl9Tnp5LPbFSW7p23DGv+NWQ== X-Received: by 2002:a17:902:d2c4:b0:2a0:d662:7285 with SMTP id d9443c01a7336-2a2f1f789ffmr344796915ad.0.1767072545159; Mon, 29 Dec 2025 21:29:05 -0800 (PST) Received: from cmpatel-home.hsd1.or.comcast.net ([2601:1c0:5780:9200:f7a0:c2f:d915:faf0]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a2f3c8286esm289290375ad.33.2025.12.29.21.29.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Dec 2025 21:29:04 -0800 (PST) From: Chintan Patel To: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, tzimmermann@suse.de, andy@kernel.org, deller@gmx.de, gregkh@linuxfoundation.org, Chintan Patel Subject: [PATCH v3 1/4] fb: Add dev_of_fbinfo() helper for optional sysfs support Date: Mon, 29 Dec 2025 21:28:19 -0800 Message-ID: <20251230052827.4676-2-chintanlike@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230052827.4676-1-chintanlike@gmail.com> References: <20251230052827.4676-1-chintanlike@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add dev_of_fbinfo() to return the framebuffer struct device when CONFIG_FB_DEVICE is enabled, or NULL otherwise. This allows fbdev drivers to use sysfs interfaces via runtime checks instead of CONFIG_FB_DEVICE ifdefs, keeping the code clean while remaining fully buildable. Suggested-by: Helge Deller Signed-off-by: Chintan Patel Reviewed-by: Helge Deller --- include/linux/fb.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/fb.h b/include/linux/fb.h index 05cc251035da..dad3fb61a06a 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -628,6 +628,15 @@ static inline void unlock_fb_info(struct fb_info *info) mutex_unlock(&info->lock); } =20 +static inline struct device *dev_of_fbinfo(const struct fb_info *info) +{ +#ifdef CONFIG_FB_DEVICE + return info->dev; +#else + return NULL; +#endif +} + static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch, u8 *src, u32 s_pitch, u32 height) { --=20 2.43.0 From nobody Sun Feb 8 05:41:20 2026 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 84B5D28642B for ; Tue, 30 Dec 2025 05:29:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072549; cv=none; b=kEJVUlpaGzzfurp0AoexZq5DTSflQpNn8mHq7GAgd0DeWUqxZn6vGN/tR0JB0gFIWg6ejcJdbFwUgb5N65oI2TLocP8+D03G3Y5EiIgmwBf6PZ2N2J8x7TtiPAHdG2WlHvn+vB2VsKrbx8l2rYSfk+4PqXrRPQNHug8F+uF8GHI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072549; c=relaxed/simple; bh=AxHW31F/u643GumGUG5OTePG8VH5O62R29ow3KWdMX4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=NPfrZlAbDObrwHWuNiVYm016ciyTeh+nVaMYQt3+3mteErD+1sPdA4v6W5/nG9ab+Xb6gVN6UUhoOiFwku1fJiNFJkMabNGuD7MRfX1Fcboa70fegtVave++g9OrL0A0X1jdgR4HYK6NLf9tNt1lwh33C5wbm8u6qc26FN5Uotk= 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=nH1YdJTe; arc=none smtp.client-ip=209.85.214.177 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="nH1YdJTe" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2a0c09bb78cso70209025ad.0 for ; Mon, 29 Dec 2025 21:29:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767072547; x=1767677347; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=i2hI5Lo88RYKXzSxQDxQgMKWvWfPHcve4QtdDyVBhKg=; b=nH1YdJTeXfmmCOqv+vjb/dCY3zseC++FT3i9NI1635HUdptpov5RtVtA5/J7Ojckqw UKMAmTq88yiiwahrEAHiEzwQSko4MXRKTGd/D6N0dk7BGz2GWctLk3KU4p+K7WxmoLXe vs2NBcLBObQ4+RUJbrAuzKFTKq97hZIjlHnNNn3YcygEqob6TxTbCRMBFLygB/9QiPbm MKBsaxmCdO5MrtTxlAyKlreqWiF6DUUJ/U+y0BoC+KnJdkIC2vxABSKn50f2DaXE1Vsj umpLplhGuszFyonMLNwH0VFxQk0013KXuqiUsZHxXarmcDgMkKVXxNyFsoHSmRbJOS8G sIkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767072547; x=1767677347; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=i2hI5Lo88RYKXzSxQDxQgMKWvWfPHcve4QtdDyVBhKg=; b=pKaShwgzH0giEATNfiuBs1OtjdyRAFVIJlPnDUGKLInhDwBmONzMrHM80C9yqMJZri PTXpKkO4SR3MOm0wLE6d+NyinZEK6Z5Bma8TiL8+PUdex1y1PJC6CzDjppQsR3iY23GB /jFpFBgfPSvVpCYSDHda2m52J55BLbaZHYwyYUHGs8fWiJsHFbvR+wg97rxmp2z59BW+ DOQfsjSC2K9JFk9fVC6GNxrqOvXgzZngE+vL7S8tbc0mMkUdiv3A+3Z/BExxVbZn+Sq5 iRVz6sfm4UHcKf7y5Kp4TwVxG6AgVNEuarOmbNsh0RJA8V7HCLcTclHFZvvENc5c1Rt6 w/tg== X-Gm-Message-State: AOJu0YyHBmhUae9B9Tlf06cB6r1AI9Ufjxh4AvM6Halv0u/RByeLRTa2 cfscXkWFPQ/qFHC8e47Ca4PwnTwv+JkBhc1HJayUkR5THR+6iFGWDtx5 X-Gm-Gg: AY/fxX4sl6Iq1cWMYvHgSR6LxqdQflrTTXj5je7j/PbixFpOApW7naYe3U5oGH6pG9h BX1hpHhUIZu0HHZNicYT4QmiK0NYYD07COXnLP+QFqCk1VxkPih6cFMuKsS2WJMs9pYohvI/+Us gCkBMvDdTmPE5d5sozPPbUMd8cplqWmE1E8f5ceFR+pW1SAQKym39a+ZZg4+C1sm3tEKWdOdjKV P18yujBv+CHycOiSXHQzH0lG7sKgjilleTOdPWjH3TvUnaxSEUBQ7F4zDhfblAjqqYa0iBQS5gx hJXS4l7LI49+bZR5pJIRDFSQL8Yk7XbsRVYx2osbm1rSADgu5D46+6WSsEVzAjY6ejF6IhbCDVJ OWgoHHjPlM+dbX6EICdQWFyymov6i7FGtclziinhPoo8D4gTXKZL3dDUNWIjnL2ATlegTFDf/SY L2/AQW5uRUwhzszk96ky3eWO61aV5/BnrnvSs1naNF7A== X-Google-Smtp-Source: AGHT+IEzK1mfCzTYTBVF1B1JeAS/8wWfCanHdXYXITuiOcE0jrd5VC2Uc+2+6l74lzCrDnJw2EHo+g== X-Received: by 2002:a17:902:f68e:b0:295:55fc:67a0 with SMTP id d9443c01a7336-2a2caa9be93mr359745255ad.2.1767072546800; Mon, 29 Dec 2025 21:29:06 -0800 (PST) Received: from cmpatel-home.hsd1.or.comcast.net ([2601:1c0:5780:9200:f7a0:c2f:d915:faf0]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a2f3c8286esm289290375ad.33.2025.12.29.21.29.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Dec 2025 21:29:06 -0800 (PST) From: Chintan Patel To: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, tzimmermann@suse.de, andy@kernel.org, deller@gmx.de, gregkh@linuxfoundation.org, Chintan Patel Subject: [PATCH v3 2/4] staging: fbtft: Make FB_DEVICE dependency optional Date: Mon, 29 Dec 2025 21:28:20 -0800 Message-ID: <20251230052827.4676-3-chintanlike@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230052827.4676-1-chintanlike@gmail.com> References: <20251230052827.4676-1-chintanlike@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" fbtft provides sysfs interfaces for debugging and gamma configuration, but these are not required for the core driver. Drop the hard dependency on CONFIG_FB_DEVICE and make sysfs support optional by using dev_of_fbinfo() at runtime. When FB_DEVICE is disabled, sysfs operations are skipped while the code remains buildable and type-checked. Suggested-by: Thomas Zimmermann Suggested-by: Helge Deller Signed-off-by: Chintan Patel Reviewed-by: Helge Deller --- drivers/staging/fbtft/Kconfig | 5 ++++- drivers/staging/fbtft/fbtft-sysfs.c | 20 ++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/staging/fbtft/Kconfig b/drivers/staging/fbtft/Kconfig index c2655768209a..578412a2f379 100644 --- a/drivers/staging/fbtft/Kconfig +++ b/drivers/staging/fbtft/Kconfig @@ -2,11 +2,14 @@ menuconfig FB_TFT tristate "Support for small TFT LCD display modules" depends on FB && SPI - depends on FB_DEVICE depends on BACKLIGHT_CLASS_DEVICE depends on GPIOLIB || COMPILE_TEST select FB_BACKLIGHT select FB_SYSMEM_HELPERS_DEFERRED + help + Support for small TFT LCD display modules over SPI bus. FB_DEVICE + is not required, but if enabled, provides sysfs interface for debugging + and gamma curve configuration. =20 if FB_TFT =20 diff --git a/drivers/staging/fbtft/fbtft-sysfs.c b/drivers/staging/fbtft/fb= tft-sysfs.c index e45c90a03a90..d05599d80011 100644 --- a/drivers/staging/fbtft/fbtft-sysfs.c +++ b/drivers/staging/fbtft/fbtft-sysfs.c @@ -203,14 +203,26 @@ static struct device_attribute debug_device_attr =3D =20 void fbtft_sysfs_init(struct fbtft_par *par) { - device_create_file(par->info->dev, &debug_device_attr); + struct device *dev; + + dev =3D dev_of_fbinfo(par->info); + if (!dev) + return; + + device_create_file(dev, &debug_device_attr); if (par->gamma.curves && par->fbtftops.set_gamma) - device_create_file(par->info->dev, &gamma_device_attrs[0]); + device_create_file(dev, &gamma_device_attrs[0]); } =20 void fbtft_sysfs_exit(struct fbtft_par *par) { - device_remove_file(par->info->dev, &debug_device_attr); + struct device *dev; + + dev =3D dev_of_fbinfo(par->info); + if (!dev) + return; + + device_remove_file(dev, &debug_device_attr); if (par->gamma.curves && par->fbtftops.set_gamma) - device_remove_file(par->info->dev, &gamma_device_attrs[0]); + device_remove_file(dev, &gamma_device_attrs[0]); } --=20 2.43.0 From nobody Sun Feb 8 05:41:20 2026 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 03E682E0418 for ; Tue, 30 Dec 2025 05:29:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072550; cv=none; b=g8mC7fK/4GFEK6QZVP318U+XU2ZiKfznTo9zFQMI1GMA9RsROn3AApUnDq7A5TyQhtA5tgWjK1LeU1LLY+GICK0C71g4CABtBWeRLRbrBaIb7RwmozJDZBwU2mb6/y8TtVJeKUqvnOUOb/U7r3li2p/L6z0NACWaC94wShwGYqA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072550; c=relaxed/simple; bh=NLZLkjHuusyZxcw9lTFQIq8VGGtemLVYiNqCQHZYJL4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HxWNor3xSylTHTuxMgbm+2SrSMjb5p2E7IIc5UwGiWueWXH4wzrnDpVCP8zZSybPvzfbMwnFKcDqZ1p9vOpGYWWPBzurvm8sDZ5mPQiNimkUtRKJw3NnardCGppogfOrEoB8zFPxkY4NON6q60TWMR493vxexQga8VJc1sh4sns= 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=KNvpcxIY; arc=none smtp.client-ip=209.85.214.175 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="KNvpcxIY" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2a0d06ffa2aso119082145ad.3 for ; Mon, 29 Dec 2025 21:29:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767072548; x=1767677348; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9ci5hl1fGtHa6SMuwo1VapvWaLUMCAvqlqzaI482cWA=; b=KNvpcxIYzc/Nn8MFw9dep+CALY84eksZAo0WvR/gSdQXEs3jXjLIwRcqdMKH1Hmq16 nz9gJZc38J5sKVNTy1mKQDdBgagvj/46awh1jFTgCB0X1UYh4mhi8yZMq3+Lw70cfV2y z6a+nV0ygViFK8la3fDgOOyZaNuIgLwpCZyRclxW7f74KKpNC/NfVTDpIS5/b2Ccr6Lr d1GQ0RG4+9nsYFScie75W5L2KZxSXh1/kWnRBePPiUrhjuvNCLDWWU7dG2P8phW7CCEm SsFf5Lpxi+5xPEV11uk5zk/1Nyifv+ReDtyCsnzO8uOmgxsTp+nItzT0f3My8laCl7O5 NH5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767072548; x=1767677348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=9ci5hl1fGtHa6SMuwo1VapvWaLUMCAvqlqzaI482cWA=; b=GiSu0k3NlHUlakGZHTKZksR0tLYJnVbK2khFdILaOFlt4DLKnBtynT6hPCgC73rWYU 6svpn7aNHUBx2rsx71jrcwt8yKBHBYQD2InQvqGdP1eFCXVNmumDdXRcivP7MqYQjyhY B2FT+O0a8QyEKiv72owzN/9Rmd4HcLHBLVGNRWVq1W5o8AW0j1hrBmsjYsEYY0zBmc3L de1H1n4tN1I4KeQlEclhUPF7Y1oVFOkWiQGn5GSx0XgbZuuzrOFLBMVAfXeifkS2GU0I cv9WLoDZzoLi1gBQoxdZK13UqGcg6+uZGalSiW0rcsCvKtpfGim9izkqa9yfHHCZhlFv cYHA== X-Gm-Message-State: AOJu0YzUGRb/nj1aReiQ6N9xfuJkO8503U+T8qOjbuaBCl+ED896Cscb VCBGhyy17KNZhouigfhUSPdo/abzHpjuv+LfKJVy6e0UbVQxNAIe69on X-Gm-Gg: AY/fxX5ChQ9JsMYG/26C6UiuRZ4vP4HaCukBWJ1SvjExVEyFjxA3WRmUVbp+OAE3lk5 GJ0JIfCVNSEpPfQpzVcfYtFe12fpOIUQ/YaGS5HWhlY8CGc8ENUFEWs0CUnxidNULcd+XAXTbnz 50dz3ERIwiBzE7XCaPO9hzf+aodUAgp2SSOynlsfdUCIlzBzSTQUTB0FyoBP4MnRSfnmPHeY11E uPWVg3PY+RShdTWmrcVlKBwqpWMP+AQ3RuK8u7jv5d2Mas06aQ+Qjaz41XPcdrpzxAEnZZAeRs8 oKt+CZUKa/eAhyUy2Yokf0aOFF/J6tx0uuwmUE55IhXOn+94CWtIxCOlJIOL0bwHKEfQWsTaLjz buB+859Ycu2u2ZD9jPlzhHOQLe0H5mlIxDMPvtgPfQip1PyCZu0XfJL+3RmwCqLymI3klC+TgmD 1qua0nr6X9gdyQslZ/INXj3s05mF0bB6gW0Q9TQBHjNQ== X-Google-Smtp-Source: AGHT+IGHZFAx8HgkjBpBEKVqWvo2fMWKQIfWR+KFRWNCjGwdqjZSd66OErzGlHaqwrUbyJ5EQMboOQ== X-Received: by 2002:a17:903:4405:b0:295:565b:c691 with SMTP id d9443c01a7336-2a2f22292e6mr304546365ad.17.1767072548211; Mon, 29 Dec 2025 21:29:08 -0800 (PST) Received: from cmpatel-home.hsd1.or.comcast.net ([2601:1c0:5780:9200:f7a0:c2f:d915:faf0]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a2f3c8286esm289290375ad.33.2025.12.29.21.29.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Dec 2025 21:29:07 -0800 (PST) From: Chintan Patel To: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, tzimmermann@suse.de, andy@kernel.org, deller@gmx.de, gregkh@linuxfoundation.org, Chintan Patel Subject: [PATCH v3 3/4] fbdev: omapfb: Make FB_DEVICE dependency optional Date: Mon, 29 Dec 2025 21:28:21 -0800 Message-ID: <20251230052827.4676-4-chintanlike@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230052827.4676-1-chintanlike@gmail.com> References: <20251230052827.4676-1-chintanlike@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" omapfb provides several sysfs interfaces for framebuffer configuration and debugging, but these are not required for the core driver. Remove the hard dependency on CONFIG_FB_DEVICE and make sysfs support optional by using dev_of_fbinfo() to obtain the backing device at runtime. When FB_DEVICE is disabled, sysfs operations are skipped while the code still builds and is type-checked. Suggested-by: Helge Deller Signed-off-by: Chintan Patel Reviewed-by: Helge Deller --- drivers/video/fbdev/omap2/omapfb/Kconfig | 3 ++- drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/video/fbdev/omap2/omapfb/Kconfig b/drivers/video/fbdev= /omap2/omapfb/Kconfig index f4cdf999a080..2d20e79adefc 100644 --- a/drivers/video/fbdev/omap2/omapfb/Kconfig +++ b/drivers/video/fbdev/omap2/omapfb/Kconfig @@ -5,7 +5,6 @@ config OMAP2_VRFB menuconfig FB_OMAP2 tristate "OMAP2+ frame buffer support" depends on FB - depends on FB_DEVICE depends on DRM_OMAP =3D n depends on GPIOLIB select FB_OMAP2_DSS @@ -13,6 +12,8 @@ menuconfig FB_OMAP2 select FB_IOMEM_HELPERS help Frame buffer driver for OMAP2+ based boards. + FB_DEVICE is not required, but if enabled, provides sysfs interface + for framebuffer configuration and debugging. =20 if FB_OMAP2 =20 diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c b/drivers/vide= o/fbdev/omap2/omapfb/omapfb-sysfs.c index 831b2c2fbdf9..ef555dd598aa 100644 --- a/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-sysfs.c @@ -558,10 +558,14 @@ int omapfb_create_sysfs(struct omapfb2_device *fbdev) =20 DBG("create sysfs for fbs\n"); for (i =3D 0; i < fbdev->num_fbs; i++) { + struct device *dev =3D dev_of_fbinfo(fbdev->fbs[i]); int t; + + if (!dev) + continue; + for (t =3D 0; t < ARRAY_SIZE(omapfb_attrs); t++) { - r =3D device_create_file(fbdev->fbs[i]->dev, - &omapfb_attrs[t]); + r =3D device_create_file(dev, &omapfb_attrs[t]); =20 if (r) { dev_err(fbdev->dev, "failed to create sysfs " @@ -580,9 +584,13 @@ void omapfb_remove_sysfs(struct omapfb2_device *fbdev) =20 DBG("remove sysfs for fbs\n"); for (i =3D 0; i < fbdev->num_fbs; i++) { + struct device *dev =3D dev_of_fbinfo(fbdev->fbs[i]); + + if (!dev) + continue; + for (t =3D 0; t < ARRAY_SIZE(omapfb_attrs); t++) - device_remove_file(fbdev->fbs[i]->dev, - &omapfb_attrs[t]); + device_remove_file(dev, &omapfb_attrs[t]); } } =20 --=20 2.43.0 From nobody Sun Feb 8 05:41:20 2026 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 248342EB5AF for ; Tue, 30 Dec 2025 05:29:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072552; cv=none; b=nmQ0bCyjLTc5PrFfKRl0xEOi5ZdRE7kiSdxKr1VG3RmMtyAV4p1KcmOZfg3KCvzzm1baHQsqMuZKkvHzTGb03J2FpCqjICI3N/9cCfSWjOV3vnu985cPxHDQ/Abcd4mvVe4W9kQ7PfBDRXNPgh0uELJaK5Pv2UO314Gedaybusc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767072552; c=relaxed/simple; bh=GAGjpPhjgIvIUqlyfKlbs+tqnrLy69m1dh/HDqos+sw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UQm48zZWtfAJbc6DepH5iFLAf+fG8TznYG+RrTf+Mxa1sVWXVw6Owgi9Mp94vRHkaHT6Mqw6XehwIr5DrvcVaBvnBaw/LsbWZgZAFVwQa2PE1h8gl8UClJ8canTiPu3XtmM8z3jtY3qunobbFL8emh8TZwKCbGA0SG0LT9mWirE= 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=H+Lno6PO; arc=none smtp.client-ip=209.85.214.176 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="H+Lno6PO" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-29f2676bb21so129493065ad.0 for ; Mon, 29 Dec 2025 21:29:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1767072549; x=1767677349; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LJqOs0RXEJY8E2s1bb5OeUsv+WqHfc5EFgK5KbB75l4=; b=H+Lno6POnxup92vGJ1f7ihfIfbwleJVor6tXER17rp/zQBaa0niWobKLm5AbfdzeR/ 1LFNoT44dIFX6+X+48yM9SvwxfIhQ5uDHGd1aPQTALn0LxlKaT6G9XcL9Ib661xNUxh9 MEKivs33TvK/o/XVoU6qIeN6WNA5/Q5ibLmKKXG8W3dYzvgahRTmiLoFsZuTRzWak/1E 8ddAiXOPjqKc07lcqS7we5idlVmNHjULmlY4ELJ8mgPHI5hoQLOZ4v2kbTEBZXML4C2b qjwa9cedy+B2EtA4/z0dvZqkG4woKTpUna8tDuOfsehAMaVRjq9MEE1AJ1DfEagYeITw 0XrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767072549; x=1767677349; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=LJqOs0RXEJY8E2s1bb5OeUsv+WqHfc5EFgK5KbB75l4=; b=M6yGnlIoPEu638qNGh5QAY7duh94zTSZo1v9nI+QyL0shYYlelunNjaPx/idTqS9h/ Hp1eEIYj8VB4cHjjA7QEcyggZfv27QIxzjqYO0uTghwimrMeBaILJiGvoPsxA4Emfvhg EpJ4zy91CmTUCJq8EvzdF58XDui2GB6/PXfu2ArHVP+59lDyv0KnKL7SXhdWvqdCJ6Rk cQnVKt/SEbzXUNplq71CaHekFuMOVTDhvNDcxtlzgVreS4net3EenjqhXYRapdMOVvPX CeVI/zWvNY32ZUKNrFxM+4chSCpHQkIlGQ/Ls6NOux9eSBlyFhVtf1ykwbSfJV/+/kJ1 y3fg== X-Gm-Message-State: AOJu0Yxp+Y7WCUmD+UmzmwjM5tAlJKfFt1MjE8BbBWXNd2PtIgWAPSUD zLJkTCCNxRpKuzxNn8g3qCQ8h2sz3nZskeat/+vMc9tEgwBL3DiqU/i1 X-Gm-Gg: AY/fxX4UCLt+FmR7ngbZ69jYW47BFT9to7JH/D6QsxPkvKU9zRo8hDBwDz98//QV84g 4AXu3BHLGRCxhk24RN0JnmEsAnjGRtliVdIjyRtM35F5iVUZ9hiA+kxlraOf761tqgGNGDti9OJ bqtuPSvrfKR/+EC5tCaUVNp8V/jZsMdBUa01HzBjpXoTm1pPzrUzvO8jEwuIXE6Ny2JWIkXIn0r UJhwdIc+zRWQfl48b+BMz3eayv0ZIovb2RULaCGX0WFG13wu/k/0zeVXBlyEqrWUBMBt04QJw2N C+OeuD09acbBKdjCQZefIvClZhIoC6XNlYpMpuPqFctzrcywTvdpWP2ZFZPcHrkYCvB7JoMLj+B fuqd0jbjMnAFCx7pzHbHC+tVKNA9TmOH3Zn2VJjqnyNga13E2up2qazyoFNt9HlnSGsgNQMDs/n FTrQ2RawarYv00xkK1HahEHyVWioEMbOY8b4lwXAkyEhpuesEstl5R X-Google-Smtp-Source: AGHT+IHpNTh/+mtzP6KtG3m//yZa/VBoJcww6MwkW4PNCEdqrAaxVfXefkHC54eoavSEs+b2060qpw== X-Received: by 2002:a17:902:cf08:b0:2a2:ecb6:55ac with SMTP id d9443c01a7336-2a2f220cbf6mr374425555ad.7.1767072549441; Mon, 29 Dec 2025 21:29:09 -0800 (PST) Received: from cmpatel-home.hsd1.or.comcast.net ([2601:1c0:5780:9200:f7a0:c2f:d915:faf0]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a2f3c8286esm289290375ad.33.2025.12.29.21.29.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 29 Dec 2025 21:29:09 -0800 (PST) From: Chintan Patel To: linux-fbdev@vger.kernel.org, linux-staging@lists.linux.dev, linux-omap@vger.kernel.org Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, tzimmermann@suse.de, andy@kernel.org, deller@gmx.de, gregkh@linuxfoundation.org, Chintan Patel Subject: [PATCH v3 4/4] fbdev: sh_mobile_lcdc: Make FB_DEVICE dependency optional Date: Mon, 29 Dec 2025 21:28:22 -0800 Message-ID: <20251230052827.4676-5-chintanlike@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251230052827.4676-1-chintanlike@gmail.com> References: <20251230052827.4676-1-chintanlike@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The sh_mobile_lcdc driver exposes overlay configuration via sysfs, but the core driver does not require CONFIG_FB_DEVICE. Make sysfs support optional by defining overlay_sysfs_groups conditionally using PTR_IF(). The driver always sets .dev_groups, and the kernel naturally skips NULL attribute groups while the code remains buildable and type-checked. Suggested-by: Helge Deller Signed-off-by: Chintan Patel --- drivers/video/fbdev/sh_mobile_lcdcfb.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/s= h_mobile_lcdcfb.c index dd950e4ab5ce..cb7ed1ff9165 100644 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c @@ -1350,7 +1350,17 @@ static struct attribute *overlay_sysfs_attrs[] =3D { &dev_attr_overlay_rop3.attr, NULL, }; -ATTRIBUTE_GROUPS(overlay_sysfs); + +#ifdef CONFIG_FB_DEVICE +static const struct attribute_group overlay_sysfs_group =3D { + .attrs =3D overlay_sysfs_attrs, +}; +#endif + +static const struct attribute_group *overlay_sysfs_groups[] =3D { + PTR_IF(IS_ENABLED(CONFIG_FB_DEVICE), &overlay_sysfs_group), + NULL, +}; =20 static const struct fb_fix_screeninfo sh_mobile_lcdc_overlay_fix =3D { .id =3D "SH Mobile LCDC", --=20 2.43.0