We will port w83792d.c to linux-2.6

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

 



Hi Rudolf

Great! It seems that you find out the reason, the eeprom module works well.
The attachment is the debug message. Please check it.

   i2cdump 0 0x50   --> message1
   i2cdump 0 0x50 c  --> message2
   modprobe eeprom    --> message3
   sensors
   modprobe w83792d    --> message4
   sensors             --> message5

   i2cdump 0 0x50 w  --> message6
   i2cdump 0 0x50 c  --> message7


The following is the dump output:
[root@ ~]# i2cdump 0 0x50
No size specified (using byte-data access)
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x50, mode byte
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ac ff 07 0c 0a 01 48 00 04 75 75 02 80 08 08 01    ?.????H.?uu?????
10: 0e 04 0c 01 02 26 00 a0 75 00 00 50 3c 50 30 20    ?????&.?u..P<P0
20: 00 00 50 50 00 00 00 00 00 41 4b 30 32 75 00 00    ..PP.....AK02u..
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a    ...............?
40: 80 00 00 00 00 00 00 bb ff 00 00 00 00 00 00 00    ?......?........
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: 00 00 ac ff ff ff ff ff ff ff ff ff ff ff ff ff    ..?.............
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
[root@ ~]# i2cdump 0 0x50 c
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x50, mode byte consecutive read
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ac ff 07 0c 0a 01 48 00 04 75 75 02 80 08 08 01    ?.????H.?uu?????
10: 0e 04 0c 01 02 26 00 a0 75 00 00 50 3c 50 30 20    ?????&.?u..P<P0
20: 00 00 50 50 00 00 00 00 00 41 4b 30 32 75 00 00    ..PP.....AK02u..
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a    ...............?
40: 80 00 00 00 00 00 00 bb ff 00 00 00 00 00 00 00    ?......?........
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: 00 00 ac ff ff ff ff ff ff ff ff ff ff ff ff ff    ..?.............
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
[root@ ~]# modprobe eeprom
[root@ ~]# sensors
eeprom-i2c-0-51
Adapter: SMBus ALi 1563 Adapter @ 5000
Memory type:            DDR SDRAM DIMM
Memory size (MB):       128

eeprom-i2c-0-50
Adapter: SMBus ALi 1563 Adapter @ 5000
Memory type:            DDR SDRAM DIMM
Memory size (MB):       128

[root@ ~]# modprobe w83792d
[root@ ~]# sensors
w83792d-i2c-0-2f
Adapter: SMBus ALi 1563 Adapter @ 5000
VCoreA:    +1.52 V  (min =  +0.00 V, max =  +1.78 V)
VCoreB:    +0.54 V  (min =  +0.00 V, max =  +1.78 V)
VIN0:      +3.30 V  (min =  +0.00 V, max =  +4.08 V)
VIN1:      +3.15 V  (min =  +0.00 V, max =  +4.08 V)
VIN2:      +2.52 V  (min =  +0.00 V, max =  +4.08 V)
VIN3:      +1.26 V  (min =  +0.00 V, max =  +4.08 V)
5VCC:      +5.03 V  (min =  +0.00 V, max =  +6.12 V)
5VSB:      +4.99 V  (min =  +0.00 V, max =  +6.12 V)
VBAT:      +3.18 V  (min =  +0.00 V, max =  +4.08 V)
Fan1:     1638 RPM  (min =  703 RPM, div = 8)
Fan2:        0 RPM  (min =  703 RPM, div = 8)
Fan3:        0 RPM  (min =  703 RPM, div = 8)
Fan4:        0 RPM  (min =  703 RPM, div = 8)
Fan5:        0 RPM  (min =  703 RPM, div = 8)
Fan6:        0 RPM  (min =  703 RPM, div = 8)
Fan7:     37500 RPM  (min =    0 RPM, div = 2)
Temp1:     +38.0??C  (high = +80.0??C, hyst = +75.0??C)   ALARM
Temp2:      -8.0??C  (high = +80.0??C, hyst = +75.0??C)   ALARM
Temp3:     +42.0??C  (high = +80.0??C, hyst = +75.0??C)   ALARM
chassis:  Chassis is normal.

eeprom-i2c-0-51
Adapter: SMBus ALi 1563 Adapter @ 5000
Memory type:            DDR SDRAM DIMM
Memory size (MB):       128

eeprom-i2c-0-50
Adapter: SMBus ALi 1563 Adapter @ 5000
Memory type:            DDR SDRAM DIMM
Memory size (MB):       128


[root@ ~]# i2cdump 0 0x50 w
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x50, mode word
Continue? [Y/n]
     0,8  1,9  2,a  3,b  4,c  5,d  6,e  7,f
00: ffac 07ff 0c07 0a0c 010a 4801 0048 0400
08: 7504 7575 0275 8002 0880 0808 0108 0e01
10: 040e 0c04 010c 0201 2602 0026 a000 75a0
18: 0075 0000 5000 3c50 503c 3050 2030 0020
20: 0000 5000 5050 0050 0000 0000 0000 0000
28: 4100 4b41 304b 3230 7532 0075 0000 0000
30: 0000 0000 0000 0000 0000 0000 0000 0000
38: 0000 0000 0000 0000 0000 0000 1a00 801a
40: 0080 0000 0000 0000 0000 0000 bb00 ffbb
48: 00ff 0000 0000 0000 0000 0000 0000 0000
50: 0000 0000 0000 0000 0000 0000 0000 0000
58: 0000 0000 0000 0000 0000 0000 0000 0000
60: 0000 0000 0000 0000 0000 0000 0000 0000
68: 0000 0000 0000 0000 0000 0000 0000 0000
70: 0000 0000 0000 0000 0000 0000 0000 0000
78: 0000 0000 0000 0000 0000 0000 0000 8000
80: 0080 ff00 ffff ffff ffff ffff ffff ffff
88: ffff ffff ffff ffff ffff ffff ffff ffff
90: ffff ffff ffff ffff ffff ffff ffff ffff
98: ffff ffff ffff ffff ffff ffff ffff 00ff
a0: 0000 ff00 ffff ffff ffff ffff ffff ffff
a8: ffff ffff ffff ffff ffff ffff ffff ffff
b0: ffff ffff ffff ffff ffff ffff ffff ffff
b8: ffff ffff ffff ffff ffff ffff ffff 80ff
c0: 0080 ff00 ffff ffff ffff ffff ffff ffff
c8: ffff ffff ffff ffff ffff ffff ffff ffff
d0: ffff ffff ffff ffff ffff ffff ffff ffff
d8: ffff ffff ffff ffff ffff ffff ffff 00ff
e0: 0000 ac00 ffac ffff ffff ffff ffff ffff
e8: ffff ffff ffff ffff ffff ffff ffff ffff
f0: ffff ffff ffff ffff ffff ffff ffff ffff
f8: ffff ffff ffff ffff ffff ffff ffff acff
[root@ ~]# i2cdump 0 0x50 c
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0, address 0x50, mode byte consecutive read
Continue? [Y/n]
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ac ff 07 0c 0a 01 48 00 04 75 75 02 80 08 08 01    ?.????H.?uu?????
10: 0e 04 0c 01 02 26 00 a0 75 00 00 50 3c 50 30 20    ?????&.?u..P<P0
20: 00 00 50 50 00 00 00 00 00 41 4b 30 32 75 00 00    ..PP.....AK02u..
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a    ...............?
40: 80 00 00 00 00 00 00 bb ff 00 00 00 00 00 00 00    ?......?........
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
80: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: 00 00 ac ff ff ff ff ff ff ff ff ff ff ff ff ff    ..?.............
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
[root@ ~]# rmmod w83792d
[root@ ~]# rmmod eeprom
[root@ ~]# modprobe w83792d
[root@ ~]# modprobe eeprom
[root@ ~]# sensors
eeprom-i2c-0-51
Adapter: SMBus ALi 1563 Adapter @ 5000
Memory type:            DDR SDRAM DIMM
Memory size (MB):       128

