1
1
// SPDX-License-Identifier: GPL-2.0
2
2
/* Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. */
3
3
4
+ #include <linux/cleanup.h>
4
5
#include <linux/err.h>
5
6
#include <linux/init.h>
6
7
#include <linux/kernel.h>
@@ -1024,20 +1025,17 @@ static int rpmpd_power_on(struct generic_pm_domain *domain)
1024
1025
int ret ;
1025
1026
struct rpmpd * pd = domain_to_rpmpd (domain );
1026
1027
1027
- mutex_lock (& rpmpd_lock );
1028
+ guard ( mutex ) (& rpmpd_lock );
1028
1029
1029
1030
ret = rpmpd_send_enable (pd , true);
1030
1031
if (ret )
1031
- goto out ;
1032
+ return ret ;
1032
1033
1033
1034
pd -> enabled = true;
1034
1035
1035
1036
if (pd -> corner )
1036
1037
ret = rpmpd_aggregate_corner (pd );
1037
1038
1038
- out :
1039
- mutex_unlock (& rpmpd_lock );
1040
-
1041
1039
return ret ;
1042
1040
}
1043
1041
@@ -1060,27 +1058,21 @@ static int rpmpd_power_off(struct generic_pm_domain *domain)
1060
1058
static int rpmpd_set_performance (struct generic_pm_domain * domain ,
1061
1059
unsigned int state )
1062
1060
{
1063
- int ret = 0 ;
1064
1061
struct rpmpd * pd = domain_to_rpmpd (domain );
1065
1062
1066
1063
if (state > pd -> max_state )
1067
1064
state = pd -> max_state ;
1068
1065
1069
- mutex_lock (& rpmpd_lock );
1066
+ guard ( mutex ) (& rpmpd_lock );
1070
1067
1071
1068
pd -> corner = state ;
1072
1069
1073
1070
/* Always send updates for vfc and vfl */
1074
1071
if (!pd -> enabled && pd -> key != cpu_to_le32 (KEY_FLOOR_CORNER ) &&
1075
1072
pd -> key != cpu_to_le32 (KEY_FLOOR_LEVEL ))
1076
- goto out ;
1073
+ return 0 ;
1077
1074
1078
- ret = rpmpd_aggregate_corner (pd );
1079
-
1080
- out :
1081
- mutex_unlock (& rpmpd_lock );
1082
-
1083
- return ret ;
1075
+ return rpmpd_aggregate_corner (pd );
1084
1076
}
1085
1077
1086
1078
static int rpmpd_probe (struct platform_device * pdev )
0 commit comments