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 |
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 >
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 --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:
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(+)