Re: [BUG] hwmon: (spd5118) resume fails -ENXIO on write protected hubs
Armin Wolf <[email protected]>
| Newsgroups | org.kernel.vger.linux-hwmon,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Am 17.08.26 um 19:03 schrieb GG: > Understood - thanks for explaining the page selection part, that makes sense. I'll blacklist it for now. > > Appreciate you taking the time to get back to me on this! > > Gabriel G > > On Monday, August 17th, 2026 at 12:58 PM, Guenter Roeck <[email protected]> wrote: > >> On 8/17/26 09:42, GG wrote: >>> Sorry - I should have searched the archives before sending my last email. I've since >>> found this from February, which is the same problem: >>> >>> https://lore.kernel.org/linux-hwmon/[email protected]/ >>> >>> And I missed the obvious clue sitting in my own boot log: >>> >>> i801_smbus 0000:00:1f.4: SPD Write Disable is set >>> >>> So my kernel already knew. Apologies for the noise. >>> >> Unfortunately that knowledge is not passed on to the spd5118 driver. Yes, sadly the patch series adding support for this was abandoned :/ >>> One thing I'll mention in case it's useful: that series above has spd5118 refuse to >>> probe when writes are disabled. On my machine that would lose me two working >>> temperature sensors. Reads are completely fine here, I get correct temps, >>> and my temperature limits read back properly. It's only writing that fails. >>> >>> Happy to test anything on my hardware if it would help. >>> >> That can not be done, as I mentioned in my other e-mail. >> >> Problem is that accessing temperature sensor data on spd5118 compatible chips >> requires a write to select the correct chip page. If writes are disabled, and >> the BIOS selected a page other than page 0, temperature sensor data is not >> accessible. Since the BIOS can do whatever it wants and may have selected a >> different page after a suspend/resume sequence, one simply can not trust >> the status when the driver is loaded initially. >> >> Guenter Would it be enough if we always select page 0 inside spd5118_i2c_init(), thereby preventing the driver from probing on hardware that does not allow us to write the page select register? Thanks, Armin Wolf