Re: [PATCH v5 0/5] Add support for legacy SCPI protocol

From: Sudeep Holla
Date: Wed Oct 19 2016 - 12:10:24 EST

On 19/10/16 16:59, Kevin Hilman wrote:
Sudeep Holla <sudeep.holla@xxxxxxx> writes:

On 19/10/16 13:51, Neil Armstrong wrote:
This patchset aims to support the legacy SCPI firmware implementation that was
delivered as early technology preview for the JUNO platform.

Finally a stable, maintained and public implementation for the SCPI protocol
has been upstreamed part of the JUNO support and it is the recommended way
of implementing SCP communication on ARMv8 platforms.

The Amlogic GXBB platform is using this legacy protocol, as the RK3368 & RK3399
platforms. This patchset will only add support for Amlogic GXBB SoC.

This patchset add support for the legacy protocol in the arm_scpi.c file,
avoiding code duplication.

This patchset is rebased against scpi-updates/for-next from [2] and with
already merged patches [3], [4] and [5] and ommited in this patchset.

Last RFC discution thread can be found at :

Changes since v4 at :
- Removed legacy locking scheme
- Removed cmd copy back after token insert
- Various cleanups

Changes since v3 at :
- Changed back author to Sudeep Holla for first patch
- Merged legacy functions to scpi_send_message, tx_prepare and handle_remote_message
- Added legacy locking scheme
- Merged back legacy_scpi_sensor_get_value into scpi_sensor_get_value
- Rebased on linux-next-20161004 with patchset [1]

Changes since v2 at :
- Added command indirection table and use it in each commands
- Added bitmap for high priority commands
- Cleaned up legacy tx_prepare/handle_message to align to standard functions
- Dropped legacy_scpi_ops

Changes since v1 at :
- Dropped vendor_send_message and rockchip vendor mechanism patches
- Merged alternate functions into main functions using is_legacy boolean
- Added DT match table to set is_legacy to true
- Kept alternate scpi_ops structure for legacy

[3] scpi: Add cmd indirection table to prepare for legacy commands
[4] scpi: grow MAX_DVFS_OPPS to 16 entries
[5] dt-bindings: Add support for Amlogic GXBB SCPI Interface

Neil Armstrong (5):
scpi: Add alternative legacy structures, functions and macros
scpi: Do not fail if get_capabilities is not implemented
scpi: Add support for Legacy match table for Amlogic GXBB SoC
ARM64: dts: meson-gxbb: Add SRAM node
ARM64: dts: meson-gxbb: Add SCPI with cpufreq & sensors Nodes

arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 57 ++++++++
drivers/firmware/arm_scpi.c | 206 +++++++++++++++++++++++++---
2 files changed, 245 insertions(+), 18 deletions(-)

Nice to see this diff stat from a whole new file legacy_scpi.c and 1000+
delta. Thanks for working on this. I have applied the first 3 patches in
this series with some subject/commit message changes to [1].

Sudeep, will this be an immutable branch? (or could you put a tag at an
immutable place on this branch?) I'd like to include this in my amlogic
integration branch for broader testing.

If you plan to test SCPI(which is enabled in defconfig), then you need
all the patches in the branch[1]. I will tag once I get a build success
from kbuild robot and I do some testing. In short, immutable tag = PR
tag IMO. The only thing I can drop from the list is DT bindings patch.

Let me know if you are fine using the same tag ? Or you can propose any
other alternative, I am fine by that too.