21 Apr, 2015

1 commit

  • * 'drm-next-merged' of git://people.freedesktop.org/~airlied/linux: (9717 commits)
    media-bus: Fixup RGB444_1X12, RGB565_1X16, and YUV8_1X24 media bus format
    hexdump: avoid warning in test function
    fs: take i_mutex during prepare_binprm for set[ug]id executables
    smp: Fix error case handling in smp_call_function_*()
    iommu-common: Fix PARISC compile-time warnings
    sparc: Make LDC use common iommu poll management functions
    sparc: Make sparc64 use scalable lib/iommu-common.c functions
    Break up monolithic iommu table/lock into finer graularity pools and lock
    sparc: Revert generic IOMMU allocator.
    tools/power turbostat: correct dumped pkg-cstate-limit value
    tools/power turbostat: calculate TSC frequency from CPUID(0x15) on SKL
    tools/power turbostat: correct DRAM RAPL units on recent Xeon processors
    tools/power turbostat: Initial Skylake support
    tools/power turbostat: Use $(CURDIR) instead of $(PWD) and add support for O= option in Makefile
    tools/power turbostat: modprobe msr, if needed
    tools/power turbostat: dump MSR_TURBO_RATIO_LIMIT2
    tools/power turbostat: use new MSR_TURBO_RATIO_LIMIT names
    Bluetooth: hidp: Fix regression with older userspace and flags validation
    config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected
    perf/x86/intel/pt: Fix and clean up error handling in pt_event_add()
    ...

    That solves several merge conflicts:
    Documentation/DocBook/media/v4l/subdev-formats.xml
    Documentation/devicetree/bindings/vendor-prefixes.txt
    drivers/staging/media/mn88473/mn88473.c
    include/linux/kconfig.h
    include/uapi/linux/media-bus-format.h

    The ones at subdev-formats.xml and media-bus-format.h are not trivial.
    That's why we opted to merge from DRM.

    Mauro Carvalho Chehab
     

17 Apr, 2015

1 commit


09 Apr, 2015

1 commit

  • In the media drivers, the v4l2 core knows about all submodules
    and calls into them from a common function. However this cannot
    work if the modules that get called are loadable and the
    core is built-in. In that case we get

    drivers/built-in.o: In function `set_type':
    drivers/media/v4l2-core/tuner-core.c:301: undefined reference to `tea5767_attach'
    drivers/media/v4l2-core/tuner-core.c:307: undefined reference to `tea5761_attach'
    drivers/media/v4l2-core/tuner-core.c:349: undefined reference to `tda9887_attach'
    drivers/media/v4l2-core/tuner-core.c:405: undefined reference to `xc4000_attach'

    This was working previously, until the IS_ENABLED() macro was used
    to replace the construct like

    #if defined(CONFIG_DVB_CX24110) || (defined(CONFIG_DVB_CX24110_MODULE) && defined(MODULE))

    with the difference that the new code no longer checks whether it is being
    built as a loadable module itself.

    To fix this, this new patch adds an 'IS_REACHABLE' macro, which evaluates
    true in exactly the condition that was used previously. The downside
    of this is that this trades an obvious link error for a more subtle
    runtime failure, but it is clear that the change that introduced the
    link error was unintentional and it seems better to revert it for
    now. Also, a similar change was originally created by Trent Piepho
    and then reverted by teh change to the IS_ENABLED macro.

    Ideally Kconfig would be used to avoid the case of a broken dependency,
    or the code restructured in a way to turn around the dependency, but either
    way would require much larger changes here.

    Fixes: 7b34be71db53 ("[media] use IS_ENABLED() macro")
    See-also: c5dec9fb248e ("V4L/DVB (4751): Fix DBV_FE_CUSTOMISE for card drivers compiled into kernel")

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Mauro Carvalho Chehab

    Arnd Bergmann
     

13 Apr, 2012

1 commit

  • Using IS_ENABLED() within C (vs. within CPP #if statements) in its
    current form requires us to actually define every possible bool/tristate
    Kconfig option twice (__enabled_* and __enabled_*_MODULE variants).

    This results in a huge autoconf.h file, on the order of 16k lines for a
    x86_64 defconfig.

    Fixing IS_ENABLED to be able to work on the smaller subset of just
    things that we really have defined is step one to fixing this. Which
    means it has to not choke when fed non-enabled options, such as:

    include/linux/netdevice.h:964:1: warning: "__enabled_CONFIG_FCOE_MODULE" is not defined [-Wundef]

    The original prototype of how to implement a C and preprocessor
    compatible way of doing this came from the Google+ user "comex ." in
    response to Linus' crowdsourcing challenge for a possible improvement on
    his earlier C specific solution:

    #define config_enabled(x) (__stringify(x)[0] == '1')

    In this implementation, I've chosen variable names that hopefully make
    how it works more understandable.

    Signed-off-by: Paul Gortmaker
    Signed-off-by: Linus Torvalds

    Paul Gortmaker
     

30 Jul, 2011

1 commit

  • Replace the config_is_*() macros with a variant that allows for grepping
    for usage of CONFIG_* options in the code. Usage:

    if (IS_ENABLED(CONFIG_NUMA))

    or

    #if IS_ENABLED(CONFIG_NUMA)

    The IS_ENABLED() macro evaluates to 1 if the argument is set (to either 'y'
    or 'm'), IS_BUILTIN() tests if the option is 'y' and IS_MODULE() test if
    the option is 'm'. Only boolean and tristate options are supported.

    Reviewed-by: Arnaud Lacombe
    Acked-by: Randy Dunlap
    Signed-off-by: Michal Marek

    Michal Marek