On Sun, Sep 23, 2007 at 05:16:11PM +0200, Carl-Daniel Hailfinger wrote:
Fix up and generalize the ITE IT8708F code. It was only working out of pure luck (and broken code elsewhere). Needs some more fixing.
Add more LDN descriptions to various Super I/Os.
Signed-off-by: Uwe Hermann uwe@hermann-uwe.de Acked-by: Uwe Hermann uwe@hermann-uwe.de
Please provide correct check-in comments.
Yep, this one was a bit crappy, sorry.
First of all, IT8708F was working as designed.
I'm not quite sure. Here's why I thought it was broken:
The IT8708F code path in fintek.c was never used/reached. The reason that I still got a dump on my test system was that the code in ite.c (which had an 0x8708 case) was reached and printed the dump.
Now, this was not supposed to work at all! The IT8708F has the enable sequence 0x87 0x87 whereas the code in ite.c used some other sequence, so dumping the IT8708F should have failed.
However, it _accidentally_ still worked, because (as I found out later) the 'exit config mode' code was not called in all code paths and for all test runs as it should have been. In other words, some earliers code (probably from Fintek/Winbond) did the 0x87 0x87 init, but not the respective 'exit config mode' sequence (0xaa, I think). Thus, the mode was still active when the IT8708F code was reached and it magically worked...
That's why the commit comment said "it was only working out of pure luck", but I should have been more verbose there...
Uwe.