From patchwork Wed Sep 27 21:46:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mauro Carvalho Chehab X-Patchwork-Id: 9974943 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 02E5C6037F for ; Wed, 27 Sep 2017 21:47:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E7B9E2932F for ; Wed, 27 Sep 2017 21:47:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DBD6529383; Wed, 27 Sep 2017 21:47:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 8A5B12932F for ; Wed, 27 Sep 2017 21:47:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=fUW9Cy4yn2jaUz0Hm7jO5j3gNURRlVpqBzXeHlBaT5g=; b=e2FZWVi+vQiM2mtJ8jZGr2eXNL cDbGF4V6x6A2tRR5GkbPgIpSYnXS70w7EaeIjGL4Y0OvM1AfjbA3kFMDFrQC8DjwyvV6bnnpAa8eo K3ngx0H7wVNuABtRy8xdLqVxGe+0/+XnDiMyb6uOPAZ9nZ/DOXZpQtcF/KUG17pr/dujJTswQHrs2 iX4H1c7uPTr7ytQfEgHepbE5VEqa4ZpVSUDuV+4f/9PyjK9Epdf4B3Bk4LntBLbou75sulZmF40Fx LVQfw9IrFTzzOpB8+uR/WWVRTgJ0m4ZQHCVxVXaGopQ2KJftFI8J+v+gEIwDQ9+jg8Neb/zB9cqbA hEY1pmPg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dxKB5-0007O3-SL; Wed, 27 Sep 2017 21:47:35 +0000 Received: from ec2-52-27-115-49.us-west-2.compute.amazonaws.com ([52.27.115.49] helo=osg.samsung.com) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1dxKB0-0006dV-Hi for linux-arm-kernel@lists.infradead.org; Wed, 27 Sep 2017 21:47:33 +0000 Received: from localhost (localhost [127.0.0.1]) by osg.samsung.com (Postfix) with ESMTP id B496BA0D61; Wed, 27 Sep 2017 21:47:38 +0000 (UTC) X-Virus-Scanned: amavisd-new at osg.samsung.com X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "References" Received: from osg.samsung.com ([127.0.0.1]) by localhost (s-opensource.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TBnBHdxSRWo8; Wed, 27 Sep 2017 21:47:37 +0000 (UTC) Received: from smtp.s-opensource.com (177.206.151.108.dynamic.adsl.gvt.net.br [177.206.151.108]) by osg.samsung.com (Postfix) with ESMTPSA id 35A5EA0D5C; Wed, 27 Sep 2017 21:47:34 +0000 (UTC) Received: from mchehab by smtp.s-opensource.com with local (Exim 4.89) (envelope-from ) id 1dxKAY-00008a-4g; Wed, 27 Sep 2017 18:47:02 -0300 From: Mauro Carvalho Chehab To: Linux Media Mailing List , Jonathan Corbet Subject: [PATCH v2 13/17] media: v4l2-async: simplify v4l2_async_subdev structure Date: Wed, 27 Sep 2017 18:46:56 -0300 Message-Id: X-Mailer: git-send-email 2.13.5 In-Reply-To: References: In-Reply-To: References: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170927_144730_720937_BFAE19B0 X-CRM114-Status: GOOD ( 14.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Linux Doc Mailing List , Songjun Wu , "Lad, Prabhakar" , Laurent Pinchart , Sylwester Nawrocki , Javi Merino , Robert Jarzmik , Markus Elfring , devel@driverdev.osuosl.org, Yannick Fertre , linux-samsung-soc@vger.kernel.org, Michal Simek , Krzysztof Kozlowski , Mauro Carvalho Chehab , Ludovic Desroches , Kukjin Kim , Hans Verkuil , Tuukka Toivonen , Steve Longerbeam , Philipp Zabel , "Gustavo A. R. Silva" , Alexandre Torgue , Rob Herring , linux-renesas-soc@vger.kernel.org, Mauro Carvalho Chehab , Benoit Parrot , Julia Lawall , Hugues Fruchet , Petr Cvek , =?UTF-8?q?S=C3=B6ren=20Brinkmann?= , linux-arm-kernel@lists.infradead.org, Hyun Kwon , Greg Kroah-Hartman , Tomasz Figa , Todor Tomov , Kyungmin Park , Sakari Ailus , Maxime Coquelin , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Ramesh Shanmugasundaram , Guennadi Liakhovetski MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The V4L2_ASYNC_MATCH_FWNODE match criteria requires just one struct to be filled (struct fwnode_handle). The V4L2_ASYNC_MATCH_DEVNAME match criteria requires just a device name. So, it doesn't make sense to enclose those into structs, as the criteria can go directly into the union. That makes easier to document it, as we don't need to document weird senseless structs. At drivers, this makes even clearer about the match criteria. Signed-off-by: Mauro Carvalho Chehab --- drivers/media/platform/am437x/am437x-vpfe.c | 6 +++--- drivers/media/platform/atmel/atmel-isc.c | 2 +- drivers/media/platform/atmel/atmel-isi.c | 2 +- drivers/media/platform/davinci/vpif_capture.c | 4 ++-- drivers/media/platform/exynos4-is/media-dev.c | 4 ++-- drivers/media/platform/omap3isp/isp.c | 4 ++-- drivers/media/platform/pxa_camera.c | 2 +- drivers/media/platform/qcom/camss-8x16/camss.c | 2 +- drivers/media/platform/rcar-vin/rcar-core.c | 8 ++++---- drivers/media/platform/rcar_drif.c | 4 ++-- drivers/media/platform/soc_camera/soc_camera.c | 2 +- drivers/media/platform/stm32/stm32-dcmi.c | 2 +- drivers/media/platform/ti-vpe/cal.c | 2 +- drivers/media/platform/xilinx/xilinx-vipp.c | 2 +- drivers/media/v4l2-core/v4l2-async.c | 4 ++-- drivers/staging/media/imx/imx-media-dev.c | 8 ++++---- include/media/v4l2-async.h | 8 ++------ 17 files changed, 31 insertions(+), 35 deletions(-) diff --git a/drivers/media/platform/am437x/am437x-vpfe.c b/drivers/media/platform/am437x/am437x-vpfe.c index dfcc484cab89..f87e8f9467e9 100644 --- a/drivers/media/platform/am437x/am437x-vpfe.c +++ b/drivers/media/platform/am437x/am437x-vpfe.c @@ -2304,8 +2304,8 @@ vpfe_async_bound(struct v4l2_async_notifier *notifier, vpfe_dbg(1, vpfe, "vpfe_async_bound\n"); for (i = 0; i < ARRAY_SIZE(vpfe->cfg->asd); i++) { - if (vpfe->cfg->asd[i]->match.fwnode.fwnode == - asd[i].match.fwnode.fwnode) { + if (vpfe->cfg->asd[i]->match.fwnode == + asd[i].match.fwnode) { sdinfo = &vpfe->cfg->sub_devs[i]; vpfe->sd[i] = subdev; vpfe->sd[i]->grp_id = sdinfo->grp_id; @@ -2505,7 +2505,7 @@ vpfe_get_pdata(struct platform_device *pdev) } pdata->asd[i]->match_type = V4L2_ASYNC_MATCH_FWNODE; - pdata->asd[i]->match.fwnode.fwnode = of_fwnode_handle(rem); + pdata->asd[i]->match.fwnode = of_fwnode_handle(rem); of_node_put(rem); } diff --git a/drivers/media/platform/atmel/atmel-isc.c b/drivers/media/platform/atmel/atmel-isc.c index d7103c5f92c3..c04d9a4dbfac 100644 --- a/drivers/media/platform/atmel/atmel-isc.c +++ b/drivers/media/platform/atmel/atmel-isc.c @@ -1742,7 +1742,7 @@ static int isc_parse_dt(struct device *dev, struct isc_device *isc) subdev_entity->pfe_cfg0 |= ISC_PFE_CFG0_PPOL_LOW; subdev_entity->asd->match_type = V4L2_ASYNC_MATCH_FWNODE; - subdev_entity->asd->match.fwnode.fwnode = + subdev_entity->asd->match.fwnode = of_fwnode_handle(rem); list_add_tail(&subdev_entity->list, &isc->subdev_entities); } diff --git a/drivers/media/platform/atmel/atmel-isi.c b/drivers/media/platform/atmel/atmel-isi.c index 891fa2505efa..8c52f9f5f2db 100644 --- a/drivers/media/platform/atmel/atmel-isi.c +++ b/drivers/media/platform/atmel/atmel-isi.c @@ -1124,7 +1124,7 @@ static int isi_graph_parse(struct atmel_isi *isi, struct device_node *node) /* Remote node to connect */ isi->entity.node = remote; isi->entity.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; - isi->entity.asd.match.fwnode.fwnode = of_fwnode_handle(remote); + isi->entity.asd.match.fwnode = of_fwnode_handle(remote); return 0; } } diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c index 0ef36cec21d1..0cf141635cbc 100644 --- a/drivers/media/platform/davinci/vpif_capture.c +++ b/drivers/media/platform/davinci/vpif_capture.c @@ -1390,7 +1390,7 @@ static int vpif_async_bound(struct v4l2_async_notifier *notifier, for (i = 0; i < vpif_obj.config->asd_sizes[0]; i++) { struct v4l2_async_subdev *_asd = vpif_obj.config->asd[i]; - const struct fwnode_handle *fwnode = _asd->match.fwnode.fwnode; + const struct fwnode_handle *fwnode = _asd->match.fwnode; if (fwnode == subdev->fwnode) { vpif_obj.sd[i] = subdev; @@ -1588,7 +1588,7 @@ vpif_capture_get_pdata(struct platform_device *pdev) } pdata->asd[i]->match_type = V4L2_ASYNC_MATCH_FWNODE; - pdata->asd[i]->match.fwnode.fwnode = of_fwnode_handle(rem); + pdata->asd[i]->match.fwnode = of_fwnode_handle(rem); of_node_put(rem); } diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c index d4656d5175d7..d4d97d7e9684 100644 --- a/drivers/media/platform/exynos4-is/media-dev.c +++ b/drivers/media/platform/exynos4-is/media-dev.c @@ -454,7 +454,7 @@ static int fimc_md_parse_port_node(struct fimc_md *fmd, } fmd->sensor[index].asd.match_type = V4L2_ASYNC_MATCH_FWNODE; - fmd->sensor[index].asd.match.fwnode.fwnode = of_fwnode_handle(rem); + fmd->sensor[index].asd.match.fwnode = of_fwnode_handle(rem); fmd->async_subdevs[index] = &fmd->sensor[index].asd; fmd->num_sensors++; @@ -1361,7 +1361,7 @@ static int subdev_notifier_bound(struct v4l2_async_notifier *notifier, /* Find platform data for this sensor subdev */ for (i = 0; i < ARRAY_SIZE(fmd->sensor); i++) - if (fmd->sensor[i].asd.match.fwnode.fwnode == + if (fmd->sensor[i].asd.match.fwnode == of_fwnode_handle(subdev->dev->of_node)) si = &fmd->sensor[i]; diff --git a/drivers/media/platform/omap3isp/isp.c b/drivers/media/platform/omap3isp/isp.c index 1a428fe9f070..bbb402a5fcf0 100644 --- a/drivers/media/platform/omap3isp/isp.c +++ b/drivers/media/platform/omap3isp/isp.c @@ -2170,9 +2170,9 @@ static int isp_fwnodes_parse(struct device *dev, notifier->subdevs[notifier->num_subdevs] = &isd->asd; - isd->asd.match.fwnode.fwnode = + isd->asd.match.fwnode = fwnode_graph_get_remote_port_parent(fwnode); - if (!isd->asd.match.fwnode.fwnode) { + if (!isd->asd.match.fwnode) { dev_warn(dev, "bad remote port parent\n"); goto error; } diff --git a/drivers/media/platform/pxa_camera.c b/drivers/media/platform/pxa_camera.c index edca993c2b1f..4a23a60f3418 100644 --- a/drivers/media/platform/pxa_camera.c +++ b/drivers/media/platform/pxa_camera.c @@ -2328,7 +2328,7 @@ static int pxa_camera_pdata_from_dt(struct device *dev, asd->match_type = V4L2_ASYNC_MATCH_FWNODE; remote = of_graph_get_remote_port(np); if (remote) { - asd->match.fwnode.fwnode = of_fwnode_handle(remote); + asd->match.fwnode = of_fwnode_handle(remote); of_node_put(remote); } else { dev_notice(dev, "no remote for %pOF\n", np); diff --git a/drivers/media/platform/qcom/camss-8x16/camss.c b/drivers/media/platform/qcom/camss-8x16/camss.c index a3760b5dd1d1..7d7bca09473a 100644 --- a/drivers/media/platform/qcom/camss-8x16/camss.c +++ b/drivers/media/platform/qcom/camss-8x16/camss.c @@ -341,7 +341,7 @@ static int camss_of_parse_ports(struct device *dev, } csd->asd.match_type = V4L2_ASYNC_MATCH_FWNODE; - csd->asd.match.fwnode.fwnode = of_fwnode_handle(remote); + csd->asd.match.fwnode = of_fwnode_handle(remote); } return notifier->num_subdevs; diff --git a/drivers/media/platform/rcar-vin/rcar-core.c b/drivers/media/platform/rcar-vin/rcar-core.c index 142de447aaaa..3835a2fa0cb7 100644 --- a/drivers/media/platform/rcar-vin/rcar-core.c +++ b/drivers/media/platform/rcar-vin/rcar-core.c @@ -171,7 +171,7 @@ static int rvin_digital_graph_parse(struct rvin_dev *vin) struct device_node *ep, *np; int ret; - vin->digital.asd.match.fwnode.fwnode = NULL; + vin->digital.asd.match.fwnode = NULL; vin->digital.subdev = NULL; /* @@ -195,7 +195,7 @@ static int rvin_digital_graph_parse(struct rvin_dev *vin) if (ret) return ret; - vin->digital.asd.match.fwnode.fwnode = of_fwnode_handle(np); + vin->digital.asd.match.fwnode = of_fwnode_handle(np); vin->digital.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; return 0; @@ -210,7 +210,7 @@ static int rvin_digital_graph_init(struct rvin_dev *vin) if (ret) return ret; - if (!vin->digital.asd.match.fwnode.fwnode) { + if (!vin->digital.asd.match.fwnode) { vin_dbg(vin, "No digital subdevice found\n"); return -ENODEV; } @@ -223,7 +223,7 @@ static int rvin_digital_graph_init(struct rvin_dev *vin) subdevs[0] = &vin->digital.asd; vin_dbg(vin, "Found digital subdevice %pOF\n", - to_of_node(subdevs[0]->match.fwnode.fwnode)); + to_of_node(subdevs[0]->match.fwnode)); vin->notifier.num_subdevs = 1; vin->notifier.subdevs = subdevs; diff --git a/drivers/media/platform/rcar_drif.c b/drivers/media/platform/rcar_drif.c index 522364ff0d5d..ae7927305231 100644 --- a/drivers/media/platform/rcar_drif.c +++ b/drivers/media/platform/rcar_drif.c @@ -1107,7 +1107,7 @@ static int rcar_drif_notify_bound(struct v4l2_async_notifier *notifier, struct rcar_drif_sdr *sdr = container_of(notifier, struct rcar_drif_sdr, notifier); - if (sdr->ep.asd.match.fwnode.fwnode != + if (sdr->ep.asd.match.fwnode != of_fwnode_handle(subdev->dev->of_node)) { rdrif_err(sdr, "subdev %s cannot bind\n", subdev->name); return -EINVAL; @@ -1229,7 +1229,7 @@ static int rcar_drif_parse_subdevs(struct rcar_drif_sdr *sdr) return -EINVAL; } - sdr->ep.asd.match.fwnode.fwnode = fwnode; + sdr->ep.asd.match.fwnode = fwnode; sdr->ep.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; notifier->num_subdevs++; diff --git a/drivers/media/platform/soc_camera/soc_camera.c b/drivers/media/platform/soc_camera/soc_camera.c index 1f3c450c7a69..1bef3ebb49ee 100644 --- a/drivers/media/platform/soc_camera/soc_camera.c +++ b/drivers/media/platform/soc_camera/soc_camera.c @@ -1513,7 +1513,7 @@ static int soc_of_bind(struct soc_camera_host *ici, if (!info) return -ENOMEM; - info->sasd.asd.match.fwnode.fwnode = of_fwnode_handle(remote); + info->sasd.asd.match.fwnode = of_fwnode_handle(remote); info->sasd.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; info->subdev = &info->sasd.asd; diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index 35ba6f211b79..4c8bd77842f6 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -1514,7 +1514,7 @@ static int dcmi_graph_parse(struct stm32_dcmi *dcmi, struct device_node *node) /* Remote node to connect */ dcmi->entity.node = remote; dcmi->entity.asd.match_type = V4L2_ASYNC_MATCH_FWNODE; - dcmi->entity.asd.match.fwnode.fwnode = of_fwnode_handle(remote); + dcmi->entity.asd.match.fwnode = of_fwnode_handle(remote); return 0; } } diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c index 42e383a48ffe..7491425eed77 100644 --- a/drivers/media/platform/ti-vpe/cal.c +++ b/drivers/media/platform/ti-vpe/cal.c @@ -1700,7 +1700,7 @@ static int of_cal_create_instance(struct cal_ctx *ctx, int inst) goto cleanup_exit; } asd->match_type = V4L2_ASYNC_MATCH_FWNODE; - asd->match.fwnode.fwnode = of_fwnode_handle(sensor_node); + asd->match.fwnode = of_fwnode_handle(sensor_node); remote_ep = of_graph_get_remote_endpoint(ep_node); if (!remote_ep) { diff --git a/drivers/media/platform/xilinx/xilinx-vipp.c b/drivers/media/platform/xilinx/xilinx-vipp.c index ebfdf334d99c..3fdb0f365538 100644 --- a/drivers/media/platform/xilinx/xilinx-vipp.c +++ b/drivers/media/platform/xilinx/xilinx-vipp.c @@ -390,7 +390,7 @@ static int xvip_graph_parse_one(struct xvip_composite_device *xdev, entity->node = remote; entity->asd.match_type = V4L2_ASYNC_MATCH_FWNODE; - entity->asd.match.fwnode.fwnode = of_fwnode_handle(remote); + entity->asd.match.fwnode = of_fwnode_handle(remote); list_add_tail(&entity->list, &xdev->entities); xdev->num_subdevs++; } diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c index d741a8e0fdac..e087857d02d6 100644 --- a/drivers/media/v4l2-core/v4l2-async.c +++ b/drivers/media/v4l2-core/v4l2-async.c @@ -39,12 +39,12 @@ static bool match_i2c(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) static bool match_devname(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) { - return !strcmp(asd->match.device_name.name, dev_name(sd->dev)); + return !strcmp(asd->match.device_name, dev_name(sd->dev)); } static bool match_fwnode(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) { - return sd->fwnode == asd->match.fwnode.fwnode; + return sd->fwnode == asd->match.fwnode; } static bool match_custom(struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) diff --git a/drivers/staging/media/imx/imx-media-dev.c b/drivers/staging/media/imx/imx-media-dev.c index d96f4512224f..858088570684 100644 --- a/drivers/staging/media/imx/imx-media-dev.c +++ b/drivers/staging/media/imx/imx-media-dev.c @@ -48,12 +48,12 @@ imx_media_find_async_subdev(struct imx_media_dev *imxmd, imxsd = &imxmd->subdev[i]; switch (imxsd->asd.match_type) { case V4L2_ASYNC_MATCH_FWNODE: - if (fwnode && imxsd->asd.match.fwnode.fwnode == fwnode) + if (fwnode && imxsd->asd.match.fwnode == fwnode) return imxsd; break; case V4L2_ASYNC_MATCH_DEVNAME: if (devname && - !strcmp(imxsd->asd.match.device_name.name, devname)) + !strcmp(imxsd->asd.match.device_name, devname)) return imxsd; break; default: @@ -108,11 +108,11 @@ imx_media_add_async_subdev(struct imx_media_dev *imxmd, asd = &imxsd->asd; if (np) { asd->match_type = V4L2_ASYNC_MATCH_FWNODE; - asd->match.fwnode.fwnode = of_fwnode_handle(np); + asd->match.fwnode = of_fwnode_handle(np); } else { asd->match_type = V4L2_ASYNC_MATCH_DEVNAME; strncpy(imxsd->devname, devname, sizeof(imxsd->devname)); - asd->match.device_name.name = imxsd->devname; + asd->match.device_name = imxsd->devname; imxsd->pdev = pdev; } diff --git a/include/media/v4l2-async.h b/include/media/v4l2-async.h index c69d8c8a66d0..e66a3521596f 100644 --- a/include/media/v4l2-async.h +++ b/include/media/v4l2-async.h @@ -54,12 +54,8 @@ enum v4l2_async_match_type { struct v4l2_async_subdev { enum v4l2_async_match_type match_type; union { - struct { - struct fwnode_handle *fwnode; - } fwnode; - struct { - const char *name; - } device_name; + struct fwnode_handle *fwnode; + const char *device_name; struct { int adapter_id; unsigned short address;