media: v4l2-async: Improve v4l2_async_notifier_add_*_subdev() API
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Mon, 18 Jan 2021 01:52:58 +0000 (02:52 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sat, 6 Feb 2021 08:18:53 +0000 (09:18 +0100)
commitb01edcbd409cf713ff4516c6e1e057834b4b43d6
tree181ddb81830a3313b09cd3dd007b184c874199d0
parentc1cc236250629f3181e2b98c16db2642e295278a
media: v4l2-async: Improve v4l2_async_notifier_add_*_subdev() API

The functions that add an async subdev to an async subdev notifier take
as an argument the size of the container structure they need to
allocate. This is error prone, as passing an invalid size will not be
caught by the compiler. Wrap those functions in macros that take a
container type instead of a size, and cast the returned pointer to the
desired type. The compiler will catch mistakes if the incorrect type is
passed to the macro, as the assignment types won't match.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Helen Koike <helen.koike@collabora.com>
Reviewed-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com> (core+ti-cal)
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
33 files changed:
drivers/media/i2c/max9286.c
drivers/media/i2c/st-mipid02.c
drivers/media/pci/intel/ipu3/ipu3-cio2-main.c
drivers/media/platform/am437x/am437x-vpfe.c
drivers/media/platform/atmel/atmel-isi.c
drivers/media/platform/atmel/atmel-sama5d2-isc.c
drivers/media/platform/cadence/cdns-csi2rx.c
drivers/media/platform/davinci/vpif_capture.c
drivers/media/platform/exynos4-is/media-dev.c
drivers/media/platform/marvell-ccic/cafe-driver.c
drivers/media/platform/marvell-ccic/mmp-driver.c
drivers/media/platform/omap3isp/isp.c
drivers/media/platform/pxa_camera.c
drivers/media/platform/qcom/camss/camss.c
drivers/media/platform/rcar-vin/rcar-core.c
drivers/media/platform/rcar-vin/rcar-csi2.c
drivers/media/platform/rcar_drif.c
drivers/media/platform/renesas-ceu.c
drivers/media/platform/rockchip/rkisp1/rkisp1-dev.c
drivers/media/platform/stm32/stm32-dcmi.c
drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c
drivers/media/platform/ti-vpe/cal.c
drivers/media/platform/video-mux.c
drivers/media/platform/xilinx/xilinx-vipp.c
drivers/media/v4l2-core/v4l2-async.c
drivers/media/v4l2-core/v4l2-fwnode.c
drivers/staging/media/imx/imx-media-csi.c
drivers/staging/media/imx/imx-media-of.c
drivers/staging/media/imx/imx6-mipi-csi2.c
drivers/staging/media/imx/imx7-media-csi.c
drivers/staging/media/imx/imx7-mipi-csis.c
drivers/staging/media/tegra-video/vi.c
include/media/v4l2-async.h