Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On Tue, 17 Dec 2019, Andy Shevchenko wrote: > On Tue, Dec 17, 2019 at 5:28 PM Jani Nikula > wrote: >> On Tue, 17 Dec 2019, Andy Shevchenko wrote: >> > On Tue, Dec 17, 2019 at 1:56 PM Steven Price wrote: > >> > I think the proper one is to have s/IS_ENABLED/IS_REACHABLE/. >> > It fixes issue for me. >> >> As discussed off-line, this will allow silently building and linking a >> configuration that's actually broken. (No backlight support despite >> expectations.) > > In my case I have deliberately compile backlight as a module to be > used exclusively with backlight-gpio which has nothing to do with > i915. I dunno if backlight is a MUST dependency for i915. It's not a required dependency, all combinations of i915 and backlight are fine, *except* i915=y, backlight=m. This can be achieved with: depends on BACKLIGHT_CLASS_DEVICE || BACKLIGHT_CLASS_DEVICE=n BR, Jani. > > From my perspective the original commit, with all good that it > provides, should not break previously working configurations. Though > we might argue if my "working" kernel configuration had been broken in > the first place... > > Just my 2 cents, though. > >> IMO deep down the problem is that we "select" BACKLIGHT_CLASS_DEVICE all >> over the place, while we should "depends on" it. Everything else is just >> duct tape that allows configurations where built-in code calls backlight >> symbols in modules. It used to be more about an interaction with ACPI, >> now we've added DRM_PANEL to the mix. >> >> I've proposed a fix five years ago [1]. That's what it takes to fix >> these recurring failures for good. I'm not really all that interested in >> the whack-a-mole with the hacks. > > Agree with this. The root cause must be fixed once and for all. > I guess it should be a logical continuation of Sam's series. > >> [1] >> http://lore.kernel.org/r/1413580403-16225-1-git-send-email-jani.nik...@intel.com -- Jani Nikula, Intel Open Source Graphics Center ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On Tue, Dec 17, 2019 at 5:28 PM Jani Nikula wrote: > On Tue, 17 Dec 2019, Andy Shevchenko wrote: > > On Tue, Dec 17, 2019 at 1:56 PM Steven Price wrote: > > I think the proper one is to have s/IS_ENABLED/IS_REACHABLE/. > > It fixes issue for me. > > As discussed off-line, this will allow silently building and linking a > configuration that's actually broken. (No backlight support despite > expectations.) In my case I have deliberately compile backlight as a module to be used exclusively with backlight-gpio which has nothing to do with i915. I dunno if backlight is a MUST dependency for i915. >From my perspective the original commit, with all good that it provides, should not break previously working configurations. Though we might argue if my "working" kernel configuration had been broken in the first place... Just my 2 cents, though. > IMO deep down the problem is that we "select" BACKLIGHT_CLASS_DEVICE all > over the place, while we should "depends on" it. Everything else is just > duct tape that allows configurations where built-in code calls backlight > symbols in modules. It used to be more about an interaction with ACPI, > now we've added DRM_PANEL to the mix. > > I've proposed a fix five years ago [1]. That's what it takes to fix > these recurring failures for good. I'm not really all that interested in > the whack-a-mole with the hacks. Agree with this. The root cause must be fixed once and for all. I guess it should be a logical continuation of Sam's series. > [1] > http://lore.kernel.org/r/1413580403-16225-1-git-send-email-jani.nik...@intel.com -- With Best Regards, Andy Shevchenko ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On Tue, 17 Dec 2019, Andy Shevchenko wrote: > On Tue, Dec 17, 2019 at 1:56 PM Steven Price wrote: >> On 17/12/2019 06:37, Randy Dunlap wrote: >> > On 12/16/19 9:42 PM, Sam Ravnborg wrote: >> >> On Mon, Dec 16, 2019 at 08:25:11AM -0800, Randy Dunlap wrote: >> >>> On 12/15/19 9:22 PM, Stephen Rothwell wrote: > >> >>> on x86_64: >> >>> >> >>> ld: drivers/gpu/drm/drm_panel.o: in function `drm_panel_of_backlight': >> >>> (.text+0x2ee): undefined reference to `devm_of_find_backlight' >> >>> >> >>> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function >> >>> `intel_backlight_device_register': >> >>> intel_panel.c:(.text+0x593e): undefined reference to >> >>> `backlight_device_register' >> >>> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function >> >>> `intel_backlight_device_unregister': >> >>> intel_panel.c:(.text+0x5a04): undefined reference to >> >>> `backlight_device_unregister' >> >>> >> >>> CONFIG_DRM_PANEL=y >> >>> CONFIG_BACKLIGHT_CLASS_DEVICE=m >> >>> CONFIG_DRM_I915=y >> >>> >> >>> Full randconfig file is attached. >> >> >> >> Can you please verify if you have: >> >> 907aa265fde6589b8059dc51649c6d1f49ade2f3 >> >> ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight") >> >> >> >> This commit is supposed to fix it. >> >> >> >> Sam >> >> >> > >> > Hi Sam, >> > I don't have the linux-next.git tree so I can't check that. >> > I just built whatever is in linux-next of 20191216. >> > >> >> 907aa265fde6589b8059dc51649c6d1f49ade2f3 ("drm/drm_panel: fix EXPORT of >> drm_panel_of_backlight") is fixing drm_panel_of_backlight(), but the >> error above is for backlight_device_register(). >> >> From what I can tell, that commit is actually the cause of the error - >> now intel_backlight_device_register() is being included in the kernel >> even though it calls backlight_device_register() which is in a module. >> Of course it also fixed the original error, so reverting it isn't any >> use. >> >> The below Kconfig change fixes the build for me, but I've no idea >> whether this is the correct fix. > > I think the proper one is to have s/IS_ENABLED/IS_REACHABLE/. > It fixes issue for me. As discussed off-line, this will allow silently building and linking a configuration that's actually broken. (No backlight support despite expectations.) IMO deep down the problem is that we "select" BACKLIGHT_CLASS_DEVICE all over the place, while we should "depends on" it. Everything else is just duct tape that allows configurations where built-in code calls backlight symbols in modules. It used to be more about an interaction with ACPI, now we've added DRM_PANEL to the mix. I've proposed a fix five years ago [1]. That's what it takes to fix these recurring failures for good. I'm not really all that interested in the whack-a-mole with the hacks. BR, Jani. [1] http://lore.kernel.org/r/1413580403-16225-1-git-send-email-jani.nik...@intel.com -- Jani Nikula, Intel Open Source Graphics Center ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On Tue, Dec 17, 2019 at 1:56 PM Steven Price wrote: > On 17/12/2019 06:37, Randy Dunlap wrote: > > On 12/16/19 9:42 PM, Sam Ravnborg wrote: > >> On Mon, Dec 16, 2019 at 08:25:11AM -0800, Randy Dunlap wrote: > >>> On 12/15/19 9:22 PM, Stephen Rothwell wrote: > >>> on x86_64: > >>> > >>> ld: drivers/gpu/drm/drm_panel.o: in function `drm_panel_of_backlight': > >>> (.text+0x2ee): undefined reference to `devm_of_find_backlight' > >>> > >>> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function > >>> `intel_backlight_device_register': > >>> intel_panel.c:(.text+0x593e): undefined reference to > >>> `backlight_device_register' > >>> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function > >>> `intel_backlight_device_unregister': > >>> intel_panel.c:(.text+0x5a04): undefined reference to > >>> `backlight_device_unregister' > >>> > >>> CONFIG_DRM_PANEL=y > >>> CONFIG_BACKLIGHT_CLASS_DEVICE=m > >>> CONFIG_DRM_I915=y > >>> > >>> Full randconfig file is attached. > >> > >> Can you please verify if you have: > >> 907aa265fde6589b8059dc51649c6d1f49ade2f3 > >> ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight") > >> > >> This commit is supposed to fix it. > >> > >> Sam > >> > > > > Hi Sam, > > I don't have the linux-next.git tree so I can't check that. > > I just built whatever is in linux-next of 20191216. > > > > 907aa265fde6589b8059dc51649c6d1f49ade2f3 ("drm/drm_panel: fix EXPORT of > drm_panel_of_backlight") is fixing drm_panel_of_backlight(), but the > error above is for backlight_device_register(). > > From what I can tell, that commit is actually the cause of the error - > now intel_backlight_device_register() is being included in the kernel > even though it calls backlight_device_register() which is in a module. > Of course it also fixed the original error, so reverting it isn't any > use. > > The below Kconfig change fixes the build for me, but I've no idea > whether this is the correct fix. I think the proper one is to have s/IS_ENABLED/IS_REACHABLE/. It fixes issue for me. Should I send a patch? -- With Best Regards, Andy Shevchenko ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On 17/12/2019 06:37, Randy Dunlap wrote: > On 12/16/19 9:42 PM, Sam Ravnborg wrote: >> Hi Randy. >> >> On Mon, Dec 16, 2019 at 08:25:11AM -0800, Randy Dunlap wrote: >>> On 12/15/19 9:22 PM, Stephen Rothwell wrote: Hi all, Changes since 20191213: >>> >>> on x86_64: >>> >>> ld: drivers/gpu/drm/drm_panel.o: in function `drm_panel_of_backlight': >>> (.text+0x2ee): undefined reference to `devm_of_find_backlight' >>> >>> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function >>> `intel_backlight_device_register': >>> intel_panel.c:(.text+0x593e): undefined reference to >>> `backlight_device_register' >>> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function >>> `intel_backlight_device_unregister': >>> intel_panel.c:(.text+0x5a04): undefined reference to >>> `backlight_device_unregister' >>> >>> CONFIG_DRM_PANEL=y >>> CONFIG_BACKLIGHT_CLASS_DEVICE=m >>> CONFIG_DRM_I915=y >>> >>> Full randconfig file is attached. >> >> Can you please verify if you have: >> 907aa265fde6589b8059dc51649c6d1f49ade2f3 >> ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight") >> >> This commit is supposed to fix it. >> >> Sam >> > > Hi Sam, > I don't have the linux-next.git tree so I can't check that. > I just built whatever is in linux-next of 20191216. > 907aa265fde6589b8059dc51649c6d1f49ade2f3 ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight") is fixing drm_panel_of_backlight(), but the error above is for backlight_device_register(). >From what I can tell, that commit is actually the cause of the error - now intel_backlight_device_register() is being included in the kernel even though it calls backlight_device_register() which is in a module. Of course it also fixed the original error, so reverting it isn't any use. The below Kconfig change fixes the build for me, but I've no idea whether this is the correct fix. Steve 8<- diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig index ba9595960bbe..6b69dab683ae 100644 --- a/drivers/gpu/drm/i915/Kconfig +++ b/drivers/gpu/drm/i915/Kconfig @@ -16,7 +16,7 @@ config DRM_I915 select IRQ_WORK # i915 depends on ACPI_VIDEO when ACPI is enabled # but for select to work, need to select ACPI_VIDEO's dependencies, ick - select BACKLIGHT_CLASS_DEVICE if ACPI + select BACKLIGHT_CLASS_DEVICE select INPUT if ACPI select ACPI_VIDEO if ACPI select ACPI_BUTTON if ACPI ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On 12/16/19 9:42 PM, Sam Ravnborg wrote: > Hi Randy. > > On Mon, Dec 16, 2019 at 08:25:11AM -0800, Randy Dunlap wrote: >> On 12/15/19 9:22 PM, Stephen Rothwell wrote: >>> Hi all, >>> >>> Changes since 20191213: >>> >> >> on x86_64: >> >> ld: drivers/gpu/drm/drm_panel.o: in function `drm_panel_of_backlight': >> (.text+0x2ee): undefined reference to `devm_of_find_backlight' >> >> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function >> `intel_backlight_device_register': >> intel_panel.c:(.text+0x593e): undefined reference to >> `backlight_device_register' >> ld: drivers/gpu/drm/i915/display/intel_panel.o: in function >> `intel_backlight_device_unregister': >> intel_panel.c:(.text+0x5a04): undefined reference to >> `backlight_device_unregister' >> >> CONFIG_DRM_PANEL=y >> CONFIG_BACKLIGHT_CLASS_DEVICE=m >> CONFIG_DRM_I915=y >> >> Full randconfig file is attached. > > Can you please verify if you have: > 907aa265fde6589b8059dc51649c6d1f49ade2f3 > ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight") > > This commit is supposed to fix it. > > Sam > Hi Sam, I don't have the linux-next.git tree so I can't check that. I just built whatever is in linux-next of 20191216. -- ~Randy ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
Hi Randy. On Mon, Dec 16, 2019 at 08:25:11AM -0800, Randy Dunlap wrote: > On 12/15/19 9:22 PM, Stephen Rothwell wrote: > > Hi all, > > > > Changes since 20191213: > > > > on x86_64: > > ld: drivers/gpu/drm/drm_panel.o: in function `drm_panel_of_backlight': > (.text+0x2ee): undefined reference to `devm_of_find_backlight' > > ld: drivers/gpu/drm/i915/display/intel_panel.o: in function > `intel_backlight_device_register': > intel_panel.c:(.text+0x593e): undefined reference to > `backlight_device_register' > ld: drivers/gpu/drm/i915/display/intel_panel.o: in function > `intel_backlight_device_unregister': > intel_panel.c:(.text+0x5a04): undefined reference to > `backlight_device_unregister' > > CONFIG_DRM_PANEL=y > CONFIG_BACKLIGHT_CLASS_DEVICE=m > CONFIG_DRM_I915=y > > Full randconfig file is attached. Can you please verify if you have: 907aa265fde6589b8059dc51649c6d1f49ade2f3 ("drm/drm_panel: fix EXPORT of drm_panel_of_backlight") This commit is supposed to fix it. Sam ___ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Re: [Intel-gfx] linux-next: Tree for Dec 16 (drm_panel & intel_panel)
On 12/15/19 9:22 PM, Stephen Rothwell wrote: > Hi all, > > Changes since 20191213: > on x86_64: ld: drivers/gpu/drm/drm_panel.o: in function `drm_panel_of_backlight': (.text+0x2ee): undefined reference to `devm_of_find_backlight' ld: drivers/gpu/drm/i915/display/intel_panel.o: in function `intel_backlight_device_register': intel_panel.c:(.text+0x593e): undefined reference to `backlight_device_register' ld: drivers/gpu/drm/i915/display/intel_panel.o: in function `intel_backlight_device_unregister': intel_panel.c:(.text+0x5a04): undefined reference to `backlight_device_unregister' CONFIG_DRM_PANEL=y CONFIG_BACKLIGHT_CLASS_DEVICE=m CONFIG_DRM_I915=y Full randconfig file is attached. -- ~Randy Reported-by: Randy Dunlap # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 5.5.0-rc2 Kernel Configuration # # # Compiler: gcc (SUSE Linux) 7.4.1 20190905 [gcc-7-branch revision 275407] # CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70401 CONFIG_CLANG_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_HAS_ASM_GOTO=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y # # General setup # CONFIG_BROKEN_ON_SMP=y CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set CONFIG_KERNEL_LZMA=y # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SYSVIPC=y # CONFIG_CROSS_MEMORY_ATTACH is not set CONFIG_USELIB=y CONFIG_HAVE_ARCH_AUDITSYSCALL=y # # IRQ subsystem # CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_IRQ_CHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_SIM=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_MSI_IRQ=y CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set # end of IRQ subsystem CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_ARCH_CLOCKSOURCE_INIT=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y # # Timers subsystem # CONFIG_TICK_ONESHOT=y CONFIG_HZ_PERIODIC=y # CONFIG_NO_HZ_IDLE is not set CONFIG_CONTEXT_TRACKING=y # CONFIG_CONTEXT_TRACKING_FORCE is not set # CONFIG_NO_HZ is not set CONFIG_HIGH_RES_TIMERS=y # end of Timers subsystem # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_COUNT=y # # CPU/Task time and stats accounting # CONFIG_VIRT_CPU_ACCOUNTING=y # CONFIG_TICK_CPU_ACCOUNTING is not set CONFIG_VIRT_CPU_ACCOUNTING_GEN=y # CONFIG_IRQ_TIME_ACCOUNTING is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_PSI=y # CONFIG_PSI_DEFAULT_DISABLED is not set # end of CPU/Task time and stats accounting # # RCU Subsystem # CONFIG_TINY_RCU=y CONFIG_RCU_EXPERT=y CONFIG_SRCU=y CONFIG_TINY_SRCU=y CONFIG_TASKS_RCU=y # end of RCU Subsystem CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=m CONFIG_IKCONFIG_PROC=y CONFIG_IKHEADERS=y CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y # # Scheduler features # # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y CONFIG_MEMCG=y CONFIG_CGROUP_SCHED=y # CONFIG_FAIR_GROUP_SCHED is not set # CONFIG_RT_GROUP_SCHED is not set CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_HUGETLB=y CONFIG_CGROUP_DEVICE=y # CONFIG_CGROUP_CPUACCT is not set # CONFIG_CGROUP_PERF is not set # CONFIG_CGROUP_BPF is not set CONFIG_CGROUP_DEBUG=y CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set # CONFIG_IPC_NS is not set # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_CHECKPOINT_RESTORE is not set # CONFIG_SCHED_AUTOGROUP is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_SYSFS_DEPRECATED_V2 is not set CONFIG_RELAY=y # CONFIG_BLK_DEV_INITRD is not set CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BPF=y CONFIG_EXPERT=y # CONFIG_UID16 is not set CONFIG_MULTIUSER=y # CONFIG_SGETMASK_SYSCALL is not set # CONFIG_SYSFS_SYSCALL is not set CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y # CONFIG_PRINTK is not set # CONFIG_BUG is not set # CONFIG_PCSPKR_PLATFORM is not set # CONFIG_BASE_FULL is not set # CONFIG_FUTEX is not set CONFIG_EPOLL=y # CONFIG_SIGNALFD is not set # CONFIG_TIMERFD is not set CONFIG_EVENTFD=y