@@ -117,15 +117,16 @@ static inline void superio_select(int ioreg, int ldn)
117
117
outb (ldn , ioreg + 1 );
118
118
}
119
119
120
- static inline int superio_enter (int ioreg )
120
+ static inline int superio_enter (int ioreg , bool noentry )
121
121
{
122
122
/*
123
123
* Try to reserve ioreg and ioreg + 1 for exclusive access.
124
124
*/
125
125
if (!request_muxed_region (ioreg , 2 , DRVNAME ))
126
126
return - EBUSY ;
127
127
128
- __superio_enter (ioreg );
128
+ if (!noentry )
129
+ __superio_enter (ioreg );
129
130
return 0 ;
130
131
}
131
132
@@ -742,7 +743,7 @@ static int smbus_disable(struct it87_data *data)
742
743
int err ;
743
744
744
745
if (data -> smbus_bitmap ) {
745
- err = superio_enter (data -> sioaddr );
746
+ err = superio_enter (data -> sioaddr , has_noconf ( data ) );
746
747
if (err )
747
748
return err ;
748
749
superio_select (data -> sioaddr , PME );
@@ -758,7 +759,7 @@ static int smbus_enable(struct it87_data *data)
758
759
int err ;
759
760
760
761
if (data -> smbus_bitmap ) {
761
- err = superio_enter (data -> sioaddr );
762
+ err = superio_enter (data -> sioaddr , has_noconf ( data ) );
762
763
if (err )
763
764
return err ;
764
765
@@ -2674,7 +2675,7 @@ static int __init it87_find(int sioaddr, unsigned short *address,
2674
2675
u16 chip_type ;
2675
2676
const struct it87_devices * config = NULL ;
2676
2677
2677
- err = superio_enter (sioaddr );
2678
+ err = superio_enter (sioaddr , false );
2678
2679
if (err )
2679
2680
return err ;
2680
2681
@@ -3520,7 +3521,7 @@ static void it87_resume_sio(struct platform_device *pdev)
3520
3521
if (!data -> need_in7_reroute )
3521
3522
return ;
3522
3523
3523
- err = superio_enter (data -> sioaddr );
3524
+ err = superio_enter (data -> sioaddr , has_noconf ( data ) );
3524
3525
if (err ) {
3525
3526
dev_warn (& pdev -> dev ,
3526
3527
"Unable to enter Super I/O to reroute in7 (%d)" ,
0 commit comments