Patch: Kernel 2.6 and multiple buses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Karsten,

On 2005-09-09, Karsten Petersen wrote:

> My main problem is easily describable as:  Although there was a good 
> looking sensors.conf, its options were not used with all chips.  Those 
> chips with chip-lines like "bla-*" were ok, but those with lines like 
> "bla-i2c-3-*" just showed default labels.

Yes, this is a known problem with Linus 2.6.

> One first problem was, that the "bus" line in sensors.conf needs to have 
> another value than when running kernel 2.4 on the same machine.
> With kernel 2.4 its like this:
>    bus "i2c-4" "SMBus 8111 adapter (CPU3)" "Non-I2C SMBus adapter"
> But with kernel 2.6, it must be like this:
>    bus "i2c-4" "SMBus 8111 adapter (CPU3)" "Unavailable from sysfs"
> It seems to me, that the third argument is redundant these days, so it 
> could probably be dropped or made optional.  It took me some time to 
> find out about this problem, because the comparison in lib/data.c:233 is 
> not helpful at all.  :-/

Correct, that explains a part of the problem. Thanks for pointing it out.
We should probably drop the algorithm test completely (and make it
optional in the configuration file as you suggested, but I don't know
how do to this myself.) That algorithm name was given way too much
importance in the early days of lm_sensors, I believe it should never
have been handled by libsensors in the first place. Algorithms are
implementation details users don't care about.

> But this did not solve my problem, more sensor chips showed usefull 
> labels but not all.  After a lot of printf debugging it became clear, 
> that the sensors_substitute_chip function in lib/data.c assigns wrong 
> bus numbers to the configured chips.  This is because the busses in the 
> sensors_config_busses array are _not_ sorted, so 
> sensors_config_busses[j] does not need to be the bus with id "j".  But 
> the function thinks, that this is the case.  It probably was with kernel 
> 2.4, but not with the kernel 2.6.9 (+lot of patches) I am running.
> The attached patch corrects this behavior, it uses the bus id from the 
> entry sensors_config_busses[j] instead of "j".

Thanks a lot for this patch. I had been investigating this bug some times
ago but could never figure out what the problem was. It's really great
that you did succeed in finding the reason. I know it'll make a few
other users happy too.

Thanks again,
--
Jean Delvare




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux