[PATCH] HPT37x: read f_CNT saved by BIOS from port
The undocumented register BIOS uses for saving f_CNT seems to only be mapped to I/O space while all the other HPT3xx regs are dual-mapped. Looks like another HighPoint's dirty trick. With this patch, the deadly kernel oops on the cards having the modern HighPoint BIOSes is now at last gone! Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
26c068daf0
commit
f13c152684
1 changed files with 3 additions and 3 deletions
|
@ -1035,14 +1035,14 @@ static void __devinit hpt37x_clocking(ide_hwif_t *hwif)
|
||||||
* First try reading the register in which the HighPoint BIOS
|
* First try reading the register in which the HighPoint BIOS
|
||||||
* saves f_CNT value before reprogramming the DPLL from its
|
* saves f_CNT value before reprogramming the DPLL from its
|
||||||
* default setting (which differs for the various chips).
|
* default setting (which differs for the various chips).
|
||||||
|
* NOTE: This register is only accessible via I/O space.
|
||||||
|
*
|
||||||
* In case the signature check fails, we'll have to resort to
|
* In case the signature check fails, we'll have to resort to
|
||||||
* reading the f_CNT register itself in hopes that nobody has
|
* reading the f_CNT register itself in hopes that nobody has
|
||||||
* touched the DPLL yet...
|
* touched the DPLL yet...
|
||||||
*/
|
*/
|
||||||
pci_read_config_dword(dev, 0x70, &temp);
|
temp = inl(pci_resource_start(dev, 4) + 0x90);
|
||||||
if ((temp & 0xFFFFF000) != 0xABCDE000) {
|
if ((temp & 0xFFFFF000) != 0xABCDE000) {
|
||||||
int i;
|
|
||||||
|
|
||||||
printk(KERN_WARNING "HPT37X: no clock data saved by BIOS\n");
|
printk(KERN_WARNING "HPT37X: no clock data saved by BIOS\n");
|
||||||
|
|
||||||
/* Calculate the average value of f_CNT */
|
/* Calculate the average value of f_CNT */
|
||||||
|
|
Loading…
Reference in a new issue