13
13
14
14
#include <linux/bitfield.h>
15
15
#include <linux/bits.h>
16
+ #include <linux/cleanup.h>
16
17
#include <linux/completion.h>
17
18
#include <linux/delay.h>
18
19
#include <linux/hwmon.h>
@@ -556,55 +557,40 @@ static int cc2_read(struct device *dev, enum hwmon_sensor_types type, u32 attr,
556
557
int channel , long * val )
557
558
{
558
559
struct cc2_data * data = dev_get_drvdata (dev );
559
- int ret = 0 ;
560
560
561
- mutex_lock (& data -> dev_access_lock );
561
+ guard ( mutex ) (& data -> dev_access_lock );
562
562
563
563
switch (type ) {
564
564
case hwmon_temp :
565
- ret = cc2_measurement (data , type , val );
566
- break ;
565
+ return cc2_measurement (data , type , val );
567
566
case hwmon_humidity :
568
567
switch (attr ) {
569
568
case hwmon_humidity_input :
570
- ret = cc2_measurement (data , type , val );
571
- break ;
569
+ return cc2_measurement (data , type , val );
572
570
case hwmon_humidity_min :
573
- ret = cc2_get_reg_val (data , CC2_R_ALARM_L_ON , val );
574
- break ;
571
+ return cc2_get_reg_val (data , CC2_R_ALARM_L_ON , val );
575
572
case hwmon_humidity_min_hyst :
576
- ret = cc2_get_reg_val (data , CC2_R_ALARM_L_OFF , val );
577
- break ;
573
+ return cc2_get_reg_val (data , CC2_R_ALARM_L_OFF , val );
578
574
case hwmon_humidity_max :
579
- ret = cc2_get_reg_val (data , CC2_R_ALARM_H_ON , val );
580
- break ;
575
+ return cc2_get_reg_val (data , CC2_R_ALARM_H_ON , val );
581
576
case hwmon_humidity_max_hyst :
582
- ret = cc2_get_reg_val (data , CC2_R_ALARM_H_OFF , val );
583
- break ;
577
+ return cc2_get_reg_val (data , CC2_R_ALARM_H_OFF , val );
584
578
case hwmon_humidity_min_alarm :
585
- ret = cc2_humidity_min_alarm_status (data , val );
586
- break ;
579
+ return cc2_humidity_min_alarm_status (data , val );
587
580
case hwmon_humidity_max_alarm :
588
- ret = cc2_humidity_max_alarm_status (data , val );
589
- break ;
581
+ return cc2_humidity_max_alarm_status (data , val );
590
582
default :
591
- ret = - EOPNOTSUPP ;
583
+ return - EOPNOTSUPP ;
592
584
}
593
- break ;
594
585
default :
595
- ret = - EOPNOTSUPP ;
586
+ return - EOPNOTSUPP ;
596
587
}
597
-
598
- mutex_unlock (& data -> dev_access_lock );
599
-
600
- return ret ;
601
588
}
602
589
603
590
static int cc2_write (struct device * dev , enum hwmon_sensor_types type , u32 attr ,
604
591
int channel , long val )
605
592
{
606
593
struct cc2_data * data = dev_get_drvdata (dev );
607
- int ret ;
608
594
u16 arg ;
609
595
u8 cmd ;
610
596
@@ -614,41 +600,28 @@ static int cc2_write(struct device *dev, enum hwmon_sensor_types type, u32 attr,
614
600
if (val < 0 || val > CC2_RH_MAX )
615
601
return - EINVAL ;
616
602
617
- mutex_lock (& data -> dev_access_lock );
603
+ guard ( mutex ) (& data -> dev_access_lock );
618
604
619
605
switch (attr ) {
620
606
case hwmon_humidity_min :
621
607
cmd = CC2_W_ALARM_L_ON ;
622
608
arg = cc2_rh_to_reg (val );
623
- ret = cc2_write_reg (data , cmd , arg );
624
- break ;
625
-
609
+ return cc2_write_reg (data , cmd , arg );
626
610
case hwmon_humidity_min_hyst :
627
611
cmd = CC2_W_ALARM_L_OFF ;
628
612
arg = cc2_rh_to_reg (val );
629
- ret = cc2_write_reg (data , cmd , arg );
630
- break ;
631
-
613
+ return cc2_write_reg (data , cmd , arg );
632
614
case hwmon_humidity_max :
633
615
cmd = CC2_W_ALARM_H_ON ;
634
616
arg = cc2_rh_to_reg (val );
635
- ret = cc2_write_reg (data , cmd , arg );
636
- break ;
637
-
617
+ return cc2_write_reg (data , cmd , arg );
638
618
case hwmon_humidity_max_hyst :
639
619
cmd = CC2_W_ALARM_H_OFF ;
640
620
arg = cc2_rh_to_reg (val );
641
- ret = cc2_write_reg (data , cmd , arg );
642
- break ;
643
-
621
+ return cc2_write_reg (data , cmd , arg );
644
622
default :
645
- ret = - EOPNOTSUPP ;
646
- break ;
623
+ return - EOPNOTSUPP ;
647
624
}
648
-
649
- mutex_unlock (& data -> dev_access_lock );
650
-
651
- return ret ;
652
625
}
653
626
654
627
static int cc2_request_ready_irq (struct cc2_data * data , struct device * dev )
0 commit comments