Show a cover letter.

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

{
    "id": 2220307,
    "url": "http://patchwork.ozlabs.org/api/1.1/covers/2220307/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260406-gmsl2-3_serdes-v10-0-645560fedca5@analog.com/",
    "project": {
        "id": 42,
        "url": "http://patchwork.ozlabs.org/api/1.1/projects/42/?format=api",
        "name": "Linux GPIO development",
        "link_name": "linux-gpio",
        "list_id": "linux-gpio.vger.kernel.org",
        "list_email": "linux-gpio@vger.kernel.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": ""
    },
    "msgid": "<20260406-gmsl2-3_serdes-v10-0-645560fedca5@analog.com>",
    "date": "2026-04-06T20:14:39",
    "name": "[v10,00/22] media: i2c: add Maxim GMSL2/3 serializer and deserializer drivers",
    "submitter": {
        "id": 88270,
        "url": "http://patchwork.ozlabs.org/api/1.1/people/88270/?format=api",
        "name": "Dumitru Ceclan via B4 Relay",
        "email": "devnull+dumitru.ceclan.analog.com@kernel.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/linux-gpio/cover/20260406-gmsl2-3_serdes-v10-0-645560fedca5@analog.com/mbox/",
    "series": [
        {
            "id": 498894,
            "url": "http://patchwork.ozlabs.org/api/1.1/series/498894/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linux-gpio/list/?series=498894",
            "date": "2026-04-06T20:14:42",
            "name": "media: i2c: add Maxim GMSL2/3 serializer and deserializer drivers",
            "version": 10,
            "mbox": "http://patchwork.ozlabs.org/series/498894/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2220307/comments/",
    "headers": {
        "Return-Path": "\n <linux-gpio+bounces-34725-incoming=patchwork.ozlabs.org@vger.kernel.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linux-gpio@vger.kernel.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=N8VL/Ppw;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-gpio+bounces-34725-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)",
            "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=\"N8VL/Ppw\"",
            "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=10.30.226.201"
        ],
        "Received": [
            "from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fqLM11pzcz1yGn\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 07 Apr 2026 06:21:17 +1000 (AEST)",
            "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id 78FF7304BD9D\n\tfor <incoming@patchwork.ozlabs.org>; Mon,  6 Apr 2026 20:15:36 +0000 (UTC)",
            "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id ED3B939E177;\n\tMon,  6 Apr 2026 20:15:21 +0000 (UTC)",
            "from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org\n [10.30.226.201])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 74E1539B940;\n\tMon,  6 Apr 2026 20:15:21 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPS id 1BE8FC4CEF7;\n\tMon,  6 Apr 2026 20:15:21 +0000 (UTC)",
            "from aws-us-west-2-korg-lkml-1.web.codeaurora.org\n (localhost.localdomain [127.0.0.1])\n\tby smtp.lore.kernel.org (Postfix) with ESMTP id 0819EF46C48;\n\tMon,  6 Apr 2026 20:15:21 +0000 (UTC)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775506521; cv=none;\n b=VdPRqHqgfaBqF3pAbqueH3uqzrYizwizFjNN1s0svP6j5jL6TO+WiLLDCzYfVBAk8UljNMkYq8fJ74nDnUcf7u1nZqF02W5uM08RHNfmReVQnrBWQNZb6CdAPZhugHiwfShXbs2/PuNedPXqUEe3m+KVkSv3W2i3YulxroVFyzQ=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775506521; c=relaxed/simple;\n\tbh=mHeaBzIR4M818lo7nJUC8dTkTvKzvkDzCvo5FtMXuQw=;\n\th=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc;\n b=F7mmRBfHOLyrSSk2wn7PzHf24dy4jd30VzQ/S5G5dLl+/FuesliMcgJqk2WJVarjOVEu2u6IkG3sXcPXAYuhDmLL5njDmX3mTpZJ/Tjg7Ghow33how5hdf+IWRAHmLgQuy5RarOgvXCqFpTKMXfK+yisQThaBENT4rt+Xq8Gmec=",
        "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org\n header.b=N8VL/Ppw; arc=none smtp.client-ip=10.30.226.201",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1775506521;\n\tbh=mHeaBzIR4M818lo7nJUC8dTkTvKzvkDzCvo5FtMXuQw=;\n\th=From:Subject:Date:To:Cc:Reply-To:From;\n\tb=N8VL/PpwWH/QwWQEgiqtZBivpJHyifAx/0Wkztvh54xAd1wcQ1uLtNxhFUk5ZTjnS\n\t v4dh1WAVc3cHPjL5I/cGfFIO8aR7+isdnXO5EtjMQs//lN/691LWDGaXA9BFct0yEd\n\t VsGLfqh5PoJZxt2y85QRwFvfM/z47mjAllA9Pp0vtYYTf+qHg2LXNqGT+fOx/9tjvX\n\t ZAgSynkf5JnZVlO+pJID0AwiITEWb+JsjThkUs3JBjRZ0AwW1LUI2ejufoMKd/1bmt\n\t 49wN9VpBxQoh7WNU5S6CGd4HbSxqJWL7BlN8xcw57d/bnM7HNBVKTBhrpsZUSDOTKg\n\t GGpnGNbKISGtQ==",
        "From": "Dumitru Ceclan via B4 Relay\n <devnull+dumitru.ceclan.analog.com@kernel.org>",
        "Subject": "[PATCH v10 00/22] media: i2c: add Maxim GMSL2/3 serializer and\n deserializer drivers",
        "Date": "Mon, 06 Apr 2026 23:14:39 +0300",
        "Message-Id": "<20260406-gmsl2-3_serdes-v10-0-645560fedca5@analog.com>",
        "Precedence": "bulk",
        "X-Mailing-List": "linux-gpio@vger.kernel.org",
        "List-Id": "<linux-gpio.vger.kernel.org>",
        "List-Subscribe": "<mailto:linux-gpio+subscribe@vger.kernel.org>",
        "List-Unsubscribe": "<mailto:linux-gpio+unsubscribe@vger.kernel.org>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "8bit",
        "X-B4-Tracking": "v=1; b=H4sIAC8U1GkC/2XNTQrCMBCG4auUWRuZ/NRmXHkPEalt0gZqI4kEp\n fTupkUX6vIbeN6ZIJrgTIR9MUEwyUXnxzw4bgpo+nrsDHNtPoBAUXKOFeuucRBMnjNsTWTSiov\n WpUBqJGR0C8a6x1o8nvLuXbz78FwfJL1c3ymuflNJM2SqUkQtYUWEh3qsB99tG3+FpZXo43coO\n f/ztHievUVCVPbLz/P8AkKSXV3uAAAA",
        "X-Change-ID": "20251107-gmsl2-3_serdes-3f2b885209c3",
        "To": "Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>,\n  Mauro Carvalho Chehab <mchehab@kernel.org>,\n  Sakari Ailus <sakari.ailus@linux.intel.com>,\n  Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n  Julien Massot <julien.massot@collabora.com>, Rob Herring <robh@kernel.org>,\n\t=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>,\n  Greg Kroah-Hartman <gregkh@linuxfoundation.org>,\n  Cosmin Tanislav <cosmin.tanislav@analog.com>",
        "Cc": "mitrutzceclan@gmail.com, linux-media@vger.kernel.org,\n  linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,\n  linux-staging@lists.linux.dev, linux-gpio@vger.kernel.org, =?utf-8?q?Nikla?=\n\t=?utf-8?q?s_S=C3=B6derlund?= <niklas.soderlund+renesas@ragnatech.se>,\n  Martin Hecht <Martin.Hecht@avnet.eu>,\n  Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>,\n  Cosmin Tanislav <demonsingur@gmail.com>,\n  Vivekananda Dayananda <vivekana@amd.com>,\n  Dumitru Ceclan <dumitru.ceclan@analog.com>, Cory Keitz <ckeitz@amazon.com>",
        "X-Mailer": "b4 0.14.3",
        "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1775506518; l=18677;\n i=dumitru.ceclan@analog.com; s=20240313; h=from:subject:message-id;\n bh=mHeaBzIR4M818lo7nJUC8dTkTvKzvkDzCvo5FtMXuQw=;\n b=2gGsjUn3F8kbeHCWFV9Bu7wZrbsRpKv06LjIx7TiPSYJ7X9B6mCNDJO3HBtsb5o9enBlelSv6\n 0ZmKa+snValCOwJ4/qWirr9j/OHo2UGf/jw2bWJIKhghmMqx26c77M6",
        "X-Developer-Key": "i=dumitru.ceclan@analog.com; a=ed25519;\n pk=HdqMlVyrcazwoiai7oN6ghU+Bj1pusGUFRl30jhS7Bo=",
        "X-Endpoint-Received": "by B4 Relay for dumitru.ceclan@analog.com/20240313\n with auth_id=140",
        "X-Original-From": "Dumitru Ceclan <dumitru.ceclan@analog.com>",
        "Reply-To": "dumitru.ceclan@analog.com"
    },
    "content": "This series adds new drivers for multiple Maxim GMSL2 and GMSL3 devices,\nreplacing the few GMSL2 drivers already in upstream, and introducing a\ncommon framework that can be used to implement such GMSL chips, which\navoids code duplication while also adding support for previously\nunsupported features.\n\nWhile the normally acceptable and polite way would be to extend the\ncurrent mainline drivers, the choice was made here to add a totally new\nset of drivers. The current drivers support only a small subset of the\npossible features, and only a few devices, so the end result after\nextending them would in any case be essentially fully rewritten, new\ndrivers.\n\nThis series depends on support for internal pads, for which a patch has\nbeen added.\n\nThe previous version is at:\nv9: https://lore.kernel.org/r/20260311-gmsl2-3_serdes-v9-0-41499f09004f@analog.com\n\nSince the previous series, Cosmin has left Analog Devices.\nBecause included changes from previous version are trivial, his sign-off\nand tags were retained.\n\nThe following deserializers are supported:\n* MAX96712 (already exists in staging)\n* MAX96714 (already exists)\n* MAX96714F (already exists)\n* MAX96714R (GMSL2)\n* MAX96716 (GMSL2)\n* MAX96724 (already exists as part of existing MAX96712 driver)\n* MAX96724F (GMSL2)\n* MAX96724R (GMSL2)\n* MAX9296A (GMSL2)\n* MAX96792A (GMSL3)\n\nThe following serializers are supported:\n* MAX96717 (already exists)\n* MAX9295A (GMSL2)\n* MAX96793 (GMSL3)\n\nThe following list enumerates new features that are supported by the\ncommon framework and their respective chip-specific drivers:\n* Full Streams API support. Most deserializers have support for more\nthan one link, and more than one PHY. Streams support allows\nconfiguration of routing between these links and PHYs.\n\n* .get_frame_desc() support. Both the serializers and deserializers\nimplement this to query and provide frame descriptor data. This is\nused in features explained in-depth below.\n\n* .get_mbus_config() support. The deserializers implement this to allow\nupstream devices to query the link frequency of its pads.\n\n* Address translation with I2C ATR for the serializers.\n\n* I2C ATR translation - some deserializers cannot do muxing since I2C\ncommunication channel masking is not available per-link, and the only\nother way to select links is to turn them off, causing link resets.\nFor such cases, I2C ATR is used to change the address of the\nserializers at probe time.\n\n* Automatic GMSL link version negotiation between GMSL3, GMSL2 6Gbps, GMSL2\n3Gbps.\n\n* Automatic stream id selection for deserializers which need serializers to\nstream on unique stream ids.\n\n* Automatic VC remapping on the deserializers. VCs are picked so that\nif they were unique on the sink pad, they will end up as unique on\nthe source pad they are routed to too, prioritizing using the same\nVC ID as the sink pad, to facilitate the possibility of using tunnel\nmode.\n\n* Automatic pixel mode / tunnel mode selection. Tunnel mode is used\nwhen VC IDs do not need to be changed and all hardware supports\ntunnel mode, otherwise, pixel mode is used. The serializers are\nautomatically switched between the two by using a private API.\n\n* Automatic double mode selection. In pixel mode, double mode can be\nused to pack two pixels into a single data unit, optimizing bandwidth\nusage. The serializers are automatically set up to support the double\nmodes determined by the deserializers using a private API.\n\n* Automatic data padding. In pixel mode, if the data being transferred\nuses two different BPPs, data needs to be padded. The serializers\nautomatically set this up depending on the configured double mode\nsettings and incoming data types.\n\n* Logging. Both the deserializers and serializers implement the V4L2\n.log_status() ops to allow debugging of the internal state and\nimportant chip status registers.\n\n* PHY modes. Deserializer chips commonly have more than a single PHY.\nThe firmware ports are parsed to determine the modes in which to\nconfigure the PHYs (2x4, 4x2, 1x4+2x2, 2x2+1x4, and variations using\nfewer lanes).\n\n* Serializer pinctrl. Serializers implement pinctrl to allow setting\nconfigs which would otherwise be inaccessible through GPIO: TX/RX via\nGMSL link, pull-up & pull-down (with strength), open-drain &\npush-pull, slew rate, RCLK pin selection.\n\n* TPG with selectable formats, resolutions and framerates for both\nserializers and deserializers.\n\nThe drivers have been tested on the following hardware combinations, but\nfurther testing is welcome to ensure no / minimal breakage:\n* Raspberry Pi 5 + MAX9296A + 2xMAX96717 + 2xIMX219\n* Raspberry Pi 5 + MAX96714 + 1xMAX96717 + 1xIMX219\n* Raspberry Pi 5 + MAX96716A + 2xMAX96717 + 2xIMX219\n* Raspberry Pi 5 + MAX96712 + 4xMAX96717 + 4xIMX219\n* Raspberry Pi 5 + MAX96724 + 4xMAX96717 + 4xIMX219\n* Raspberry Pi 5 + MAX96792A + 1xMAX96793 + 1xMAX96717 + 2xIMX219\n* Raspberry Pi 5 + MAX96792A + 2xMAX96717 + 2xIMX219\n* Renesas V4H + MAX96712 + 2xMAX96717 + 2xIMX219\n\nAnalog Devices is taking responsibility for the maintenance of these\ndrivers and common framework, and plans to add support for new\nbroad-market chips on top of them.\n\nSpecial thanks go to Tomi Valkeinen <\ntomi.valkeinen+renesas@ideasonboard.com>\nfor testing the drivers, helping debug and coming up with ideas /\nimplementations for various features.\n\nv10:\n* dt-bindings: add control-channel property\n* max96724: add configurable control-channel port selection\n* max-ser/max-des: fix VIDIOC_SUBDEV_G/S_FMT, detect ~0U format\n (v4l2-test-subdevs.cpp:448: s_fmt.format.code == ~0U)\n* max-ser/max-des: fix VIDIOC_SUBDEV_G/S_FRAME_INTERVAL fail:\n\t add max_(ser/des)_get_frame_interval returning -ENOTTY\n\tfor non-TPG pads and streams\n (v4l2-test-subdevs.cpp:302: node->enum_frame_interval_pad != (int)pad)\n\nV9:\n* split max_des_ops into *_info and *_ops\n* use read_poll_timeout macro in *_wait_for_device()\n* return read_poll_timeout error -ETIMEDOUT in *_wait_for_device()\n* remove use_atr duplicate from max9296a_chip_info, present in max_des_info\n* fix max9296a DPLL register offset\n* fix C-PHY DPLL frequency in max9296a and max96724\n    reported by: Cory Keitz <ckeitz@amazon.com>\n* use MAX9296A_COMMON_INFO and MAX9296A_COMMON_OPS to simplify\n  probe ops init\n* fix borked patches in previous version, actually remove MAX96717 and\n  MAX96714 drivers\n\nV8:\n* max96717: use the renamed PIN_CONFIG_OUTPUT to _LEVEL\n* max96717: use the renamed set_rv ops from struct gpio_chip\n* dt-bindings: set minItems lane-polarities to 2\n* dt-bindings: \"add myself as maintainer\" commits were removed\n* max_des & max_ser: use a default format for set_routing\n* max_des & max_ser: return ENNOTTY in *_frame_interval for non-TPG pads\n\nV7:\n* dt-bindings: max9296a: use full max96717 compatible\n* max9296a: make max96714_rlms_reg_sequence static\n* explicitly include linux/bitfield.h\n* explicitly depend on I2C and PINCTRL\n* sort media_entity_operations\n* add has_pad_interdep to media_entity_operations\n\nV6:\n* max9296a: put rlms sequence in max9296a_chip_info\n* max_des: reflow stream id a comment\n* max_ser: remove exported symbols not used in other modules\n* max_ser: init mode to a supported value\n* add default routing\n* MAX_SERDES_GMSL_3 -> MAX_SERDES_GMSL_3_12GBPS\n* guard reg_read/write with CONFIG_VIDEO_ADV_DEBUG\n* put exported symbols in MAXIM_SERDES namespace\n\nV5:\n* dt-bindings: max96717: restrict RCLKOUT to pins 2 & 4\n* dt-bindings: max96717: remove confusing rclksel pinconf property\n* dt-bindings: max96717: remove maxim,gmsl-tx/rx pinconf property\n* dt-bindings: max96717: remove gmsl prefix from maxim,gmsl-tx-id/rx-id\n* dt-bindings: max96717: remove minimum: 0\n* dt-bindings: max96717: better document slew-rate\n* dt-bindings: max96717: better document maxim,jitter-compensation\n* dt-bindings: max96717: better document maxim,tx-id/rx-id\n\n* max_serdes: add default TPG values\n* max_serdes: remove MAX_MIPI_FMT macro\n* max_serdes: EXPORT_SYMBOL -> EXPORT_SYMBOL_GPL\n* max_serdes: remove EXPORT_SYMBOL_GPL from symbols not used in other\nmodules\n* max_serdes: rename symbols/macros/types to have max_serdes prefix\n* max_serdes: slim down TPG functions\n\n* max_des: fix may be used uninitialized errors\n* max_des: fix misplaced TPG validation\n* max_des: fix setting pipe PHY in tunnel mode for chips that support\nboth set_pipe_phy() and set_pipe_tunnel_phy()\n* max_des: move doubled_bpp/sink_bpps variables to usage place\n* max_des: do not dynamically control PHY enable, letting lanes be in\nLP-11 when not streaming\n* max_des: refactor get/set_pipe_stream_id() logic\n* max_des: remove explicit ret = 0\n\n* max_ser: make VC remaps not pipe-specific, allocate dynamically\n\n* max9296a: add missing 1080p30 TPG entry\n* max9296a: move BIT() left shift into macro\n* max9296a: move BIT() ternary into macro\n* max9296a: reuse max_des_ops for chip-specific ops\\\n* max9296a: document and compress RLMS register writes\n\n* max96717: restrict RCLKOUT to pins 2 & 4 because of hardware\ncapabilities\n* max96717: add support for XTAL/1, XTAL/2, XTAL/4 clocks\n* max96717: set RX_EN/TX_EN automatically\n* max96717: reorder custom pinconf flags\n* max96717: drop OF dependency\n\n* drop of_match_ptr\n* re-do some indentation\n* implement TPG pattern control\n* remove pr_info() usage\n* inline lane polarity val = 0\n* inline returns\n* rewrite some Kconfig docs\n* split up patches for easier review\n\nV4:\n* max_des: fix infinite version loop\n* max_des: fix pipe link id when there are more pipes than links\n* max_des: implement setting pipe link\n* max_des: do not pass routing to phy update\n* max_des: move GMSL version strings to max_serdes\n* max_des: split finding existing VC remap from adding a new one\n* max_des: add tracking for in-use pipes\n* max_des: skip unused pipes when finding / setting pixel/tunnel mode\n* max_des: simplify remap code\n* max_des: split set_pipe_phy() into set_pipe_tunnel_phy()\n\n* max_ser: clean up i2c_xlates printing\n* max_ser: fix changing serializer address\n* max_ser: move non-continuous mode check into max96717 driver\n\n* max96724: use regmap_set_bits for STREAM_SEL_ALL\n* max96724: match surrounding indent for MAX96724_PHY1_ALT_CLOCK\n* max96724: fix setting invalid PHY to 1 when PHY 0 is in 4-lane mode\n* max96724: remove support for setting pipe phy from max96712\n* max96724: fix setting double mode on pipes 4-7\n* max96724: drop powerdown gpios\n\n* max96717: use gpio_chip's set_rv\n\n* max9296a: switch versions to unsigned int\n* max9296a: remove parantheses from MAX9296A_MIPI_PHY18/20\n* max9296a: fix printing of PHY packet counts\n* max9296a: fix phy_hw_ids size\n\n* remove usage of cammel case in defines\n* move field_get/prep to max_serdes.h\n* rework stream id setup\n* rework tunnel/pixel mode finding\n* rework bpps retrieval\n* pass whole subdev state around\n* add helper for retrieving a route's hw components / frame desc\n* update pipe enable based on active routes\n* add support for tunnel-only chips and VC remaps in tunnel mode\n* simplify max_get_streams_masks()\n* add support for TPG\n\nV3:\n* dt-bindings: drop reflow text patches\n\n* dt-bindings: max96717: move pinctrl configuration into main file\n* dt-bindings: max96717: allow a single level of pins configuration\n* dt-bindings: max96717: use regex for matching pins nodes\n* dt-bindings: max96717: drop extra allOf in pinctrl configuration\n* dt-bindings: max96717: fix i2c-atr channel name regex\n* dt-bindings: max96717: limit pinctrl functions to gpio / rclkout\n* dt-bindings: max96717: limit pins for gpio / rclkout\n* dt-bindings: max96717: add description for bias-pull-up/down\n* dt-bindings: max96717: require pins and function properties\n* dt-bindings: max96717: turn single compatible strings into an enum\n\n* dt-bindings: max9296a: include indices in port descriptions\n* dt-bindings: max9296a: remove property-less schema from input ports\n* dt-bindings: max9296a: use ATR for MAX96716A too, removing MUX entirely\n\n* dt-bindings: max96712: include indices in port descriptions\n* dt-bindings: max96712: deprecate enable-gpios in favor of powerdown-gpios\n* dt-bindings: max96712: switch from MUX to ATR\n\n* dt-bindings: max96714: add support for MAX96714R\n\n* max_des: fix POC NULL check\n* max_des: remove index var in POC enable\n* max_des: fix writing empty remaps\n* max_des: skip mode setting in tunnel mode\n* max_des: remove a duplicate source->sd NULL check\n* max_des: set pipe tunnel mode even for disabled links\n\n* max_ser: apply TX ID changes irrespective of serializer ID\n\n* max9296a: fix typo in BACKTOP22\n* max9296a: make register macros more consistent\n* max9296a: switch MAX96716 from MUX to ATR\n* max9296a: deduplicate max9296a_phy_id() logic\n* max9296a: use proper PHY id in remaps\n* max9296a: fix DPLL reset clear\n* max9296a: limit MAX96714F to GMSL2 3Gbps\n* max9296a: add support for MAX96714R\n* max9296a: do not write GMSL3 link select registers in GMSL2 devices\n* max9296a: use field_prep when setting RX_RATE\n* max9296a: simplify setting SEL_STREAM for MAX96714\n* max9296a: max96716_set_pipe_phy -> max96716a_set_pipe_phy\n* max9296a: fix off-by-one in lane polarity when using\npolarity_on_physical_lanes\n\n* max96724: fix typo in BACKTOP22\n* max96724: switch from MUX to ATR\n* max96724: add support for powerdown GPIO\n* max96724: remove support for tunneling from MAX96712\n* max96724: only set tunnel-related bits when in tunnel mode\n* max96724: add support for MAX96724F/R\n* max96724: oneshot reset links after link selection\n\n* remove GMSL2 version defaults, set all supported versions explicitly\n* reorder GMSL versions to start from 0\n* add support for GMSL2 3Gbps\n* support GMSL version finding for devices using MUX / GATE\n* add support for deserializers which don't have individual control\nof each link's GMSL version\n* add support for deserializers that need unique stream ids across all\nserializers\n* select_link_version -> set_link_version\n* select_resets_link -> use_atr\n\nV2:\n* add missing compatible for MAX96717F\n* fix embarrassing dt-bindings mistakes\n* move MAX9296A/MAX96716/MAX96792A to a separate file as they have two\nlinks / PHYs, and adding those conditionally seems impossible\n\n---\nTo: Tomi Valkeinen <tomi.valkeinen+renesas@ideasonboard.com>\nTo: Mauro Carvalho Chehab <mchehab@kernel.org>\nTo: Sakari Ailus <sakari.ailus@linux.intel.com>\nTo: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nTo: Julien Massot <julien.massot@collabora.com>\nTo: Rob Herring <robh@kernel.org>\nTo: Niklas Söderlund <niklas.soderlund@ragnatech.se>\nTo: Greg Kroah-Hartman <gregkh@linuxfoundation.org>\nTo: Cosmin Tanislav <cosmin.tanislav@analog.com>\nCc: mitrutzceclan@gmail.com\nCc: linux-media@vger.kernel.org\nCc: linux-kernel@vger.kernel.org\nCc: devicetree@vger.kernel.org\nCc: linux-staging@lists.linux.dev\nCc: linux-gpio@vger.kernel.org\nCc: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>\nCc: Martin Hecht <Martin.Hecht@avnet.eu>\n\n---\nCosmin Tanislav (20):\n      dt-bindings: media: i2c: max96717: add support for I2C ATR\n      dt-bindings: media: i2c: max96717: add support for pinctrl/pinconf\n      dt-bindings: media: i2c: max96717: add support for MAX9295A\n      dt-bindings: media: i2c: max96717: add support for MAX96793\n      dt-bindings: media: i2c: max96712: use pattern properties for ports\n      dt-bindings: media: i2c: max96712: add support for I2C ATR\n      dt-bindings: media: i2c: max96712: add support for POC supplies\n      dt-bindings: media: i2c: max96712: add support for MAX96724F/R\n      dt-bindings: media: i2c: max96714: add support for MAX96714R\n      dt-bindings: media: i2c: add MAX9296A, MAX96716A, MAX96792A\n      media: i2c: add Maxim GMSL2/3 serializer and deserializer framework\n      media: i2c: add Maxim GMSL2/3 serializer framework\n      media: i2c: add Maxim GMSL2/3 deserializer framework\n      media: i2c: maxim-serdes: add MAX96717 driver\n      media: i2c: maxim-serdes: add MAX96724 driver\n      media: i2c: maxim-serdes: add MAX9296A driver\n      arm64: defconfig: disable deprecated MAX96712 driver\n      staging: media: remove MAX96712 driver\n      media: i2c: remove MAX96717 driver\n      media: i2c: remove MAX96714 driver\n\nDumitru Ceclan (1):\n      dt-bindings: media: i2c: max96712: add control-channel-port property\n\nSakari Ailus (1):\n      media: mc: Add INTERNAL pad flag\n\n .../bindings/media/i2c/maxim,max9296a.yaml         |  242 ++\n .../bindings/media/i2c/maxim,max96712.yaml         |   73 +-\n .../bindings/media/i2c/maxim,max96714.yaml         |    5 +-\n .../bindings/media/i2c/maxim,max96717.yaml         |  154 +-\n .../userspace-api/media/mediactl/media-types.rst   |    9 +\n MAINTAINERS                                        |   10 +-\n arch/arm64/configs/defconfig                       |    1 -\n drivers/media/i2c/Kconfig                          |   34 +-\n drivers/media/i2c/Makefile                         |    3 +-\n drivers/media/i2c/max96714.c                       | 1017 -------\n drivers/media/i2c/max96717.c                       | 1102 -------\n drivers/media/i2c/maxim-serdes/Kconfig             |   60 +\n drivers/media/i2c/maxim-serdes/Makefile            |    6 +\n drivers/media/i2c/maxim-serdes/max9296a.c          | 1358 +++++++++\n drivers/media/i2c/maxim-serdes/max96717.c          | 1686 ++++++++++\n drivers/media/i2c/maxim-serdes/max96724.c          | 1261 ++++++++\n drivers/media/i2c/maxim-serdes/max_des.c           | 3205 ++++++++++++++++++++\n drivers/media/i2c/maxim-serdes/max_des.h           |  156 +\n drivers/media/i2c/maxim-serdes/max_ser.c           | 2155 +++++++++++++\n drivers/media/i2c/maxim-serdes/max_ser.h           |  147 +\n drivers/media/i2c/maxim-serdes/max_serdes.c        |  413 +++\n drivers/media/i2c/maxim-serdes/max_serdes.h        |  183 ++\n drivers/media/mc/mc-entity.c                       |   15 +-\n drivers/staging/media/Kconfig                      |    2 -\n drivers/staging/media/Makefile                     |    1 -\n drivers/staging/media/max96712/Kconfig             |   14 -\n drivers/staging/media/max96712/Makefile            |    2 -\n drivers/staging/media/max96712/max96712.c          |  487 ---\n include/uapi/linux/media.h                         |    1 +\n 29 files changed, 11116 insertions(+), 2686 deletions(-)\n---\nbase-commit: a15a902a91b78f1544760fb52ef0151f83815f81\nchange-id: 20251107-gmsl2-3_serdes-3f2b885209c3\n\nBest regards,"
}