@@ -59,6 +59,7 @@ static int i2c_counter_set(struct rtcnt_device_info *dev_info, int setval)
59
59
printk (KERN_ERR
60
60
"%s: Failed writing to i2c counter device, addr=0x%x\n" ,
61
61
__func__ , client -> addr );
62
+ mutex_unlock (& dev_info -> lock );
62
63
return - ENODEV ;
63
64
}
64
65
// printk(KERN_INFO "set 0x%x lsb = 0x%x\n", client->addr, lsb);
@@ -67,6 +68,7 @@ static int i2c_counter_set(struct rtcnt_device_info *dev_info, int setval)
67
68
printk (KERN_ERR
68
69
"%s: Failed writing to i2c counter device, addr=0x%x\n" ,
69
70
__func__ , client -> addr );
71
+ mutex_unlock (& dev_info -> lock );
70
72
return - ENODEV ;
71
73
}
72
74
mutex_unlock (& dev_info -> lock );
@@ -90,6 +92,7 @@ static int i2c_counter_read(struct rtcnt_device_info *dev_info, int *ret)
90
92
KERN_ERR
91
93
"%s: Failed reading from i2c counter device, addr=0x%x\n" ,
92
94
__func__ , client -> addr );
95
+ mutex_unlock (& dev_info -> lock );
93
96
return - ENODEV ;
94
97
}
95
98
msb = i2c_smbus_read_byte_data (client , CNT_ADDR_MSB );
@@ -98,6 +101,7 @@ static int i2c_counter_read(struct rtcnt_device_info *dev_info, int *ret)
98
101
KERN_ERR
99
102
"%s: Failed reading from i2c counter device, addr=0x%x\n" ,
100
103
__func__ , client -> addr );
104
+ mutex_unlock (& dev_info -> lock );
101
105
return - ENODEV ;
102
106
}
103
107
mutex_unlock (& dev_info -> lock );
0 commit comments