From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (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 6CFE936165E; Mon, 11 May 2026 23:36:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.11 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778542583; cv=none; b=HxGhH4o11fZIUhTwOIkBBVstbxDwp2XMWz+akOV6jidN06toEG9jx4hVwRC9quOnlE2lryNXG7zVBDmNbFwUAh33w6Wg4n1PSWF8HGZC8v90/WdGzx3MAQqwOtQbZHQT0cYqNvObV16kdr3YO3W8wXy1fQM4NZP3daerfkzCwHg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778542583; c=relaxed/simple; bh=0vbhUSjCIbPseAhJK0pbKb/kqRIwnq7nNlFjzOQE0L8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oI85ld4J6WbU2PiJt+wQnmZ8vApzOZVlMjAZSp9bNbCQvVok+M6c2y1b/EfPkVhnq8xltG9Pf4vYZ64zKTti8XsyyHS6MOtxErrYXqmwO0Y8ttvNp0+11GTKHPk/64bZ1uymIM7TXH1+ofGPxjvxlHM1trayndbchEyL1p5z5bY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=FjmOr1Ke; arc=none smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="FjmOr1Ke" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1778542581; x=1810078581; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=0vbhUSjCIbPseAhJK0pbKb/kqRIwnq7nNlFjzOQE0L8=; b=FjmOr1KegHQY3LOVww+5hP1eeAencFRki2kKnpcXJQWg0+eAIAy+nInW 9aOEqO9z1uInjBZ7itdCstuA0fdFcCV0C7I0eRWhPPurK2VU49VMW1cEq ReyGMvrb1kbVHNEVQJoXHsbFJv0vINFINvg3yGLRznyrwa82lOWMNywNa bJaqCXTk+40RKiLTQI0SSrO7LEw8k/likmKabbK35pNrpv3TfFyxiKtln kdbvWwLCKrr5x+lSPgMMgx5/F7C1njnSS0AjY807pu2rDt9Cb8E/6NQGy f3ZFbWPwgpjb/HX/VfR/mv+c6R//zRmIf9jYruaZjPenAa8AcM9Q3fkii g==; X-CSE-ConnectionGUID: lnTGZsWkSZiNEgb3lOQrZQ== X-CSE-MsgGUID: 24/0U1ZQSHGM00jcrXiUkw== X-IronPort-AV: E=McAfee;i="6800,10657,11783"; a="90027354" X-IronPort-AV: E=Sophos;i="6.23,229,1770624000"; d="scan'208";a="90027354" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2026 16:36:21 -0700 X-CSE-ConnectionGUID: l4YG90N2Qk+8xmX2VgmPVQ== X-CSE-MsgGUID: ifNkNfNaS6O3NCxSW3QngA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,229,1770624000"; d="scan'208";a="237687233" Received: from gklab-003-001.igk.intel.com ([10.91.173.48]) by orviesa009.jf.intel.com with ESMTP; 11 May 2026 16:36:16 -0700 From: Grzegorz Nitka To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, poros@redhat.com, richardcochran@gmail.com, andrew+netdev@lunn.ch, przemyslaw.kitszel@intel.com, anthony.l.nguyen@intel.com, Prathosh.Satish@microchip.com, ivecera@redhat.com, jiri@resnulli.us, arkadiusz.kubalewski@intel.com, vadim.fedorenko@linux.dev, donald.hunter@gmail.com, horms@kernel.org, pabeni@redhat.com, kuba@kernel.org, davem@davemloft.net, edumazet@google.com, Grzegorz Nitka Subject: [PATCH v8 net-next 1/8] dpll: add generic DPLL type Date: Tue, 12 May 2026 01:31:52 +0200 Message-Id: <20260511233159.2558165-2-grzegorz.nitka@intel.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20260511233159.2558165-1-grzegorz.nitka@intel.com> References: <20260511233159.2558165-1-grzegorz.nitka@intel.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Add DPLL_TYPE_GENERIC to represent DPLL devices which do not fit the existing PPS or EEC classes. The UAPI type is intentionally generic. During netdev discussion, maintainers pointed out that introducing identifiers tied to a specific placement or single design does not scale across ASICs and vendors. The role of a DPLL is already inferable from the spawning driver, bus device, and pin topology, without encoding additional purpose-specific taxonomy in the type name. Using a generic type keeps the UAPI extensible and avoids premature naming that may become incorrect as new hardware topologies are exposed through the DPLL subsystem. Expose the new type through UAPI and netlink specification as "generic". Signed-off-by: Grzegorz Nitka --- Documentation/netlink/specs/dpll.yaml | 3 +++ drivers/dpll/dpll_nl.c | 2 +- include/uapi/linux/dpll.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Documentation/netlink/specs/dpll.yaml b/Documentation/netlink/specs/dpll.yaml index c45de70a47ce..d9383223fd64 100644 --- a/Documentation/netlink/specs/dpll.yaml +++ b/Documentation/netlink/specs/dpll.yaml @@ -138,6 +138,9 @@ definitions: - name: eec doc: dpll drives the Ethernet Equipment Clock + - + name: generic + doc: generic dpll type for devices outside PPS/EEC classes render-max: true - type: enum diff --git a/drivers/dpll/dpll_nl.c b/drivers/dpll/dpll_nl.c index 58235845fa3d..9a237c38cb31 100644 --- a/drivers/dpll/dpll_nl.c +++ b/drivers/dpll/dpll_nl.c @@ -35,7 +35,7 @@ const struct nla_policy dpll_reference_sync_nl_policy[DPLL_A_PIN_STATE + 1] = { static const struct nla_policy dpll_device_id_get_nl_policy[DPLL_A_TYPE + 1] = { [DPLL_A_MODULE_NAME] = { .type = NLA_NUL_STRING, }, [DPLL_A_CLOCK_ID] = { .type = NLA_U64, }, - [DPLL_A_TYPE] = NLA_POLICY_RANGE(NLA_U32, 1, 2), + [DPLL_A_TYPE] = NLA_POLICY_RANGE(NLA_U32, 1, 3), }; /* DPLL_CMD_DEVICE_GET - do */ diff --git a/include/uapi/linux/dpll.h b/include/uapi/linux/dpll.h index cb363cccf2e2..55eaa82f5f98 100644 --- a/include/uapi/linux/dpll.h +++ b/include/uapi/linux/dpll.h @@ -109,10 +109,12 @@ enum dpll_clock_quality_level { * enum dpll_type - type of dpll, valid values for DPLL_A_TYPE attribute * @DPLL_TYPE_PPS: dpll produces Pulse-Per-Second signal * @DPLL_TYPE_EEC: dpll drives the Ethernet Equipment Clock + * @DPLL_TYPE_GENERIC: generic dpll type for devices outside PPS/EEC classes */ enum dpll_type { DPLL_TYPE_PPS = 1, DPLL_TYPE_EEC, + DPLL_TYPE_GENERIC, /* private: */ __DPLL_TYPE_MAX, -- 2.39.3