Message ID | 20230117164456.1591901-1-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panfrost: fix GENERIC_ATOMIC64 dependency | expand |
On 17/01/2023 16:44, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > On ARMv5 and earlier, a randconfig build can still run into > > WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE > Depends on [n]: IOMMU_SUPPORT [=y] && (ARM [=y] || ARM64 || COMPILE_TEST [=y]) && !GENERIC_ATOMIC64 [=y] > Selected by [y]: > - DRM_PANFROST [=y] && HAS_IOMEM [=y] && DRM [=y] && (ARM [=y] || ARM64 || COMPILE_TEST [=y] && !GENERIC_ATOMIC64 [=y]) && MMU [=y] > > Rework the dependencies to always require a working cmpxchg64. > > Fixes: db594ba3fcf9 ("drm/panfrost: depend on !GENERIC_ATOMIC64 when using COMPILE_TEST") Looking at db594ba3fcf9 - it states: > Since panfrost has a 'select' on IOMMU_IO_PGTABLE_LPAE we must depend on > the same set of flags. Otherwise IOMMU_IO_PGTABLE_LPAE will be forced on > even though it cannot build (no support for cmpxchg64). And at the time the dependencies on IOMMU_IO_PGTABLE_LPAE were exactly these. However d286a58bc8f4 ("iommu: Tidy up io-pgtable dependencies") (currently in the iommu tree) changed the depends to split the !GENERIC_ATOMIC64 out. So we could argue that really that's the commit that should be blamed in the fixes line. However there's no harm in this being backported further than it strictly needs to be, and it's clearly better having the !GENERIC_ATOMIC64 split out. So I'll merge this to drm-misc-fixes. Reviewed-by: Steven Price <steven.price@arm.com> Thanks! Steve > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/gpu/drm/panfrost/Kconfig | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/panfrost/Kconfig b/drivers/gpu/drm/panfrost/Kconfig > index 079600328be1..e6403a9d66ad 100644 > --- a/drivers/gpu/drm/panfrost/Kconfig > +++ b/drivers/gpu/drm/panfrost/Kconfig > @@ -3,7 +3,8 @@ > config DRM_PANFROST > tristate "Panfrost (DRM support for ARM Mali Midgard/Bifrost GPUs)" > depends on DRM > - depends on ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64) > + depends on ARM || ARM64 || COMPILE_TEST > + depends on !GENERIC_ATOMIC64 # for IOMMU_IO_PGTABLE_LPAE > depends on MMU > select DRM_SCHED > select IOMMU_SUPPORT
On 2023-01-18 11:09, Steven Price wrote: > On 17/01/2023 16:44, Arnd Bergmann wrote: >> From: Arnd Bergmann <arnd@arndb.de> >> >> On ARMv5 and earlier, a randconfig build can still run into >> >> WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE >> Depends on [n]: IOMMU_SUPPORT [=y] && (ARM [=y] || ARM64 || COMPILE_TEST [=y]) && !GENERIC_ATOMIC64 [=y] >> Selected by [y]: >> - DRM_PANFROST [=y] && HAS_IOMEM [=y] && DRM [=y] && (ARM [=y] || ARM64 || COMPILE_TEST [=y] && !GENERIC_ATOMIC64 [=y]) && MMU [=y] >> >> Rework the dependencies to always require a working cmpxchg64. >> >> Fixes: db594ba3fcf9 ("drm/panfrost: depend on !GENERIC_ATOMIC64 when using COMPILE_TEST") > > Looking at db594ba3fcf9 - it states: > >> Since panfrost has a 'select' on IOMMU_IO_PGTABLE_LPAE we must depend on >> the same set of flags. Otherwise IOMMU_IO_PGTABLE_LPAE will be forced on >> even though it cannot build (no support for cmpxchg64). > > And at the time the dependencies on IOMMU_IO_PGTABLE_LPAE were exactly > these. > > However d286a58bc8f4 ("iommu: Tidy up io-pgtable dependencies") > (currently in the iommu tree) changed the depends to split the > !GENERIC_ATOMIC64 out. So we could argue that really that's the commit > that should be blamed in the fixes line. Oh bum... indeed this is entirely my fault for forgetting about our one "foreign" io-pgtable user in that commit, sorry about that. > However there's no harm in this being backported further than it > strictly needs to be, and it's clearly better having the > !GENERIC_ATOMIC64 split out. So I'll merge this to drm-misc-fixes. Thanks both! Robin. > > Reviewed-by: Steven Price <steven.price@arm.com> > > Thanks! > > Steve > >> Signed-off-by: Arnd Bergmann <arnd@arndb.de> >> --- >> drivers/gpu/drm/panfrost/Kconfig | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/panfrost/Kconfig b/drivers/gpu/drm/panfrost/Kconfig >> index 079600328be1..e6403a9d66ad 100644 >> --- a/drivers/gpu/drm/panfrost/Kconfig >> +++ b/drivers/gpu/drm/panfrost/Kconfig >> @@ -3,7 +3,8 @@ >> config DRM_PANFROST >> tristate "Panfrost (DRM support for ARM Mali Midgard/Bifrost GPUs)" >> depends on DRM >> - depends on ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64) >> + depends on ARM || ARM64 || COMPILE_TEST >> + depends on !GENERIC_ATOMIC64 # for IOMMU_IO_PGTABLE_LPAE >> depends on MMU >> select DRM_SCHED >> select IOMMU_SUPPORT >
diff --git a/drivers/gpu/drm/panfrost/Kconfig b/drivers/gpu/drm/panfrost/Kconfig index 079600328be1..e6403a9d66ad 100644 --- a/drivers/gpu/drm/panfrost/Kconfig +++ b/drivers/gpu/drm/panfrost/Kconfig @@ -3,7 +3,8 @@ config DRM_PANFROST tristate "Panfrost (DRM support for ARM Mali Midgard/Bifrost GPUs)" depends on DRM - depends on ARM || ARM64 || (COMPILE_TEST && !GENERIC_ATOMIC64) + depends on ARM || ARM64 || COMPILE_TEST + depends on !GENERIC_ATOMIC64 # for IOMMU_IO_PGTABLE_LPAE depends on MMU select DRM_SCHED select IOMMU_SUPPORT