mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Jai Luthra <jai.luthra@ideasonboard.com>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	stable@vger.kernel.org
Subject: Re: [PATCH v4 04/15] media: i2c: ds90ub960: Fix logging SP & EQ status only for UB9702
Date: Tue, 10 Dec 2024 09:38:30 +0200	[thread overview]
Message-ID: <e53c8964-5373-4c1f-ad48-69a474a997fb@ideasonboard.com> (raw)
In-Reply-To: <Z1a0OiRDw92o1w6_@kekkonen.localdomain>

Hi,

On 09/12/2024 11:11, Sakari Ailus wrote:
> Huomenta,
> 
> On Fri, Dec 06, 2024 at 10:26:40AM +0200, Tomi Valkeinen wrote:
>> 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.
>>
>> Cc: stable@vger.kernel.org
>> Fixes: afe267f2d368 ("media: i2c: add DS90UB960 driver")
>> Reviewed-by: Jai Luthra <jai.luthra@ideasonboard.com>
>> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
>> ---
>>   drivers/media/i2c/ds90ub960.c | 90 ++++++++++++++++++++++++-------------------
>>   1 file changed, 50 insertions(+), 40 deletions(-)
>>
>> diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c
>> index 24198b803eff..94c8acf171b4 100644
>> --- a/drivers/media/i2c/ds90ub960.c
>> +++ b/drivers/media/i2c/ds90ub960.c
>> @@ -2950,6 +2950,54 @@ 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);
> 
> How about adding __must_check to the ub960_read()?

Actually, this is just moving code around (behind an if), so I'd rather 
not add more to this patch, especially as this is a fix.

We'll add the error handling separately on top.

  Tomi

> 
>> +
>> +	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 +3045,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 +3080,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++) {
>>
> 


  parent reply	other threads:[~2024-12-10  7:38 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-06  8:26 [PATCH v4 00/15] media: i2c: ds90ub9xx: Misc fixes and improvements Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 01/15] media: i2c: ds90ub9x3: Fix extra fwnode_handle_put() Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 02/15] media: i2c: ds90ub960: Fix UB9702 refclk register access Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 03/15] media: i2c: ds90ub960: Fix use of non-existing registers on UB9702 Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 04/15] media: i2c: ds90ub960: Fix logging SP & EQ status only for UB9702 Tomi Valkeinen
2024-12-09  9:11   ` Sakari Ailus
2024-12-09 10:14     ` Tomi Valkeinen
2024-12-10  7:38     ` Tomi Valkeinen [this message]
2024-12-10  7:42       ` Sakari Ailus
2024-12-06  8:26 ` [PATCH v4 05/15] media: i2c: ds90ub960: Fix UB9702 VC map Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 06/15] media: i2c: ds90ub960: Use HZ_PER_MHZ Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 07/15] media: i2c: ds90ub960: Add support for I2C_RX_ID Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 08/15] media: i2c: ds90ub960: Add RGB24, RAW8 and RAW10 formats Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 09/15] media: i2c: ds90ub953: Clear CRC errors in ub953_log_status() Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 10/15] media: i2c: ds90ub960: Drop unused indirect block define Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 11/15] media: i2c: ds90ub960: Reduce sleep in ub960_rxport_wait_locks() Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 12/15] media: i2c: ds90ub960: Handle errors in ub960_log_status_ub960_sp_eq() Tomi Valkeinen
2024-12-14 18:49   ` Sakari Ailus
2024-12-06  8:26 ` [PATCH v4 13/15] media: i2c: ds90ub913: Add error handling to ub913_hw_init() Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 14/15] media: i2c: ds90ub953: Add error handling for i2c reads/writes Tomi Valkeinen
2024-12-06  8:26 ` [PATCH v4 15/15] media: i2c: ds90ub960: Fix shadowing of local variables Tomi Valkeinen
2024-12-06 15:34 ` [PATCH v4 00/15] media: i2c: ds90ub9xx: Misc fixes and improvements Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e53c8964-5373-4c1f-ad48-69a474a997fb@ideasonboard.com \
    --to=tomi.valkeinen@ideasonboard.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=jai.luthra@ideasonboard.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®