eeprom-i2c-0-50
Adapter: SMBus ALi 1563 Adapter @ 5000
Memory type:            DDR SDRAM DIMM
Memory size (MB):       128

w83792d-i2c-0-2f
Adapter: SMBus ALi 1563 Adapter @ 5000
VCoreA:    +1.52 V  (min =  +0.00 V, max =  +1.78 V)
VCoreB:    +0.54 V  (min =  +0.00 V, max =  +1.78 V)
VIN0:      +3.30 V  (min =  +0.00 V, max =  +4.08 V)
VIN1:      +3.16 V  (min =  +0.00 V, max =  +4.08 V)
VIN2:      +2.52 V  (min =  +0.00 V, max =  +4.08 V)
VIN3:      +1.26 V  (min =  +0.00 V, max =  +4.08 V)
5VCC:      +5.03 V  (min =  +0.00 V, max =  +6.12 V)
5VSB:      +4.99 V  (min =  +0.00 V, max =  +6.12 V)
VBAT:      +3.15 V  (min =  +0.00 V, max =  +4.08 V)
Fan1:     1638 RPM  (min =  703 RPM, div = 8)
Fan2:        0 RPM  (min =  703 RPM, div = 8)
Fan3:        0 RPM  (min =  703 RPM, div = 8)
Fan4:        0 RPM  (min =  703 RPM, div = 8)
Fan5:        0 RPM  (min =  703 RPM, div = 8)
Fan6:        0 RPM  (min =  703 RPM, div = 8)
Fan7:     37500 RPM  (min =    0 RPM, div = 2)
Temp1:     +38.0??C  (high = +80.0??C, hyst = +75.0??C)   ALARM
Temp2:      -8.0??C  (high = +80.0??C, hyst = +75.0??C)   ALARM
Temp3:     +42.0??C  (high = +80.0??C, hyst = +75.0??C)   ALARM
chassis:  Chassis is normal.

Thanks
Best Regards
Chunhao



