@ -191,38 +191,31 @@ static int __devinit k8temp_probe(struct pci_dev *pdev,
model = boot_cpu_data . x86_model ;
stepping = boot_cpu_data . x86_mask ;
switch ( boot_cpu_data . x86 ) {
case 0xf :
/* feature available since SH-C0, exclude older revisions */
if ( ( ( model = = 4 ) & & ( stepping = = 0 ) ) | |
( ( model = = 5 ) & & ( stepping < = 1 ) ) ) {
err = - ENODEV ;
goto exit_free ;
}
/*
* AMD NPT family 0f h , i . e . RevF and RevG :
* meaning of SEL_CORE bit is inverted
*/
if ( model > = 0x40 ) {
data - > swap_core_select = 1 ;
dev_warn ( & pdev - > dev , " Temperature readouts might be "
" wrong - check erratum #141 \n " ) ;
}
if ( is_rev_g_desktop ( model ) ) {
/*
* RevG desktop CPUs ( i . e . no socket S1G1 or
* ASB1 parts ) need additional offset ,
* otherwise reported temperature is below
* ambient temperature
*/
data - > temp_offset = 21000 ;
}
/* feature available since SH-C0, exclude older revisions */
if ( ( ( model = = 4 ) & & ( stepping = = 0 ) ) | |
( ( model = = 5 ) & & ( stepping < = 1 ) ) ) {
err = - ENODEV ;
goto exit_free ;
}
break ;
/*
* AMD NPT family 0f h , i . e . RevF and RevG :
* meaning of SEL_CORE bit is inverted
*/
if ( model > = 0x40 ) {
data - > swap_core_select = 1 ;
dev_warn ( & pdev - > dev , " Temperature readouts might be wrong - "
" check erratum #141 \n " ) ;
}
/*
* RevG desktop CPUs ( i . e . no socket S1G1 or ASB1 parts ) need
* additional offset , otherwise reported temperature is below
* ambient temperature
*/
if ( is_rev_g_desktop ( model ) )
data - > temp_offset = 21000 ;
pci_read_config_byte ( pdev , REG_TEMP , & scfg ) ;
scfg & = ~ ( SEL_PLACE | SEL_CORE ) ; /* Select sensor 0, core0 */
pci_write_config_byte ( pdev , REG_TEMP , scfg ) ;