Rudolf Marek wrote:
Hi again,
I found bugs in your code:
loops = 0; /* Yes, this is a mess, but it's the easiest way to do it */ while((inb(SMBUS_IO_BASE + SMBHSTSTAT) & 1) == 1 && loops <=
SMBUS_TIMEOUT) ++loops;
You have already an IO BASE in SMBHSTSTAT this makes me wonder why it works for you...
smbus_print_error(inb(SMBUS_IO_BASE + SMBHSTSTAT), loops);
same here
Whoops! Hadn't actually tested it on hardware after making that change (it used to be SMBHSTSTAT = 0x5, just like vt8235). Thanks for catching that!
I'm attaching version which works for me (tm) // dimm &= 0x0E; // dimm |= 0xA1;
It works without those? Interesting. I'll try it in a few minutes, see if it works here.
dump_spd_data() works for you immediately after enabling the smbus??? Very odd, I've been having the worst problem with the smbus not being quite ready yet, so it dumps 0s instead of valid data for the first 22 reads. Perhaps that's related to the above?
-Corey