From patchwork Thu Apr 2 18:34:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Riesen X-Patchwork-Id: 202513 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EAD31C43331 for ; Thu, 2 Apr 2020 18:37:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C06052064A for ; Thu, 2 Apr 2020 18:37:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388218AbgDBShy (ORCPT ); Thu, 2 Apr 2020 14:37:54 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:36257 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729033AbgDBShy (ORCPT ); Thu, 2 Apr 2020 14:37:54 -0400 Received: from mail.cetitecgmbh.com ([87.190.42.90]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MkYkI-1iuLUs0I9u-00m2eB for ; Thu, 02 Apr 2020 20:37:52 +0200 Received: from pflvmailgateway.corp.cetitec.com (unknown [127.0.0.1]) by mail.cetitecgmbh.com (Postfix) with ESMTP id CF93264F878 for ; Thu, 2 Apr 2020 18:37:51 +0000 (UTC) X-Virus-Scanned: amavisd-new at cetitec.com Received: from mail.cetitecgmbh.com ([127.0.0.1]) by pflvmailgateway.corp.cetitec.com (pflvmailgateway.corp.cetitec.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XLCmywchfF1T for ; Thu, 2 Apr 2020 20:37:51 +0200 (CEST) Received: from pfwsexchange.corp.cetitec.com (unknown [10.10.1.99]) by mail.cetitecgmbh.com (Postfix) with ESMTPS id 6B10264CFAE for ; Thu, 2 Apr 2020 20:37:51 +0200 (CEST) Received: from pflmari.corp.cetitec.com (10.8.5.12) by PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 2 Apr 2020 20:37:51 +0200 Received: by pflmari.corp.cetitec.com (Postfix, from userid 1000) id 81892804FD; Thu, 2 Apr 2020 20:34:00 +0200 (CEST) Date: Thu, 2 Apr 2020 20:34:00 +0200 From: Alex Riesen To: Kieran Bingham CC: Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , "Laurent Pinchart" , Rob Herring , Mark Rutland , Kuninori Morimoto , , , , , Subject: [PATCH v5 1/9] media: adv748x: fix end-of-line terminators in diagnostic statements Message-ID: <2f2460435afa594ef417e70068b125af97ddca39.1585852001.git.alexander.riesen@cetitec.com> Mail-Followup-To: Alex Riesen , Kieran Bingham , Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Rob Herring , Mark Rutland , Kuninori Morimoto , devel@driverdev.osuosl.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Originating-IP: [10.8.5.12] X-ClientProxiedBy: PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) To PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) X-EsetResult: clean, is OK X-EsetId: 37303A290D7F536A6C7266 X-Provags-ID: V03:K1:trdZMVAr2y5P4VAgB0SW8MHcgwcAyfU1OV14wMM8bdPLG9K7Kdl 1JoiGu0JY3pJ6N5VwYY7qXPxSoh9Tsx3bPgESrw3JNbh7WaRLCA9ad4ClsvxNVJQVik/6Co QQ2eYfnga+PSurMbfnRGEgY1yH4RFqzTANSOhkf9EAZRKZYjnTqU/nxaJePJyGa5jgYHbvy a23c2l3s/KeekbZZH6OLg== X-UI-Out-Filterresults: notjunk:1; V03:K0:G3UtkalUYYA=:PGyo/idljG0JGrCe0wcnBn jEwpqxfYyJ61Vw2RjK0oZY8csArSA0qVZQ+ZlZlTNMsdB804kjvJ+dhGSRnMN7DaNVF6UaOJy 0yXILAWLXsjQTcWFHqxOkcjUIvDxLWxSuJrm3EnuJJIWTQAKwRYWgEREJZJV7TZNtubnA4h5i dazrTqUaHvCFv2CF0pI4ZUHh30ZRpHAZXdKtOyiXno4ePCo+l5JYj2/f11u7nGMPUeIg5AE9u T1Rz0orsd9F7vYT6Xp9MadQ2HWqsOz6w0anZzaxVM8zzjkXNUamJmye6lvhpEQTcwVC0ohB2q hdVnfFh4s3BeYu7taXi0GmHFtJCNcgNIVblKqLV2RVMwP9ifaDMKTDYyRiI0UAteEgaJxX5in NyNLC1wBFh245BwgEonFpC+4AVRKO85FMK94YZHQL1exXXXqfdjFMYsgbzRfr3AgOimsTZocZ qm4m7buaOK79B8KvcCkZ4Eik6ov1nvODo18ceMS4DSBnP3dAPN2VXNAWbGC4s7IBM5vyQHmXZ 2Rg1cR8Fv29FZwig0WMloscA1NfLdujXXiV0JVYCSGPhoeT3D1LZlLuYN3ucMl7Uz2+sDsNdX R+DipJaXgOlTG2okp/pjezNxQ1XTNMembHlXF0keD8j8I7CdxzUkaewDyXRMwGcNc4pK5ry9B 1GLeJB6Ru/p+hCq65zVdrOOnzCmwvXC2I+fbfACvJJXN6YJjZutH8WUvJ6aAye4NfjiEJNxJW LxViHKwBSDoTZPA3B4DChqgZh1XZSN0oReAuX/D1qVb45V3Fp1kzJMJMgX3EQD7mMPKt7BkeP ayuMXg1B2+kyOBeckw0t8RfJUpezuatmpwnG6gewlLcHyvliDAlyi2vdCynUe2QISCo5BSv Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Signed-off-by: Alexander Riesen Reviewed-by: Laurent Pinchart --- drivers/media/i2c/adv748x/adv748x-core.c | 24 ++++++++++++------------ drivers/media/i2c/adv748x/adv748x-csi2.c | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c index 23e02ff27b17..c3fb113cef62 100644 --- a/drivers/media/i2c/adv748x/adv748x-core.c +++ b/drivers/media/i2c/adv748x/adv748x-core.c @@ -623,11 +623,11 @@ static int adv748x_parse_dt(struct adv748x_state *state) for_each_endpoint_of_node(state->dev->of_node, ep_np) { of_graph_parse_endpoint(ep_np, &ep); - adv_info(state, "Endpoint %pOF on port %d", ep.local_node, + adv_info(state, "Endpoint %pOF on port %d\n", ep.local_node, ep.port); if (ep.port >= ADV748X_PORT_MAX) { - adv_err(state, "Invalid endpoint %pOF on port %d", + adv_err(state, "Invalid endpoint %pOF on port %d\n", ep.local_node, ep.port); continue; @@ -635,7 +635,7 @@ static int adv748x_parse_dt(struct adv748x_state *state) if (state->endpoints[ep.port]) { adv_err(state, - "Multiple port endpoints are not supported"); + "Multiple port endpoints are not supported\n"); continue; } @@ -702,62 +702,62 @@ static int adv748x_probe(struct i2c_client *client) /* Discover and process ports declared by the Device tree endpoints */ ret = adv748x_parse_dt(state); if (ret) { - adv_err(state, "Failed to parse device tree"); + adv_err(state, "Failed to parse device tree\n"); goto err_free_mutex; } /* Configure IO Regmap region */ ret = adv748x_configure_regmap(state, ADV748X_PAGE_IO); if (ret) { - adv_err(state, "Error configuring IO regmap region"); + adv_err(state, "Error configuring IO regmap region\n"); goto err_cleanup_dt; } ret = adv748x_identify_chip(state); if (ret) { - adv_err(state, "Failed to identify chip"); + adv_err(state, "Failed to identify chip\n"); goto err_cleanup_dt; } /* Configure remaining pages as I2C clients with regmap access */ ret = adv748x_initialise_clients(state); if (ret) { - adv_err(state, "Failed to setup client regmap pages"); + adv_err(state, "Failed to setup client regmap pages\n"); goto err_cleanup_clients; } /* SW reset ADV748X to its default values */ ret = adv748x_reset(state); if (ret) { - adv_err(state, "Failed to reset hardware"); + adv_err(state, "Failed to reset hardware\n"); goto err_cleanup_clients; } /* Initialise HDMI */ ret = adv748x_hdmi_init(&state->hdmi); if (ret) { - adv_err(state, "Failed to probe HDMI"); + adv_err(state, "Failed to probe HDMI\n"); goto err_cleanup_clients; } /* Initialise AFE */ ret = adv748x_afe_init(&state->afe); if (ret) { - adv_err(state, "Failed to probe AFE"); + adv_err(state, "Failed to probe AFE\n"); goto err_cleanup_hdmi; } /* Initialise TXA */ ret = adv748x_csi2_init(state, &state->txa); if (ret) { - adv_err(state, "Failed to probe TXA"); + adv_err(state, "Failed to probe TXA\n"); goto err_cleanup_afe; } /* Initialise TXB */ ret = adv748x_csi2_init(state, &state->txb); if (ret) { - adv_err(state, "Failed to probe TXB"); + adv_err(state, "Failed to probe TXB\n"); goto err_cleanup_txa; } diff --git a/drivers/media/i2c/adv748x/adv748x-csi2.c b/drivers/media/i2c/adv748x/adv748x-csi2.c index 2091cda50935..c43ce5d78723 100644 --- a/drivers/media/i2c/adv748x/adv748x-csi2.c +++ b/drivers/media/i2c/adv748x/adv748x-csi2.c @@ -72,7 +72,7 @@ static int adv748x_csi2_registered(struct v4l2_subdev *sd) struct adv748x_state *state = tx->state; int ret; - adv_dbg(state, "Registered %s (%s)", is_txa(tx) ? "TXA":"TXB", + adv_dbg(state, "Registered %s (%s)\n", is_txa(tx) ? "TXA":"TXB", sd->name); /* From patchwork Thu Apr 2 18:34:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Riesen X-Patchwork-Id: 202512 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53DB3C43331 for ; Thu, 2 Apr 2020 18:44:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 29A8A206E9 for ; Thu, 2 Apr 2020 18:44:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389451AbgDBSoh (ORCPT ); Thu, 2 Apr 2020 14:44:37 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:46987 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732330AbgDBSoh (ORCPT ); Thu, 2 Apr 2020 14:44:37 -0400 Received: from mail.cetitecgmbh.com ([87.190.42.90]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MUGqT-1jkEYy2d7b-00RKtn for ; Thu, 02 Apr 2020 20:44:35 +0200 Received: from pflvmailgateway.corp.cetitec.com (unknown [127.0.0.1]) by mail.cetitecgmbh.com (Postfix) with ESMTP id 5359764F94A for ; Thu, 2 Apr 2020 18:44:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at cetitec.com Received: from mail.cetitecgmbh.com ([127.0.0.1]) by pflvmailgateway.corp.cetitec.com (pflvmailgateway.corp.cetitec.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RJjS7N9h2pRW for ; Thu, 2 Apr 2020 20:44:34 +0200 (CEST) Received: from pfwsexchange.corp.cetitec.com (unknown [10.10.1.99]) by mail.cetitecgmbh.com (Postfix) with ESMTPS id E34D1650AA6 for ; Thu, 2 Apr 2020 20:44:34 +0200 (CEST) Received: from pflmari.corp.cetitec.com (10.8.5.12) by PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 2 Apr 2020 20:44:34 +0200 Received: by pflmari.corp.cetitec.com (Postfix, from userid 1000) id A260880500; Thu, 2 Apr 2020 20:34:25 +0200 (CEST) Date: Thu, 2 Apr 2020 20:34:25 +0200 From: Alex Riesen To: Kieran Bingham CC: Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , "Laurent Pinchart" , Rob Herring , Mark Rutland , Kuninori Morimoto , , , , , Subject: [PATCH v5 3/9] media: adv748x: reduce amount of code for bitwise modifications of device registers Message-ID: <72873dc73d3b9a1d46673978326dd5f4f0096a17.1585852001.git.alexander.riesen@cetitec.com> Mail-Followup-To: Alex Riesen , Kieran Bingham , Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Rob Herring , Mark Rutland , Kuninori Morimoto , devel@driverdev.osuosl.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Originating-IP: [10.8.5.12] X-ClientProxiedBy: PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) To PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) X-EsetResult: clean, is OK X-EsetId: 37303A290D7F536A6C7266 X-Provags-ID: V03:K1:LS9nlosYr5K1c75n7GZ4iuULM7ZBZVDMJDHVY+OShPoExN6Q9MV i/o+2lkxVuLv6JZ+PxJnr4TJFzAEWWMX8rVyHVaYybgs0ErYCoaPzm7ybLeSePtuNg4JEJt K+erCmlHTjDhQ9mTKEw2AA2lIByqPX8jZopj/2+NucN8t/3gtzrZ0F1xodvf/9qmFVPogQ+ Fk9pDGMnAcvBcV9pjgbFQ== X-UI-Out-Filterresults: notjunk:1; V03:K0:vL93DJNz1EY=:0iieDFSLz4JKmM/AeuPcLS tYz6ApQWi78mqsuHCf7BRrAUxgo4NLmRuwz8u6OHL0N9Wcf//yMan1lDab2gIhr+qlv4BnFfK 5EQ0PfqXNke4opIJwASoBMtBshhySyWmQnmU8XRKY8H4QajrdFxO9QjayPyT+zaKHmxK+cDxW JuiAuTgpqQ90pPkw3ETsKUqVU4eoyGPKkU2jsXdieviq1pW6ilDE/vPialOiVvzK8pshR7r9P xhWl95rKpVXZVOs7Jl3WYCrczpJYYjUW8x7Kakb8I2MdMme8u8CE+M6iWtlodazqKgKv5aD3t ySye2R0fkMv2bpv5oqcOLTkIzG52FeD6OdxfqmpmoNKGnpMLnuAieZDQatf+PbMskgIxr2M+z UnhnrcUy5GWtoQqCnFg9MxlGoCL6teB8jaONtisG6ebtnnE0g0JreXoD6/W0QlQxDJiR3Yxgk Dg6Hf1ZC1t2GhWN8YNc8HvGZvv1fJ58kHNk05FdzV/+vgI80BL5hlRzoF7xM91k99Et827n1V 41FPltkbHzNR/ppTWNNekcCr5Pzp0ahcla3QGVEzuQvA27Y07BTj2pHtqMmjQCb74AdQLDV7G k/L6uBUNwXiJR5fXIwcQW+tDEJ2waoH21q+kuj0xPNeKGHvo2wetYbAn8XqSO/5XH46dJ/B5z RJyca5Fon0ji0wLx3iLaJjt9opyX7h+1fbpa+r/uROdW/YiJ3GELD3OegRVwckfini4twLF9v 4v2yxsPm4rqUo6UT+wYTqO1Mt/0MfGpHzv+CePXJghZO0m8TqJShNEE9NLlkTrX/+6Ukf0xUM GHKzVm9x0LApe44RouP2uJDWPE8qYxgAa1gMxNkpEFH6hdW5XqWjjCPUbBYJjV1Jjcu/ws6 Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The regmap provides a convenient utility for this. The hdmi_* and dpll_* register modification macros added for symmetry with the existing operations (io_*, sdp_*). Signed-off-by: Alexander Riesen Reviewed-by: Laurent Pinchart --- v3: remove _update name in favor of existing _clrset --- drivers/media/i2c/adv748x/adv748x-core.c | 6 ++++++ drivers/media/i2c/adv748x/adv748x.h | 14 +++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/adv748x/adv748x-core.c b/drivers/media/i2c/adv748x/adv748x-core.c index 5c59aad319d1..8580e6624276 100644 --- a/drivers/media/i2c/adv748x/adv748x-core.c +++ b/drivers/media/i2c/adv748x/adv748x-core.c @@ -133,6 +133,12 @@ static int adv748x_write_check(struct adv748x_state *state, u8 page, u8 reg, return *error; } +int adv748x_update_bits(struct adv748x_state *state, u8 page, u8 reg, u8 mask, + u8 value) +{ + return regmap_update_bits(state->regmap[page], reg, mask, value); +} + /* adv748x_write_block(): Write raw data with a maximum of I2C_SMBUS_BLOCK_MAX * size to one or more registers. * diff --git a/drivers/media/i2c/adv748x/adv748x.h b/drivers/media/i2c/adv748x/adv748x.h index 09aab4138c3f..0a9d78c2870b 100644 --- a/drivers/media/i2c/adv748x/adv748x.h +++ b/drivers/media/i2c/adv748x/adv748x.h @@ -393,25 +393,33 @@ int adv748x_write(struct adv748x_state *state, u8 page, u8 reg, u8 value); int adv748x_write_block(struct adv748x_state *state, int client_page, unsigned int init_reg, const void *val, size_t val_len); +int adv748x_update_bits(struct adv748x_state *state, u8 page, u8 reg, + u8 mask, u8 value); #define io_read(s, r) adv748x_read(s, ADV748X_PAGE_IO, r) #define io_write(s, r, v) adv748x_write(s, ADV748X_PAGE_IO, r, v) -#define io_clrset(s, r, m, v) io_write(s, r, (io_read(s, r) & ~(m)) | (v)) +#define io_clrset(s, r, m, v) adv748x_update_bits(s, ADV748X_PAGE_IO, r, m, v) #define hdmi_read(s, r) adv748x_read(s, ADV748X_PAGE_HDMI, r) #define hdmi_read16(s, r, m) (((hdmi_read(s, r) << 8) | hdmi_read(s, (r)+1)) & (m)) #define hdmi_write(s, r, v) adv748x_write(s, ADV748X_PAGE_HDMI, r, v) +#define hdmi_clrset(s, r, m, v) \ + adv748x_update_bits(s, ADV748X_PAGE_HDMI, r, m, v) + +#define dpll_read(s, r) adv748x_read(s, ADV748X_PAGE_DPLL, r) +#define dpll_clrset(s, r, m, v) \ + adv748x_update_bits(s, ADV748X_PAGE_DPLL, r, m, v) #define repeater_read(s, r) adv748x_read(s, ADV748X_PAGE_REPEATER, r) #define repeater_write(s, r, v) adv748x_write(s, ADV748X_PAGE_REPEATER, r, v) #define sdp_read(s, r) adv748x_read(s, ADV748X_PAGE_SDP, r) #define sdp_write(s, r, v) adv748x_write(s, ADV748X_PAGE_SDP, r, v) -#define sdp_clrset(s, r, m, v) sdp_write(s, r, (sdp_read(s, r) & ~(m)) | (v)) +#define sdp_clrset(s, r, m, v) adv748x_update_bits(s, ADV748X_PAGE_SDP, r, m, v) #define cp_read(s, r) adv748x_read(s, ADV748X_PAGE_CP, r) #define cp_write(s, r, v) adv748x_write(s, ADV748X_PAGE_CP, r, v) -#define cp_clrset(s, r, m, v) cp_write(s, r, (cp_read(s, r) & ~(m)) | (v)) +#define cp_clrset(s, r, m, v) adv748x_update_bits(s, ADV748X_PAGE_CP, r, m, v) #define tx_read(t, r) adv748x_read(t->state, t->page, r) #define tx_write(t, r, v) adv748x_write(t->state, t->page, r, v) From patchwork Thu Apr 2 18:34:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Riesen X-Patchwork-Id: 202511 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EF5A8C43331 for ; Thu, 2 Apr 2020 18:48:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id CB001206E9 for ; Thu, 2 Apr 2020 18:48:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388658AbgDBSsA (ORCPT ); Thu, 2 Apr 2020 14:48:00 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:58681 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387819AbgDBSr7 (ORCPT ); Thu, 2 Apr 2020 14:47:59 -0400 Received: from mail.cetitecgmbh.com ([87.190.42.90]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1N1fzM-1jDev00EVk-011ziZ for ; Thu, 02 Apr 2020 20:47:58 +0200 Received: from pflvmailgateway.corp.cetitec.com (unknown [127.0.0.1]) by mail.cetitecgmbh.com (Postfix) with ESMTP id CF305650525 for ; Thu, 2 Apr 2020 18:47:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at cetitec.com Received: from mail.cetitecgmbh.com ([127.0.0.1]) by pflvmailgateway.corp.cetitec.com (pflvmailgateway.corp.cetitec.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dlFIptyuThon for ; Thu, 2 Apr 2020 20:47:57 +0200 (CEST) Received: from pfwsexchange.corp.cetitec.com (unknown [10.10.1.99]) by mail.cetitecgmbh.com (Postfix) with ESMTPS id 7415964E968 for ; Thu, 2 Apr 2020 20:47:57 +0200 (CEST) Received: from pflmari.corp.cetitec.com (10.8.5.12) by PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 2 Apr 2020 20:47:57 +0200 Received: by pflmari.corp.cetitec.com (Postfix, from userid 1000) id E554580501; Thu, 2 Apr 2020 20:34:27 +0200 (CEST) Date: Thu, 2 Apr 2020 20:34:27 +0200 From: Alex Riesen To: Kieran Bingham CC: Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , "Laurent Pinchart" , Rob Herring , Mark Rutland , Kuninori Morimoto , , , , , Subject: [PATCH v5 4/9] media: adv748x: add definitions for audio output related registers Message-ID: <26573ecdb48aa816f802b9d8bbe5f74157248021.1585852001.git.alexander.riesen@cetitec.com> Mail-Followup-To: Alex Riesen , Kieran Bingham , Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Rob Herring , Mark Rutland , Kuninori Morimoto , devel@driverdev.osuosl.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Originating-IP: [10.8.5.12] X-ClientProxiedBy: PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) To PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) X-EsetResult: clean, is OK X-EsetId: 37303A290D7F536A6C7266 X-Provags-ID: V03:K1:yhEc8oTgCJhXSjxps0cMs2zuE1EXk49krcKESmkgfeWhxoSNOvx nRHdBGrhklKvXinZJdusczt/4saPMR3A7zPVTMaBSiMG+SxYf+eyy+uzlzZz3BdQU5y7lwB 7hC4WgAHqVhAsP25zG70rVrbtDo/vW3Rna16whILCVqmypJaAlGtDFct7iy0rMoGWR2zRkO nfheHcqQuAbDSAaWg/WuA== X-UI-Out-Filterresults: notjunk:1; V03:K0:qMpwwVE6TPA=:RQZR/kxzLllmfayO3Y53Lv RIza1XuSGcPfhZjrg9yJq16csBu/KOkU9F3XVQb5HBd9auvdVALHpmS+8BIO40nyoal5mJ55F WJKXtD/eVHmJIw3ngeylmyg4S8yV3Km5zbQizMyDid1HdIzYp/ihEdN+5WGXVU/7tQtO9mvVF sAmJ6yyIx8neYsfIGjMRSbIUDBSqCPPtUX0P2xw2MsFYyWliZlNCsAwVLuvYAwwoUXJO2jWp/ k2q7wTUwg0QHZEWe26R7tnrqFBLexIDzaN7N1OCq4qxw9iyyIu6l0DWue6FZynDvK9/APKF8b JCYIPNZZwsUXrw88+h/4Yr+Ese3SIT+OtD6udVVwIVqXSzXmBOSwWwHbt4ifPqRB/SWwejTjp pCnPDQsK8+f29g4QtbGjeo3Jvu1YHXsiXOMT69Imk2SJpZGcrDrnsPskrnYLcHVXO0STgpBoo Ha73ZxxHlGVd6G8WoUfI3hBqeHgNZbo4B+NfvmhDA2KSG0mPrH5nHSb1Vxmb4QNslUX6LrIrN c4nBdK+T55GF9iGfAssvoNEb5q9qM5bQlAAJgAyJQpmot4sk+exZUOZ8t2kBtAcGJKXGJ5qoF k6vFXlbCAllFSauL42sqq5Z3EhbRhPlSuQzBb91i9GEZxJvszG5KFYcey1WPLJFDxcn0Yjx+o yRVTs76Nncqe2VJOFsQOI524XtSHXYLdRfAwOQhRfW2O3dJ1P7BqZdYl/HNjU3t+i/KlcRmfk UeWwaB5uwQV4Tur7i0sGhcUHW4Ek1Jc7u4d2JpxAfmjyRitkXUMmvkSmunFGZ/fE9XJGLT/xz 4W8Jg6jC2cuhHI+VfP/2mi9pWThBol+r2i0X2p1CcCVj6YbAt6kc/L/5DbU3ge2BOkT+hkm Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org Signed-off-by: Alexander Riesen --- drivers/media/i2c/adv748x/adv748x.h | 32 +++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/drivers/media/i2c/adv748x/adv748x.h b/drivers/media/i2c/adv748x/adv748x.h index 0a9d78c2870b..1a1ea70086c6 100644 --- a/drivers/media/i2c/adv748x/adv748x.h +++ b/drivers/media/i2c/adv748x/adv748x.h @@ -226,6 +226,11 @@ struct adv748x_state { #define ADV748X_IO_VID_STD 0x05 +#define ADV748X_IO_PAD_CONTROLS 0x0e +#define ADV748X_IO_PAD_CONTROLS_TRI_AUD BIT(5) +#define ADV748X_IO_PAD_CONTROLS_PDN_AUD BIT(1) +#define ADV748X_IO_PAD_CONTROLS1 0x1d + #define ADV748X_IO_10 0x10 /* io_reg_10 */ #define ADV748X_IO_10_CSI4_EN BIT(7) #define ADV748X_IO_10_CSI1_EN BIT(6) @@ -248,7 +253,21 @@ struct adv748x_state { #define ADV748X_IO_REG_FF 0xff #define ADV748X_IO_REG_FF_MAIN_RESET 0xff +/* DPLL Map */ +#define ADV748X_DPLL_MCLK_FS 0xb5 +#define ADV748X_DPLL_MCLK_FS_N_MASK GENMASK(2, 0) + /* HDMI RX Map */ +#define ADV748X_HDMI_I2S 0x03 /* I2S mode and width */ +#define ADV748X_HDMI_I2SBITWIDTH_MASK GENMASK(4, 0) +#define ADV748X_HDMI_I2SOUTMODE_SHIFT 5 +#define ADV748X_HDMI_I2SOUTMODE_MASK \ + GENMASK(6, ADV748X_HDMI_I2SOUTMODE_SHIFT) +#define ADV748X_I2SOUTMODE_I2S 0 +#define ADV748X_I2SOUTMODE_RIGHT_J 1 +#define ADV748X_I2SOUTMODE_LEFT_J 2 +#define ADV748X_I2SOUTMODE_SPDIF 3 + #define ADV748X_HDMI_LW1 0x07 /* line width_1 */ #define ADV748X_HDMI_LW1_VERT_FILTER BIT(7) #define ADV748X_HDMI_LW1_DE_REGEN BIT(5) @@ -260,6 +279,16 @@ struct adv748x_state { #define ADV748X_HDMI_F1H1 0x0b /* field1 height_1 */ #define ADV748X_HDMI_F1H1_INTERLACED BIT(5) +#define ADV748X_HDMI_MUTE_CTRL 0x1a +#define ADV748X_HDMI_MUTE_CTRL_MUTE_AUDIO BIT(4) +#define ADV748X_HDMI_MUTE_CTRL_WAIT_UNMUTE_MASK GENMASK(3, 1) +#define ADV748X_HDMI_MUTE_CTRL_NOT_AUTO_UNMUTE BIT(0) + +#define ADV748X_HDMI_AUDIO_MUTE_SPEED 0x0f +#define ADV748X_HDMI_AUDIO_MUTE_SPEED_MASK GENMASK(4, 0) +#define ADV748X_MAN_AUDIO_DL_BYPASS BIT(7) +#define ADV748X_AUDIO_DELAY_LINE_BYPASS BIT(6) + #define ADV748X_HDMI_HFRONT_PORCH 0x20 /* hsync_front_porch_1 */ #define ADV748X_HDMI_HFRONT_PORCH_MASK 0x1fff @@ -281,6 +310,9 @@ struct adv748x_state { #define ADV748X_HDMI_TMDS_1 0x51 /* hdmi_reg_51 */ #define ADV748X_HDMI_TMDS_2 0x52 /* hdmi_reg_52 */ +#define ADV748X_HDMI_REG_6D 0x6d /* hdmi_reg_6d */ +#define ADV748X_I2S_TDM_MODE_ENABLE BIT(7) + /* HDMI RX Repeater Map */ #define ADV748X_REPEATER_EDID_SZ 0x70 /* primary_edid_size */ #define ADV748X_REPEATER_EDID_SZ_SHIFT 4 From patchwork Thu Apr 2 18:34:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Riesen X-Patchwork-Id: 202510 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 87800C43331 for ; Thu, 2 Apr 2020 18:54:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 66CBF206F8 for ; Thu, 2 Apr 2020 18:54:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388843AbgDBSy7 (ORCPT ); Thu, 2 Apr 2020 14:54:59 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:42213 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732214AbgDBSy6 (ORCPT ); Thu, 2 Apr 2020 14:54:58 -0400 Received: from mail.cetitecgmbh.com ([87.190.42.90]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.167]) with ESMTPSA (Nemesis) id 1MCsgS-1jSqQr1pgm-008v9X for ; Thu, 02 Apr 2020 20:54:57 +0200 Received: from pflvmailgateway.corp.cetitec.com (unknown [127.0.0.1]) by mail.cetitecgmbh.com (Postfix) with ESMTP id 30DA165073A for ; Thu, 2 Apr 2020 18:54:57 +0000 (UTC) X-Virus-Scanned: amavisd-new at cetitec.com Received: from mail.cetitecgmbh.com ([127.0.0.1]) by pflvmailgateway.corp.cetitec.com (pflvmailgateway.corp.cetitec.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gr9NcDzED-OD for ; Thu, 2 Apr 2020 20:54:56 +0200 (CEST) Received: from pfwsexchange.corp.cetitec.com (unknown [10.10.1.99]) by mail.cetitecgmbh.com (Postfix) with ESMTPS id D9EBC64E74F for ; Thu, 2 Apr 2020 20:54:56 +0200 (CEST) Received: from pflmari.corp.cetitec.com (10.8.5.12) by PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 2 Apr 2020 20:54:56 +0200 Received: by pflmari.corp.cetitec.com (Postfix, from userid 1000) id E692280503; Thu, 2 Apr 2020 20:34:48 +0200 (CEST) Date: Thu, 2 Apr 2020 20:34:48 +0200 From: Alex Riesen To: Kieran Bingham CC: Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , "Laurent Pinchart" , Rob Herring , Mark Rutland , Kuninori Morimoto , , , , , Subject: [PATCH v5 6/9] media: adv748x: prepare/enable mclk when the audio is used Message-ID: Mail-Followup-To: Alex Riesen , Kieran Bingham , Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Rob Herring , Mark Rutland , Kuninori Morimoto , devel@driverdev.osuosl.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Originating-IP: [10.8.5.12] X-ClientProxiedBy: PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) To PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) X-EsetResult: clean, is OK X-EsetId: 37303A290D7F536A6C7266 X-Provags-ID: V03:K1:NpEiYbBxEnK5SamHqgieIbeGUb9f0TYhRJ9xsCMGqeFJBdHiH6r VIwG21rwohByeA0EiKO3Kux/ZLk8BuSnBiQB3je2ZRosqiGqHUZVva1o5hktoC4wne0fpbp 0AvvkXEeG3aWNR+xrR7IXBlDevnCZceU28G4cHvFUgspL6zGgKw9ac+S8t2BdSFkBEmw2P0 i43IMsMnwy0QZIt7kE9dg== X-UI-Out-Filterresults: notjunk:1; V03:K0:p1Q9zS1vfiI=:6/46+vGMEE/Sx7emEjV6oo 57/nOL5KYMsFTEfbrqXjHKjIz28VhG3zOjj4sVBSG3Yf0bxFjZdNPXSXoDxzHBGNk4scSn6Ir wEallNJGksecICNGMJRzDv8tM/cIQJ2OVcnIYWuyWrVEV0vZ8NrFYtctT/q6d70BZqOjzLOE0 5EgBXld2a05bYemKVyo8f9CjU1SQ8UCvGI7h3VdZHyfHKSVKjaFOMqCgPEAn2gH2tzg1846sK bUp6kvDGxKjl1bDxWSw5hQrFIM5AL47aZWZWP/tPSWx9hSa8I7pVmceJuOMntdwOL7tnEEjW7 DWGdpgVA2f0NtH/EW6oNX3I+oQNTf+sYbcmbXVfwZ6vgVnkkv0HIFIHsrS3Lwf4Kcir8fbL2B Hyknh9L1ksUQorJyzB09BIQ27+v+/f4p6TdXQp9p9NNqGiyUIMaqyInB70vtpQf9rKikhOlzO 1tULBHDVBDUHTbpzRWeBk7odvc0JMgeILtUb6X2g8JxH3bXrOOUzTzMT2GnIQZbtVeCY8aEvW pCFAMdZcRYd1VpWJN8EhcDGGQrir2JPSMpCpr2SeMUO561lycgnNlKpu8CXEjmmapU7Uk0rwq fB6s7wZEyLeauKBL16BoVcMN1vVj0h2fX4LXkymM330dMf7XFxlUiHWumIUJkBXYXz8Lx5xfG nN/bBxDffMoAVbwe2OAKTLtb5EIb83XWQZ7vsGsYCdSfLvekY+CJX366a5ocFzCtc3jLB1x1k ryB8ayocuPdX66NVKrBz5bc+2F2t5OtUqu0r+a9zNt8N2YaTdRAhpxwHfkfxD/oe6wRAngqoI o2tHCUuU5zLqvDHpPU3J7XcQ0f6wXwX4YfgzIqtFxQuPilqvbCaaHkfWOz8Dave/cJ79Y0U Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org As there is nothing else (the consumers are supposed to do that) which enables the clock, do it in the driver. Signed-off-by: Alexander Riesen --- v3: added --- drivers/media/i2c/adv748x/adv748x-dai.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/adv748x/adv748x-dai.c b/drivers/media/i2c/adv748x/adv748x-dai.c index c9191f8f1ca8..185f78023e91 100644 --- a/drivers/media/i2c/adv748x/adv748x-dai.c +++ b/drivers/media/i2c/adv748x/adv748x-dai.c @@ -117,11 +117,22 @@ static int adv748x_dai_set_fmt(struct snd_soc_dai *dai, unsigned int fmt) static int adv748x_dai_startup(struct snd_pcm_substream *sub, struct snd_soc_dai *dai) { + int ret; struct adv748x_state *state = state_of(dai); if (sub->stream != SNDRV_PCM_STREAM_CAPTURE) return -EINVAL; - return set_audio_pads_state(state, 1); + ret = set_audio_pads_state(state, 1); + if (ret) + goto fail; + ret = clk_prepare_enable(mclk_of(state)); + if (ret) + goto fail_pwdn; + return 0; +fail_pwdn: + set_audio_pads_state(state, 0); +fail: + return ret; } static int adv748x_dai_hw_params(struct snd_pcm_substream *sub, @@ -174,6 +185,7 @@ static void adv748x_dai_shutdown(struct snd_pcm_substream *sub, struct snd_soc_d { struct adv748x_state *state = state_of(dai); + clk_disable_unprepare(mclk_of(state)); set_audio_pads_state(state, 0); } From patchwork Thu Apr 2 18:34:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Riesen X-Patchwork-Id: 202509 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 357ABC43331 for ; Thu, 2 Apr 2020 18:58:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 14F55206F8 for ; Thu, 2 Apr 2020 18:58:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389013AbgDBS6U (ORCPT ); Thu, 2 Apr 2020 14:58:20 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:46525 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389103AbgDBS6U (ORCPT ); Thu, 2 Apr 2020 14:58:20 -0400 Received: from mail.cetitecgmbh.com ([87.190.42.90]) by mrelayeu.kundenserver.de (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id 1MCKJw-1jSIWG28Go-009Om2 for ; Thu, 02 Apr 2020 20:58:18 +0200 Received: from pflvmailgateway.corp.cetitec.com (unknown [127.0.0.1]) by mail.cetitecgmbh.com (Postfix) with ESMTP id 3EF70650882 for ; Thu, 2 Apr 2020 18:58:18 +0000 (UTC) X-Virus-Scanned: amavisd-new at cetitec.com Received: from mail.cetitecgmbh.com ([127.0.0.1]) by pflvmailgateway.corp.cetitec.com (pflvmailgateway.corp.cetitec.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JLLxZSsd7gY3 for ; Thu, 2 Apr 2020 20:58:17 +0200 (CEST) Received: from pfwsexchange.corp.cetitec.com (unknown [10.10.1.99]) by mail.cetitecgmbh.com (Postfix) with ESMTPS id F139B64F705 for ; Thu, 2 Apr 2020 20:58:17 +0200 (CEST) Received: from pflmari.corp.cetitec.com (10.8.5.12) by PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 2 Apr 2020 20:58:17 +0200 Received: by pflmari.corp.cetitec.com (Postfix, from userid 1000) id 2CFF680504; Thu, 2 Apr 2020 20:34:59 +0200 (CEST) Date: Thu, 2 Apr 2020 20:34:59 +0200 From: Alex Riesen To: Kieran Bingham CC: Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , "Laurent Pinchart" , Rob Herring , Mark Rutland , Kuninori Morimoto , , , , , Subject: [PATCH v5 7/9] media: adv748x: only activate DAI if it is described in device tree Message-ID: Mail-Followup-To: Alex Riesen , Kieran Bingham , Geert Uytterhoeven , Mauro Carvalho Chehab , Hans Verkuil , Laurent Pinchart , Rob Herring , Mark Rutland , Kuninori Morimoto , devel@driverdev.osuosl.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-Originating-IP: [10.8.5.12] X-ClientProxiedBy: PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) To PFWSEXCHANGE.corp.cetitec.com (10.10.1.99) X-EsetResult: clean, is OK X-EsetId: 37303A290D7F536A6C7266 X-Provags-ID: V03:K1:JaUZ1RpmIYolYMNA4BO3iZerdNoo404qeAbB0q7nmWFmz74yvk0 xtk1OLdzp8UE/MyOx6sAIVWtaqPC9OjjJhgI07XzSJDguN6paYhUR9LLMupW4quKGEB2FCU VJxOAHN0uQksY+xXPUfGDG/VbvKdC7lh57DbG0UVHAcvlhHF6BxHtJ4jEt0CD4qOgE7Jp6M xRuFPZvUeQYvJcSA/a1JA== X-UI-Out-Filterresults: notjunk:1; V03:K0:A/uZQhYSBVU=:B5dsAgxtQkyDMDlrXzdX9n C4Z/bzUnULBGVwEDb0Bf6qudFSwPTuY4y1UfBfhoD1i7Nn/H0+CquUNcaf0NR91MPv0X4KXuD u+Mx4iruPdWg66DSk1TQFnxaJ0E9FJPoI6b8e5Cw1vEa4FPlz0aQPFIy5hot/2uyTgGNMOlVC wCgmeEsp4mzem65YGGbJcrBrNxY5xU7ilpmFPgOeOcxFY/zyYbU1S10Yk6nab9S0KaqqqW4Vz RN/tGz0Y5HWhpIn7aVxMdTA+H+fOExNiISRMdbTauj1ic3hoMrVdeoyCXkv6VCr+GGpKTZ3fX k/OKsa3RA0R2t7UBnQofhFhWhz6JOoTnXPSHTn5X07k+bgG6u48KwgFHclxGsHDNjrcuquCl2 DL8QXRaxitG3FKrgfMFFea2BdM5RLlJgP0lM8rm/pjXc4GP6G6lSsbn3SrTGdQUeT2Ozuqw4G w2f/fVW2NOG0LIPx88lFwYiUSUL3bCTq4lYH/aKjkAtf2rLD/aSwDy15pFDnBlMxtjVIprey4 HeIVO8znnULcKslAtkaF/rDtnZaXUFrwJ/ESOvD0jl8MhcIvEm5XzOA1Pon+rOCFV19OFrz9z XJZ/Km0pJpd3uvyYPAtIiUGwtlNod66WW0MOW7TfxV1kusFQ4A0+HML8Eazp/oxbTmZ0NijJJ hpx3nUJ3CTbc1RoZLuae+/Py0E+iO+QC5eWER4fGlN4UAmVw/QY8/bt4DFHQcrl5abCE7Fz80 FTyt3qPfYoGp7MUSMuimmXXTCfEKuPIqbblA/3gYyrDU74L6B6CuV1V1p/zDESNYhtMdkI2Wd lHMRl351GvN1uo9hlT4oLgpWk6smDvfufB790BqcyChCLB3Ox3x8jFwyyhat/uXnGP2Z13B Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org To avoid setting it up even if the hardware is not actually connected to anything physically. Besides, the bindings explicitly notes that port definitions are "optional if they are not connected to anything at the hardware level". Signed-off-by: Alexander Riesen --- drivers/media/i2c/adv748x/adv748x-dai.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/media/i2c/adv748x/adv748x-dai.c b/drivers/media/i2c/adv748x/adv748x-dai.c index 185f78023e91..f9cc47fa9ad1 100644 --- a/drivers/media/i2c/adv748x/adv748x-dai.c +++ b/drivers/media/i2c/adv748x/adv748x-dai.c @@ -216,6 +216,11 @@ int adv748x_dai_init(struct adv748x_dai *dai) int ret; struct adv748x_state *state = adv748x_dai_to_state(dai); + if (!state->endpoints[ADV748X_PORT_I2S]) { + adv_info(state, "no I2S port, DAI disabled\n"); + ret = 0; + goto fail; + } dai->mclk_name = kasprintf(GFP_KERNEL, "%s.%s-i2s-mclk", state->dev->driver->name, dev_name(state->dev));