mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
To: Praveen Talari <praveen.talari@oss.qualcomm.com>,
	Andi Shyti <andi.shyti@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Mukesh Kumar Savaliya <mukesh.savaliya@oss.qualcomm.com>,
	Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	linux-arm-msm@vger.kernel.org, linux-i2c@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	bryan.odonoghue@linaro.org, dmitry.baryshkov@oss.qualcomm.com,
	bjorn.andersson@oss.qualcomm.com
Cc: prasad.sodagudi@oss.qualcomm.com, quic_vtanuku@quicinc.com,
	aniket.randive@oss.qualcomm.com,
	chandana.chiluveru@oss.qualcomm.com
Subject: Re: [PATCH v3 06/12] soc: qcom: geni-se: Introduce helper APIs for performance control
Date: Tue, 3 Feb 2026 12:14:12 +0100	[thread overview]
Message-ID: <24f967b5-0f15-4aed-a81f-ad54f8e541fa@oss.qualcomm.com> (raw)
In-Reply-To: <b918cfa9-1f40-4aee-ad91-d6425798bd07@oss.qualcomm.com>

On 1/30/26 5:54 PM, Praveen Talari wrote:
> Hi Konrad
> 
> On 1/30/2026 5:53 PM, Konrad Dybcio wrote:
>> On 1/12/26 11:47 AM, Praveen Talari wrote:
>>> The GENI Serial Engine (SE) drivers (I2C, SPI, and SERIAL) currently
>>> manage performance levels and operating points directly. This resulting
>>> in code duplication across drivers. such as configuring a specific level
>>> or find and apply an OPP based on a clock frequency.
>>>
>>> Introduce two new helper APIs, geni_se_set_perf_level() and
>>> geni_se_set_perf_opp(), addresses this issue by providing a streamlined
>>> method for the GENI Serial Engine (SE) drivers to find and set the OPP
>>> based on the desired performance level, thereby eliminating redundancy.
>>>
>>> Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com>
>>> ---
>>
>> [...]
>>
>>> +/**
>>> + * geni_se_set_perf_level() - Set performance level for GENI SE.
>>> + * @se: Pointer to the struct geni_se instance.
>>> + * @level: The desired performance level.
>>> + *
>>> + * Sets the performance level by directly calling dev_pm_opp_set_level
>>> + * on the performance device associated with the SE.
>>> + *
>>> + * Return: 0 on success, or a negative error code on failure.
>>> + */
>>> +int geni_se_set_perf_level(struct geni_se *se, unsigned long level)
>>> +{
>>> +    return dev_pm_opp_set_level(se->pd_list->pd_devs[DOMAIN_IDX_PERF], level);
>>> +}
>>> +EXPORT_SYMBOL_GPL(geni_se_set_perf_level);
>>
>> This function is never used
> 
> it will be used by UART driver, not for I2C/SPI.

Adding unused exported symbols is "eeeh"..

