mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-09-01 06:39:05 +00:00

QMC driver requires fsl_soc.h to use function get_immrbase().
This header is provided by powerpc architecture and the functions
it declares are defined only when FSL_SOC is selected.
Today the dependency is the following:
depends on CPM1 || QUICC_ENGINE || \
(FSL_SOC && (CPM || QUICC_ENGINE) && COMPILE_TEST)
This dependency tentatively ensure that FSL_SOC is there when doing a
COMPILE_TEST.
CPM1 is only selected by PPC_8xx and cannot be selected manually.
CPM1 selects FSL_SOC
QUICC_ENGINE on the other hand can be selected by ARM or ARM64 which
doesn't select FSL_SOC. QUICC_ENGINE can also be selected with just
COMPILE_TEST.
It is therefore possible to end up with CPM_QMC selected
without FSL_SOC.
So fix it by making it depend on FSL_SOC at all time.
The rest of the above dependency is the same as the one for CPM_TSA on
which CPM_QMC also depends, so it can go away, leaving only a simple
dependency on FSL_SOC.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/lkml/20240904104859.020fe3a9@canb.auug.org.au/
Fixes: 8655b76b70
("soc: fsl: cpm1: qmc: Handle QUICC Engine (QE) soft-qmc firmware")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: Herve Codina <herve.codina@bootlin.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
70 lines
1.5 KiB
Plaintext
70 lines
1.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# QE Communication options
|
|
#
|
|
|
|
config QUICC_ENGINE
|
|
bool "QUICC Engine (QE) framework support"
|
|
depends on OF && HAS_IOMEM
|
|
depends on PPC || ARM || ARM64 || COMPILE_TEST
|
|
select GENERIC_ALLOCATOR
|
|
select CRC32
|
|
help
|
|
The QUICC Engine (QE) is a new generation of communications
|
|
coprocessors on Freescale embedded CPUs (akin to CPM in older chips).
|
|
Selecting this option means that you wish to build a kernel
|
|
for a machine with a QE coprocessor.
|
|
|
|
config UCC_SLOW
|
|
bool
|
|
default y if SERIAL_QE || (CPM_QMC && QUICC_ENGINE)
|
|
help
|
|
This option provides qe_lib support to UCC slow
|
|
protocols: UART, BISYNC, QMC
|
|
|
|
config UCC_FAST
|
|
bool
|
|
default y if UCC_GETH || QE_TDM
|
|
help
|
|
This option provides qe_lib support to UCC fast
|
|
protocols: HDLC, Ethernet, ATM, transparent
|
|
|
|
config UCC
|
|
bool
|
|
default y if UCC_FAST || UCC_SLOW || (CPM_TSA && QUICC_ENGINE)
|
|
|
|
config CPM_TSA
|
|
tristate "CPM/QE TSA support"
|
|
depends on OF && HAS_IOMEM
|
|
depends on CPM1 || QUICC_ENGINE || \
|
|
((CPM || QUICC_ENGINE) && COMPILE_TEST)
|
|
help
|
|
Freescale CPM/QE Time Slot Assigner (TSA)
|
|
controller.
|
|
|
|
This option enables support for this
|
|
controller
|
|
|
|
config CPM_QMC
|
|
tristate "CPM/QE QMC support"
|
|
depends on OF && HAS_IOMEM
|
|
depends on FSL_SOC
|
|
depends on CPM_TSA
|
|
help
|
|
Freescale CPM/QE QUICC Multichannel Controller
|
|
(QMC)
|
|
|
|
This option enables support for this
|
|
controller
|
|
|
|
config QE_TDM
|
|
bool
|
|
default y if FSL_UCC_HDLC
|
|
|
|
config QE_USB
|
|
bool
|
|
depends on QUICC_ENGINE
|
|
default y if USB_FSL_QE
|
|
help
|
|
QE USB Controller support
|