Show a cover letter.

GET /api/covers/811582/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 811582,
    "url": "http://patchwork.ozlabs.org/api/covers/811582/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/devicetree-bindings/cover/20170908131235.30294-1-sakari.ailus@linux.intel.com/",
    "project": {
        "id": 37,
        "url": "http://patchwork.ozlabs.org/api/projects/37/?format=api",
        "name": "Devicetree Bindings",
        "link_name": "devicetree-bindings",
        "list_id": "devicetree.vger.kernel.org",
        "list_email": "devicetree@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20170908131235.30294-1-sakari.ailus@linux.intel.com>",
    "list_archive_url": null,
    "date": "2017-09-08T13:11:51",
    "name": "[v9,00/23] Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS",
    "submitter": {
        "id": 65485,
        "url": "http://patchwork.ozlabs.org/api/people/65485/?format=api",
        "name": "Sakari Ailus",
        "email": "sakari.ailus@linux.intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/devicetree-bindings/cover/20170908131235.30294-1-sakari.ailus@linux.intel.com/mbox/",
    "series": [
        {
            "id": 2205,
            "url": "http://patchwork.ozlabs.org/api/series/2205/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/devicetree-bindings/list/?series=2205",
            "date": "2017-09-08T13:11:51",
            "name": "Unified fwnode endpoint parser, async sub-device notifier support, N9 flash DTS",
            "version": 9,
            "mbox": "http://patchwork.ozlabs.org/series/2205/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/811582/comments/",
    "headers": {
        "Return-Path": "<devicetree-owner@vger.kernel.org>",
        "X-Original-To": "incoming-dt@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming-dt@bilbo.ozlabs.org",
        "Authentication-Results": "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=devicetree-owner@vger.kernel.org; receiver=<UNKNOWN>)",
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xpd624h0Rz9s7c\n\tfor <incoming-dt@patchwork.ozlabs.org>;\n\tFri,  8 Sep 2017 23:12:42 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1755850AbdIHNMk (ORCPT\n\t<rfc822;incoming-dt@patchwork.ozlabs.org>);\n\tFri, 8 Sep 2017 09:12:40 -0400",
            "from nblzone-211-213.nblnetworks.fi ([83.145.211.213]:47192 \"EHLO\n\thillosipuli.retiisi.org.uk\" rhost-flags-OK-OK-OK-FAIL)\n\tby vger.kernel.org with ESMTP id S1755791AbdIHNMi (ORCPT\n\t<rfc822; devicetree@vger.kernel.org>); Fri, 8 Sep 2017 09:12:38 -0400",
            "from lanttu.localdomain (unknown\n\t[IPv6:2001:1bc8:1a6:d3d5::e1:1002])\n\tby hillosipuli.retiisi.org.uk (Postfix) with ESMTP id 7CE55600CA;\n\tFri,  8 Sep 2017 16:12:35 +0300 (EEST)"
        ],
        "From": "Sakari Ailus <sakari.ailus@linux.intel.com>",
        "To": "linux-media@vger.kernel.org",
        "Cc": "niklas.soderlund@ragnatech.se, robh@kernel.org, hverkuil@xs4all.nl,\n\tlaurent.pinchart@ideasonboard.com, linux-acpi@vger.kernel.org,\n\tmika.westerberg@intel.com, devicetree@vger.kernel.org,\n\tpavel@ucw.cz, sre@kernel.org",
        "Subject": "[PATCH v9 00/23] Unified fwnode endpoint parser,\n\tasync sub-device notifier support, N9 flash DTS",
        "Date": "Fri,  8 Sep 2017 16:11:51 +0300",
        "Message-Id": "<20170908131235.30294-1-sakari.ailus@linux.intel.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Sender": "devicetree-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<devicetree.vger.kernel.org>",
        "X-Mailing-List": "devicetree@vger.kernel.org"
    },
    "content": "Hi folks,\n\nWe have a large influx of new, unmerged, drivers that are now parsing\nfwnode endpoints and each one of them is doing this a little bit\ndifferently. The needs are still exactly the same for the graph data\nstructure is device independent. This is still a non-trivial task and the\nmajority of the driver implementations are buggy, just buggy in different\nways.\n\nFacilitate parsing endpoints by adding a convenience function for parsing\nthe endpoints, and make the omap3isp and rcar-vin drivers use them as an\nexample.\n\nTo show where we're getting with this, I've added support for async\nsub-device notifier support that is notifiers that can be registered by\nsub-device drivers as well as V4L2 fwnode improvements to make use of them\nand the DTS changes for the Nokia N9. Some of these patches I've posted\npreviously in this set here:\n\n<URL:http://www.spinics.net/lists/linux-media/msg118764.html>\n\nSince that, the complete callback of the master notifier registering the\nV4L2 device is only called once all sub-notifiers have been completed as\nwell. This way the device node creation can be postponed until all devices\nhave been successfully initialised.\n\nWith this, the as3645a driver successfully registers a sub-device to the\nmedia device created by the omap3isp driver. The kernel also has the\ninformation it's related to the sensor driven by the smiapp driver but we\ndon't have a way to expose that information yet.\n\nsince v8:\n\n- Improve terminology for notifiers. Instead of master / subdev, we\n  have root, parent and subdev notifiers.\n\n- Renamed \"flash\" property as \"flash-leds\". There are many, and currently\n  we make assumptions in a lot of places (e.g. LED bindings) that these\n  are LEDs. While we don't have any other types of flashes supported right\n  now (e.g. Xenon), it's safer to assume we might have them in the future.\n\n- Use ENOTCONN instead of EPERM to tell from driver's callback function\n  that an endpoint is to be skipped but not handled as an error.\n\n- Avoid accessing notifier's subdevs array as well as num_subdevs field\n  from rcar-vin driver.\n\n- Add a patch \"v4l: async: Allow async notifier register call succeed with no\n  subdevs\", which allows, well, what the subject says.\n\n- Move checks for subdev / v4l2_dev from __v4l2_async_notifier_register()\n  to v4l2_async_notifier_register() and\n  v4l2_async_subdev_notifier_register().\n\n- Don't initialise notifier->list. There was no need to do so, as this is\n  the entry added to the list and not used otherwise. I.e. regarding this,\n  the state before this patchset is restored.\n\n- Clean up error handling in v4l2_async_notifier_fwnode_parse_endpoint().\n\n- WARN_ON() in v4l2_async_notifier_parse_fwnode_endpoints() if the\n  asd_struct_size is smaller than size of struct v4l2_async_subdev.\n\n- Make v4l2_fwnode_reference_parse() static as there should be no need to\n  use it outside the V4L2 fwnode framework. Also, remove the callback\n  function as well as other arguments that always have the same value in\n  current usage. (This can be changed later on if needed without affecting\n  drivers.)\n\n- Add the patch \"v4l: fwnode: Add a helper function to obtain device /\n  interger references\", which allows similar use than\n  v4l2_fwnode_reference_parse() but is more useful on ACPI based systems\n  --- on ACPI, you can only refer to device nodes (corresponding struct\n  deice in Linux), not to data extension nodes under the devices.\n\n- Improve v4l2_fwnode_reference_parse_sensor_common() to work on ACPI\n  based systems.\n\n- Add patch \"ACPI: Document how to refer to LEDs from remote nodes\" to\n  document using and referring to LEDs on ACPI.\n\n- Rebase the set on AS3645A fixes I just sent (\"AS3645A fixes\")\n\n- In v4l2_fwnode_reference_parse_sensor_common(), tell if parsing a\n  property failed.\n\n- Improved documentation for v4l2_async_notifier_parse_fwnode_endpoints().\n\n- Fix v4l2_async_notifier_try_all_subdevs(); it is allowed that the list\n  entry being iterated over is deleted but no other changes to the list\n  are allowed. This could be the case if a sub-device driver's notifier\n  binds a sub-device. Restart the loop whenever a match is found.\n\n- Add patch \"as3645a: Switch to fwnode property API\" which also adds ACPI\n  support.\n\nsince v7:\n\n- Added three more patches:\n\n\tv4l: async: Remove re-probing support\n\tv4l: async: Use more intuitive names for internal functions\n\tdt: bindings: smiapp: Document lens-focus and flash properties\n\n  The last one was already sent previously after the rest of the patchset.\n\n- Removed re-probing support. This is hard to support and only useful in\n  special cases. It can be reintroduced later on if there's really a need\n  --- note that in e.g. omap3isp this was always broken and no-one ever\n  complained.\n\n- Remove smiapp driver's async complete callback (and ops). It is\n  redundant: the sub-device nodes are created through the master notifier.\n\n- Improve flash property documentation in video-interfaces.txt.\n\n- Introduce helper functions to call notifier operations, one for each\n  operation.\n\n- Rename v4l2_async_test_notify as v4l2_async_match_notify and\n  v4l2_async_belongs to v4l2_async_find_match.\n\n- v4l2_async_notifier_test_all_subdevs() renamed as\n  v4l2_async_notifier_try_all_subdevs().\n\n- Made notifier_v4l2_dev a function (it was a macro).\n\n- Registering subdev notifiers from sub-device drivers that control\n  sub-devices created through sub-notifiers is now supported. In other\n  words, subdev notifiers may be registered through other subdev\n  notifiers. This is the source of the bulk of the changes between v7 and\n  v8.\n\n- Add explanatory comments to helper functions used by V4L2 async\n  framework. This should help understanding the internal workings of the\n  framework.\n\n- Removed the \"notifiers\" list in struct v4l2_async_notifier. The\n  information can be found from existing data structures.\n\n- Explicitly check that registering a non-subdev notifier has v4l2_dev and\n  a subdev notifier has a sub-device pointer.\n\n- Unified several code paths between subdev notifiers and non-subdev\n  notifiers.\n\n- Fixed v4l2_async_notifier_release() --- calling it on a notifier for\n  which the driver had allocated the subdevs array would lead calling\n  kvfree() on that array. Now notifier->max_subdevs is checked before\n  proceeding.\n\n- Fixed a use-after-free issue in\n  v4l2_async_notifier_fwnode_parse_endpoints().\n\n- Small fixes to KernelDoc documentation for\n  v4l2_async_notifier_parse_fwnode_endpoints().\n\nsince v6:\n\n- Drop the last patch that added variant for parsing endpoints given\n  specific port and endpoints numbers.\n\n- Separate driver changes from the fwnode endpoint parser patch into two\n  patches. rcar-vin driver is now using the name function.\n\n- Use -ENOTCONN to tell the parser that and endpoint (or a reference) is\n  to be ignored.\n\n- parse_endpoint and parse_single callback functions are now optional and\n  documented as such.\n\n- Added Laurent's patch adding notifier operations struct which I rebase\n  on the fwnode parser patchset. I wrote another patch to call the\n  notifier operations through macros.\n\n- Add DT bindings for flash and lens devices.\n\n- V4L2 fwnode parser for references (such as flash and lens).\n\n- Added smiapp driver support for async sub-devices (lens and flash).\n\n- Added a few fixes for omap3isp.\n\nsince v5:\n\n- Use v4l2_async_ prefix for static functions as well (4th patch)\n\n- Use memcpy() to copy array rather than a loop\n\n- Document that the v4l2_async_subdev pointer in driver specific struct\n  must be the first member\n\n- Improve documentation of the added functions (4th and 5th\n  patches)\n\n\t- Arguments\n\n\t- More thorough explation of the purpose, usage and object\n\t  lifetime\n\n- Added acks\n\nsince v4:\n\n- Prepend the set with three documentation fixes.\n\n- The driver's async struct must begin with struct v4l2_async_subdev. Fix this\n  for omap3isp and document it.\n\n- Improve documentation for new functions.\n\n- Don't use devm_ family of functions for allocating memory. Introduce\n  v4l2_async_notifier_release() to release memory resources.\n\n- Rework both v4l2_async_notifier_fwnode_parse_endpoints() and\n  v4l2_async_notifier_fwnode_parse_endpoint() and the local functions they\n  call. This should make the code cleaner. Despite the name, for linking\n  and typical usage reasons the functions remain in v4l2-fwnode.c.\n\n- Convert rcar-vin to use v4l2_async_notifier_fwnode_parse_endpoint().\n\n- Use kvmalloc() for allocating the notifier's subdevs array.\n\n- max_subdevs argument for notifier_realloc is now the total maximum\n  number of subdevs, not the number of available subdevs.\n\n- Use fwnode_device_is_available() to make sure the device actually\n  exists.\n\n- Move the note telling v4l2_async_notifier_fwnode_parse_endpoints()\n  should not be used by new drivers to the last patch adding\n  v4l2_async_notifier_fwnode_parse_endpoint().\n\nsince v3:\n\n- Rebase on current mediatree master.\n\nsince v2:\n\n- Rebase on CCP2 support patches.\n\n- Prepend a patch cleaning up omap3isp driver a little.\n\nsince v1:\n\n- The first patch has been merged (it was a bugfix).\n\n- In anticipation that the parsing can take place over several iterations,\n  take the existing number of async sub-devices into account when\n  re-allocating an array of async sub-devices.\n\n- Rework the first patch to better anticipate parsing single endpoint at a\n  time by a driver.\n\n- Add a second patch that adds a function for parsing endpoints one at a\n  time based on port and endpoint numbers.\n\n\nLaurent Pinchart (1):\n  v4l: async: Move async subdev notifier operations to a separate\n    structure\n\nSakari Ailus (23):\n  v4l: fwnode: Move KernelDoc documentation to the header\n  v4l: async: Remove re-probing support\n  v4l: async: Use more intuitive names for internal functions\n  v4l: async: Add V4L2 async documentation to the documentation build\n  v4l: fwnode: Support generic parsing of graph endpoints in a device\n  omap3isp: Use generic parser for parsing fwnode endpoints\n  rcar-vin: Use generic parser for parsing fwnode endpoints\n  omap3isp: Fix check for our own sub-devices\n  omap3isp: Print the name of the entity where no source pads could be\n    found\n  v4l: async: Introduce helpers for calling async ops callbacks\n  v4l: async: Register sub-devices before calling bound callback\n  v4l: async: Allow async notifier register call succeed with no subdevs\n  v4l: async: Allow binding notifiers to sub-devices\n  dt: bindings: Add a binding for flash LED devices associated to a\n    sensor\n  dt: bindings: Add lens-focus binding for image sensors\n  ACPI: Document how to refer to LEDs from remote nodes\n  as3645a: Switch to fwnode property API\n  v4l: fwnode: Add a helper function for parsing generic references\n  v4l: fwnode: Add a helper function to obtain device / interger\n    references\n  v4l: fwnode: Add convenience function for parsing common external refs\n  smiapp: Add support for flash and lens devices\n  dt: bindings: smiapp: Document lens-focus and flash properties\n  arm: dts: omap3: N9/N950: Add flash references to the camera\n\n Documentation/acpi/dsd/leds.txt                    |  92 +++++\n .../devicetree/bindings/media/i2c/nokia,smia.txt   |   2 +\n .../devicetree/bindings/media/video-interfaces.txt |  10 +\n Documentation/media/kapi/v4l2-async.rst            |   3 +\n Documentation/media/kapi/v4l2-core.rst             |   1 +\n arch/arm/boot/dts/omap3-n9.dts                     |   1 +\n arch/arm/boot/dts/omap3-n950-n9.dtsi               |   4 +-\n arch/arm/boot/dts/omap3-n950.dts                   |   1 +\n drivers/leds/leds-as3645a.c                        |  81 +++--\n drivers/media/i2c/smiapp/smiapp-core.c             |  18 +-\n drivers/media/i2c/smiapp/smiapp.h                  |   4 +-\n drivers/media/platform/am437x/am437x-vpfe.c        |   8 +-\n drivers/media/platform/atmel/atmel-isc.c           |  10 +-\n drivers/media/platform/atmel/atmel-isi.c           |  10 +-\n drivers/media/platform/davinci/vpif_capture.c      |   8 +-\n drivers/media/platform/davinci/vpif_display.c      |   8 +-\n drivers/media/platform/exynos4-is/media-dev.c      |   8 +-\n drivers/media/platform/omap3isp/isp.c              | 127 +++----\n drivers/media/platform/omap3isp/isp.h              |   5 +-\n drivers/media/platform/pxa_camera.c                |   8 +-\n drivers/media/platform/qcom/camss-8x16/camss.c     |   8 +-\n drivers/media/platform/rcar-vin/rcar-core.c        | 122 +++----\n drivers/media/platform/rcar-vin/rcar-dma.c         |  10 +-\n drivers/media/platform/rcar-vin/rcar-v4l2.c        |  14 +-\n drivers/media/platform/rcar-vin/rcar-vin.h         |   4 +-\n drivers/media/platform/rcar_drif.c                 |  10 +-\n drivers/media/platform/soc_camera/soc_camera.c     |  14 +-\n drivers/media/platform/stm32/stm32-dcmi.c          |  10 +-\n drivers/media/platform/ti-vpe/cal.c                |   8 +-\n drivers/media/platform/xilinx/xilinx-vipp.c        |   8 +-\n drivers/media/v4l2-core/v4l2-async.c               | 345 +++++++++++++-----\n drivers/media/v4l2-core/v4l2-fwnode.c              | 386 +++++++++++++++++----\n drivers/staging/media/imx/imx-media-dev.c          |   8 +-\n include/media/v4l2-async.h                         |  68 +++-\n include/media/v4l2-fwnode.h                        | 150 +++++++-\n 35 files changed, 1135 insertions(+), 439 deletions(-)\n create mode 100644 Documentation/acpi/dsd/leds.txt\n create mode 100644 Documentation/media/kapi/v4l2-async.rst"
}