media: ipu-bridge: fix ipu6 Kconfig dependencies

Message ID 20240719095403.3607027-1-arnd@kernel.org (mailing list archive)
State Accepted
Headers
Series media: ipu-bridge: fix ipu6 Kconfig dependencies |

Commit Message

Arnd Bergmann July 19, 2024, 9:53 a.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

Commit 4670c8c3fb04 ("media: ipu-bridge: Fix Kconfig dependencies") changed
how IPU_BRIDGE dependencies are handled for all drivers, but the IPU6 variant
was added the old way, which causes build time warnings when I2C is turned
off:

WARNING: unmet direct dependencies detected for IPU_BRIDGE
  Depends on [n]: MEDIA_SUPPORT [=m] && PCI [=y] && MEDIA_PCI_SUPPORT [=y] && (ACPI [=y] || COMPILE_TEST [=y]) && I2C [=n]
  Selected by [m]:
  - VIDEO_INTEL_IPU6 [=m] && MEDIA_SUPPORT [=m] && PCI [=y] && MEDIA_PCI_SUPPORT [=y] && (ACPI [=y] || COMPILE_TEST [=y]) && VIDEO_DEV [=m] && X86 [=y] && X86_64 [=y] && HAS_DMA [=y]

To make it consistent with the other IPU drivers as well as avoid this warning,
change the 'select' into 'depends on'.

Fixes: c70281cc83d6 ("media: intel/ipu6: add Kconfig and Makefile")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/media/pci/intel/ipu6/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Sakari Ailus July 29, 2024, 7:03 a.m. UTC | #1
Hi Arnd,

On Fri, Jul 19, 2024 at 11:53:50AM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Commit 4670c8c3fb04 ("media: ipu-bridge: Fix Kconfig dependencies") changed
> how IPU_BRIDGE dependencies are handled for all drivers, but the IPU6 variant
> was added the old way, which causes build time warnings when I2C is turned
> off:
> 
> WARNING: unmet direct dependencies detected for IPU_BRIDGE
>   Depends on [n]: MEDIA_SUPPORT [=m] && PCI [=y] && MEDIA_PCI_SUPPORT [=y] && (ACPI [=y] || COMPILE_TEST [=y]) && I2C [=n]
>   Selected by [m]:
>   - VIDEO_INTEL_IPU6 [=m] && MEDIA_SUPPORT [=m] && PCI [=y] && MEDIA_PCI_SUPPORT [=y] && (ACPI [=y] || COMPILE_TEST [=y]) && VIDEO_DEV [=m] && X86 [=y] && X86_64 [=y] && HAS_DMA [=y]
> 
> To make it consistent with the other IPU drivers as well as avoid this warning,
> change the 'select' into 'depends on'.

Thanks for the patch. I'm not sure how I managed to miss the IPU6 driver...

I think we also need, besides IPU_BRIDGE, || !IPU_BRIDGE, as the IPU_BRIDGE
has additional dependencies (I2C) compared to VIDEO_INTEL_IPU6. I'll add
that while applying. Please let me know if you have concerns.

> 
> Fixes: c70281cc83d6 ("media: intel/ipu6: add Kconfig and Makefile")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  drivers/media/pci/intel/ipu6/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/media/pci/intel/ipu6/Kconfig b/drivers/media/pci/intel/ipu6/Kconfig
> index 154343080c82..ffadf03478a8 100644
> --- a/drivers/media/pci/intel/ipu6/Kconfig
> +++ b/drivers/media/pci/intel/ipu6/Kconfig
> @@ -3,13 +3,13 @@ config VIDEO_INTEL_IPU6
>  	depends on ACPI || COMPILE_TEST
>  	depends on VIDEO_DEV
>  	depends on X86 && X86_64 && HAS_DMA
> +	depends on IPU_BRIDGE
>  	select DMA_OPS
>  	select IOMMU_IOVA
>  	select VIDEO_V4L2_SUBDEV_API
>  	select MEDIA_CONTROLLER
>  	select VIDEOBUF2_DMA_CONTIG
>  	select V4L2_FWNODE
> -	select IPU_BRIDGE
>  	help
>  	  This is the 6th Gen Intel Image Processing Unit, found in Intel SoCs
>  	  and used for capturing images and video from camera sensors.
  
