From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754822AbdERBk5 (ORCPT ); Wed, 17 May 2017 21:40:57 -0400 Received: from relmlor3.renesas.com ([210.160.252.173]:8732 "EHLO relmlie2.idc.renesas.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753845AbdERBky (ORCPT ); Wed, 17 May 2017 21:40:54 -0400 X-IronPort-AV: E=Sophos;i="5.38,356,1491231600"; d="scan'208";a="244224618" Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none;kernel.org; dmarc=none action=none header.from=renesas.com; Message-ID: <877f1fosji.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto Subject: [PATCH 5/5] drm: dw-hdmi-i2s: add .get_dai_id callback for ALSA SoC User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown , Archit Taneja CC: Linux-ALSA , Simon , , David Airlie , Laurent Pinchart , Russell King , Jose Abreu , , In-Reply-To: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> References: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset="US-ASCII" Date: Thu, 18 May 2017 01:40:47 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: HK2PR02CA0020.apcprd02.prod.outlook.com (2a01:111:e400:a429::30) To PS1PR0601MB1882.apcprd06.prod.outlook.com (2603:1096:803:8::20) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PS1PR0601MB1882: X-MS-Office365-Filtering-Correlation-Id: 012ac6fc-f7a1-472b-06b4-08d49d8ee95c X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081)(201703131423075)(201703031133081);SRVR:PS1PR0601MB1882; X-Microsoft-Exchange-Diagnostics: 1;PS1PR0601MB1882;3:XWaYL29vNwG1aJ4GxJ43a0VnjeE85PzHqMd6QzhNQAdKR4BqaLlhKzsRPD/XDEIv7mBCvRRGWq6yITtBjEKuQs8u5n7OS2/6ZjoPpMvtywVtu+QbBsMNdESKTDUoz/P/0VS1Jag+m7yBjHOounuUHy2uDKrFKs9tJoH216CI95AE2hrJ/yoLk/yK+9rMLDO3k7wCLDs4gUlb89abXCfxX6Se0rfUC+DkQ8sHJQg01aIg/dUqLtJ7CFNyxV610CO/WcBUsi7V2t1ZLfeBLoFTquf543NC/tkeZ9xSzFz97HpvxNu8Gsdo23Ry/1R+nGDSETTRBp9G2VLlWwhtfQC3NYM9Z+a8aI6pS+juG5aVEI0=;25:KKcbfw+OQ1nvQukZkXG+iBSy/gbD3U4/UFU6kQ5JvW7AaJAY9d6Bs//l6Oqd94oWaHbL0L9/ROeKlfZFm8TX0lwKnu7EnKaz7YnGQufC2R0dDm27FSwO65gta2Gj9fW8vWs8uQuOyk6Jki+VL8sx4qsb5qyTPQpbv07gygSkyTjhc+lSgcjOuphiA1bNuGqNNHnNdtBf56XAmApxXsnIvjxVoQcc8bZih3jQ8TnhwXmJGSWAt22eFtXz1VBOXVHtQ8vI3hJ+fkeyrIRt3YVR5H4ck0xvQw+eJLENzjedT9jA05vNWi9OGrJA6qsNsmQGsh+XuTM8xXXvW5Fcjd3ZrAEayIvEpRbjKnI52fw9gp+Y4txvORcJmcsbNhmR95G9eZ5IMhntNZdx7uksoHFWlR6HKo/cX96WlofH7XAdD0Mm5e4K6Kx8Jt1t2UhcVV4l5cf6WZV2vmWrw+NKKyMfChM0msnD5SKj5IvfxH3n0jU= X-Microsoft-Exchange-Diagnostics: 1;PS1PR0601MB1882;31:KL2BugxMj5AgiB8iUtDKJlP7INjhDRIEQoqTIr2XpFZIY2nvA+ofON4w6fIIkZNENFe3By2q3z5jgPJySfhbvHrJhgL2yUUUwbWtwMcZ5zgzE/Uwt9RQ//Qa6iKOCq3X02HQ+XI5QawTPJyjDysdjSt8IcTbTN55SUZHeJk+dHLy9zDJ0mkzTt/D/Gf5PhAvuwTZkpQSt+rfKHBXFKoaHpPG1UhDmELobC4uA0XrbytPCukFVG0Audf05QGLP8jOc4OFubkwLRIux9oIJYHVZw==;20:WgnOQbhoVPg+fsTTEVSO05Z4HF36wW/CP62cI2Xh9eQXGhgGVD5S4/9T+vxdxQUJ+sibeKkVET2ASiU+0XjER+0LBdVvao7RbOfX1/FKRjxvUwr2t21twO4BqLofULyIUxsp1zi2eRx72mCcR9WMRZ01geLwz/NI8FOwAvGmbK/cdAvM+xYA+IkhGl2jls1lzVzd60N4Lsdn74AMDbkNYVY+aMRgMXe06npTtBQ+aBPN3fNWL54Tb0p+eQzzGZEo6Irtayof6swG8DIUlb2Igz3O2vcuxtdh4H16NZTzrF+JWv8ieCDeeu7nJBluYyvqcOYHbUHiVarRPyZWCh6l3Mq2CkEiTqvvjtTnIGWBrCYs7GPeYU1Mb1G1H1tV3dLerg9vWj4ZvL4z2i3lyni5H9wKVLDi2W5+y3fn9FWZTROCLMCiZbk3ot81QgirzF5VJqEmHb7m4suDaR5mpKEYl4Y8HbSD/niaHc01MpmLe6oLvlfqXDKVrSA1q9n++F5t X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148);SRVR:PS1PR0601MB1882;BCL:0;PCL:0;RULEID:;SRVR:PS1PR0601MB1882; X-Microsoft-Exchange-Diagnostics: 1;PS1PR0601MB1882;4:uakYYMDUQMu2XRVJL5mCMXygmyEgofHFXnS6oDxA/br5KfuC+GhQv7lb5/09+vqHx8jZmGKJNStQlWtrl5Cts2IYbZkf4L1oFZyyBOSyJzvhq0I3VITy9xleX36KovPbh30TVORTN+3Z/wVUGJvk2oQdFNy8fazmvFjehNMA0Xa14gzTHbz4qpNwA/Yv/22jiagyQJWfYkWzpUH3zB6/FDcR9t1JIQ9dZ4v+M4PHVsAaYR7PZiV8EamsuudAED3iF3DPJcG5a5FN7NwzLd2azorr2luxvsJeqnMTs391HoCrGUETu1cmz+KUa8SCz0SYbPP0xlDSMscvBIV50KK1179OeGWFqjj9QEi4k/QlNf9WuX8v+XQqPeNBttkipGE4Ty8L/5xYjYbYTU3dIHLtey/iZHvWzV2DMXf15jW9pl2kIbgYA0ccJNZM25hL+uSQ32bdzFLJJHQLj0iqfg7ypzyAwi5sUNPkZgL+74OZBGm7t5WBoutcp6AmMbLNBMFdBw7SxnXkcRm86RBEsr3HdFytsGbxgCVgcfnbnVw5s3HVY4JAzMqfQSVxV9w/lZ5ZYC+04ooQ/9cBTQTSqihl/I6U5QNqoonhXoxEnrnDXU7ebHW9+2YJhBgd/P6+/ENKOhX1MoNJPqGZBs+8hlRBcH/OhMXOnYihmfouU1u5wAWEZFSc/6n+v0mNCes8h9UDRqmZ4sUTl8ls1LlaSaHmHxWWGXMeP57Ih2tUh92aWQAtTTLxOSXA0osVz2HSUF6PYkq+Irswti1V4S5T5m0tMsCEaa9/fCOJmSW+SgBYGtppRs04F5mOcN7G0M+aEYDm X-Forefront-PRVS: 0311124FA9 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39400400002)(39410400002)(39450400003)(39860400002)(39840400002)(39850400002)(189998001)(83506001)(478600001)(50986999)(76176999)(54356999)(47776003)(38730400002)(7416002)(7736002)(3846002)(305945005)(23726003)(54906002)(6116002)(25786009)(5660300001)(36756003)(86362001)(6486002)(8676002)(53936002)(230783001)(4001350100001)(50466002)(4326008)(42186005)(53416004)(33646002)(66066001)(2950100002)(81166006)(142923001)(16060500001);DIR:OUT;SFP:1102;SCL:1;SRVR:PS1PR0601MB1882;H:morimoto-PC.renesas.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;PS1PR0601MB1882;23:DotmsjB/q5QetGdpmC9skp9JlTAAHDOJ8E6AeM8?= =?us-ascii?Q?8x9xmqLPb6gGLKnThcbMeQCJ283Y+v5NjIM0nyfef8qIgvma/fHS9FdliPVH?= =?us-ascii?Q?oI68b9otFXlbWGOczCVWa3ugFgHfry0BiyFOxWZyzHN6xRmBSk78KQN/YMz9?= =?us-ascii?Q?6S0VNhcyLbG5ZoOMNf+RoGc2ji9+/Kg4xEOrT1r5XLvmF3swc9puRscsbKm9?= =?us-ascii?Q?KQKI0mdhmpIbWTmoIvcH3SSl+roJioGI1KoTIby6Ej9LF8MCTUVmbCl02YCM?= =?us-ascii?Q?Tr26KyrCgiBmV/xPGbQ/l8wKnxQD166+4UMKOemeIVK8CZrLGo1+u6EKaqmB?= =?us-ascii?Q?/LzK0MX/1wRudprd72gMKz609LiQwApbtbdu/M0lo0Ji0C5+OglqnVcd60MF?= =?us-ascii?Q?5BskieH7X+FILm1/85q6s42bN9iTM2d4SDUpFbUOPT5VgNuI+yl0Nu/lQMEn?= =?us-ascii?Q?Rgn0bfm7pA3qYF+rdmSgg8H/d5u9rDsKioN1Urk/RqPBtbC1nq98u/xvl5qK?= =?us-ascii?Q?Q03F4zerx1HkI7iwWIv/jOIUQpPmGYs4Z8IjKp9lUsi7cnZXKy2+SnSzSXLy?= =?us-ascii?Q?lWy7NPT3oLHnoWvvAF0cKZsN7KEYwmK3veN7bUhqg845CYYD9V+4K6uW9aH2?= =?us-ascii?Q?wXDJdHJmnxyqtQLH2RcEiYsg6syzNSIfda06Q1+GScEpSt3mMlLvjLLACdln?= =?us-ascii?Q?PCl8d7DSL9DaUpf+xFnAmm5LEibnemW0s2FOe3dbMpctWx99cBaCAbdOjbKm?= =?us-ascii?Q?RtLWah1tCrxWsScU9Wi+dTIvDUaKyUZNMVRZwx2Deu5/KPDWqYoHAmnsRcO9?= =?us-ascii?Q?QdSXrqSoPhLS7md3+/Xy1cjaQcm/oq5UQF+FANy89f9wOc6LyYKU/DONZc5y?= =?us-ascii?Q?WV8JSTagEzTwt3e7vELlOeQuEmEqnJvI6RGgFf0Bw6JMaqguUxV40Vt6Pilq?= =?us-ascii?Q?95JXQKA+kt90wvjxpO/Sc/zhW6HTlnQiqEPq/OO6iDcRMf0y4JYuJ+KlqRdp?= =?us-ascii?Q?7nzMRJVmtoZN8XHLsPTUU80VCTepw/e0MuBsC32enjTgALwScIKBX2HOKnPQ?= =?us-ascii?Q?XTquuGN841NtBWaDgxNFNcwNlhIWXuCqp3jZhrrtzIQp6UZWwXg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;PS1PR0601MB1882;6:V66Wnvu9UUDUnE5NXbiNZJljzJLUux2D8RJPU4y1kYOQgWTQjoMDIM8MrwAXV10aSxr3ry4dFwI+PxZThbxXrKL++HAo3QxbVt5WD1X2GzG4FioWmyscqY08sX6xjiEkmvPh2PcX0z0VDJll6kHEMor2HeFGJ8xb5HsMudUd11ea2joi2bfeUpuHn7mZjyDlFXHe28ZWDfGiZq7nKSV2fhUG/y+hKmbtiPZvrx6rrup2cKTD9nxDkB80JHduHbL8Nl6QRD21sD/HZd3lvc/rybpOTVze4e3mdYKjSgDahQwCpOSHuf33WJ+S/yuSsL9vyxguHnGuo7SqqL+LYhHfRnJ4AOwV9bcHiLuS2RpQk8W+Jq6Q/fGPiCC4M0grOUndqtKby1WvITbNwsPiPIMnQSAn8LlrUGD/wUUuQEG538FX380+ESjWYQG34N2GpKVi2XhA8uPNgWwOkpEY8M+JpFUddld+QXEi2o2aM5HfSeUmCvpLZNx3JNMBEhS/TiPmZ6hMYs4K5lyV/kJDNfR9Sux2skuPZvaU5/k2tM1Tu8g=;5:LmgJROufkaj6Z6eoJtZ8WBW562yvtzTZLysi+hY+TlvlssLL8K9oF8TzcHdSGffOHaXuDwwjYh7rqisSBCLZ1FJuJgncohyHW6DE0jTbc4VhHh03ObugUN6oU2R3AtBO3ZMSQfEBb95t+bf4YjWUbw==;24:k+jw75kW55kdXXdSnjFQQi55qdvTscGMakh8Pz3r7ydG9/1/rq/rfbfcz4jYQrxpY6BAIPeDUZIWiQDBKtCfzlXi3YY+VaPwBjepTOD63LE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;PS1PR0601MB1882;7:+mkRzU7jp6/vgI+dh/VIDCQjkEFpGtmIzePSHjaNqvQThwjWMSxw01Z8Y2fJMEDo3FpG22CzvtEz79ckg8DtINLm5U/hbcarshjOC4eSSkIGdUxvA63y4HbP+Hh9cKNq007EOW+HYYQgMjPLQod8Fpeob3Tlm2cJ0nEBglCgr3Dc1WwY718Yb48fiG62zjUyOSQcs/aFJje3CUwCwIo34CQ2bWj1U9BTK4iAepnUUpgW90rWS303/UZaNMRpAv/RMxyS+/R+6+q1naBudesapUxfyj0uTIH1eds55q4Kl1/jYScBhbLhRNkQJkNnC4ocRA2SJKitKCC6PovAMYarFA==;20:RJjG8eA/55frbY2fdZub7r+nFHAwcKU1NFczgxfxANaBoVBkbDbmPvLANdYCAm2XSNBJ5G/RljAO3r8FnfWfQV1i8FPeeOpA59tqRYW0lXnJM76lstR3SlDz9roRP32kWMeQh7khwTj7rG9h0T4ZOwBfMSLJ8WJjrJyXqpJPbno= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2017 01:40:47.7519 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1882 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kuninori Morimoto ALSA SoC needs to know connected DAI ID for probing. It is not a big problem if device/driver was only for sound, but getting DAI ID will be difficult if device includes both Video/Sound, like HDMI. To solve this issue, this patch adds new .get_dai_id callback on hdmi_codec_ops. dw-hdmi-i2s will assume that HDMI sound will be connected to reg = <2>. Then, ALSA SoC side will recognized it as DAI 0 ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; /* HDMI Video IN */ }; port@1 { reg = <1>; /* HDMI OUT */ }; port@2 { reg = <2>; /* HDMI Sound IN */ }; }; Signed-off-by: Kuninori Morimoto --- .../bindings/display/bridge/renesas,dw-hdmi.txt | 9 ++++++++- drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt index f6b3f36..81b6858 100644 --- a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt +++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt @@ -25,7 +25,8 @@ Required properties: - clock-names: Shall contain "iahb" and "isfr" as defined in dw_hdmi.txt. - ports: See dw_hdmi.txt. The DWC HDMI shall have one port numbered 0 corresponding to the video input of the controller and one port numbered 1 - corresponding to its HDMI output. Each port shall have a single endpoint. + corresponding to its HDMI output, and one port numbered 2 corresponding to + sound input of the controller. Each port shall have a single endpoint. Optional properties: @@ -59,6 +60,12 @@ Example: remote-endpoint = <&hdmi0_con>; }; }; + port@2 { + reg = <2>; + rcar_dw_hdmi0_sound_in: endpoint { + remote-endpoint = <&hdmi_sound_out>; + }; + }; }; }; diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c index aaf287d..b2cf59f 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c @@ -82,9 +82,30 @@ static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data) hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0); } +static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component, + struct device_node *endpoint) +{ + struct of_endpoint of_ep; + int ret; + + ret = of_graph_parse_endpoint(endpoint, &of_ep); + if (ret < 0) + return ret; + + /* + * HDMI sound should be located as reg = <2> + * Then, it is sound port 0 + */ + if (of_ep.port == 2) + return 0; + + return -EINVAL; +} + static struct hdmi_codec_ops dw_hdmi_i2s_ops = { .hw_params = dw_hdmi_i2s_hw_params, .audio_shutdown = dw_hdmi_i2s_audio_shutdown, + .get_dai_id = dw_hdmi_i2s_get_dai_id, }; static int snd_dw_hdmi_probe(struct platform_device *pdev) -- 1.9.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kuninori Morimoto Subject: [PATCH 5/5] drm: dw-hdmi-i2s: add .get_dai_id callback for ALSA SoC Date: Thu, 18 May 2017 01:40:47 +0000 Message-ID: <877f1fosji.wl%kuninori.morimoto.gx@renesas.com> References: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> Mime-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset="US-ASCII" Return-path: In-Reply-To: <87efvnosnb.wl%kuninori.morimoto.gx@renesas.com> Sender: linux-renesas-soc-owner@vger.kernel.org To: Mark Brown , Archit Taneja Cc: Linux-ALSA , Simon , linux-renesas-soc@vger.kernel.org, David Airlie , Laurent Pinchart , Russell King , Jose Abreu , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: alsa-devel@alsa-project.org From: Kuninori Morimoto ALSA SoC needs to know connected DAI ID for probing. It is not a big problem if device/driver was only for sound, but getting DAI ID will be difficult if device includes both Video/Sound, like HDMI. To solve this issue, this patch adds new .get_dai_id callback on hdmi_codec_ops. dw-hdmi-i2s will assume that HDMI sound will be connected to reg = <2>. Then, ALSA SoC side will recognized it as DAI 0 ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; /* HDMI Video IN */ }; port@1 { reg = <1>; /* HDMI OUT */ }; port@2 { reg = <2>; /* HDMI Sound IN */ }; }; Signed-off-by: Kuninori Morimoto --- .../bindings/display/bridge/renesas,dw-hdmi.txt | 9 ++++++++- drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt index f6b3f36..81b6858 100644 --- a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt +++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt @@ -25,7 +25,8 @@ Required properties: - clock-names: Shall contain "iahb" and "isfr" as defined in dw_hdmi.txt. - ports: See dw_hdmi.txt. The DWC HDMI shall have one port numbered 0 corresponding to the video input of the controller and one port numbered 1 - corresponding to its HDMI output. Each port shall have a single endpoint. + corresponding to its HDMI output, and one port numbered 2 corresponding to + sound input of the controller. Each port shall have a single endpoint. Optional properties: @@ -59,6 +60,12 @@ Example: remote-endpoint = <&hdmi0_con>; }; }; + port@2 { + reg = <2>; + rcar_dw_hdmi0_sound_in: endpoint { + remote-endpoint = <&hdmi_sound_out>; + }; + }; }; }; diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c index aaf287d..b2cf59f 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c @@ -82,9 +82,30 @@ static void dw_hdmi_i2s_audio_shutdown(struct device *dev, void *data) hdmi_write(audio, HDMI_AUD_CONF0_SW_RESET, HDMI_AUD_CONF0); } +static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component, + struct device_node *endpoint) +{ + struct of_endpoint of_ep; + int ret; + + ret = of_graph_parse_endpoint(endpoint, &of_ep); + if (ret < 0) + return ret; + + /* + * HDMI sound should be located as reg = <2> + * Then, it is sound port 0 + */ + if (of_ep.port == 2) + return 0; + + return -EINVAL; +} + static struct hdmi_codec_ops dw_hdmi_i2s_ops = { .hw_params = dw_hdmi_i2s_hw_params, .audio_shutdown = dw_hdmi_i2s_audio_shutdown, + .get_dai_id = dw_hdmi_i2s_get_dai_id, }; static int snd_dw_hdmi_probe(struct platform_device *pdev) -- 1.9.1