From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from relay1.mentorg.com ([192.94.38.131]:44550 "EHLO relay1.mentorg.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1030512AbdADNdf (ORCPT ); Wed, 4 Jan 2017 08:33:35 -0500 Subject: Re: [PATCH v2 10/19] media: Add i.MX media core driver To: Steve Longerbeam , , , , , , , , , References: <1483477049-19056-1-git-send-email-steve_longerbeam@mentor.com> <1483477049-19056-11-git-send-email-steve_longerbeam@mentor.com> CC: , , , , , Steve Longerbeam From: Vladimir Zapolskiy Message-ID: Date: Wed, 4 Jan 2017 15:33:26 +0200 MIME-Version: 1.0 In-Reply-To: <1483477049-19056-11-git-send-email-steve_longerbeam@mentor.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-media-owner@vger.kernel.org List-ID: Hi Steve, On 01/03/2017 10:57 PM, Steve Longerbeam wrote: > Add the core media driver for i.MX SOC. > > Signed-off-by: Steve Longerbeam > --- > Documentation/devicetree/bindings/media/imx.txt | 205 +++++ v2 was sent before getting Rob's review comments, but still they should be addressed in v3. Also I would suggest to separate device tree binding documentation change and place it as the first patch in the series, this should make the following DTS changes valid. > Documentation/media/v4l-drivers/imx.rst | 430 ++++++++++ > drivers/staging/media/Kconfig | 2 + > drivers/staging/media/Makefile | 1 + > drivers/staging/media/imx/Kconfig | 8 + > drivers/staging/media/imx/Makefile | 6 + > drivers/staging/media/imx/TODO | 18 + > drivers/staging/media/imx/imx-media-common.c | 985 ++++++++++++++++++++++ > drivers/staging/media/imx/imx-media-dev.c | 479 +++++++++++ > drivers/staging/media/imx/imx-media-fim.c | 509 +++++++++++ > drivers/staging/media/imx/imx-media-internal-sd.c | 457 ++++++++++ > drivers/staging/media/imx/imx-media-of.c | 291 +++++++ > drivers/staging/media/imx/imx-media-of.h | 25 + > drivers/staging/media/imx/imx-media.h | 299 +++++++ > include/media/imx.h | 15 + > include/uapi/Kbuild | 1 + > include/uapi/linux/v4l2-controls.h | 4 + > include/uapi/media/Kbuild | 2 + > include/uapi/media/imx.h | 30 + Probably Greg should ack the UAPI changes, you may consider to split them into a separate patch. > 19 files changed, 3767 insertions(+) > create mode 100644 Documentation/devicetree/bindings/media/imx.txt > create mode 100644 Documentation/media/v4l-drivers/imx.rst > create mode 100644 drivers/staging/media/imx/Kconfig > create mode 100644 drivers/staging/media/imx/Makefile > create mode 100644 drivers/staging/media/imx/TODO > create mode 100644 drivers/staging/media/imx/imx-media-common.c > create mode 100644 drivers/staging/media/imx/imx-media-dev.c > create mode 100644 drivers/staging/media/imx/imx-media-fim.c > create mode 100644 drivers/staging/media/imx/imx-media-internal-sd.c > create mode 100644 drivers/staging/media/imx/imx-media-of.c > create mode 100644 drivers/staging/media/imx/imx-media-of.h > create mode 100644 drivers/staging/media/imx/imx-media.h > create mode 100644 include/media/imx.h > create mode 100644 include/uapi/media/Kbuild > create mode 100644 include/uapi/media/imx.h > [snip] > + > +struct imx_media_subdev * > +imx_media_find_subdev_by_sd(struct imx_media_dev *imxmd, > + struct v4l2_subdev *sd) > +{ > + struct imx_media_subdev *imxsd; > + int i, ret = -ENODEV; > + > + for (i = 0; i < imxmd->num_subdevs; i++) { > + imxsd = &imxmd->subdev[i]; > + if (sd == imxsd->sd) { This can be simplifed: ... if (sd == imxsd->sd) return imxsd; } return ERR_PTR(-ENODEV); > + ret = 0; > + break; > + } > + } > + > + return ret ? ERR_PTR(ret) : imxsd; > +} > +EXPORT_SYMBOL_GPL(imx_media_find_subdev_by_sd); > + > +struct imx_media_subdev * > +imx_media_find_subdev_by_id(struct imx_media_dev *imxmd, u32 grp_id) > +{ > + struct imx_media_subdev *imxsd; > + int i, ret = -ENODEV; > + > + for (i = 0; i < imxmd->num_subdevs; i++) { > + imxsd = &imxmd->subdev[i]; > + if (imxsd->sd && imxsd->sd->grp_id == grp_id) { > + ret = 0; > + break; This can be simplifed: ... if (imxsd->sd && imxsd->sd->grp_id == grp_i) return imxsd; } return ERR_PTR(-ENODEV); > + } > + } > + > + return ret ? ERR_PTR(ret) : imxsd; > +} > +EXPORT_SYMBOL_GPL(imx_media_find_subdev_by_id); > + [snip] > diff --git a/drivers/staging/media/imx/imx-media-dev.c b/drivers/staging/media/imx/imx-media-dev.c > new file mode 100644 > index 0000000..8d22730 > --- /dev/null > +++ b/drivers/staging/media/imx/imx-media-dev.c > @@ -0,0 +1,479 @@ > +/* > + * V4L2 Media Controller Driver for Freescale i.MX5/6 SOC > + * > + * Copyright (c) 2016 Mentor Graphics Inc. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License as published by > + * the Free Software Foundation; either version 2 of the License, or > + * (at your option) any later version. > + */ > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include Please sort out the list of headers alphabetically. > +#include