Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp2714489rwd; Fri, 16 Jun 2023 07:20:27 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5ZJpIRHg8D1jBzX4jxjO6IrYyKIMl2nZanJMC1nJ2VoQa54+GxpRppWILUDkLSKO/t9zn1 X-Received: by 2002:a17:903:2341:b0:1b0:276f:b26c with SMTP id c1-20020a170903234100b001b0276fb26cmr2154857plh.56.1686925227006; Fri, 16 Jun 2023 07:20:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686925226; cv=none; d=google.com; s=arc-20160816; b=Ax25k3Qs8ZrNkEX7xS5o0hiMTytifsu4zLVa04urg6Zx5jKDGa2yKsECLF/4fV8yhT oXPgFH6nLEEY7bWVUjpW8WCuIB34v7Z37atQIrVteMx5Wasu0Nfgkk2OoQwULxT8J45P 2f7owVGMyA/pDUNJ9F8iuBT4+m0uEJR3JtIzsQIOPBBWXOTl1BNhT0TqbpAHutrr42lh 7FC4//F1PvVrAVT7g0dawdcnZKiJ3WeSDZqxBffWFiewqxzS3sJcyijdi6Bp3DgTBlJw 2aIasZfPXs6Q78ZMfgWa0i/9a026vAQVlau6ORQAauuw9O/EXHB19Y/x+AG8y4pYy48X sHEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4wXdqHu38cJAx7Ava4wt24zDIfqNSGX79Q+509LDfjI=; b=Rz3Z3a+IbxDezeiIPyjjKd2VBkwd8riaCus+Cj5sp7b3oMq/X/4WqmV4ySA7ybQfP0 bfO48t25yvkwCt7qmJpY/Ul0h6ct4lHDLOdPQmC7QCqqz6Y8qEPChaGfUI5uhQA36hy9 /f44Z7G77vIZSd4iENaNIErjNOMZtDN9xO59S4D1D+IuUOgAj/vqVKmhgndksLuvHJAF 99ph6YJezNMKLaej7A0qayyK11IPin6poZuQvKGZFnvMNmlFq0QKeni+bqC/TU8qBYMZ DXVO8ppsI6j+f9YL267pCm1q9eP66iXeKnZgC2oT/erv0xQWEhMzldL1uROsQY8th/wC 8kcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=WDSxDTRo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b16-20020a170902d51000b001af9d3ca8a9si15457853plg.20.2023.06.16.07.20.12; Fri, 16 Jun 2023 07:20:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=WDSxDTRo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345628AbjFPOAv (ORCPT + 99 others); Fri, 16 Jun 2023 10:00:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345400AbjFPOA2 (ORCPT ); Fri, 16 Jun 2023 10:00:28 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 387F43A91; Fri, 16 Jun 2023 07:00:26 -0700 (PDT) Received: from desky.lan (91-154-35-171.elisa-laajakaista.fi [91.154.35.171]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1038A1288; Fri, 16 Jun 2023 15:59:50 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1686923991; bh=TK4YhOFvhaya/ewN0odVoqq5/fzBn2JCsOSBpSX+EaA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WDSxDTRoWEr1DQN5TqicxHaj01o2XZhN9a+beo+jxVDyiEWrU33vNaT5QdS2r7ILu 38pVM7bU03/ARszH+h9bhXiPxKYdiJA+GGUeWNQF0UPxUQj9FeSAgiWbrb6gKRcKtM AOUk7Scrz/La0CfEJtqrKaMXxLWELqLfSS1r7FGA= From: Tomi Valkeinen To: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org, Luca Ceresoli , Andy Shevchenko , Matti Vaittinen , Laurent Pinchart , Sakari Ailus Cc: Wolfram Sang , Rob Herring , Krzysztof Kozlowski , Mauro Carvalho Chehab , Peter Rosin , Liam Girdwood , Mark Brown , Michael Tretter , Hans Verkuil , Mike Pagano , =?UTF-8?q?Krzysztof=20Ha=C5=82asa?= , Marek Vasut , Satish Nagireddy , Tomi Valkeinen , Ludwig Zenz Subject: [PATCH v14 09/18] media: i2c: ds90ub960: Fix use of UB960_SR_FWD_CTL1 Date: Fri, 16 Jun 2023 16:59:13 +0300 Message-Id: <20230616135922.442979-10-tomi.valkeinen@ideasonboard.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230616135922.442979-1-tomi.valkeinen@ideasonboard.com> References: <20230616135922.442979-1-tomi.valkeinen@ideasonboard.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The driver does not update the forwarding bits in the UB960_SR_FWD_CTL1 register for ports that won't be used. This might leave port forwardings enabled for unused ports, which might cause issues. Fix this by making sure all the port forwardings are disabled by default, and only enable the ones that are used. Signed-off-by: Tomi Valkeinen Reported-by: Ludwig Zenz Link: https://lore.kernel.org/all/20230516123549.3120-1-lzenz@dh-electronics.com/ --- drivers/media/i2c/ds90ub960.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c index ff939300c918..e101bcf2356a 100644 --- a/drivers/media/i2c/ds90ub960.c +++ b/drivers/media/i2c/ds90ub960.c @@ -2330,7 +2330,8 @@ static int ub960_enable_rx_port(struct ub960_data *priv, unsigned int nport) dev_dbg(dev, "enable RX port %u\n", nport); /* Enable forwarding */ - return ub960_update_bits(priv, UB960_SR_FWD_CTL1, BIT(4 + nport), 0); + return ub960_update_bits(priv, UB960_SR_FWD_CTL1, + UB960_SR_FWD_CTL1_PORT_DIS(nport), 0); } static void ub960_disable_rx_port(struct ub960_data *priv, unsigned int nport) @@ -2340,8 +2341,9 @@ static void ub960_disable_rx_port(struct ub960_data *priv, unsigned int nport) dev_dbg(dev, "disable RX port %u\n", nport); /* Disable forwarding */ - ub960_update_bits(priv, UB960_SR_FWD_CTL1, BIT(4 + nport), - BIT(4 + nport)); + ub960_update_bits(priv, UB960_SR_FWD_CTL1, + UB960_SR_FWD_CTL1_PORT_DIS(nport), + UB960_SR_FWD_CTL1_PORT_DIS(nport)); } /* @@ -2467,7 +2469,11 @@ static int ub960_configure_ports_for_streaming(struct ub960_data *priv, /* Configure RX ports */ - fwd_ctl = 0; + /* + * Keep all port forwardings disabled by default. Forwarding will be + * enabled in ub960_enable_rx_port. + */ + fwd_ctl = GENMASK(7, 4); for (nport = 0; nport < priv->hw_data->num_rxports; nport++) { struct ub960_rxport *rxport = priv->rxports[nport]; @@ -2515,10 +2521,6 @@ static int ub960_configure_ports_for_streaming(struct ub960_data *priv, break; } - /* Forwarding */ - - fwd_ctl |= BIT(4 + nport); /* forward disable */ - if (rx_data[nport].tx_port == 1) fwd_ctl |= BIT(nport); /* forward to TX1 */ else -- 2.34.1