From patchwork Fri Oct 4 14:46:34 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 832881 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47CD42207E4; Fri, 4 Oct 2024 14:47:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053240; cv=none; b=PzaJ4bFdfBCEGu+ecOPo+Z7OfCl1BiR57pixTcr1lEBw8q6cE6HOjO+Nd+3+XrS69YaqJuGkl3AnacLBZxpHQNknKf1P5EyfIWkeF+WsGovsIGdetJ3hQ9BC9iUS8BKWfiQ+59Bb/pvwSZSp7ZruPhq3DagePq4/bMcVWTGHTm4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053240; c=relaxed/simple; bh=KEJUa+NA275qqmfLngLNAjLh7UNjtzQi4qbdB1cIyjI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ghAs++20g/DGt8oLJNBVMlYxWL+hIXWGBGYc1Y+S9Pieoytgfzv//bVvxfVgPdSbwP247k4BYe3rIcCkNVtqLhi4oLclolidrwXGOWwUrEZVKyA6mVI/4SmnTO/3q/xrgy3WEh5MidAB3695FN9KXAuTF82WLNeKC7lzoZ1sHUI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=BiKGrvZP; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="BiKGrvZP" Received: from [127.0.1.1] (91-156-87-48.elisa-laajakaista.fi [91.156.87.48]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 32C89C62; Fri, 4 Oct 2024 16:45:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1728053141; bh=KEJUa+NA275qqmfLngLNAjLh7UNjtzQi4qbdB1cIyjI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=BiKGrvZPt+oMw8JaZ8ZLefnljaJuH6Ta3wYOfrkWiLRs5vySNrk69iFGuCuEBJRUM iOjrAlXu5QuDQUoYc+/KphP/UxBcJH9i9XT/GXp0/gg51QNiSPnGjEFL0kBkxJMkFw uwtfqq/GHRvAZPzo2EuwL1Zn7+GwQUzRM11ZFfpE= From: Tomi Valkeinen Date: Fri, 04 Oct 2024 17:46:34 +0300 Subject: [PATCH 03/13] media: i2c: ds90ub960: Fix use of non-existing registers on UB9702 Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241004-ub9xx-fixes-v1-3-e30a4633c786@ideasonboard.com> References: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> In-Reply-To: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> To: Mauro Carvalho Chehab , Sakari Ailus , Hans Verkuil , Andy Shevchenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jai Luthra , Tomi Valkeinen X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1652; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=KEJUa+NA275qqmfLngLNAjLh7UNjtzQi4qbdB1cIyjI=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBm///s2ux6qwYAUE+td6KVRjl5XcLMg84d2E2lL 4Xj6JvlnAiJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZv//7AAKCRD6PaqMvJYe 9flJD/93tn6ulLNHvyRnRs0Bc4xTu0yf2Vbpfrc09Sa9WeeGT7Ds2oqinUSreMJcqE2b10yn0nW wvfwfNOr1jkf0T6ykSJouVF7iPL5eTaLmBpFK09AXI+y4YTrGyvXcwiZY50LATctxYOSYhxMI+3 utFmFu7MCWZKtoJZmbqFMvwkprF4DQicPx6NgIgusTTAYa3Ec0H2YKGwLXhoTN0u088sRNLyuab GSCApE6Dy1KctgD1yEVNiNVEFB8jRViXxLounyEzSgTkQP3pziMyRBBpeN+MT0bt58bCWnxa57a bZHsa5GI4sTsh1d1tFUh5jWdKe2LSDWcbqfNCS4T+6LE6o9TJXbyfySG/jVCABRnOxorh8wo78m 8BKbq9iq2sNuSOo1mu/AB1RyHsbQ7Pcy3tdLRbKZgB86CiQRKNsHoORt1w4hYRw6AlIyLgo2tGp uscu7Lr7az1S+NWiPt5UF0r8jdmHdpZBwLbwsa7vEV3MwLNyqsLBXjGeCJuFe5aoOGgl/jFjzTM AYKSzoVI58mhzKWyvou+Ac8nP61XG1Y+7T6UVZNNi0Nr0rCikNGVN1mv+gxEx0zEJICoYSMhU2N excVdjhZCNcBbSXcUyNPvPWyHTxDWdSs6vKNIeXBc6ieUsDl0kPhrUoVeGGp1Wp3z8VFi69cTby xWH/bKhfKaLfTpA== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 UB9702 doesn't have the registers for SP and EQ. Adjust the code in ub960_rxport_wait_locks() to not use those registers for UB9702. As these values are only used for a debug print here, there's no functional change. Signed-off-by: Tomi Valkeinen Fixes: afe267f2d368 ("media: i2c: add DS90UB960 driver") --- drivers/media/i2c/ds90ub960.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c index b1e848678218..24198b803eff 100644 --- a/drivers/media/i2c/ds90ub960.c +++ b/drivers/media/i2c/ds90ub960.c @@ -1577,16 +1577,24 @@ static int ub960_rxport_wait_locks(struct ub960_data *priv, ub960_rxport_read16(priv, nport, UB960_RR_RX_FREQ_HIGH, &v); - ret = ub960_rxport_get_strobe_pos(priv, nport, &strobe_pos); - if (ret) - return ret; + if (priv->hw_data->is_ub9702) { + dev_dbg(dev, "\trx%u: locked, freq %llu Hz\n", + nport, (v * 1000000ULL) >> 8); + } else { + ret = ub960_rxport_get_strobe_pos(priv, nport, + &strobe_pos); + if (ret) + return ret; - ret = ub960_rxport_get_eq_level(priv, nport, &eq_level); - if (ret) - return ret; + ret = ub960_rxport_get_eq_level(priv, nport, &eq_level); + if (ret) + return ret; - dev_dbg(dev, "\trx%u: locked, SP: %d, EQ: %u, freq %llu Hz\n", - nport, strobe_pos, eq_level, (v * 1000000ULL) >> 8); + dev_dbg(dev, + "\trx%u: locked, SP: %d, EQ: %u, freq %llu Hz\n", + nport, strobe_pos, eq_level, + (v * 1000000ULL) >> 8); + } } return 0; From patchwork Fri Oct 4 14:46:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 832880 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 48286220815; Fri, 4 Oct 2024 14:47:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053244; cv=none; b=JNRciiGPnIDzFPlW8Alw3T7yRPpxV+/uyLuFYZSeTeBoDKAkIZXB0DKBSZv7KtIxBfwnUiGhoLWzXCE3lAXmGoz1kfJV0gaFhnXnWafaMUqTBBuwlVO3M4w5A1iZLoqUjZxxe12WiNOwwWHRmKV9Or4F7lrOhioI+pSjZdTkrzs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053244; c=relaxed/simple; bh=PJSBX2bzqYP3+CKy9n8zSfhEFQa7EPI7dXwzmn9Bo1w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A4BL+fEALJ86yQZX2FjW2OOtg9Gz1DNqQHPxclXjK4yq2yQ2K1j3XzDryB0/7+gtB0nS10Qu4nupH6xg2/qPF9mirCTeOLqThz9fkeOf4GNi1+idljfHpAj6kF9WZaqWuZgNRfWiE7Jd94hAPnRT2BkP8CpwJsNE5MBHlSO5NBQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=FeoqdJJn; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="FeoqdJJn" Received: from [127.0.1.1] (91-156-87-48.elisa-laajakaista.fi [91.156.87.48]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id BF6DEC8A; Fri, 4 Oct 2024 16:45:41 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1728053142; bh=PJSBX2bzqYP3+CKy9n8zSfhEFQa7EPI7dXwzmn9Bo1w=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=FeoqdJJnF+8KLup/lK2Qv12DTZ+0Sw+stb/lYGMmqAwsxHoG0RjOAh/ILeZxjkC5L ZeN5CEI+ucBrboZ0TYatYbjYt1T/x/NghnOY5CMeTX/Ei/GAxAAmT+qt0LNGx0QC11 kNF0T91FgBB2+tB8d9ksKcsk0IjnbfqOYWB7rHBg= From: Tomi Valkeinen Date: Fri, 04 Oct 2024 17:46:35 +0300 Subject: [PATCH 04/13] media: i2c: ds90ub960: Fix logging SP & EQ status only for UB9702 Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241004-ub9xx-fixes-v1-4-e30a4633c786@ideasonboard.com> References: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> In-Reply-To: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> To: Mauro Carvalho Chehab , Sakari Ailus , Hans Verkuil , Andy Shevchenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jai Luthra , Tomi Valkeinen X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4113; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=PJSBX2bzqYP3+CKy9n8zSfhEFQa7EPI7dXwzmn9Bo1w=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBm///txobIvR1pOFoUp0y17xNQxSyjk77xdBspu hJ3SHKZUASJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZv//7QAKCRD6PaqMvJYe 9QMvD/9h115ssOQMTWhn/Kwb/OWKtnGZ95wUDA2iLZE8tnB/y9yD99rMK12c4laUMFZ77c6O8Po vGoaYOuEvv8ZygEcdtcBLvYuIIcm/w5DAWpRai1LxwBPVfSEtjR0W2zSdQw0q6L3gZUmHg5gQHS iUbOXtx+0GJ1cSW4Dqltnc5pmsYxWLv3a8AIHnYUM04ZcCGConiV9yH0KGnrrfi/pt5X+3PIRt+ q8B3aruwovIselV2WGq5g8PcZLOpvVFxx+u05o5APQcL+zU1/WmhrTyhLlntzCMPgzgFXczN7zj jBDfpZaG+aq5GUg6nEFcfL/VRMVtmDqGmuitM7VJwXwOL1M9LnM8/S4R66ghR/spr75DT8PVXfr gY+GgQaNlnr5t8nWwXeQ5ZT6xl0Pfq7iLhhoD/Cv8IJjFYFseEHGYGkof1zuU0TCXYJWZQazysE S6Fr97Bfmb7g+9+zqy2q2aOr5uqmlDt1795gyXLXnUVyVp8Lr/C5mvzrYd2njYHJZu/pKXzjvDy Dzs/s40JjFJY5P82mqSZ8JBjM6V2C2QEDS68AesbYzUyr9C6ZMKHoz/x55KhdRgpFIPel+mY/oh 7C2hLHoNeo8RkRHe4vCsu54Maz3Lv4uD5w0ix2GT+EZ1gT8P33SJiDRMjCpOc7kRswS7bvtFcQR YDPCoXyrPVB4zjQ== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 UB9702 does not have SP and EQ registers, but the driver uses them in log_status(). Fix this by separating the SP and EQ related log_status() work into a separate function (for clarity) and calling that function only for UB960. Signed-off-by: Tomi Valkeinen Fixes: afe267f2d368 ("media: i2c: add DS90UB960 driver") --- drivers/media/i2c/ds90ub960.c | 92 ++++++++++++++++++++++++------------------- 1 file changed, 52 insertions(+), 40 deletions(-) diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c index 24198b803eff..5c393ec6c682 100644 --- a/drivers/media/i2c/ds90ub960.c +++ b/drivers/media/i2c/ds90ub960.c @@ -2950,6 +2950,56 @@ static const struct v4l2_subdev_pad_ops ub960_pad_ops = { .set_fmt = ub960_set_fmt, }; +static void ub960_log_status_ub960_sp_eq(struct ub960_data *priv, + unsigned int nport) +{ + struct device *dev = &priv->client->dev; + u8 eq_level; + s8 strobe_pos; + u8 v = 0; + + /* Strobe */ + + ub960_read(priv, UB960_XR_AEQ_CTL1, &v); + + dev_info(dev, "\t%s strobe\n", + (v & UB960_XR_AEQ_CTL1_AEQ_SFILTER_EN) ? "Adaptive" : + "Manual"); + + if (v & UB960_XR_AEQ_CTL1_AEQ_SFILTER_EN) { + ub960_read(priv, UB960_XR_SFILTER_CFG, &v); + + dev_info(dev, "\tStrobe range [%d, %d]\n", + ((v >> UB960_XR_SFILTER_CFG_SFILTER_MIN_SHIFT) & 0xf) - + 7, + ((v >> UB960_XR_SFILTER_CFG_SFILTER_MAX_SHIFT) & 0xf) - + 7); + } + + ub960_rxport_get_strobe_pos(priv, nport, &strobe_pos); + + dev_info(dev, "\tStrobe pos %d\n", strobe_pos); + + /* EQ */ + + ub960_rxport_read(priv, nport, UB960_RR_AEQ_BYPASS, &v); + + dev_info(dev, "\t%s EQ\n", + (v & UB960_RR_AEQ_BYPASS_ENABLE) ? "Manual" : + "Adaptive"); + + if (!(v & UB960_RR_AEQ_BYPASS_ENABLE)) { + ub960_rxport_read(priv, nport, UB960_RR_AEQ_MIN_MAX, &v); + + dev_info(dev, "\tEQ range [%u, %u]\n", + (v >> UB960_RR_AEQ_MIN_MAX_AEQ_FLOOR_SHIFT) & 0xf, + (v >> UB960_RR_AEQ_MIN_MAX_AEQ_MAX_SHIFT) & 0xf); + } + + if (ub960_rxport_get_eq_level(priv, nport, &eq_level) == 0) + dev_info(dev, "\tEQ level %u\n", eq_level); +} + static int ub960_log_status(struct v4l2_subdev *sd) { struct ub960_data *priv = sd_to_ub960(sd); @@ -2997,8 +3047,6 @@ static int ub960_log_status(struct v4l2_subdev *sd) for (nport = 0; nport < priv->hw_data->num_rxports; nport++) { struct ub960_rxport *rxport = priv->rxports[nport]; - u8 eq_level; - s8 strobe_pos; unsigned int i; dev_info(dev, "RX %u\n", nport); @@ -3034,44 +3082,8 @@ static int ub960_log_status(struct v4l2_subdev *sd) ub960_rxport_read(priv, nport, UB960_RR_CSI_ERR_COUNTER, &v); dev_info(dev, "\tcsi_err_counter %u\n", v); - /* Strobe */ - - ub960_read(priv, UB960_XR_AEQ_CTL1, &v); - - dev_info(dev, "\t%s strobe\n", - (v & UB960_XR_AEQ_CTL1_AEQ_SFILTER_EN) ? "Adaptive" : - "Manual"); - - if (v & UB960_XR_AEQ_CTL1_AEQ_SFILTER_EN) { - ub960_read(priv, UB960_XR_SFILTER_CFG, &v); - - dev_info(dev, "\tStrobe range [%d, %d]\n", - ((v >> UB960_XR_SFILTER_CFG_SFILTER_MIN_SHIFT) & 0xf) - 7, - ((v >> UB960_XR_SFILTER_CFG_SFILTER_MAX_SHIFT) & 0xf) - 7); - } - - ub960_rxport_get_strobe_pos(priv, nport, &strobe_pos); - - dev_info(dev, "\tStrobe pos %d\n", strobe_pos); - - /* EQ */ - - ub960_rxport_read(priv, nport, UB960_RR_AEQ_BYPASS, &v); - - dev_info(dev, "\t%s EQ\n", - (v & UB960_RR_AEQ_BYPASS_ENABLE) ? "Manual" : - "Adaptive"); - - if (!(v & UB960_RR_AEQ_BYPASS_ENABLE)) { - ub960_rxport_read(priv, nport, UB960_RR_AEQ_MIN_MAX, &v); - - dev_info(dev, "\tEQ range [%u, %u]\n", - (v >> UB960_RR_AEQ_MIN_MAX_AEQ_FLOOR_SHIFT) & 0xf, - (v >> UB960_RR_AEQ_MIN_MAX_AEQ_MAX_SHIFT) & 0xf); - } - - if (ub960_rxport_get_eq_level(priv, nport, &eq_level) == 0) - dev_info(dev, "\tEQ level %u\n", eq_level); + if (!priv->hw_data->is_ub9702) + ub960_log_status_ub960_sp_eq(priv, nport); /* GPIOs */ for (i = 0; i < UB960_NUM_BC_GPIOS; i++) { From patchwork Fri Oct 4 14:46:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 832879 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 026CE1AA781; Fri, 4 Oct 2024 14:47:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053247; cv=none; b=Nt+HIn0LxlzeuYldzVKlNImNv0EWOK8TPWu0jJz/4Fw2j3Ksx6CrNxk0tBbHkYKArNQxz8zAhkuYosMCzaQSdWM8Qt3NOeGR/3vsrQNbfz5J+xoWvKhiKN6smmojzFRrazUf6KgXu3rbycg1nPeLGerK5JUDewoH3pkIyFbiurY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053247; c=relaxed/simple; bh=qSsCPcVGpH7f2IeTssjNx0a1UIzRf92jRLnvfrYF2BM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A+hob0S7bIs0FTD8PSfKVQKm/APQXpDyI3FCB9yGBzXoywoApcF+lVMklGLN23jVVQWzQGOzSIqIqE1oJRR65jf6XlGiS5fCGC7rMzFIwhiSbF37dYIQJMzUW63T7nUk25Cea4KRivqpN55+7nGpBd3rVuNJLjgxGo7k6rBk8NU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=HmGQ9Fd9; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="HmGQ9Fd9" Received: from [127.0.1.1] (91-156-87-48.elisa-laajakaista.fi [91.156.87.48]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id E6EE7EF3; Fri, 4 Oct 2024 16:45:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1728053143; bh=qSsCPcVGpH7f2IeTssjNx0a1UIzRf92jRLnvfrYF2BM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=HmGQ9Fd9gK75DtvorqrZRhgDi3a9h/kdvRxATmYLjzQ6NM+ZfXRF33ojGrshY9x7b s2/6bI1iZmZcJ8U18RIDjt/gUwLdvSmfDudA35qmf3cf2DPCiKgvQ64uwpuwq8JQg/ eiKyWsWZDhRxtNxo+eHE+oJ0/LlShDQf0+YrlgD4= From: Tomi Valkeinen Date: Fri, 04 Oct 2024 17:46:37 +0300 Subject: [PATCH 06/13] media: i2c: ds90ub960: Add support for I2C_RX_ID Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241004-ub9xx-fixes-v1-6-e30a4633c786@ideasonboard.com> References: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> In-Reply-To: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> To: Mauro Carvalho Chehab , Sakari Ailus , Hans Verkuil , Andy Shevchenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jai Luthra , Tomi Valkeinen X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2244; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=qSsCPcVGpH7f2IeTssjNx0a1UIzRf92jRLnvfrYF2BM=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBm///tNONn6XaEMKvmcyGfNpIXPYdLRgDOf7P6z D7dnvDkcKaJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZv//7QAKCRD6PaqMvJYe 9SfyD/9vQ/T9R79l5MBY96j8Uhwh0l9YK8FvGuvfkMe9Flkpt+wXCKy6rpkUjYfcUEm06wdZKjH /39OCQILrbuXMUlhTapg8WGIc3z+C+LAokb8obV5uziCx6aLDObXgn0h7XqucuoeTYLS+grFXCu T+b+Q55f/B48PbF8e5voG48LkU10c3TKKT7nrUntXsxRQN1XkcZ5lNKdKeFBfgz05S5XJYsH9Sg +gU+WA+CDaVdGYhs1CyCWx1iOnxYYF437hEt8wRmz30w/mDNjXa7+Qjvc3W32rReiA0k4JRH/5J IlcFK9KLATNEF8TbM8T3KTlPNRVGcUwXvkMTp5nKcL2HVSD030dwa6nibtw1TgvzocQpPMBaMLw khmjVt8ohGolz8ZnJGWXzLQ4CBtN63ga7NzAe0YiDpyhSbzEJ+tHzpEb6FqeUczUywKffOZSgSF umgWaZ+qg4E7aFF83Y2AktqCSDYPb3+tyex4rwIvN+cskDKr9txXr35NmVW+epj2Z9CSAuA8WF/ vzzAfRz/UTnZl76G2Ba3f4yRRSKyVIE+tRx7scKefSVb3BcYjTv0/yL/vqk5vHxQWxbcYWc9Jog 1zSRoQCwiudT4mGyNHVg6WChqhpKcPipWWUWhsHn/BAsUq0SCWtaH6kebOhobGcInLYpjNXaSHx y3v7SHlkTSJzRCg== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Normally the driver accesses both the RX and the TX port registers via a paging mechanism: one register is used to select the page (i.e. the port), which dictates the port used when accessing the port specific registers. The downside to this is that while debugging it's almost impossible to access the port specific registers from the userspace, as the driver can change the page at any moment. The hardware supports another access mechanism: using the I2C_RX_ID registers (one for each RX port), i2c addresses can be chosen which, when accessed, will always use the specific port's registers, skipping the paging mechanism. The support is only for the RX port, but it has proven very handy while debugging and testing. So let's add the code for this, but hide it behind a disabled define. Signed-off-by: Tomi Valkeinen --- drivers/media/i2c/ds90ub960.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c index 9dc36bba0a87..5238088e23e2 100644 --- a/drivers/media/i2c/ds90ub960.c +++ b/drivers/media/i2c/ds90ub960.c @@ -54,6 +54,15 @@ #define MHZ(v) ((u32)((v) * 1000000U)) +/* + * If this is defined, the i2c addresses from UB960_DEBUG_I2C_RX_ID to + * UB960_DEBUG_I2C_RX_ID + 3 can be used to access the paged RX port registers + * directly. + * + * Only for debug purposes. + */ +/* #define UB960_DEBUG_I2C_RX_ID 0x40 */ + #define UB960_POLL_TIME_MS 500 #define UB960_MAX_RX_NPORTS 4 @@ -350,7 +359,7 @@ #define UB960_SR_FPD3_RX_ID(n) (0xf0 + (n)) #define UB960_SR_FPD3_RX_ID_LEN 6 -#define UB960_SR_I2C_RX_ID(n) (0xf8 + (n)) /* < UB960_FPD_RX_NPORTS */ +#define UB960_SR_I2C_RX_ID(n) (0xf8 + (n)) #define UB9702_SR_REFCLK_FREQ 0x3d @@ -4002,6 +4011,12 @@ static int ub960_probe(struct i2c_client *client) schedule_delayed_work(&priv->poll_work, msecs_to_jiffies(UB960_POLL_TIME_MS)); +#ifdef UB960_DEBUG_I2C_RX_ID + for (unsigned int i = 0; i < 4; ++i) + ub960_write(priv, UB960_SR_I2C_RX_ID(i), + (UB960_DEBUG_I2C_RX_ID + i) << 1); +#endif + return 0; err_free_sers: From patchwork Fri Oct 4 14:46:39 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 832878 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 455B83DABF4; Fri, 4 Oct 2024 14:47:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053250; cv=none; b=rcVhbL8McEedswos7F6cjSoKVlPhDIbS+3ZEd7G3Zr/jCYZlNmewoZ5fYuj5Ct+zOC7bFi9OJWeKQl9u5V8JS4Ucp3asS4F+QVP7C/749nmcJbusmNpJxf+mYkvvVQe+X1lxulldR7q7bqiSe1bpMzcG16YgSMg0jed31ib+wAU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053250; c=relaxed/simple; bh=jgGbPlVw9htVnBapbccOdLIZ3VXgt0d8E6hbJmD4w3s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aiFqJjBFCHd9uryDJfOmnFQbnc1WFRY/mhE/rTHKzU6mZrDq4HlfsVvIcLLNjZNZ9ImYt9SclWTFN/8/TrJ8SDgOnIw2FlPEVga5MJITRJJXxUM/FXQSjHxqmUSCuwPXvaIb5aJwDgWhF6BBvj9KokyVS99A7V3+ysJl6cpJ34w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=J5liEe//; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="J5liEe//" Received: from [127.0.1.1] (91-156-87-48.elisa-laajakaista.fi [91.156.87.48]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 1AF6FFF6; Fri, 4 Oct 2024 16:45:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1728053144; bh=jgGbPlVw9htVnBapbccOdLIZ3VXgt0d8E6hbJmD4w3s=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=J5liEe//47vwdet1Vi3VkdQxrjr0HpaGRaUr2N0bLMNr/HV+EB1bsYxqRrlIXR+sW qoUVW31t9hY4tfpQa4rl9LM+eXAEoy7/p36g4HtM5RD5gFlmpryLQW376Lekq0yHWR xk7ycxengNlRH92nDz3adlSLj4vT1NzMug3mkTDs= From: Tomi Valkeinen Date: Fri, 04 Oct 2024 17:46:39 +0300 Subject: [PATCH 08/13] media: i2c: ds90ub953: Clear CRC errors in ub953_log_status() Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241004-ub9xx-fixes-v1-8-e30a4633c786@ideasonboard.com> References: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> In-Reply-To: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> To: Mauro Carvalho Chehab , Sakari Ailus , Hans Verkuil , Andy Shevchenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jai Luthra , Tomi Valkeinen X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1264; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=jgGbPlVw9htVnBapbccOdLIZ3VXgt0d8E6hbJmD4w3s=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBm///uSS6hBrAAn1miI2EzxaG0vQiaM+wrwnSS4 A0WPHv9eI+JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZv//7gAKCRD6PaqMvJYe 9TiLEACK8QVnLwYhpNxlu51TOjeJfsInR9/w9mwDP3YgCgzd96nJ9QqPU5mQrZ8jCSjp5+LDR9z iKL58KRfclXiD247cEMldLB+tkEmam4fNhIaTnR1ah4BT1m9OC+khm8JrC0okBV3uv1NDfkBQ4v 9NIW/WmNZEH3AMVh6Kz9is814zx9eYw6bZBiqIUGg0WI7OQCTv2tS1mUbq7ruVUlXkXiag1px27 o8A51dDcwj/USHSh12dChaNmCZQSVP25rt75zCnpmSiDVr1ebkUJg0eckWmx9YOSf2tmLdWMny/ kagvEd3ovChMQsRppZFVowf3FYB0W/ikhH+MqUv+f0+z49bzFKWYEU6LiSSFqT+LPTEqee67ppL rNvE7ZLn27O66w6MBdQk2S31NHIVtVMY8XO+EdEATRRx8710LZaZQUITRw2/OqvLeqaDhrTI/u1 sJaEAUB6yLmHpkRXEv7gXwPataUFBWoXDR4qITi+ycjaS60kCkr5+sPMvA4ZpAYRm6DzXJP7epw x1ylLrLm13B+rJqMdRABpGZlD7iScQXIGdqRvhpkZQj6xw/4MhCvw2gZwCw3awlwIHA5f0I4GDv 9MOdfw9NVsjje04+82F8IU/xixxsyns3tHnR5HSwv5Ra0tM7G8X7AxwC67kf36PSp8r7Plnml9j fx679SfuEg2QFew== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Clear the CRC error counter after showing it in ub953_log_status() to make its behavior match the other counter values. Signed-off-by: Tomi Valkeinen --- drivers/media/i2c/ds90ub953.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/media/i2c/ds90ub953.c b/drivers/media/i2c/ds90ub953.c index 10daecf6f457..b6451811f906 100644 --- a/drivers/media/i2c/ds90ub953.c +++ b/drivers/media/i2c/ds90ub953.c @@ -66,6 +66,9 @@ #define UB953_REG_GPIO_INPUT_CTRL_OUT_EN(n) BIT(4 + (n)) #define UB953_REG_GPIO_INPUT_CTRL_INPUT_EN(n) BIT(0 + (n)) +#define UB953_REG_BC_CTRL 0x49 +#define UB953_REG_BC_CTRL_CRC_ERR_CLR BIT(3) + #define UB953_REG_REV_MASK_ID 0x50 #define UB953_REG_GENERAL_STATUS 0x52 @@ -619,6 +622,12 @@ static int ub953_log_status(struct v4l2_subdev *sd) ub953_read(priv, UB953_REG_CRC_ERR_CNT2, &v2); dev_info(dev, "CRC error count %u\n", v1 | (v2 << 8)); + /* Clear CRC error counter */ + if (v1 || v2) + regmap_update_bits(priv->regmap, UB953_REG_BC_CTRL, + UB953_REG_BC_CTRL_CRC_ERR_CLR, + UB953_REG_BC_CTRL_CRC_ERR_CLR); + ub953_read(priv, UB953_REG_CSI_ERR_CNT, &v); dev_info(dev, "CSI error count %u\n", v); From patchwork Fri Oct 4 14:46:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 832877 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A6041AA781; Fri, 4 Oct 2024 14:47:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053254; cv=none; b=DnhZmDW4TPiXqWm2CtM5Ja7JPfJjaBEZWfn/+wArYWPYXHY0x81OG+vOt2uM6VZUq2sg8RGh4ujujL++vJ3BPWJCsqYwHD7ava1JH07ifvJFn2fzCoo2YDBEQ5As4P6BTd79w2UM0e/FNuWM20WmJC/aVCfmHnjAlwwkUbfNytE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053254; c=relaxed/simple; bh=6fdywc+cwHNt5RhThvIeXc9zfPMryohuBnbUtfZSyhk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Q2Cd216rMx0Vu70ZHPLq6jyjFv3ff2gTNoJeMCHXy2puEluDGBH3+uFzhzUTFeaZugdk+nP/EbCa/nK9S2y9c2yKO8SHY/VJRMyAf1jSPSAovgLYytuLU+VNOGnMmTBOCO/Dif6+3iP5fmCLBRn7+nsaul8S/NzTlI/BWs5J0D4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=Yu8G66oZ; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Yu8G66oZ" Received: from [127.0.1.1] (91-156-87-48.elisa-laajakaista.fi [91.156.87.48]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 425D315A8; Fri, 4 Oct 2024 16:45:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1728053145; bh=6fdywc+cwHNt5RhThvIeXc9zfPMryohuBnbUtfZSyhk=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Yu8G66oZL2cD/WpIpG00Zj0VkW+qsXjxuTERD06uDGYRiKM7c/Avh8oYp7sTHc24u 5GaQUmMYx8AcV3rep+FVt8epRsqSAluvQFUGM8NMwXZGaysjZvohYvdPLujdBCzpZI gPfkQhT6KpUrU/TAgVlR2RMwnLkrfWUCU48Qi350= From: Tomi Valkeinen Date: Fri, 04 Oct 2024 17:46:41 +0300 Subject: [PATCH 10/13] media: i2c: ds90ub960: Reduce sleep in ub960_rxport_wait_locks() Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241004-ub9xx-fixes-v1-10-e30a4633c786@ideasonboard.com> References: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> In-Reply-To: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> To: Mauro Carvalho Chehab , Sakari Ailus , Hans Verkuil , Andy Shevchenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jai Luthra , Tomi Valkeinen X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=826; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=6fdywc+cwHNt5RhThvIeXc9zfPMryohuBnbUtfZSyhk=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBm///vrp6tBCvdYYky9HEEsPvqymb2hMB4DKjcW Ci8lHttoI6JAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZv//7wAKCRD6PaqMvJYe 9XS2EACqljzonZYt9wRcN57HrvjAPaCWfqqaU7XQ+edybGxrik46osbv7WcqmXNIlypoQdoWNtZ BGmd2fpO91cCA26tBE23RBU259PbfzjOpBSi9ZkuHTDEByDU5pwq/DWaW3kTjEZjPBDvmv5foJ6 iLOmG/bjJMWXmuHAdtvwdwvuQLXp+AWRPfg93raeJ+7djLA3BV8Gy9RO2zWN0ipJZw8QQ+V4HEw c4kjQVhYb8RSnqkgoVGJ25CyMnW/WhncPgOXjAzZVEnvsgGeEEdKVsicY9OC6NePqrDM784xdhl 7cB3xljZhYTJph2O4H9zRyHqcWJZu91jgHY5ddUuCYi3l0vPBppnHcH02+cOqmln7rN2xx56HIj DyTmibLfQKkECNYnjstfHQNm1A0MhkR/34xcmpcqLPOk5ATxwjCAorMqwimmJqwI5Q1hLecivHX mT4GAT7ZHdjmacROGSuQ4QN/e+Mq/8oUtR58a1M5cJc5/j0icrPfDBGT4qdb4fy2Ym9R+2kQfYh My07nbC0Tm4q5BrDdrMwr1gGpsFri2zClrCu9HvzGGo8ahdAYKBV/KJ0oKgqj3S4foYTH502vJX Gs6o+Ww406ncfLMqTrZyX5PPfaQt87vA40aEMObnqYO9EC38U6fhwQDj+k0WEHnXAbcjtVLnDfH 2ugCKTkZ3fmPj7g== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 We currently sleep for 50 ms at the end of each iteration in ub960_rxport_wait_locks(). This feels a bit excessive, especially as we always do at least two loops, so there's always at least one sleep, even if we already have a stable lock. Change the sleep to 10 ms. Signed-off-by: Tomi Valkeinen --- drivers/media/i2c/ds90ub960.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c index d4a3759bc568..ab5330db4162 100644 --- a/drivers/media/i2c/ds90ub960.c +++ b/drivers/media/i2c/ds90ub960.c @@ -1575,7 +1575,7 @@ static int ub960_rxport_wait_locks(struct ub960_data *priv, if (missing == 0) break; - msleep(50); + fsleep(10 * 1000); } if (lock_mask) From patchwork Fri Oct 4 14:46:43 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomi Valkeinen X-Patchwork-Id: 832876 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CD521C761A; Fri, 4 Oct 2024 14:47:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053257; cv=none; b=KMzXTjmoaitLEfXeNHt9OqFexWj0BcdnueGbNm+J77owNvL0ElJk7bFrSmgqMz8bhi2yInlAmpf/xjVenN/2O5x5pv1mZjfm5Y7q2W+wlke61EPOfkw+HBhOVBGXJ14X8i4+gJJZr/yG0v492OBDV6H5eiI/wy6NP+S2Q5BbU3w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728053257; c=relaxed/simple; bh=+ZxOAztOuJeE3hYoiQ1EiplfA7HJJP/spI/ixKxrsf0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NcDkJ8w+Q1Ru/FGVErd1fiDoV/rmB4J2h6S4TvuhYMEoMeuEnOjy3gaIXU5U1v/OLmXxWwjurq24BtxkNI6NSA+teWidnylvpyVVQsA87Huwuu/ZcHm37UqPsAvV7wDmi2F+CYD97ublBYQxOINvp+JfI3oCugi48Fz1HzFOLTk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=K3+Wm7b9; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="K3+Wm7b9" Received: from [127.0.1.1] (91-156-87-48.elisa-laajakaista.fi [91.156.87.48]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6781317D6; Fri, 4 Oct 2024 16:45:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1728053146; bh=+ZxOAztOuJeE3hYoiQ1EiplfA7HJJP/spI/ixKxrsf0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=K3+Wm7b9vjtgRf+yCSZjrmf6gdInIfX6b/pXpMXfkQJApwzxmjZNQ9yKImWgKGWlh 1EcESIROatqZE2Gs8ZSOQ0vMB7/K1tGMKFR+syOVlj9GMNZF0X9X+t5LbF4qLRbV4H YXOOIV9DwatGwsCkOZvhiXGfTiOmpb2GmheQ8h/Y= From: Tomi Valkeinen Date: Fri, 04 Oct 2024 17:46:43 +0300 Subject: [PATCH 12/13] media: i2c: ds90ub913: Add error handling to ub913_hw_init() Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241004-ub9xx-fixes-v1-12-e30a4633c786@ideasonboard.com> References: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> In-Reply-To: <20241004-ub9xx-fixes-v1-0-e30a4633c786@ideasonboard.com> To: Mauro Carvalho Chehab , Sakari Ailus , Hans Verkuil , Andy Shevchenko Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Jai Luthra , Tomi Valkeinen X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1528; i=tomi.valkeinen@ideasonboard.com; h=from:subject:message-id; bh=+ZxOAztOuJeE3hYoiQ1EiplfA7HJJP/spI/ixKxrsf0=; b=owEBbQKS/ZANAwAIAfo9qoy8lh71AcsmYgBm///wpKrNi5tRqkM405PXKPOQ1epABh3DRq2m8 adne70l3qyJAjMEAAEIAB0WIQTEOAw+ll79gQef86f6PaqMvJYe9QUCZv//8AAKCRD6PaqMvJYe 9ZTED/4yO6+8OpikFMHTLXfHuiZnvx+z8P4fjp1ey5atbQXxjCkfXusChh4npDWEyahHg73CI8b VILe+PVBsWHzIBvBmbJtkoa8eVG1xuuIYHX1gCwyRJ2R5nVk6lerzEAbA1pBVm2Uwi/IqysOQDy coyFTqj0oBOfmsJuXrDAU2B4r6zVwQKJp//gGlWESCRLmf7JvT/bC87uWgqM6Fp4zlAGn94M8sE V6wm2KefkSTB5nFlWpEtFvR2tEi+KIqcbazudeojevpw6PTCWen7nEr0gNNlLooG/EkWRxgxeJ8 RC5mw/ZDY9Ezt5A2LwUL9VJX6rZjYhSsLZjow9Ev35jvXxbhYkvLXiJD1idcU/0Fgf34t87or+U p2O6GmoUZNIx2SPNwmbzj+cygl2uMzQx0rpOWqoypSaISmHrwIjL3tE0yvOLNAb2ejkjAyHn3j3 jYakdR4gQ9Z5iM9Pzy3RO6b+dFWxdVe7OwmIzagl5IM01e4guTJqxFJ4Ml6HqOpg1oDXsTG8x7D eqvDaSeZYGX6ShYQ3d5puQ7P1OICJrml/o/3yItGOxD+g5WCRP6MaUwd6y9PCYNyC58dsrjV+GO jRO87zR3uxpaLHaKBmys9gqTBXl8A75pZVOwjbQdHrjaQNLfczLU3+OXjXKlCm/dledVVsQKcNE TnnKxvMgESnCQJA== X-Developer-Key: i=tomi.valkeinen@ideasonboard.com; a=openpgp; fpr=C4380C3E965EFD81079FF3A7FA3DAA8CBC961EF5 Add error handling to ub913_hw_init() using a new helper function, ub913_update_bits(). Signed-off-by: Tomi Valkeinen --- drivers/media/i2c/ds90ub913.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/drivers/media/i2c/ds90ub913.c b/drivers/media/i2c/ds90ub913.c index 150d6641516f..8b540b360e79 100644 --- a/drivers/media/i2c/ds90ub913.c +++ b/drivers/media/i2c/ds90ub913.c @@ -146,6 +146,19 @@ static int ub913_write(const struct ub913_data *priv, u8 reg, u8 val) return ret; } +static int ub913_update_bits(const struct ub913_data *priv, u8 reg, u8 mask, + u8 val) +{ + int ret; + + ret = regmap_update_bits(priv->regmap, reg, mask, val); + if (ret < 0) + dev_err(&priv->client->dev, + "Cannot update register 0x%02x %d!\n", reg, ret); + + return ret; +} + /* * GPIO chip */ @@ -733,10 +746,13 @@ static int ub913_hw_init(struct ub913_data *priv) if (ret) return dev_err_probe(dev, ret, "i2c master init failed\n"); - ub913_read(priv, UB913_REG_GENERAL_CFG, &v); - v &= ~UB913_REG_GENERAL_CFG_PCLK_RISING; - v |= priv->pclk_polarity_rising ? UB913_REG_GENERAL_CFG_PCLK_RISING : 0; - ub913_write(priv, UB913_REG_GENERAL_CFG, v); + ret = ub913_update_bits(priv, UB913_REG_GENERAL_CFG, + UB913_REG_GENERAL_CFG_PCLK_RISING, + priv->pclk_polarity_rising ? + UB913_REG_GENERAL_CFG_PCLK_RISING : + 0); + if (ret) + return ret; return 0; }