@ -2074,6 +2074,27 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
goto exit_unregister_sysfs ;
}
switch ( data - > type ) {
case f71889fg :
for ( i = 0 ; i < nr_fans ; i + + ) {
data - > pwm_auto_point_mapping [ i ] =
f71882fg_read8 ( data ,
F71882FG_REG_POINT_MAPPING ( i ) ) ;
if ( data - > pwm_auto_point_mapping [ i ] & 0x80 )
break ;
}
if ( i ! = nr_fans ) {
dev_warn ( & pdev - > dev ,
" Auto pwm controlled by raw digital "
" data, disabling pwm auto_point "
" sysfs attributes \n " ) ;
goto no_pwm_auto_point ;
}
break ;
default :
break ;
}
switch ( data - > type ) {
case f71862fg :
err = f71882fg_create_sysfs_files ( pdev ,
@ -2090,23 +2111,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
f8000_auto_pwm_attr ,
ARRAY_SIZE ( f8000_auto_pwm_attr ) ) ;
break ;
case f71889fg :
for ( i = 0 ; i < nr_fans ; i + + ) {
data - > pwm_auto_point_mapping [ i ] =
f71882fg_read8 ( data ,
F71882FG_REG_POINT_MAPPING ( i ) ) ;
if ( data - > pwm_auto_point_mapping [ i ] & 0x80 )
break ;
}
if ( i ! = nr_fans ) {
dev_warn ( & pdev - > dev ,
" Auto pwm controlled by raw digital "
" data, disabling pwm auto_point "
" sysfs attributes \n " ) ;
break ;
}
/* fall through */
default : /* f71858fg / f71882fg */
default :
err = f71882fg_create_sysfs_files ( pdev ,
& fxxxx_auto_pwm_attr [ 0 ] [ 0 ] ,
ARRAY_SIZE ( fxxxx_auto_pwm_attr [ 0 ] ) * nr_fans ) ;
@ -2114,6 +2119,7 @@ static int __devinit f71882fg_probe(struct platform_device *pdev)
if ( err )
goto exit_unregister_sysfs ;
no_pwm_auto_point :
for ( i = 0 ; i < nr_fans ; i + + )
dev_info ( & pdev - > dev , " Fan: %d is in %s mode \n " , i + 1 ,
( data - > pwm_enable & ( 1 < < 2 * i ) ) ?