Arnd Bergmann July 29, 2024, 7:24 a.m. UTC | #2
On Mon, Jul 29, 2024, at 09:03, Sakari Ailus wrote:
>> To make it consistent with the other IPU drivers as well as avoid this warning,
>> change the 'select' into 'depends on'.
>
> Thanks for the patch. I'm not sure how I managed to miss the IPU6 driver...

The driver was only adding in 6.10, so your patch was correct
at the time.

> I think we also need, besides IPU_BRIDGE, || !IPU_BRIDGE, as the IPU_BRIDGE
> has additional dependencies (I2C) compared to VIDEO_INTEL_IPU6. I'll add
> that while applying. Please let me know if you have concerns.

Makes sense, yes. I went with a hard dependency since that stays
close to the current version with the select. I tried build-testing
IPU6 now with IPU_BRIDGE=n and I2C=n/I2C=m, which works fine.

However, the testing showed that IPU6 also missed a 'select AUXILIARY_BUS',
which I had not found in randconfig testing because that usually gets
selected by one of is other 30 users.

Since you are changing my patch already, maybe you can also add
that at the same time. Thanks,

     Arnd
  
Sakari Ailus July 29, 2024, 7:37 a.m. UTC | #3
Hi Arnd,

On Mon, Jul 29, 2024 at 09:24:23AM +0200, Arnd Bergmann wrote:
> On Mon, Jul 29, 2024, at 09:03, Sakari Ailus wrote:
> >> To make it consistent with the other IPU drivers as well as avoid this warning,
> >> change the 'select' into 'depends on'.
> >
> > Thanks for the patch. I'm not sure how I managed to miss the IPU6 driver...
> 
> The driver was only adding in 6.10, so your patch was correct
> at the time.
> 
> > I think we also need, besides IPU_BRIDGE, || !IPU_BRIDGE, as the IPU_BRIDGE
> > has additional dependencies (I2C) compared to VIDEO_INTEL_IPU6. I'll add
> > that while applying. Please let me know if you have concerns.
> 
> Makes sense, yes. I went with a hard dependency since that stays
> close to the current version with the select. I tried build-testing
> IPU6 now with IPU_BRIDGE=n and I2C=n/I2C=m, which works fine.
> 
> However, the testing showed that IPU6 also missed a 'select AUXILIARY_BUS',
> which I had not found in randconfig testing because that usually gets
> selected by one of is other 30 users.
> 
> Since you are changing my patch already, maybe you can also add
> that at the same time. Thanks,

Well, yes. I got an lkp test report on this and wrote a patch to address
it:
<URL:https://lore.kernel.org/linux-media/20240729071026.3775341-1-sakari.ailus@linux.intel.com/T/#u>.

I'll send a PR on the two in a few hours if there are no further issues,
hoping to get it to rc2.
  

Patch

diff --git a/drivers/media/pci/intel/ipu6/Kconfig b/drivers/media/pci/intel/ipu6/Kconfig
index 154343080c82..ffadf03478a8 100644
--- a/drivers/media/pci/intel/ipu6/Kconfig
+++ b/drivers/media/pci/intel/ipu6/Kconfig
@@ -3,13 +3,13 @@  config VIDEO_INTEL_IPU6
 	depends on ACPI || COMPILE_TEST
 	depends on VIDEO_DEV
 	depends on X86 && X86_64 && HAS_DMA
+	depends on IPU_BRIDGE
 	select DMA_OPS
 	select IOMMU_IOVA
 	select VIDEO_V4L2_SUBDEV_API
 	select MEDIA_CONTROLLER
 	select VIDEOBUF2_DMA_CONTIG
 	select V4L2_FWNODE
-	select IPU_BRIDGE
 	help
 	  This is the 6th Gen Intel Image Processing Unit, found in Intel SoCs
 	  and used for capturing images and video from camera sensors.