From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
To: Rodolfo Giometti <giometti@enneenne.com>,
Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Vadim Fedorenko <vadim.fedorenko@linux.dev>
Subject: [RFC PATCH] pps: make number of PPS devices configurable
Date: Thu, 14 May 2026 11:26:14 +0000 [thread overview]
Message-ID: <20260514112614.2016026-1-vadim.fedorenko@linux.dev> (raw)
Modern systems may have more than 16 PPS sources and current hard-coded
limit breaks registration of some devices. Make the limit configurable
via Kconfig, keep default value of 16 devices. UAPI has to be changed to
support maximum possible number.
Signed-off-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
---
drivers/pps/Kconfig | 9 +++++++++
drivers/pps/pps.c | 6 +++---
include/uapi/linux/pps.h | 2 +-
3 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/drivers/pps/Kconfig b/drivers/pps/Kconfig
index e1651d51cfc9..166c157505fe 100644
--- a/drivers/pps/Kconfig
+++ b/drivers/pps/Kconfig
@@ -22,6 +22,15 @@ menuconfig PPS
if PPS
+config PPS_NR_SOURCES
+ int "Maximum number of PPS devices"
+ depends on PPS
+ range 16 256
+ default "16"
+ help
+ Set this to the number of PPS devices you want the driver
+ to support.
+
config PPS_DEBUG
bool "PPS debugging messages"
help
diff --git a/drivers/pps/pps.c b/drivers/pps/pps.c
index de1122bb69ea..d3eac77b4cb5 100644
--- a/drivers/pps/pps.c
+++ b/drivers/pps/pps.c
@@ -370,7 +370,7 @@ int pps_register_cdev(struct pps_device *pps)
* Get new ID for the new PPS source. After idr_alloc() calling
* the new source will be freely available into the kernel.
*/
- err = idr_alloc(&pps_idr, pps, 0, PPS_MAX_SOURCES, GFP_KERNEL);
+ err = idr_alloc(&pps_idr, pps, 0, CONFIG_PPS_NR_SOURCES, GFP_KERNEL);
if (err < 0) {
if (err == -ENOSPC) {
pr_err("%s: too many PPS sources in the system\n",
@@ -464,7 +464,7 @@ EXPORT_SYMBOL(pps_lookup_dev);
static void __exit pps_exit(void)
{
class_unregister(&pps_class);
- __unregister_chrdev(pps_major, 0, PPS_MAX_SOURCES, "pps");
+ __unregister_chrdev(pps_major, 0, CONFIG_PPS_NR_SOURCES, "pps");
}
static int __init pps_init(void)
@@ -477,7 +477,7 @@ static int __init pps_init(void)
return err;
}
- pps_major = __register_chrdev(0, 0, PPS_MAX_SOURCES, "pps",
+ pps_major = __register_chrdev(0, 0, CONFIG_PPS_NR_SOURCES, "pps",
&pps_cdev_fops);
if (pps_major < 0) {
pr_err("failed to allocate char device region\n");
diff --git a/include/uapi/linux/pps.h b/include/uapi/linux/pps.h
index 009ebcd8ced5..1088dea65e12 100644
--- a/include/uapi/linux/pps.h
+++ b/include/uapi/linux/pps.h
@@ -26,7 +26,7 @@
#include <linux/types.h>
#define PPS_VERSION "5.3.6"
-#define PPS_MAX_SOURCES 16 /* should be enough... */
+#define PPS_MAX_SOURCES 256 /* should be enough... */
/* Implementation note: the logical states ``assert'' and ``clear''
* are implemented in terms of the chip register, i.e. ``assert''
--
2.47.3
next reply other threads:[~2026-05-14 11:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 11:26 Vadim Fedorenko [this message]
2026-05-14 13:55 ` [RFC PATCH] pps: make number of PPS devices configurable Jakub Kicinski
2026-05-14 14:03 ` Vadim Fedorenko
2026-05-14 14:08 ` Jakub Kicinski
2026-05-14 14:09 ` Vadim Fedorenko
2026-05-14 14:57 ` Rodolfo Giometti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260514112614.2016026-1-vadim.fedorenko@linux.dev \
--to=vadim.fedorenko@linux.dev \
--cc=giometti@enneenne.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.