>>
>>> +
>>> +/**
>>> + * geni_se_set_perf_opp() - Set performance OPP for GENI SE by frequency.
>>> + * @se: Pointer to the struct geni_se instance.
>>> + * @clk_freq: The requested clock frequency.
>>> + *
>>> + * Finds the nearest operating performance point (OPP) for the given
>>> + * clock frequency and applies it to the SE's performance device.
>>> + *
>>> + * Return: 0 on success, or a negative error code on failure.
>>> + */
>>> +int geni_se_set_perf_opp(struct geni_se *se, unsigned long clk_freq)
>>
>> I think with the SPI driver in mind (which seems to do a simple rateset
> 
> APIs were added as generic interfaces shared across I²C/SPI which is specific to firmware control, not Linux control.
> 
>> for both backends) we could do:
>>
>>> +{
>>> +    struct device *perf_dev = se->pd_list->pd_devs[DOMAIN_IDX_PERF];
>>
>> Then, we can do struct device * perf_dev = se->dev;
> I don't think, it is needed since this is specific to firmware control, not Linux control.

My point is that it doesn't have to be specific to the auto usecase,
further commonizing the code..

Konrad

  reply	other threads:[~2026-02-03 11:14 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-12 10:47 [PATCH v3 00/12] Enable I2C on SA8255p Qualcomm platforms Praveen Talari
2026-01-12 10:47 ` [PATCH v3 01/12] soc: qcom: geni-se: Refactor geni_icc_get() and make qup-memory ICC path optional Praveen Talari
2026-01-12 10:47 ` [PATCH v3 02/12] soc: qcom: geni-se: Add geni_icc_set_bw_ab() function Praveen Talari
2026-01-12 10:47 ` [PATCH v3 03/12] soc: qcom: geni-se: Introduce helper API for resource initialization Praveen Talari
2026-01-30 12:10   ` Konrad Dybcio
2026-01-30 17:00     ` Praveen Talari
2026-01-12 10:47 ` [PATCH v3 04/12] soc: qcom: geni-se: Add resources activation/deactivation helpers Praveen Talari
2026-01-30 12:11   ` Konrad Dybcio
2026-02-02 16:20     ` Praveen Talari
2026-01-12 10:47 ` [PATCH v3 05/12] soc: qcom: geni-se: Introduce helper API for attaching power domains Praveen Talari
2026-01-30 12:12   ` Konrad Dybcio
2026-01-30 16:55     ` Praveen Talari
2026-02-02 16:19     ` Praveen Talari
2026-01-12 10:47 ` [PATCH v3 06/12] soc: qcom: geni-se: Introduce helper APIs for performance control Praveen Talari
2026-01-30 12:23   ` Konrad Dybcio
2026-01-30 16:54     ` Praveen Talari
2026-02-03 11:14       ` Konrad Dybcio [this message]
2026-02-04  5:42         ` Praveen Talari
2026-02-17 12:25           ` Konrad Dybcio
2026-02-20  5:23             ` Praveen Talari
2026-02-23 13:43               ` Praveen Talari
2026-02-25 14:25               ` Konrad Dybcio
2026-01-12 10:47 ` [PATCH v3 07/12] dt-bindings: i2c: Describe SA8255p Praveen Talari
2026-01-12 10:47 ` [PATCH v3 08/12] i2c: qcom-geni: Isolate serial engine setup Praveen Talari
2026-01-21  7:47   ` Viken Dadhaniya
2026-01-12 10:47 ` [PATCH v3 09/12] i2c: qcom-geni: Move resource initialization to separate function Praveen Talari
2026-01-21  8:57   ` Viken Dadhaniya
2026-01-12 10:47 ` [PATCH v3 10/12] i2c: qcom-geni: Use resources helper APIs in runtime PM functions Praveen Talari
2026-01-21  8:58   ` Viken Dadhaniya
2026-01-30 12:05   ` Konrad Dybcio
2026-01-30 16:48     ` Praveen Talari
2026-02-03 11:13       ` Konrad Dybcio
2026-02-04  5:46         ` Praveen Talari
2026-01-12 10:47 ` [PATCH v3 11/12] i2c: qcom-geni: Store of_device_id data in driver private struct Praveen Talari
2026-01-21  8:59   ` Viken Dadhaniya
2026-01-30 12:29   ` Konrad Dybcio
2026-02-02 16:19     ` Praveen Talari
2026-01-12 10:47 ` [PATCH v3 12/12] i2c: qcom-geni: Enable I2C on SA8255p Qualcomm platforms Praveen Talari
2026-01-21 10:21   ` Viken Dadhaniya
2026-01-30 12:34   ` Konrad Dybcio
2026-01-30 16:44     ` Praveen Talari
2026-02-02 14:53       ` Konrad Dybcio
2026-02-04  5:43         ` Praveen Talari
2026-01-14 15:05 ` [PATCH v3 00/12] " Andi Shyti
2026-01-28 22:49 ` [SPAM] " Andi Shyti

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=24f967b5-0f15-4aed-a81f-ad54f8e541fa@oss.qualcomm.com \
    --to=konrad.dybcio@oss.qualcomm.com \
    --cc=andersson@kernel.org \
    --cc=andi.shyti@kernel.org \
    --cc=aniket.randive@oss.qualcomm.com \
    --cc=bjorn.andersson@oss.qualcomm.com \
    --cc=bryan.odonoghue@linaro.org \
    --cc=chandana.chiluveru@oss.qualcomm.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mukesh.savaliya@oss.qualcomm.com \
    --cc=prasad.sodagudi@oss.qualcomm.com \
    --cc=praveen.talari@oss.qualcomm.com \
    --cc=quic_vtanuku@quicinc.com \
    --cc=robh@kernel.org \
    --cc=viken.dadhaniya@oss.qualcomm.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®