On Tue, 23 Aug 2022, "Nilawar, Badal" <badal.nilawar@xxxxxxxxx> wrote: > On 23-08-2022 19:05, Jani Nikula wrote: >> On Tue, 23 Aug 2022, Guenter Roeck <linux@xxxxxxxxxxxx> wrote: >>> On Tue, Aug 23, 2022 at 12:46:14PM +0300, Jani Nikula wrote: >>> [ ... ] >>>>>> >>>>>> So why not do this in i915 Kconfig: >>>>>> >>>>>> config DRM_I915 >>>>>> ... >>>>>> depends on HWMON || HWMON=n >>>>> With this change I am getting recursive dependancy error when I run make >>>>> oldconfig >>>>> >>>>> badal@bnilawar-desk1:~/workspace/wp3/drm-tip$ make oldconfig >>>>> HOSTCC scripts/basic/fixdep >>>>> HOSTCC scripts/kconfig/conf.o >>>>> HOSTCC scripts/kconfig/confdata.o >>>>> HOSTCC scripts/kconfig/expr.o >>>>> LEX scripts/kconfig/lexer.lex.c >>>>> YACC scripts/kconfig/parser.tab.[ch] >>>>> HOSTCC scripts/kconfig/lexer.lex.o >>>>> HOSTCC scripts/kconfig/menu.o >>>>> HOSTCC scripts/kconfig/parser.tab.o >>>>> HOSTCC scripts/kconfig/preprocess.o >>>>> HOSTCC scripts/kconfig/symbol.o >>>>> HOSTCC scripts/kconfig/util.o >>>>> HOSTLD scripts/kconfig/conf >>>>> drivers/gpu/drm/i915/Kconfig:2:error: recursive dependency detected! >>>>> drivers/gpu/drm/i915/Kconfig:2: symbol DRM_I915 depends on HWMON >>>>> drivers/hwmon/Kconfig:6: symbol HWMON is selected by EEEPC_LAPTOP >>>>> drivers/platform/x86/Kconfig:332: symbol EEEPC_LAPTOP depends on INPUT >>>>> drivers/input/Kconfig:8: symbol INPUT is selected by DRM_I915 >>>>> For a resolution refer to Documentation/kbuild/kconfig-language.rst >>>>> subsection "Kconfig recursive dependency limitations" >>>> >>>> *sigh* >>>> >>>> Note: >>>> select should be used with care. select will force >>>> a symbol to a value without visiting the dependencies. >>>> By abusing select you are able to select a symbol FOO even >>>> if FOO depends on BAR that is not set. >>>> In general use select only for non-visible symbols >>>> (no prompts anywhere) and for symbols with no dependencies. >>>> That will limit the usefulness but on the other hand avoid >>>> the illegal configurations all over. >>>> >>> Agreed. HWMON should not be selected anywhere. Unfortunately it is, and >>> drm is no exception. It is selected by DRM_RADEON and DRM_AMDGPU. >>> Maybe just select it in DRM_I915 as well after all; in practice it won't >>> make a difference. >> >> And I guess everyone just does what I'm about to do now, throw my hands >> up in the air in disgust and resignation. :p > How about sticking to existing approach only. In my previous response I > mentioned that for combo which we want to reject CONFIG_HWMON=m && > CONFIG_DRM_I915=y combo i915_hwmon.o is not getting build. > It is only getting build for below combos > CONFIG_HWMON=m && CONFIG_DRM_I915=y > CONFIG_HWMON=m && CONFIG_DRM_I915=m > CONFIG_HWMON=y && CONFIG_DRM_I915=m Then please hide the IS_REACHABLE() within i915_hwmon.h and add stubs as is customary. Let's not clutter high level driver code with some random #if directives. BR, Jani. > Regards, > Badal >> >> BR, >> Jani. >> >> >> -- Jani Nikula, Intel Open Source Graphics Center