diff mbox series

[v2,4/8] usb: typec: fusb302: Check vconn is off when we start toggling

Message ID 20190307163607.24016-5-hdegoede@redhat.com (mailing list archive)
State Superseded
Headers show
Series usb: typec: fusb302: Various fixes | expand

Commit Message

Hans de Goede March 7, 2019, 4:36 p.m. UTC
The datasheet says the vconn MUST be off when we start toggling. The
tcpm.c state-machine is responsible to make sure vconn is off, but
lets add a WARN_ON check to catch any cases where vconn is not off
for some reason.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/usb/typec/tcpm/fusb302.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Guenter Roeck March 7, 2019, 6:11 p.m. UTC | #1
On Thu, Mar 07, 2019 at 05:36:03PM +0100, Hans de Goede wrote:
> The datasheet says the vconn MUST be off when we start toggling. The
> tcpm.c state-machine is responsible to make sure vconn is off, but
> lets add a WARN_ON check to catch any cases where vconn is not off
> for some reason.
> 

Curious - have you seen this happening ?

> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
>  drivers/usb/typec/tcpm/fusb302.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c
> index cb6637e82f32..f43fe34b7a73 100644
> --- a/drivers/usb/typec/tcpm/fusb302.c
> +++ b/drivers/usb/typec/tcpm/fusb302.c
> @@ -607,6 +607,8 @@ static int fusb302_set_toggling(struct fusb302_chip *chip,
>  			return ret;
>  		chip->intr_togdone = false;
>  	} else {
> +		/* Datasheet says vconn MUST be off when toggling */
> +		WARN_ON(chip->vconn_on);

Personally I am not a friend of WARN_ON. I prefer WARN statements
telling me what is wrong.

>  		/* unmask TOGDONE interrupt */
>  		ret = fusb302_i2c_clear_bits(chip, FUSB_REG_MASKA,
>  					     FUSB_REG_MASKA_TOGDONE);
> -- 
> 2.20.1
>
Hans de Goede March 8, 2019, 12:26 p.m. UTC | #2
Hi,

On 07-03-19 19:11, Guenter Roeck wrote:
> On Thu, Mar 07, 2019 at 05:36:03PM +0100, Hans de Goede wrote:
>> The datasheet says the vconn MUST be off when we start toggling. The
>> tcpm.c state-machine is responsible to make sure vconn is off, but
>> lets add a WARN_ON check to catch any cases where vconn is not off
>> for some reason.
>>
> 
> Curious - have you seen this happening ?

No, just something which I noticed in the datasheet and it seems
like a good idea to add a check for this.

>> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
>> ---
>>   drivers/usb/typec/tcpm/fusb302.c | 2 ++
>>   1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c
>> index cb6637e82f32..f43fe34b7a73 100644
>> --- a/drivers/usb/typec/tcpm/fusb302.c
>> +++ b/drivers/usb/typec/tcpm/fusb302.c
>> @@ -607,6 +607,8 @@ static int fusb302_set_toggling(struct fusb302_chip *chip,
>>   			return ret;
>>   		chip->intr_togdone = false;
>>   	} else {
>> +		/* Datasheet says vconn MUST be off when toggling */
>> +		WARN_ON(chip->vconn_on);
> 
> Personally I am not a friend of WARN_ON. I prefer WARN statements
> telling me what is wrong.

Ok, I will switch to WARN() for v3 of the series.

Regards,

Hans


>>   		/* unmask TOGDONE interrupt */
>>   		ret = fusb302_i2c_clear_bits(chip, FUSB_REG_MASKA,
>>   					     FUSB_REG_MASKA_TOGDONE);
>> -- 
>> 2.20.1
>>
diff mbox series

Patch

diff --git a/drivers/usb/typec/tcpm/fusb302.c b/drivers/usb/typec/tcpm/fusb302.c
index cb6637e82f32..f43fe34b7a73 100644
--- a/drivers/usb/typec/tcpm/fusb302.c
+++ b/drivers/usb/typec/tcpm/fusb302.c
@@ -607,6 +607,8 @@  static int fusb302_set_toggling(struct fusb302_chip *chip,
 			return ret;
 		chip->intr_togdone = false;
 	} else {
+		/* Datasheet says vconn MUST be off when toggling */
+		WARN_ON(chip->vconn_on);
 		/* unmask TOGDONE interrupt */
 		ret = fusb302_i2c_clear_bits(chip, FUSB_REG_MASKA,
 					     FUSB_REG_MASKA_TOGDONE);