On Fri, Oct 27, 2023, at 16:17, Martin Tůma wrote:
On 23. 10. 23 18:05, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@xxxxxxxx>
As this is just a regular device driver, it has no business force-enabling
other drivers in the system, it should be entirely independent of the
implementation of the spi-nor layer or the specific DMA engine.
The drivers are required for IP cores that are used on the card (in the
FPGA). Without I2C_XILINX and XILINX_XDMA the card won't work at all.
Without SPI_XILINX the access to the card's FLASH (used e.g. for FW
changes) won't be possible.
A change to "depend" instead of "select" is thus possible if it makes
more sense to you, but removing it would make the module not compile or
not work at runtime (there is no symbol dependency to I2C_XILINX and
SPI_XILINX, but both need to be present and are loaded using
request_module() at runtime).
Sorry for the delay at getting back to you here.
I don't think there is a good answer here, though I normally
try to only list the minimal dependencies that are required
at build time. E.g. for on-chip devices we don't require the
use of a particular clock/irq/pin/gpio/... controller even if
we know exactly which of those are used on a given chip.
Since this is a PCI device, it's a bit different, so maybe
something like this would work to correctly document which
dependencies are required at build time vs run time:
--- a/drivers/media/pci/mgb4/Kconfig
+++ b/drivers/media/pci/mgb4/Kconfig
@@ -1,15 +1,13 @@
# SPDX-License-Identifier: GPL-2.0-only
config VIDEO_MGB4
tristate "Digiteq Automotive MGB4 support"
- depends on VIDEO_DEV && PCI && I2C && DMADEVICES && SPI && MTD && IIO
+ depends on VIDEO_DEV && PCI && I2C && SPI && MTD && IIO
depends on COMMON_CLK
+ depends on XILINX_XDMA
+ depends on (I2C_XILINX && SPI_XILINX) || COMPILE_TEST
select VIDEOBUF2_DMA_SG
select IIO_BUFFER
select IIO_TRIGGERED_BUFFER
- select I2C_XILINX
- select SPI_XILINX
- select MTD_SPI_NOR
- select XILINX_XDMA
help
This is a video4linux driver for Digiteq Automotive MGB4 grabber
cards.
Arnd