Re: [PATCH v13 00/10] drivers/qcom: add RPMH communication support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed 20 Jun 06:26 PDT 2018, Raju P L S S S N wrote:

> From: "Raju P.L.S.S.S.N" <rplsssn@xxxxxxxxxxxxxx>
> 

Acked-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>

Regards,
Bjorn

> Changes in v13:
> - Add missing Signed-off-by in commit text 
> 
> Changes in v12:
> - Rename ctrlr to client in rsc_drv
> - Fix Bot reported errors - 'err' may be used uninitialized
> - Rebase on top of v4.18-rc1 
> 
> Changes in v11:
> - move rpmh_request to rpmh-internal.h
> - Associate rpmh_ctrl to rsc_drv
> - Remove EXPORT_SYMBOL for rpmh_tx_done
> - Remove IS_ERR check for ctrlr
> - Remove rsc_drv instance from rpmh_ctrlr
> - Initialize cache & batch cache in probe
> 
> Changes in v10:
> - Remove export.h inclusion as suggested by Doug
> - Remove rsc_drv_list
> - Add EXPORT_SYMBOL
> - Remove wait_count as suggested by Doug
> - Free memory if cache_batch returns error as suggested by Doug
> - Add batch requests to list and simplify error handling as
> - return ERR_PTR if invalidate fails
> 
> Changes in v9:
> - Remove EXPORT_SYMBOL as suggested by Doug
> - Add Reviewed-by tags
> - Rename lock variable as suggested by Doug
> - Add WARN_ON if completion timeout occurs as suggested by Doug
> - Fix the bound checks as suggested by Matthias
> - Improve comments as suggested by Doug
> - Add check for freeing dynamically allocated request object
> - Rename label as suggested by Doug
> - Fix IS_ERR_OR_NULL check to IS_ERR as suggested by Doug
> - Add check to call rpmh_rsc_invalidate if -EAGAIN is retured
>   as suggested by Doug
> 
> Changes in v8:
> - Bounds check for cmd_cache
> - Describe interrupts to other DRVs in DT bindings
> - Rebase on top of 4.17-rc3
> 
> Changes in v7:
> - Rename 'm' and 'n' and use tcs_id and cmd_id instead
> - Bug fix in find_match() and other review comments from Matthias
> - Spinlock around get_rpmh_ctrlr()
> - DT documentation example fixes
> - Rebase on top of 4.16-rc2
> 
> Changes in v6:
> - Remove tasklet in rpmh-rsc.c
> - Remove rpmh_client and use struct device * instead
> - Variable changes and bug fixes
> - DT binding changes to describe all DRVs in the RSC
> - Documentation and comment fixes
> 
> Changes in v5:
> - Add Reviewed-by tags
> - Rebase on top of 4.16
> 
> Changes in v4:
> - Rename variables as suggested by Stephen and Evan
> - Lot of minor syntax and style fixes
> - Fix FTRACE compilation error
> - Improve doc comments and DT description
> 
> Changes in v3:
> - Address Steven's comments in FTRACE
> - Fix DT documentation as suggested by Rob H
> - Fix error handling in IRQ handler as suggested by Evan
> - Remove locks in rpmh_flush()
> - Improve comments
> 
> Changes in v2:
> - Added sleep/wake, async and batch requests support
> - Addressed Bjorn's comments
> - Private FTRACE for drivers/soc/qcom as suggested by Steven
> - Sparse checked on these patches
> - Use SPDX license commenting sytle
> 
> This set of patches add the ability for platform drivers to make use of shared
> resources in newer Qualcomm SoCs like SDM845. Resources that are shared between
> multiple processors in a SoC are generally controlled by a dedicated remote
> processor. The remote processor (Resource Power Manager or RPM in previous QCOM
> SoCs) receives requests for resource state from other processors using the
> shared resource, aggregates the request and applies the result on the shared
> resource. SDM845 advances this concept and uses h/w (hardened I/P) blocks for
> aggregating requests and applying the result on the resource. The resources
> could be clocks, regulators or bandwidth requests for buses. This new
> architecture is called RPM-hardened or RPMH in short.
> 
> Since this communication mechanism is completely hardware driven without a
> processor intervention on the remote end, existing mechanisms like RPM-SMD are
> no longer useful. Also, there is no serialization of data or is data is written
> to a shared memory in this new format. The data used is different, unsigned 32
> bits are used for representing an address, data and header. Each resource's
> property is a unique u32 address and have pre-defined set of property specific
> valid values. A request that comprises of <header, addr, data> is sent by
> writing to a set of registers from Linux and transmitted to the remote slave
> through an internal bus. The remote end aggregates this request along with
> requests from other processors for the <addr> and applies the result.
> 
> The hardware block that houses this functionality is called Resource State
> Coordinator or RSC. Inside the RSC are set of slots for sending RPMH requests
> called Trigger Commands Sets (TCS). The set of patches are for writing the
> requests into these TCSes and sending them to hardened IP blocks.
> 
> The driver design is split into two components. The RSC driver housed in
> rpmh-rsc.c and the set of library functions in rpmh.c that frame the request and
> transmit it using the controller. This first set of patches allow a simple
> synchronous request to be made by the platform drivers. Future patches will add
> more functionality that cater to complex drivers and use cases.
> 
> Please consider reviewing this patchset.
> 
> v1: https://www.spinics.net/lists/devicetree/msg210980.html
> v2: https://lkml.org/lkml/2018/2/15/852
> v3: https://lkml.org/lkml/2018/3/2/801
> v4: https://lkml.org/lkml/2018/3/9/979
> v5: https://lkml.org/lkml/2018/4/5/480
> v6: https://lkml.org/lkml/2018/4/19/914
> v7: https://lkml.org/lkml/2018/5/2/779
> v8: https://lkml.org/lkml/2018/5/9/729
> v9: https://lkml.org/lkml/2018/5/24/530
> v10: https://lkml.org/lkml/2018/6/11/542
> v11: https://lkml.org/lkml/2018/6/18/860
> v12: https://lkml.org/lkml/2018/6/19/535
> 
> Lina Iyer (10):
>   drivers: qcom: rpmh-rsc: add RPMH controller for QCOM SoCs
>   dt-bindings: introduce RPMH RSC bindings for Qualcomm SoCs
>   drivers: qcom: rpmh-rsc: log RPMH requests in FTRACE
>   drivers: qcom: rpmh: add RPMH helper functions
>   drivers: qcom: rpmh-rsc: write sleep/wake requests to TCS
>   drivers: qcom: rpmh-rsc: allow invalidation of sleep/wake TCS
>   drivers: qcom: rpmh: cache sleep/wake state requests
>   drivers: qcom: rpmh: allow requests to be sent asynchronously
>   drivers: qcom: rpmh: add support for batch RPMH request
>   drivers: qcom: rpmh-rsc: allow active requests from wake TCS
> 
>  .../devicetree/bindings/soc/qcom/rpmh-rsc.txt      | 137 +++++
>  drivers/soc/qcom/Kconfig                           |  10 +
>  drivers/soc/qcom/Makefile                          |   4 +
>  drivers/soc/qcom/rpmh-internal.h                   | 114 ++++
>  drivers/soc/qcom/rpmh-rsc.c                        | 682 +++++++++++++++++++++
>  drivers/soc/qcom/rpmh.c                            | 513 ++++++++++++++++
>  drivers/soc/qcom/trace-rpmh.h                      |  82 +++
>  include/dt-bindings/soc/qcom,rpmh-rsc.h            |  14 +
>  include/soc/qcom/rpmh.h                            |  51 ++
>  include/soc/qcom/tcs.h                             |  56 ++
>  10 files changed, 1663 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/rpmh-rsc.txt
>  create mode 100644 drivers/soc/qcom/rpmh-internal.h
>  create mode 100644 drivers/soc/qcom/rpmh-rsc.c
>  create mode 100644 drivers/soc/qcom/rpmh.c
>  create mode 100644 drivers/soc/qcom/trace-rpmh.h
>  create mode 100644 include/dt-bindings/soc/qcom,rpmh-rsc.h
>  create mode 100644 include/soc/qcom/rpmh.h
>  create mode 100644 include/soc/qcom/tcs.h
> 
> -- 
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,\na Linux Foundation Collaborative Project
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux