@@ -59,6 +59,7 @@ static int i2c_counter_set(struct rtcnt_device_info *dev_info, int setval)
5959 printk (KERN_ERR
6060 "%s: Failed writing to i2c counter device, addr=0x%x\n" ,
6161 __func__ , client -> addr );
62+ mutex_unlock (& dev_info -> lock );
6263 return - ENODEV ;
6364 }
6465 // 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)
6768 printk (KERN_ERR
6869 "%s: Failed writing to i2c counter device, addr=0x%x\n" ,
6970 __func__ , client -> addr );
71+ mutex_unlock (& dev_info -> lock );
7072 return - ENODEV ;
7173 }
7274 mutex_unlock (& dev_info -> lock );
@@ -90,6 +92,7 @@ static int i2c_counter_read(struct rtcnt_device_info *dev_info, int *ret)
9092 KERN_ERR
9193 "%s: Failed reading from i2c counter device, addr=0x%x\n" ,
9294 __func__ , client -> addr );
95+ mutex_unlock (& dev_info -> lock );
9396 return - ENODEV ;
9497 }
9598 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)
98101 KERN_ERR
99102 "%s: Failed reading from i2c counter device, addr=0x%x\n" ,
100103 __func__ , client -> addr );
104+ mutex_unlock (& dev_info -> lock );
101105 return - ENODEV ;
102106 }
103107 mutex_unlock (& dev_info -> lock );
0 commit comments