get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2218275/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2218275,
    "url": "http://patchwork.ozlabs.org/api/patches/2218275/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260331-aoa-i2sbus-clear-stale-active-v2-1-3764ae2889a1@gmail.com/",
    "project": {
        "id": 2,
        "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api",
        "name": "Linux PPC development",
        "link_name": "linuxppc-dev",
        "list_id": "linuxppc-dev.lists.ozlabs.org",
        "list_email": "linuxppc-dev@lists.ozlabs.org",
        "web_url": "https://github.com/linuxppc/wiki/wiki",
        "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git",
        "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/",
        "list_archive_url": "https://lore.kernel.org/linuxppc-dev/",
        "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/",
        "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}"
    },
    "msgid": "<20260331-aoa-i2sbus-clear-stale-active-v2-1-3764ae2889a1@gmail.com>",
    "list_archive_url": "https://lore.kernel.org/linuxppc-dev/20260331-aoa-i2sbus-clear-stale-active-v2-1-3764ae2889a1@gmail.com/",
    "date": "2026-03-31T21:14:04",
    "name": "[v2] ALSA: aoa: i2sbus: clear stale prepared state",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "9781f1a046afc45ef4eb5bd2561cb4e9f52995d6",
    "submitter": {
        "id": 93004,
        "url": "http://patchwork.ozlabs.org/api/people/93004/?format=api",
        "name": "Cássio Gabriel",
        "email": "cassiogabrielcontato@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260331-aoa-i2sbus-clear-stale-active-v2-1-3764ae2889a1@gmail.com/mbox/",
    "series": [
        {
            "id": 498252,
            "url": "http://patchwork.ozlabs.org/api/series/498252/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=498252",
            "date": "2026-03-31T21:14:04",
            "name": "[v2] ALSA: aoa: i2sbus: clear stale prepared state",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/498252/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2218275/comments/",
    "check": "success",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218275/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <linuxppc-dev+bounces-19114-incoming=patchwork.ozlabs.org@lists.ozlabs.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "linuxppc-dev@lists.ozlabs.org"
        ],
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=dTM1ZEC0;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=112.213.38.117; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-19114-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)",
            "lists.ozlabs.org;\n arc=none smtp.remote-ip=\"2607:f8b0:4864:20::132b\"",
            "lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com",
            "lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=dTM1ZEC0;\n\tdkim-atps=neutral",
            "lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gmail.com\n (client-ip=2607:f8b0:4864:20::132b; helo=mail-dy1-x132b.google.com;\n envelope-from=cassiogabrielcontato@gmail.com; receiver=lists.ozlabs.org)"
        ],
        "Received": [
            "from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1 raw public key)\n server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4flgq93f24z1yCp\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 08:14:28 +1100 (AEDT)",
            "from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4flgq61L1bz2xQs;\n\tWed, 01 Apr 2026 08:14:26 +1100 (AEDT)",
            "from mail-dy1-x132b.google.com (mail-dy1-x132b.google.com\n [IPv6:2607:f8b0:4864:20::132b])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4flgq50P62z2xLt\n\tfor <linuxppc-dev@lists.ozlabs.org>; Wed, 01 Apr 2026 08:14:24 +1100 (AEDT)",
            "by mail-dy1-x132b.google.com with SMTP id\n 5a478bee46e88-2c6f5574d3cso197939eec.0\n        for <linuxppc-dev@lists.ozlabs.org>;\n Tue, 31 Mar 2026 14:14:23 -0700 (PDT)",
            "from [192.168.1.8] (177-4-161-218.user3p.v-tal.net.br.\n [177.4.161.218])\n        by smtp.gmail.com with ESMTPSA id\n a92af1059eb24-12ab97cb08csm17870444c88.3.2026.03.31.14.14.18\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Tue, 31 Mar 2026 14:14:21 -0700 (PDT)"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1774991666;\n\tcv=none;\n b=hUS7M9dQEf0yZh1cCoW0nTWjHY5hkvBz6F37JvOyiROjnRBfqj8WUIZrkqTiUi8FG02WwEBERhtRLww3RcF9OtX7ujyj1CuwY5syWsOlGyPp2AfzkFUPXYUzf48JldbgHT2R8RF5U/EzxhufgPkatdqgnJdA1rKzl/ZlM+QE3mvgtSUq5jrS39TgluTqREDzfBWR/EHd1oPn0d4jPECINKBwMfGyRin034gHenXnG1hv6G55IQLVt2N4nGZGSy4s3+cNbMLlniyIQp2mjJ6vhbdNv6pv384mlhal5MLCi8uAPS9H0CjS5eytT2szmBuz4GJmfVfgGqVM93WT69y98g==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1774991666; c=relaxed/relaxed;\n\tbh=BP58qPqPxGlCUhciznkv7Din9R33uAXsesYeu9BIBzw=;\n\th=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc;\n b=KSvipElV/nJa0csWvXAy3LKO/tlOgBiLQfqjxQGOAQcY+i5DApB/GGfPdH0Vu3gZ3kQUph/0Rg2FIAaEZM/Y5r+WkiU13apy7iNJf3bIKE/TVe+LycEXLiaQjShlVhGAtGa8i1MDCKtGr99eYRlcQXq4+VaLlzE6/Q7FnSJP0TCQGL9hP0dny3o41BiVURflw6FlUan02ZcVOTACnlwBqdVsrwPPpIXf2uDBsNcLErASit1l8vjNWJxi3eLVRoe1ukmdDIr1494/1c0R8wiA4Y+bbG1gU2fjRS4JP+kPJkUsOW8h8FlRlTmXT1VaubRSINHNHMBRZT8tJj2tqeCnhg==",
        "ARC-Authentication-Results": "i=1; lists.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com; dkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=dTM1ZEC0; dkim-atps=neutral;\n spf=pass (client-ip=2607:f8b0:4864:20::132b; helo=mail-dy1-x132b.google.com;\n envelope-from=cassiogabrielcontato@gmail.com;\n receiver=lists.ozlabs.org) smtp.mailfrom=gmail.com",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=gmail.com; s=20251104; t=1774991661; x=1775596461;\n darn=lists.ozlabs.org;\n        h=cc:to:message-id:content-transfer-encoding:mime-version:subject\n         :date:from:from:to:cc:subject:date:message-id:reply-to;\n        bh=BP58qPqPxGlCUhciznkv7Din9R33uAXsesYeu9BIBzw=;\n        b=dTM1ZEC0GUeFbeD6DWEL8ptd6Hc+tQA7FNY/uP5vcB7K0jIT4GmAFTdo2nx3WcVA3o\n         AEwnKXUITNH2/tj2OZFfFL0g2j04m3h7pTt+e3G/rxcZcvC99zItzm61Kp+1MiPB5OQx\n         fIXGRsbH355qAncqE65JVC4jsW1r24+mv7HcLLpfapv9oI726RliyWz3WKFWJCPqceHw\n         e9PslsqPeEQ39naWxkqGSqzcL7Xg456aPXHHKWfGOk1ZIJUNGOt7j098io3D8qR7tGEH\n         aAnae3kBgpwxwl3UPVkc1u0PVe06Vk8LVrdX5EfSUAufD1sy17aP/pilOkIkQsgzHOeP\n         vkrw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1774991661; x=1775596461;\n        h=cc:to:message-id:content-transfer-encoding:mime-version:subject\n         :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n         :message-id:reply-to;\n        bh=BP58qPqPxGlCUhciznkv7Din9R33uAXsesYeu9BIBzw=;\n        b=YJYiIbyabRjInQQol3Sjf+qCe31LBbVPT6CWt0wm9lht6urivmEdXee2EyLn4S0WlU\n         bN4Xh7zDe45qAO42isCcnpeNfS36LZsKT0x7dET+VHr59aqTnoWq84FbZ8MJjeHJjExu\n         qaUCQFaCkcIxTWYfALcOXSy0pPpsb2e5/nd20BaZYVl0X33HraPchjtzfYQiVupSaSAO\n         4BpWNqBXe2bbUiLvfXg/UmkM5jm5O23BBiiHeQPoEcUQ2TqldNQhnKALxhGiHHWTEJ6E\n         bguPgW3W4bQVOdrENB9DzHWIerNGNkkU03vQgqKNrYuB+5jSUOk7DSQ48+CmivRSPkLS\n         2G8A==",
        "X-Gm-Message-State": "AOJu0YwwhclQQy7I1ADoxTMbEW9a9kGT9u6GVHJnBhLu/TEPQTJH6i2E\n\t+NTC3Gfujhoq7/vwIx84LGdr3oPceUjSGnVlgivMvpadAy7KJgI2QLGm",
        "X-Gm-Gg": "ATEYQzyqrvurdMxLhCQMv8eus+CE+HBogqsXYw57hVVCHYIOm1ziC488qIXSW2FcVbh\n\th6pkR3UcVnLVaLgqPlq/NNvAZ/qtXCKIBPYj+SpcECUqhz9IL5EDE0+bO2qB1VQq5jfC0HPVCre\n\thhpnOje712caYgVl2EUb5M/GbKGHFSY2Eqax1uNAHTXZO/bvCzZcaqTTgIupYg6Y7M/uswTyc/C\n\tcj2c/IdACZhq1nKYDC4C+dESV147HKQU8Z5akboibWm+O8IB/Ar6zzC+7aCrL8fr5SmsrWBwLQA\n\t/WJQoSPFuXdFwAJz/ZWkEdVn+ffEqz8dmfUsHe+sYr4Aoxnq23G0luw7XEbigf1HlOcXE0Uzqum\n\tIg7Z/dkM76J1V+fTEt12rv676WmWJZ0OCuXh5sT+MMmuAhhqcYjAx1pu/z51UYVUBCQamrJJCPU\n\tMEQbm6+yAjhBnRFjL6wwJFrs387yqwkcANK84JfKtygdfNuoS+Xlrdvi/2Xmv7czNa0W5QZ8cqh\n\tXU=",
        "X-Received": "by 2002:a05:7022:f10e:b0:12a:8122:24a9 with SMTP id\n a92af1059eb24-12bde008650mr2430073c88.22.1774991661386;\n        Tue, 31 Mar 2026 14:14:21 -0700 (PDT)",
        "From": "=?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>",
        "Date": "Tue, 31 Mar 2026 18:14:04 -0300",
        "Subject": "[PATCH v2] ALSA: aoa: i2sbus: clear stale prepared state",
        "X-Mailing-List": "linuxppc-dev@lists.ozlabs.org",
        "List-Id": "<linuxppc-dev.lists.ozlabs.org>",
        "List-Help": "<mailto:linuxppc-dev+help@lists.ozlabs.org>",
        "List-Owner": "<mailto:linuxppc-dev+owner@lists.ozlabs.org>",
        "List-Post": "<mailto:linuxppc-dev@lists.ozlabs.org>",
        "List-Archive": "<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>",
        "List-Subscribe": "<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>",
        "List-Unsubscribe": "<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>",
        "Precedence": "list",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "8bit",
        "Message-Id": "\n <20260331-aoa-i2sbus-clear-stale-active-v2-1-3764ae2889a1@gmail.com>",
        "X-B4-Tracking": "v=1; b=H4sIAAAAAAAC/4WOyw6CMBBFf4V07ZjSEgiu/A/DYhgGGcPDtKXRE\n P5dQPcuT3Jzzl2UZyfs1SVZlOMoXqZxA3NKFHU43hmk2VgZbXJtTQk4IYjx9eyBekYHPmDPgBQ\n kMmSNrQudE2lu1eZ4Om7ldfhv1Zf9XD+Ywi7dF534MLn3cSCm++7XsvpPK6aQQlZgThotUsnX+\n 4DSn2kaVLWu6webS2Hb3AAAAA==",
        "X-Change-ID": "20260329-aoa-i2sbus-clear-stale-active-4d3b706cc0ef",
        "To": "Takashi Iwai <tiwai@suse.com>, Jaroslav Kysela <perex@perex.cz>,\n Johannes Berg <johannes@sipsolutions.net>",
        "Cc": "linuxppc-dev@lists.ozlabs.org, linux-sound@vger.kernel.org,\n  linux-kernel@vger.kernel.org, kernel test robot <lkp@intel.com>,\n  stable@vger.kernel.org,\n =?utf-8?q?C=C3=A1ssio_Gabriel?= <cassiogabrielcontato@gmail.com>",
        "X-Mailer": "b4 0.15.1",
        "X-Developer-Signature": "v=1; a=openpgp-sha256; l=6526;\n i=cassiogabrielcontato@gmail.com; h=from:subject:message-id;\n bh=cEbTkyoIGc+4FGvanw1ToTAF9VBzhvD48F9X5JgbIgU=;\n b=owGbwMvMwCV2IdZeKur/u2bG02pJDJlnLFU7quq+64lsub+v5Efv3SXNjJbfvlywyZl1w2XvT\n qPskm7djlIWBjEuBlkxRZbVSYss93Q9uFoft8IDZg4rE8gQBi5OAZhI5FVGhqeX3GLnHpsxTfYF\n c0DFpQjOiFxGueJDc5Yc9N2/X1lqkz4jw1QTy3O+6T8r5e1eHJyyobzJ/OCXjV+KzIraWB/bL7o\n uygoA",
        "X-Developer-Key": "i=cassiogabrielcontato@gmail.com; a=openpgp;\n fpr=AB62A239BC8AE0D57F5EA848D05D3F1A5AFFEE83",
        "X-Spam-Status": "No, score=-0.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID,\n\tDKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,\n\tSPF_HELO_NONE,SPF_PASS autolearn=disabled version=4.0.1 OzLabs 8",
        "X-Spam-Checker-Version": "SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"
    },
    "content": "The i2sbus PCM code uses pi->active to constrain the sibling stream to\nan already prepared duplex format and rate in i2sbus_pcm_open().\n\nThat state is set from i2sbus_pcm_prepare(), but the current code only\nclears it on close. As a result, the sibling stream can inherit stale\nconstraints after the prepared state has been torn down.\n\nClear pi->active when hw_params() or hw_free() tears down the prepared\nstate, and set it again only after prepare succeeds.\n\nReplace the stale FIXME in the duplex constraint comment with a description\nof the current driver behavior: i2sbus still programs a single shared\ntransport configuration for both directions, so mixed formats are not\nsupported in duplex mode.\n\nReported-by: kernel test robot <lkp@intel.com>\nCloses: https://lore.kernel.org/oe-kbuild-all/202604010125.AvkWBYKI-lkp@intel.com/\nFixes: f3d9478b2ce4 (\"[ALSA] snd-aoa: add snd-aoa\")\nCc: stable@vger.kernel.org\nSigned-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>\n---\nChanges in v2:\n- Drop the extra clear of pi->active at the beginning of i2sbus_pcm_prepare()\n- Keep the state reset in hw_params() and hw_free() only.\n- Fix the newly added .hw_params callbacks to use the proper ALSA prototype\n  with struct snd_pcm_hw_params *params, addressing the kernel test robot\n  build failure.\n- Update the changelog to match the reduced scope of the fix.\n- Link to v1: https://patch.msgid.link/20260330-aoa-i2sbus-clear-stale-active-v1-1-47a6c0a3ac9e@gmail.com\n---\n sound/aoa/soundbus/i2sbus/pcm.c | 55 ++++++++++++++++++++++++++++++++---------\n 1 file changed, 44 insertions(+), 11 deletions(-)\n\n\n---\nbase-commit: 5a8ba15bcbf0cd70cc89d1e1a3d4037b2ab5ccdd\nchange-id: 20260329-aoa-i2sbus-clear-stale-active-4d3b706cc0ef\n\nBest regards,\n--  \nCássio Gabriel <cassiogabrielcontato@gmail.com>",
    "diff": "diff --git a/sound/aoa/soundbus/i2sbus/pcm.c b/sound/aoa/soundbus/i2sbus/pcm.c\nindex 97c807e67d56..63004ece94f9 100644\n--- a/sound/aoa/soundbus/i2sbus/pcm.c\n+++ b/sound/aoa/soundbus/i2sbus/pcm.c\n@@ -165,17 +165,16 @@ static int i2sbus_pcm_open(struct i2sbus_dev *i2sdev, int in)\n \t * currently in use (if any). */\n \thw->rate_min = 5512;\n \thw->rate_max = 192000;\n-\t/* if the other stream is active, then we can only\n-\t * support what it is currently using.\n-\t * FIXME: I lied. This comment is wrong. We can support\n-\t * anything that works with the same serial format, ie.\n-\t * when recording 24 bit sound we can well play 16 bit\n-\t * sound at the same time iff using the same transfer mode.\n+\t/* If the other stream is already prepared, keep this stream\n+\t * on the same duplex format and rate.\n+\t *\n+\t * i2sbus_pcm_prepare() still programs one shared transport\n+\t * configuration for both directions, so mixed duplex formats\n+\t * are not supported here.\n \t */\n \tif (other->active) {\n-\t\t/* FIXME: is this guaranteed by the alsa api? */\n \t\thw->formats &= pcm_format_to_bits(i2sdev->format);\n-\t\t/* see above, restrict rates to the one we already have */\n+\t\t/* Restrict rates to the one already in use. */\n \t\thw->rate_min = i2sdev->rate;\n \t\thw->rate_max = i2sdev->rate;\n \t}\n@@ -283,6 +282,23 @@ void i2sbus_wait_for_stop_both(struct i2sbus_dev *i2sdev)\n }\n #endif\n \n+static void i2sbus_pcm_clear_active(struct i2sbus_dev *i2sdev, int in)\n+{\n+\tstruct pcm_info *pi;\n+\n+\tguard(mutex)(&i2sdev->lock);\n+\n+\tget_pcm_info(i2sdev, in, &pi, NULL);\n+\tpi->active = 0;\n+}\n+\n+static inline int i2sbus_hw_params(struct snd_pcm_substream *substream,\n+\t\t\t\t   struct snd_pcm_hw_params *params, int in)\n+{\n+\ti2sbus_pcm_clear_active(snd_pcm_substream_chip(substream), in);\n+\treturn 0;\n+}\n+\n static inline int i2sbus_hw_free(struct snd_pcm_substream *substream, int in)\n {\n \tstruct i2sbus_dev *i2sdev = snd_pcm_substream_chip(substream);\n@@ -291,14 +307,27 @@ static inline int i2sbus_hw_free(struct snd_pcm_substream *substream, int in)\n \tget_pcm_info(i2sdev, in, &pi, NULL);\n \tif (pi->dbdma_ring.stopping)\n \t\ti2sbus_wait_for_stop(i2sdev, pi);\n+\ti2sbus_pcm_clear_active(i2sdev, in);\n \treturn 0;\n }\n \n+static int i2sbus_playback_hw_params(struct snd_pcm_substream *substream,\n+\t\t\t\t     struct snd_pcm_hw_params *params)\n+{\n+\treturn i2sbus_hw_params(substream, params, 0);\n+}\n+\n static int i2sbus_playback_hw_free(struct snd_pcm_substream *substream)\n {\n \treturn i2sbus_hw_free(substream, 0);\n }\n \n+static int i2sbus_record_hw_params(struct snd_pcm_substream *substream,\n+\t\t\t\t   struct snd_pcm_hw_params *params)\n+{\n+\treturn i2sbus_hw_params(substream, params, 1);\n+}\n+\n static int i2sbus_record_hw_free(struct snd_pcm_substream *substream)\n {\n \treturn i2sbus_hw_free(substream, 1);\n@@ -335,7 +364,6 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)\n \t\treturn -EINVAL;\n \n \truntime = pi->substream->runtime;\n-\tpi->active = 1;\n \tif (other->active &&\n \t    ((i2sdev->format != runtime->format)\n \t     || (i2sdev->rate != runtime->rate)))\n@@ -444,9 +472,11 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)\n \n \t/* early exit if already programmed correctly */\n \t/* not locking these is fine since we touch them only in this function */\n-\tif (in_le32(&i2sdev->intfregs->serial_format) == sfr\n-\t && in_le32(&i2sdev->intfregs->data_word_sizes) == dws)\n+\tif (in_le32(&i2sdev->intfregs->serial_format) == sfr &&\n+\t    in_le32(&i2sdev->intfregs->data_word_sizes) == dws) {\n+\t\tpi->active = 1;\n \t\treturn 0;\n+\t}\n \n \t/* let's notify the codecs about clocks going away.\n \t * For now we only do mastering on the i2s cell... */\n@@ -484,6 +514,7 @@ static int i2sbus_pcm_prepare(struct i2sbus_dev *i2sdev, int in)\n \t\tif (cii->codec->switch_clock)\n \t\t\tcii->codec->switch_clock(cii, CLOCK_SWITCH_SLAVE);\n \n+\tpi->active = 1;\n \treturn 0;\n }\n \n@@ -728,6 +759,7 @@ static snd_pcm_uframes_t i2sbus_playback_pointer(struct snd_pcm_substream\n static const struct snd_pcm_ops i2sbus_playback_ops = {\n \t.open =\t\ti2sbus_playback_open,\n \t.close =\ti2sbus_playback_close,\n+\t.hw_params =\ti2sbus_playback_hw_params,\n \t.hw_free =\ti2sbus_playback_hw_free,\n \t.prepare =\ti2sbus_playback_prepare,\n \t.trigger =\ti2sbus_playback_trigger,\n@@ -796,6 +828,7 @@ static snd_pcm_uframes_t i2sbus_record_pointer(struct snd_pcm_substream\n static const struct snd_pcm_ops i2sbus_record_ops = {\n \t.open =\t\ti2sbus_record_open,\n \t.close =\ti2sbus_record_close,\n+\t.hw_params =\ti2sbus_record_hw_params,\n \t.hw_free =\ti2sbus_record_hw_free,\n \t.prepare =\ti2sbus_record_prepare,\n \t.trigger =\ti2sbus_record_trigger,\n",
    "prefixes": [
        "v2"
    ]
}