mbox series

[V7,RESEND,0/7] Add interconnect support to QSPI and QUP drivers

Message ID 1591682194-32388-1-git-send-email-akashast@codeaurora.org (mailing list archive)
Headers show
Series Add interconnect support to QSPI and QUP drivers | expand

Message

Akash Asthana June 9, 2020, 5:56 a.m. UTC
This patch series is based on tag "next-20200608" of linux-next tree.

Resending V7 patch with minor change in patch 6/7 (QSPI).

dt-binding patch for QUP drivers.
 - https://patchwork.kernel.org/patch/11534149/ [Convert QUP bindings
        to YAML and add ICC, pin swap doc]

High level design:
 - QUP wrapper/common driver.
   Vote for QUP core on behalf of earlycon from probe.
   Remove BW vote during earlycon exit call

 - SERIAL driver.
   Vote only for CPU/CORE path because driver is in FIFO mode only
   Vote/unvote from qcom_geni_serial_pm func.
   Bump up the CPU vote from set_termios call based on real time need

 - I2C driver.
   Vote for CORE/CPU/DDR path
   Vote/unvote from runtime resume/suspend callback
   As bus speed for I2C is fixed from probe itself no need for bump up.

 - SPI QUP driver.
   Vote only for CPU/CORE path because driver is in FIFO mode only
   Vote/unvote from runtime resume/suspend callback
   Bump up CPU vote based on real time need per transfer.

 - QSPI driver.
   Vote only for CPU path
   Vote/unvote from runtime resume/suspend callback
   Bump up CPU vote based on real time need per transfer.

Changes in V2:
 - Add devm_of_icc_get() API interconnect core.
 - Add ICC support to common driver to fix earlyconsole crash.

Changes in V3:
 - Define common ICC APIs in geni-se driver and use it across geni based
   I2C,SPI and UART driver.

Changes in V4:
 - Add a patch to ICC core to scale peak requirement
   as twice of average if it is not mentioned explicilty.

Changes in V5:
 - As per Georgi's suggestion removed patch from ICC core for assuming
   peak_bw as twice of average when it's not mentioned, instead assume it
   equall to avg_bw and keep this assumption in ICC client itself.
 - As per Matthias suggestion use enum for GENI QUP ICC paths.

Changes in V6:
 - No Major change

Changes in V7:
 - As per Matthias's comment removed usage of peak_bw variable because we don't
   have explicit peak requirement, we were voting peak = avg and this can be
   tracked using single variable for avg bw.
 - As per Matthias's comment improved print log.

Akash Asthana (7):
  soc: qcom: geni: Support for ICC voting
  soc: qcom-geni-se: Add interconnect support to fix earlycon crash
  i2c: i2c-qcom-geni: Add interconnect support
  spi: spi-geni-qcom: Add interconnect support
  tty: serial: qcom_geni_serial: Add interconnect support
  spi: spi-qcom-qspi: Add interconnect support
  arm64: dts: sc7180: Add interconnect for QUP and QSPI

 arch/arm64/boot/dts/qcom/sc7180.dtsi  | 127 ++++++++++++++++++++++++++++
 drivers/i2c/busses/i2c-qcom-geni.c    |  26 +++++-
 drivers/soc/qcom/qcom-geni-se.c       | 150 ++++++++++++++++++++++++++++++++++
 drivers/spi/spi-geni-qcom.c           |  29 ++++++-
 drivers/spi/spi-qcom-qspi.c           |  56 ++++++++++++-
 drivers/tty/serial/qcom_geni_serial.c |  38 ++++++++-
 include/linux/qcom-geni-se.h          |  40 +++++++++
 7 files changed, 460 insertions(+), 6 deletions(-)

Comments

Matthias Kaehlcke June 9, 2020, 3:38 p.m. UTC | #1
Hi Akash,

On Tue, Jun 09, 2020 at 11:26:27AM +0530, Akash Asthana wrote:
> This patch series is based on tag "next-20200608" of linux-next tree.

Great, I was concerned there would be conflicts without a rebase.

> Resending V7 patch with minor change in patch 6/7 (QSPI).

It's not a pure resend, since it has changes in "spi:
spi-qcom-qspi: Add interconnect support":

  Changes in Resend V7:
   - As per Matthias comment removed "unsigned int avg_bw_cpu" from
      struct qcom_qspi as we are using that variable only once.