> -----Original Message-----
> From: Rudolf Marek [mailto:R.Marek at sh.cvut.cz]
> Sent: 2005?4?8? 02:02
> To: PI14 HUANG0
> Cc: R.Marek at sh.cvut.cz; sensors at Stimpy.netroedge.com; PI10 LHHsu; PI14 DZSHEN
> Subject: RE: We will port w83792d.c to linux-2.6
> 
> hello,
> 
> I think I have a solution (after some hours of work).
> 
> First how "continous reads works"- READ_BYTE. It is good for eeprom
> reading, first you write to command register offset from which you want to
> start reading and next you read and read and read data. (in READ_BYTE_DATA
> mode you must write offset, get data, write offset+1, get data etc)
> 
> problem: it seems that for BYTE mode readings do not start at correct
> 	 location
> 
> The shift  by one byte we observed can be explained that we start reading
> at offset FF instead of from 00 as requested.
> 
> Why after modprobe decoding of memory type works?
> 
> I concluded from docs I was wrong, the problem does not depend on "older
> value of CMD".
> 
> It seems it depends on value of some other register.
> 
> it can be spotted right here:
> 
> size is I2C_SMBUS_BYTE!
> size is HST_CNTL2_BYTE!
> rw == I2C_SMBUS_WRITE!
> Transaction (pre): STS=00, CNTL1=00, CNTL2=08, CMD=40, ADD=a2, DAT0=1a,
> DAT1=00
> Transaction (post): STS=42, CNTL1=00, CNTL2=08, CMD=40, ADD=a2, DAT0=1a,
> DAT1=00
> 
> This requests to read in I2C_SMBUS_BYTE from offset 0x40, offset 0x40 is
> filled to CMD REG (even before transaction because it is done in access
> routine)
> 
> Now what we got when reading first byte:
> 
> Transaction (pre): STS=00, CNTL1=00, CNTL2=08, CMD=40, ADD=a3, DAT0=1a,
> DAT1=00
> Transaction (post): STS=42, CNTL1=00, CNTL2=08, CMD=40, ADD=a3, DAT0=00,
> DAT1=00
> 
> Transaction (pre): STS=00, CNTL1=00, CNTL2=08, CMD=40, ADD=a3, DAT0=00,
> DAT1=00
> Transaction (post): STS=42, CNTL1=00, CNTL2=08, CMD=40, ADD=a3, DAT0=50,
> DAT1=00
> 
> Transaction (pre): STS=00, CNTL1=00, CNTL2=08, CMD=40, ADD=a3, DAT0=50,
> DAT1=00
> Transaction (post): STS=42, CNTL1=00, CNTL2=08, CMD=40, ADD=a3, DAT0=3c,
> DAT1=00
> 
> In DAT0 are results so we get 00 50 3C...
> But expected content is 80 00 00 00 ...
> 
> BUT if you take a look to the dump you can find this sequence at address
> 0x1A.  00 50 3c 50 30 20
> 
> And guess what were was the value 0x1A present?
> 
> Transaction (pre): STS=00, CNTL1=00, CNTL2=08, CMD=40, ADD=a2, DAT0=1a,
> DAT1=00
> 
> Yes it was in DAT0 register. So this ALI thing is putting the command not
> to the CMD reg but it takes it from DAT0 register!!!!!!!!
> (intel and others are putting command to cmd register)
> 
> So what we need now:
> 
> 1) test the driver with following change:
>            case HST_CNTL2_BYTE:
>                dev_err(&a->dev, "size is HST_CNTL2_BYTE!\n");
>                 if (rw== I2C_SMBUS_WRITE)
>                         outb_p(cmd, SMB_HST_CMD);
> 
>    and replace please last line with  outb_p(cmd, SMB_HST_DAT0);
> 
> 
>    now you can run
>    i2cdump 0 0x50
>    i2cdump 0 0x50 c
>    modprobe eeprom
>    sensors
>    modprobe w...
>    sensors
> 
>    all should work now (please test also with your chip driver loaded as
>    you reported in your previous email)
> 
> 2) ask ALI if this is a bug or feature.
> 3) test the rest modes, WORD mode, please
>    can you test (I dont know how the result should look like)
> 
>    i2cdump 0 0x50 w
>    i2cdump 0 0x50 c
> 
> Regards
> 
> Rudolf
> 
> > [root@ ~]# i2cdump 0 0x51
> > No size specified (using byte-data access)
> > WARNING! This program can confuse your I2C bus, cause data loss and worse!
> > I will probe file /dev/i2c-0, address 0x51, mode byte
> > Continue? [Y/n]
> >      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
> > 00: ac ff 07 0c 0a 01 48 00 04 75 75 02 80 08 08 01    ?.????H.?uu?????
> > 10: 0e 04 0c 01 02 26 00 a0 75 00 00 50 3c 50 30 20    ?????&.?u..P<P0
> > 20: 00 00 50 50 00 00 00 00 00 41 4b 30 32 75 00 00    ..PP.....AK02u..
> > 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1a    ...............?
> > 40: 80 00 00 00 00 00 00 bb ff 00 00 00 00 00 00 00    ?......?........
> > 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
> > 80: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
> > 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > a0: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > c0: 80 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ?...............
> > d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
> > e0: 00 00 ac ff ff ff ff ff ff ff ff ff ff ff ff ff    ..?.............
> > f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug_log.tar.gz
Type: application/x-gzip
Size: 148417 bytes
Desc: debug_log.tar.gz
Url : http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20050408/46f15c9d/attachment.gz 


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

  Powered by Linux