forked from Minki/linux
abfbb29297
This introduces device managed versions of functions used to register remoteproc devices, add support for remoteproc driver specific resource control, enables remoteproc drivers to specify ELF class and machine for coredumps. It integrates pm_runtime in the core for keeping resources active while the remote is booted and holds a wake source while recoverying a remote processor after a firmware crash. It refactors the remoteproc device's allocation path to simplify the logic, fix a few cleanup bugs and to not clone const strings onto the heap. Debugfs code is simplifies using the DEFINE_SHOW_ATTRIBUTE and a zero-length array is replaced with flexible-array. A new remoteproc driver for the JZ47xx VPU is introduced, the Qualcomm SM8250 gains support for audio, compute and sensor remoteprocs and the Qualcomm SC7180 modem support is cleaned up and improved. The Qualcomm glink subsystem-restart driver is merged into the main glink driver, the Qualcomm sysmon driver is extended to properly notify remote processors about all other remote processors' state transitions. -----BEGIN PGP SIGNATURE----- iQJPBAABCAA5FiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAl7egk0bHGJqb3JuLmFu ZGVyc3NvbkBsaW5hcm8ub3JnAAoJEAsfOT8Nma3FQnwQAM781m7BqSKdtbH0OzGB K4jGX/IkWCEluXx/RuDbPFV0mx/yLOfsrSzBBYnnTl+CXTgSLFtImRvwx5BFbnAl bRNbSlw1GLiV/w+HceIx1iKTELnkHKp4TT3zUmR+dZ+7pT1dhWXzHIjyjJPC1c7R L8qg3qlOrM620y3OJNUo57/20Tg9WN6kBKdaeyJKjmBsENrw6wggY30ijqhMgCYr 9LgStPjtuSGgf4j55+BeTskVSnOvuun5NlVpRUVTo+ZDKTZAyO/8TKM+yWffAHc5 7WkK0z9E3lhwdNPLif+dSIvhLjiyKR2yJf5KP7n9mFhA1tRVqNXnJqMCnAnwVvzT IpL1INYbirRwPfayhCsUSwKDTKkckKP9I/vZ7WKWJD9SWcc4eGWIifNDNGkMQ6qV 7S0+6AyCANBltRPKTl6zwXSrrHuBUNkH3r9gddT5tPJu7Klh+fjKEywpsXkUd+IY Xo1nuT+mYrUgif0KTh656EK6YM5dFuVnZqOszzgiVUrdKeHKYBsUjWD7vS7DBeLe pLiDfo0qMb/J0sPptMt+0Rg/b/Nt1YiddW3ZlnVmWRCRjIQRJt9LQZcQoVhVv1Sa OQkhlvFTqIEFJfLtvp83zvL5WngxVM5Dq6mDiesAjZUhyode9ZtOGxr9zyhA4ApU njqp4n16OxcXaqjwp+k6eK8L =4k54 -----END PGP SIGNATURE----- Merge tag 'rproc-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc Pull remoteproc updates from Bjorn Andersson: "This introduces device managed versions of functions used to register remoteproc devices, add support for remoteproc driver specific resource control, enables remoteproc drivers to specify ELF class and machine for coredumps. It integrates pm_runtime in the core for keeping resources active while the remote is booted and holds a wake source while recoverying a remote processor after a firmware crash. It refactors the remoteproc device's allocation path to simplify the logic, fix a few cleanup bugs and to not clone const strings onto the heap. Debugfs code is simplifies using the DEFINE_SHOW_ATTRIBUTE and a zero-length array is replaced with flexible-array. A new remoteproc driver for the JZ47xx VPU is introduced, the Qualcomm SM8250 gains support for audio, compute and sensor remoteprocs and the Qualcomm SC7180 modem support is cleaned up and improved. The Qualcomm glink subsystem-restart driver is merged into the main glink driver, the Qualcomm sysmon driver is extended to properly notify remote processors about all other remote processors' state transitions" * tag 'rproc-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (43 commits) remoteproc: Fix an error code in devm_rproc_alloc() MAINTAINERS: Add myself as reviewer for Ingenic rproc driver remoteproc: ingenic: Added remoteproc driver remoteproc: Add support for runtime PM dt-bindings: Document JZ47xx VPU auxiliary processor remoteproc: wcss: Fix arguments passed to qcom_add_glink_subdev() remoteproc: Fix and restore the parenting hierarchy for vdev remoteproc: Fall back to using parent memory pool if no dedicated available remoteproc: Replace zero-length array with flexible-array remoteproc: wcss: add support for rpmsg communication remoteproc: core: Prevent system suspend during remoteproc recovery remoteproc: qcom_q6v5_mss: Remove unused q6v5_da_to_va function remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use remoteproc: qcom_q6v5_mss: Drop accesses to MPSS PERPH register space dt-bindings: remoteproc: qcom: Replace halt-nav with spare-regs remoteproc: qcom: pas: Add SM8250 PAS remoteprocs dt-bindings: remoteproc: qcom: pas: Add SM8250 remoteprocs remoteproc: qcom_q6v5_mss: Extract mba/mpss from memory-region dt-bindings: remoteproc: qcom: Use memory-region to reference memory remoteproc: qcom: pas: Add SC7180 Modem support ...
192 lines
6.0 KiB
Plaintext
192 lines
6.0 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# QCOM Soc drivers
|
|
#
|
|
menu "Qualcomm SoC drivers"
|
|
|
|
config QCOM_AOSS_QMP
|
|
tristate "Qualcomm AOSS Driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on MAILBOX
|
|
depends on COMMON_CLK && PM
|
|
select PM_GENERIC_DOMAINS
|
|
help
|
|
This driver provides the means of communicating with and controlling
|
|
the low-power state for resources related to the remoteproc
|
|
subsystems as well as controlling the debug clocks exposed by the Always On
|
|
Subsystem (AOSS) using Qualcomm Messaging Protocol (QMP).
|
|
|
|
config QCOM_COMMAND_DB
|
|
bool "Qualcomm Command DB"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on OF_RESERVED_MEM
|
|
help
|
|
Command DB queries shared memory by key string for shared system
|
|
resources. Platform drivers that require to set state of a shared
|
|
resource on a RPM-hardened platform must use this database to get
|
|
SoC specific identifier and information for the shared resources.
|
|
|
|
config QCOM_GENI_SE
|
|
tristate "QCOM GENI Serial Engine Driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
help
|
|
This driver is used to manage Generic Interface (GENI) firmware based
|
|
Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
|
|
driver is also used to manage the common aspects of multiple Serial
|
|
Engines present in the QUP.
|
|
|
|
config QCOM_GSBI
|
|
tristate "QCOM General Serial Bus Interface"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
select MFD_SYSCON
|
|
help
|
|
Say y here to enable GSBI support. The GSBI provides control
|
|
functions for connecting the underlying serial UART, SPI, and I2C
|
|
devices to the output pins.
|
|
|
|
config QCOM_LLCC
|
|
tristate "Qualcomm Technologies, Inc. LLCC driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
help
|
|
Qualcomm Technologies, Inc. platform specific
|
|
Last Level Cache Controller(LLCC) driver for platforms such as,
|
|
SDM845. This provides interfaces to clients that use the LLCC.
|
|
Say yes here to enable LLCC slice driver.
|
|
|
|
config QCOM_MDT_LOADER
|
|
tristate
|
|
select QCOM_SCM
|
|
|
|
config QCOM_OCMEM
|
|
tristate "Qualcomm On Chip Memory (OCMEM) driver"
|
|
depends on ARCH_QCOM
|
|
select QCOM_SCM
|
|
help
|
|
The On Chip Memory (OCMEM) allocator allows various clients to
|
|
allocate memory from OCMEM based on performance, latency and power
|
|
requirements. This is typically used by the GPU, camera/video, and
|
|
audio components on some Snapdragon SoCs.
|
|
|
|
config QCOM_PDR_HELPERS
|
|
tristate
|
|
select QCOM_QMI_HELPERS
|
|
|
|
config QCOM_QMI_HELPERS
|
|
tristate
|
|
depends on NET
|
|
|
|
config QCOM_RMTFS_MEM
|
|
tristate "Qualcomm Remote Filesystem memory driver"
|
|
depends on ARCH_QCOM
|
|
select QCOM_SCM
|
|
help
|
|
The Qualcomm remote filesystem memory driver is used for allocating
|
|
and exposing regions of shared memory with remote processors for the
|
|
purpose of exchanging sector-data between the remote filesystem
|
|
service and its clients.
|
|
|
|
Say y here if you intend to boot the modem remoteproc.
|
|
|
|
config QCOM_RPMH
|
|
bool "Qualcomm RPM-Hardened (RPMH) Communication"
|
|
depends on ARCH_QCOM && ARM64 || COMPILE_TEST
|
|
help
|
|
Support for communication with the hardened-RPM blocks in
|
|
Qualcomm Technologies Inc (QTI) SoCs. RPMH communication uses an
|
|
internal bus to transmit state requests for shared resources. A set
|
|
of hardware components aggregate requests for these resources and
|
|
help apply the aggregated state on the resource.
|
|
|
|
config QCOM_RPMHPD
|
|
tristate "Qualcomm RPMh Power domain driver"
|
|
depends on QCOM_RPMH && QCOM_COMMAND_DB
|
|
help
|
|
QCOM RPMh Power domain driver to support power-domains with
|
|
performance states. The driver communicates a performance state
|
|
value to RPMh which then translates it into corresponding voltage
|
|
for the voltage rail.
|
|
|
|
config QCOM_RPMPD
|
|
tristate "Qualcomm RPM Power domain driver"
|
|
depends on QCOM_SMD_RPM
|
|
help
|
|
QCOM RPM Power domain driver to support power-domains with
|
|
performance states. The driver communicates a performance state
|
|
value to RPM which then translates it into corresponding voltage
|
|
for the voltage rail.
|
|
|
|
config QCOM_SMEM
|
|
tristate "Qualcomm Shared Memory Manager (SMEM)"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on HWSPINLOCK
|
|
help
|
|
Say y here to enable support for the Qualcomm Shared Memory Manager.
|
|
The driver provides an interface to items in a heap shared among all
|
|
processors in a Qualcomm platform.
|
|
|
|
config QCOM_SMD_RPM
|
|
tristate "Qualcomm Resource Power Manager (RPM) over SMD"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on RPMSG
|
|
help
|
|
If you say yes to this option, support will be included for the
|
|
Resource Power Manager system found in the Qualcomm 8974 based
|
|
devices.
|
|
|
|
This is required to access many regulators, clocks and bus
|
|
frequencies controlled by the RPM on these devices.
|
|
|
|
Say M here if you want to include support for the Qualcomm RPM as a
|
|
module. This will build a module called "qcom-smd-rpm".
|
|
|
|
config QCOM_SMEM_STATE
|
|
bool
|
|
|
|
config QCOM_SMP2P
|
|
tristate "Qualcomm Shared Memory Point to Point support"
|
|
depends on MAILBOX
|
|
depends on QCOM_SMEM
|
|
select QCOM_SMEM_STATE
|
|
select IRQ_DOMAIN
|
|
help
|
|
Say yes here to support the Qualcomm Shared Memory Point to Point
|
|
protocol.
|
|
|
|
config QCOM_SMSM
|
|
tristate "Qualcomm Shared Memory State Machine"
|
|
depends on QCOM_SMEM
|
|
select QCOM_SMEM_STATE
|
|
select IRQ_DOMAIN
|
|
help
|
|
Say yes here to support the Qualcomm Shared Memory State Machine.
|
|
The state machine is represented by bits in shared memory.
|
|
|
|
config QCOM_SOCINFO
|
|
tristate "Qualcomm socinfo driver"
|
|
depends on QCOM_SMEM
|
|
select SOC_BUS
|
|
help
|
|
Say yes here to support the Qualcomm socinfo driver, providing
|
|
information about the SoC to user space.
|
|
|
|
config QCOM_WCNSS_CTRL
|
|
tristate "Qualcomm WCNSS control driver"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on RPMSG
|
|
help
|
|
Client driver for the WCNSS_CTRL SMD channel, used to download nv
|
|
firmware to a newly booted WCNSS chip.
|
|
|
|
config QCOM_APR
|
|
tristate "Qualcomm APR Bus (Asynchronous Packet Router)"
|
|
depends on ARCH_QCOM || COMPILE_TEST
|
|
depends on RPMSG
|
|
depends on NET
|
|
select QCOM_PDR_HELPERS
|
|
help
|
|
Enable APR IPC protocol support between
|
|
application processor and QDSP6. APR is
|
|
used by audio driver to configure QDSP6
|
|
ASM, ADM and AFE modules.
|
|
endmenu
|