Please increase the version number whenever you make changes or rebase.

Maintainers tend to be busy, before doing actual resends folks often
send a ping/inquiry on the original patch/series, and only resend it when
they didn't receive a response after some time.

Thanks

Matthias

> dt-binding patch for QUP drivers.
>  - https://patchwork.kernel.org/patch/11534149/ [Convert QUP bindings
>         to YAML and add ICC, pin swap doc]
> 
> High level design:
>  - QUP wrapper/common driver.
>    Vote for QUP core on behalf of earlycon from probe.
>    Remove BW vote during earlycon exit call
> 
>  - SERIAL driver.
>    Vote only for CPU/CORE path because driver is in FIFO mode only
>    Vote/unvote from qcom_geni_serial_pm func.
>    Bump up the CPU vote from set_termios call based on real time need
> 
>  - I2C driver.
>    Vote for CORE/CPU/DDR path
>    Vote/unvote from runtime resume/suspend callback
>    As bus speed for I2C is fixed from probe itself no need for bump up.
> 
>  - SPI QUP driver.
>    Vote only for CPU/CORE path because driver is in FIFO mode only
>    Vote/unvote from runtime resume/suspend callback
>    Bump up CPU vote based on real time need per transfer.
> 
>  - QSPI driver.
>    Vote only for CPU path
>    Vote/unvote from runtime resume/suspend callback
>    Bump up CPU vote based on real time need per transfer.
> 
> Changes in V2:
>  - Add devm_of_icc_get() API interconnect core.
>  - Add ICC support to common driver to fix earlyconsole crash.
> 
> Changes in V3:
>  - Define common ICC APIs in geni-se driver and use it across geni based
>    I2C,SPI and UART driver.
> 
> Changes in V4:
>  - Add a patch to ICC core to scale peak requirement
>    as twice of average if it is not mentioned explicilty.
> 
> Changes in V5:
>  - As per Georgi's suggestion removed patch from ICC core for assuming
>    peak_bw as twice of average when it's not mentioned, instead assume it
>    equall to avg_bw and keep this assumption in ICC client itself.
>  - As per Matthias suggestion use enum for GENI QUP ICC paths.
> 
> Changes in V6:
>  - No Major change
> 
> Changes in V7:
>  - As per Matthias's comment removed usage of peak_bw variable because we don't
>    have explicit peak requirement, we were voting peak = avg and this can be
>    tracked using single variable for avg bw.
>  - As per Matthias's comment improved print log.
> 
> Akash Asthana (7):
>   soc: qcom: geni: Support for ICC voting
>   soc: qcom-geni-se: Add interconnect support to fix earlycon crash
>   i2c: i2c-qcom-geni: Add interconnect support
>   spi: spi-geni-qcom: Add interconnect support
>   tty: serial: qcom_geni_serial: Add interconnect support
>   spi: spi-qcom-qspi: Add interconnect support
>   arm64: dts: sc7180: Add interconnect for QUP and QSPI
> 
>  arch/arm64/boot/dts/qcom/sc7180.dtsi  | 127 ++++++++++++++++++++++++++++
>  drivers/i2c/busses/i2c-qcom-geni.c    |  26 +++++-
>  drivers/soc/qcom/qcom-geni-se.c       | 150 ++++++++++++++++++++++++++++++++++
>  drivers/spi/spi-geni-qcom.c           |  29 ++++++-
>  drivers/spi/spi-qcom-qspi.c           |  56 ++++++++++++-
>  drivers/tty/serial/qcom_geni_serial.c |  38 ++++++++-
>  include/linux/qcom-geni-se.h          |  40 +++++++++
>  7 files changed, 460 insertions(+), 6 deletions(-)
> 
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
>
Akash Asthana June 10, 2020, 11:46 a.m. UTC | #2
Hi Matthias,

On 6/9/2020 9:08 PM, Matthias Kaehlcke wrote:
> Hi Akash,
>
> On Tue, Jun 09, 2020 at 11:26:27AM +0530, Akash Asthana wrote:
>> This patch series is based on tag "next-20200608" of linux-next tree.
> Great, I was concerned there would be conflicts without a rebase.
>
>> Resending V7 patch with minor change in patch 6/7 (QSPI).
> It's not a pure resend, since it has changes in "spi:
> spi-qcom-qspi: Add interconnect support":
>
>    Changes in Resend V7:
>     - As per Matthias comment removed "unsigned int avg_bw_cpu" from
>        struct qcom_qspi as we are using that variable only once.
>
> Please increase the version number whenever you make changes or rebase.
Ok sure.
>
> Maintainers tend to be busy, before doing actual resends folks often
> send a ping/inquiry on the original patch/series, and only resend it when
> they didn't receive a response after some time.

