diff mbox series

[v1,2/7] hwmon: (it87) Disable configuration exit for certain chips

Message ID 20230126040223.986189-3-frank@crawford.emu.id.au (mailing list archive)
State Superseded
Headers show
Series hwmon: (it87) Complete handling multi-chip configuration | expand

Commit Message

Frank Crawford Jan. 26, 2023, 4:02 a.m. UTC
IT8790E and IT8792E/IT8795E have been identified as chips that can have
issues when disabling configuration mode.

Set to never exit configuration mode.

Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
---
 drivers/hwmon/it87.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Guenter Roeck Jan. 26, 2023, 1:42 p.m. UTC | #1
On Thu, Jan 26, 2023 at 03:02:18PM +1100, Frank Crawford wrote:
> IT8790E and IT8792E/IT8795E have been identified as chips that can have
> issues when disabling configuration mode.
> 
> Set to never exit configuration mode.
> 
> Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
> ---
>  drivers/hwmon/it87.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> index 7049e81f5af1..c5e46b94f0b8 100644
> --- a/drivers/hwmon/it87.c
> +++ b/drivers/hwmon/it87.c
> @@ -2453,6 +2453,13 @@ static int __init it87_find(int sioaddr, unsigned short *address,
>  		break;
>  	case IT8792E_DEVID:
>  		sio_data->type = it8792;
> +		/*
> +		 * Disabling configuration mode on IT8792E can result in system
> +		 * hang-ups and access failures to the Super-IO chip at the
> +		 * second SIO address. Never exit configuration mode on this
> +		 * chip to avoid the problem.
> +		 */
> +		doexit = false;

Why not just use a feature flag ?

Guenter

>  		break;
>  	case IT8771E_DEVID:
>  		sio_data->type = it8771;
> @@ -2474,6 +2481,7 @@ static int __init it87_find(int sioaddr, unsigned short *address,
>  		break;
>  	case IT8790E_DEVID:
>  		sio_data->type = it8790;
> +		doexit = false;	/* See IT8792E comment above */
>  		break;
>  	case IT8603E_DEVID:
>  	case IT8623E_DEVID:
> -- 
> 2.39.1
>
Frank Crawford Jan. 26, 2023, 10:49 p.m. UTC | #2
On Thu, 2023-01-26 at 05:42 -0800, Guenter Roeck wrote:
> On Thu, Jan 26, 2023 at 03:02:18PM +1100, Frank Crawford wrote:
> > IT8790E and IT8792E/IT8795E have been identified as chips that can
> > have
> > issues when disabling configuration mode.
> > 
> > Set to never exit configuration mode.
> > 
> > Signed-off-by: Frank Crawford <frank@crawford.emu.id.au>
> > ---
> >  drivers/hwmon/it87.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
> > index 7049e81f5af1..c5e46b94f0b8 100644
> > --- a/drivers/hwmon/it87.c
> > +++ b/drivers/hwmon/it87.c
> > @@ -2453,6 +2453,13 @@ static int __init it87_find(int sioaddr,
> > unsigned short *address,
> >                 break;
> >         case IT8792E_DEVID:
> >                 sio_data->type = it8792;
> > +               /*
> > +                * Disabling configuration mode on IT8792E can
> > result in system
> > +                * hang-ups and access failures to the Super-IO
> > chip at the
> > +                * second SIO address. Never exit configuration
> > mode on this
> > +                * chip to avoid the problem.
> > +                */
> > +               doexit = false;
> 
> Why not just use a feature flag ?

Good point.  I'll rework it to do that.

> 
> Guenter

Regards
Frank
> 
> >                 break;
> >         case IT8771E_DEVID:
> >                 sio_data->type = it8771;
> > @@ -2474,6 +2481,7 @@ static int __init it87_find(int sioaddr,
> > unsigned short *address,
> >                 break;
> >         case IT8790E_DEVID:
> >                 sio_data->type = it8790;
> > +               doexit = false; /* See IT8792E comment above */
> >                 break;
> >         case IT8603E_DEVID:
> >         case IT8623E_DEVID:
> > -- 
> > 2.39.1
> >
diff mbox series

Patch

diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
index 7049e81f5af1..c5e46b94f0b8 100644
--- a/drivers/hwmon/it87.c
+++ b/drivers/hwmon/it87.c
@@ -2453,6 +2453,13 @@  static int __init it87_find(int sioaddr, unsigned short *address,
 		break;
 	case IT8792E_DEVID:
 		sio_data->type = it8792;
+		/*
+		 * Disabling configuration mode on IT8792E can result in system
+		 * hang-ups and access failures to the Super-IO chip at the
+		 * second SIO address. Never exit configuration mode on this
+		 * chip to avoid the problem.
+		 */
+		doexit = false;
 		break;
 	case IT8771E_DEVID:
 		sio_data->type = it8771;
@@ -2474,6 +2481,7 @@  static int __init it87_find(int sioaddr, unsigned short *address,
 		break;
 	case IT8790E_DEVID:
 		sio_data->type = it8790;
+		doexit = false;	/* See IT8792E comment above */
 		break;
 	case IT8603E_DEVID:
 	case IT8623E_DEVID: