From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=170.10.129.124 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793891999; b=5fucL8TxtDeWM/1kO25xn6MBmpQGskcxmH0Hr39/0mloj0nAftV7s9YoaM7vOTcBzC/W bSJSVzYDNlBIJG2GkGb11R/WSCu1TCIc6p9lQ4CUYcPyBXwSEVycK1CeUUGMtQieNxx7e aZJSMyms2XoDInqRWcfCxuTGbKaH/G9Gc7tqzf7r+p2Sceyr/EmOrZFIwyW9cULODqEP3 BVYqyQ0o0eOUSUOryk/M5bwOo24PUb/GYVZHaHeEbNimXK5u7JJcu8KjacRbH7fxt8Pjk VyrxuIjuS7s+lqYBufX7Q8R0Bz8umbIETvOsI0YoD4jMdZy47MuXzDioN0Rral0T4Vw== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793891999; h=DMARC-Filter:DKIM-Signature:Received:X-MC-Unique: X-Mimecast-MFC-AGG-ID:Received:Received:From:To:Cc:Subject:Date: Message-ID:In-Reply-To:References:MIME-Version: Content-Transfer-Encoding:X-Scanned-By; bh=apwvEm0AmaaM37/dLdBO1681jXAgLmCr55TOqKSBLUU=; b=FdSVdTfiNfUxLYvD2mnKmuoAbLQOa2O8RcIiRxIxLBDZPoppzav2nTpiTGDEbxAVTEkb tUbrvUKNXTwEoCGw4II798pq7EueiirOfkW4lF4WtE15dohsxLg4WytBl2IYsx0roSxLU dDSLwc+Je9c7uxCPmSmnpOMf9GzQ2lX57le4dSqeQ8kwxm3kBFMBsgyPmNP5bj8ORzh/M VfmG5FkdLzQyb1KWsexv35vdKe6xuHNG9Oz6+4hgcl824e6MjHQbatGfzfcR6dMwy4hk3 oHG/pYbMCU87HOnxdUY6jqWKsfEbhdF/WPV7pc62cNwZxzE++k6UxkAQsi/F4fdJBsQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=JlaQyjbd; arc=none smtp.remote-ip=170.10.129.124 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED5BC606EEA3 for ; Thu, 5 Nov 2026 15:19:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org ED5BC606EEA3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=JlaQyjbd DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1793891997; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=apwvEm0AmaaM37/dLdBO1681jXAgLmCr55TOqKSBLUU=; b=JlaQyjbd4ekDnhNWd095Z+WDktT8K1MmTdEFyCEYmlEHCIRuYxLeLLPya8xoIZ9OEHuvBV KmpAUlef0UiHV+9fuZG9vzGLooSzi9KOdr/BtH787OVsy0PbXTTyfpmlcz6EZFOS67oQ+N h7JjrB8bAMnbTxUoeFzb2SORqjZDhTA= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-137-SoNA3rVsPN6UUcmbFLNBDA-1; Thu, 05 Nov 2026 10:19:52 -0500 X-MC-Unique: SoNA3rVsPN6UUcmbFLNBDA-1 X-Mimecast-MFC-AGG-ID: SoNA3rVsPN6UUcmbFLNBDA_1793891989 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DEF5B1956055; Thu, 5 Nov 2026 15:19:48 +0000 (UTC) Received: from poros-thinkpadp16vgen1.tpbc.com (unknown [10.44.32.42]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 088441956089; Thu, 5 Nov 2026 15:19:43 +0000 (UTC) From: Petr Oros To: netdev@vger.kernel.org Cc: Petr Oros , Jonathan Corbet , Shuah Khan , Shuah Khan , Randy Dunlap , Jani Nikula , Vadim Fedorenko , Arkadiusz Kubalewski , Jiri Pirko , Ivan Vecera , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH net-next v2 09/14] dpll: dpllsim: Add support to set frequency on pins Date: Thu, 5 Nov 2026 16:18:47 +0100 Message-ID: <20261105151852.1844305-10-poros@redhat.com> In-Reply-To: <20261105151852.1844305-1-poros@redhat.com> References: <20261105151852.1844305-1-poros@redhat.com> X-Mailing-List: netdev@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 Add support to set the frequency of input and output pins. The DPLL core validates the requested value against the supported frequency list the pin advertises, so the frequency_set callback only has to store it. The same per type tables that validate the configured frequency at live time serve as the supported list. The configfs attribute is rejected with EBUSY while the device is live, so only the netlink setter changes the frequency of a registered pin and the two cannot race. Signed-off-by: Petr Oros --- drivers/dpll/dpllsim/dpll.c | 15 +++++++++++++++ drivers/dpll/dpllsim/dpllsim.h | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/dpll/dpllsim/dpll.c b/drivers/dpll/dpllsim/dpll.c index 8a302c2537c880..3caccd38a7e74a 100644 --- a/drivers/dpll/dpllsim/dpll.c +++ b/drivers/dpll/dpllsim/dpll.c @@ -79,6 +79,19 @@ static int dpllsim_pin_frequency_get(const struct dpll_pin *pin, return 0; } +static int dpllsim_pin_frequency_set(const struct dpll_pin *pin, + void *pin_priv, + const struct dpll_device *dpll, + void *dpll_priv, u64 frequency, + struct netlink_ext_ack *extack) +{ + struct dpllsim_pin *sim_pin = pin_priv; + + guard(mutex)(&sim_pin->dev->lock); + sim_pin->frequency = frequency; + return 0; +} + static int dpllsim_pin_direction_get(const struct dpll_pin *pin, void *pin_priv, const struct dpll_device *dpll, @@ -148,6 +161,7 @@ static int dpllsim_pin_prio_set(const struct dpll_pin *pin, void *pin_priv, static const struct dpll_pin_ops dpllsim_input_pin_ops = { .frequency_get = dpllsim_pin_frequency_get, + .frequency_set = dpllsim_pin_frequency_set, .direction_get = dpllsim_pin_direction_get, .state_on_dpll_get = dpllsim_pin_state_get, .state_on_dpll_set = dpllsim_pin_state_set, @@ -157,6 +171,7 @@ static const struct dpll_pin_ops dpllsim_input_pin_ops = { static const struct dpll_pin_ops dpllsim_output_pin_ops = { .frequency_get = dpllsim_pin_frequency_get, + .frequency_set = dpllsim_pin_frequency_set, .direction_get = dpllsim_pin_direction_get, .state_on_dpll_get = dpllsim_pin_state_get, }; diff --git a/drivers/dpll/dpllsim/dpllsim.h b/drivers/dpll/dpllsim/dpllsim.h index f9fced337dc881..f59447d26a8668 100644 --- a/drivers/dpll/dpllsim/dpllsim.h +++ b/drivers/dpll/dpllsim/dpllsim.h @@ -26,8 +26,8 @@ struct dpllsim_pin { /* * Configuration, set through configfs only until - * dpllsim_dev_frozen(). The netlink prio setter changes prio at - * runtime under dev->lock. + * dpllsim_dev_frozen(). The netlink setters change prio and + * frequency at runtime under dev->lock. */ enum dpll_pin_type type; enum dpll_pin_direction direction; -- 2.56.0