linux/include/media
Shuah Khan 50e7a31d30 media: Fix Media Controller API config checks
Smatch static checker warns that "mdev" can be null:

sound/usb/media.c:287 snd_media_device_create()
    warn: 'mdev' can also be NULL

If CONFIG_MEDIA_CONTROLLER is disabled, this file should not be included
in the build.

The below conditions in the sound/usb/Makefile are in place to ensure that
media.c isn't included in the build.

sound/usb/Makefile:
snd-usb-audio-$(CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER) += media.o

select SND_USB_AUDIO_USE_MEDIA_CONTROLLER if MEDIA_CONTROLLER &&
       (MEDIA_SUPPORT=y || MEDIA_SUPPORT=SND_USB_AUDIO)

The following config check in include/media/media-dev-allocator.h is
in place to enable the API only when CONFIG_MEDIA_CONTROLLER and
CONFIG_USB are enabled.

 #if defined(CONFIG_MEDIA_CONTROLLER) && defined(CONFIG_USB)

This check doesn't work as intended when CONFIG_USB=m. When CONFIG_USB=m,
CONFIG_USB_MODULE is defined and CONFIG_USB is not. The above config check
doesn't catch that CONFIG_USB is defined as a module and disables the API.
This results in sound/usb enabling Media Controller specific ALSA driver
code, while Media disables the Media Controller API.

Fix the problem requires two changes:

1. Change the check to use IS_ENABLED to detect when CONFIG_USB is enabled
   as a module or static. Since CONFIG_MEDIA_CONTROLLER is a bool, leave
   the check unchanged to be consistent with drivers/media/Makefile.

2. Change the drivers/media/mc/Makefile to include mc-dev-allocator.o
   in mc-objs when CONFIG_USB is enabled.

Link: https://lore.kernel.org/alsa-devel/YLeAvT+R22FQ%2FEyw@mwanda/

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2021-06-24 14:26:00 +02:00
..
davinci media: vpbe_osd.h/uvcvideo.h includes: fix trivial kernel-doc warnings 2021-03-22 10:24:07 +01:00
drv-intf
i2c media: media/i2c: fix kerneldoc issues for media i2c headers 2021-03-22 10:23:43 +01:00
tpg
cec-notifier.h
cec-pin.h
cec.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
demux.h
dmxdev.h
dvb-usb-ids.h
dvb_ca_en50221.h
dvb_demux.h
dvb_frontend.h
dvb_math.h
dvb_net.h
dvb_ringbuffer.h
dvb_vb2.h
dvbdev.h media: dvbdev: Switch to new kerneldoc syntax for named variable macro argument 2021-03-11 11:59:45 +01:00
frame_vector.h
hevc-ctrls.h media: uapi: Add a control for HANTRO driver 2021-06-08 16:08:59 +02:00
imx.h
media-dev-allocator.h media: Fix Media Controller API config checks 2021-06-24 14:26:00 +02:00
media-device.h
media-devnode.h
media-entity.h media: entity: Add lockdep check to media graph walk 2021-04-06 14:35:14 +02:00
media-request.h
rc-core.h
rc-map.h media: rc: add keymap for Toshiba CT-90405 remote 2021-06-08 15:56:58 +02:00
rcar-fcp.h
tuner-types.h
tuner.h
tveeprom.h
v4l2-async.h media: v4l: fwnode: Rename v4l2_async_register_subdev_sensor_common 2021-04-06 14:36:54 +02:00
v4l2-common.h
v4l2-ctrls.h media: uapi: move MPEG-2 stateless controls out of staging 2021-05-23 19:21:31 +02:00
v4l2-dev.h
v4l2-device.h
v4l2-dv-timings.h
v4l2-event.h
v4l2-fh.h
v4l2-flash-led-class.h
v4l2-fwnode.h media: v4l: fwnode: Rename and make static V4L2 async notifier helper 2021-04-06 14:35:59 +02:00
v4l2-h264.h media: core headers: fix kernel-doc warnings 2021-03-22 10:22:22 +01:00
v4l2-image-sizes.h
v4l2-ioctl.h
v4l2-jpeg.h media: Add parsing for APP14 data segment in jpeg helpers 2021-03-22 10:35:36 +01:00
v4l2-mc.h media: v4l2-mc: Add link flags to v4l2_create_fwnode_links_to_pad() 2021-03-11 11:59:52 +01:00
v4l2-mediabus.h
v4l2-mem2mem.h
v4l2-rect.h
v4l2-subdev.h media: subdev: disallow ioctl for saa6588/davinci 2021-06-17 10:18:37 +02:00
videobuf-core.h
videobuf-dma-contig.h
videobuf-dma-sg.h
videobuf-vmalloc.h
videobuf2-core.h media: videobuf2: Explicitly state max size of planes 2021-03-22 11:51:44 +01:00
videobuf2-dma-contig.h
videobuf2-dma-sg.h
videobuf2-dvb.h
videobuf2-memops.h
videobuf2-v4l2.h media: videobuf2-v4l2.c: add vb2_queue_change_type() helper 2021-06-08 12:04:08 +02:00
videobuf2-vmalloc.h
vsp1.h