Corey,

I have someone trying to build a 2.4.27 kernel with OpenIPMI driver +
SMBus patches + lm_sensors patch (v2.10) for i2c_i801.  
It seems to work fine if they are all defined as modules, but they want
compile these modules in to the kernel, and when they do that, i2c loads
after ipmi.  
The drivers/char/Config.in has the $CONFIG_I2C dependency, so it looks
like this ought to work.
Details attached.  I've always worked with kernels where lm_sensors/i2c
was already integrated. 

Is this something you have seen before?  Any hints?

Andy
 

So I updated the config changing all =m by =y in the IPMI and I2C
sections.
Here are 2 extracts from my config:

#
# I2C support
#
CONFIG_I2C=y
CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_PHILIPSPAR is not set
# CONFIG_I2C_ELV is not set
# CONFIG_I2C_VELLEMAN is not set
# CONFIG_I2C_PPORT is not set
# CONFIG_SCx200_I2C is not set
CONFIG_SCx200_ACB=y
CONFIG_I2C_ALGOPCF=y
# CONFIG_I2C_ELEKTOR is not set
# CONFIG_I2C_PCFEPP is not set
CONFIG_I2C_MAINBOARD=y
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_HYDRA is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
CONFIG_I2C_I801=y
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS645 is not set
# CONFIG_I2C_SAVAGE4 is not set
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_ISA is not set
# CONFIG_I2C_CHARDEV is not set
# CONFIG_I2C_PROC is not set

CONFIG_IPMI_HANDLER=y
# CONFIG_IPMI_PANIC_EVENT is not set
# CONFIG_IPMI_PANIC_STRING is not set
CONFIG_IPMI_DEVICE_INTERFACE=y
# CONFIG_IPMI_SI is not set
# CONFIG_IPMI_KCS is not set
CONFIG_IPMI_SMB=y
CONFIG_IPMI_WATCHDOG=y
# CONFIG_IPMI_POWEROFF is not set

Unfortunately, the lm_sensor patch somehow has changed
the init order of i2c-core (it used to get started before ipmi).
I have these messages in this order in the log:
...
ipmi_smb_setup smb_dbg_probe=1 0x0.0x42:1
(this a printk of the outcome of ipmi_smb_setup that I added)
...
Software Watchdog Timer: 0.05, timer margin: 60 sec
ipmi message handler version 37
ipmi device interface version 37
IPMI SMB Interface driver version 37
IPMI watchdog driver version 37
RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize
loop: loaded (max 8 devices)
imq driver loaded.
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: SILICONSYSTEMS INC 128MB, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: attached ide-disk driver.
hda: 254208 sectors (130 MB) w/0KiB Cache, CHS=993/8/32
Partition check:
 hda: hda1 hda2 hda3 hda4
i2c-core.o: i2c core module version 2.10.0 (20060214)
i2c-i801 version 2.10.0 (20060214)
...

And the device 42 is not detected anymore.
The only thing that I can see is the fact that i2c-core and i2c-i801 are inited
after the ipmi objects, which seems wrong...
I dont know inside kernel how the init order is decided

Reply via email to