Ok, I was under impression that resending patches is always a better 
approach@https://lore.kernel.org/patchwork/patch/1235198/.

Although it vary for every subsystem, I resend the series here to get 
approvals on SPI patches.

Regards,

Akash

>
> Thanks
>
> Matthias
>
>> dt-binding patch for QUP drivers.
>>   - https://patchwork.kernel.org/patch/11534149/ [Convert QUP bindings
>>          to YAML and add ICC, pin swap doc]
>>
>> High level design:
>>   - QUP wrapper/common driver.
>>     Vote for QUP core on behalf of earlycon from probe.
>>     Remove BW vote during earlycon exit call
>>
>>   - SERIAL driver.
>>     Vote only for CPU/CORE path because driver is in FIFO mode only
>>     Vote/unvote from qcom_geni_serial_pm func.
>>     Bump up the CPU vote from set_termios call based on real time need
>>
>>   - I2C driver.
>>     Vote for CORE/CPU/DDR path
>>     Vote/unvote from runtime resume/suspend callback
>>     As bus speed for I2C is fixed from probe itself no need for bump up.
>>
>>   - SPI QUP driver.
>>     Vote only for CPU/CORE path because driver is in FIFO mode only
>>     Vote/unvote from runtime resume/suspend callback
>>     Bump up CPU vote based on real time need per transfer.
>>
>>   - QSPI driver.
>>     Vote only for CPU path
>>     Vote/unvote from runtime resume/suspend callback
>>     Bump up CPU vote based on real time need per transfer.
>>
>> Changes in V2:
>>   - Add devm_of_icc_get() API interconnect core.
>>   - Add ICC support to common driver to fix earlyconsole crash.
>>
>> Changes in V3:
>>   - Define common ICC APIs in geni-se driver and use it across geni based
>>     I2C,SPI and UART driver.
>>
>> Changes in V4:
>>   - Add a patch to ICC core to scale peak requirement
>>     as twice of average if it is not mentioned explicilty.
>>
>> Changes in V5:
>>   - As per Georgi's suggestion removed patch from ICC core for assuming
>>     peak_bw as twice of average when it's not mentioned, instead assume it
>>     equall to avg_bw and keep this assumption in ICC client itself.
>>   - As per Matthias suggestion use enum for GENI QUP ICC paths.
>>
>> Changes in V6:
>>   - No Major change
>>
>> Changes in V7:
>>   - As per Matthias's comment removed usage of peak_bw variable because we don't
>>     have explicit peak requirement, we were voting peak = avg and this can be
>>     tracked using single variable for avg bw.
>>   - As per Matthias's comment improved print log.
>>
>> Akash Asthana (7):
>>    soc: qcom: geni: Support for ICC voting
>>    soc: qcom-geni-se: Add interconnect support to fix earlycon crash
>>    i2c: i2c-qcom-geni: Add interconnect support
>>    spi: spi-geni-qcom: Add interconnect support
>>    tty: serial: qcom_geni_serial: Add interconnect support
>>    spi: spi-qcom-qspi: Add interconnect support
>>    arm64: dts: sc7180: Add interconnect for QUP and QSPI
>>
>>   arch/arm64/boot/dts/qcom/sc7180.dtsi  | 127 ++++++++++++++++++++++++++++
>>   drivers/i2c/busses/i2c-qcom-geni.c    |  26 +++++-
>>   drivers/soc/qcom/qcom-geni-se.c       | 150 ++++++++++++++++++++++++++++++++++
>>   drivers/spi/spi-geni-qcom.c           |  29 ++++++-
>>   drivers/spi/spi-qcom-qspi.c           |  56 ++++++++++++-
>>   drivers/tty/serial/qcom_geni_serial.c |  38 ++++++++-
>>   include/linux/qcom-geni-se.h          |  40 +++++++++
>>   7 files changed, 460 insertions(+), 6 deletions(-)
>>
>> -- 
>> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
>>