Skip to content

Commit 1fbd902

Browse files
andy-shevrafaeljw
authored andcommitted
ACPI: property: Refactor acpi_data_prop_read_single()
Refactor acpi_data_prop_read_single() for decreased indentation and better structure. No functional changes intended. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 197b6b6 commit 1fbd902

1 file changed

Lines changed: 34 additions & 46 deletions

File tree

drivers/acpi/property.c

Lines changed: 34 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -971,60 +971,48 @@ static int acpi_data_prop_read_single(const struct acpi_device_data *data,
971971
enum dev_prop_type proptype, void *val)
972972
{
973973
const union acpi_object *obj;
974-
int ret;
974+
int ret = 0;
975975

976-
if (proptype >= DEV_PROP_U8 && proptype <= DEV_PROP_U64) {
976+
if (proptype >= DEV_PROP_U8 && proptype <= DEV_PROP_U64)
977977
ret = acpi_data_get_property(data, propname, ACPI_TYPE_INTEGER, &obj);
978-
if (ret)
979-
return ret;
980-
981-
switch (proptype) {
982-
case DEV_PROP_U8:
983-
if (obj->integer.value > U8_MAX)
984-
return -EOVERFLOW;
985-
986-
if (val)
987-
*(u8 *)val = obj->integer.value;
988-
989-
break;
990-
case DEV_PROP_U16:
991-
if (obj->integer.value > U16_MAX)
992-
return -EOVERFLOW;
993-
994-
if (val)
995-
*(u16 *)val = obj->integer.value;
996-
997-
break;
998-
case DEV_PROP_U32:
999-
if (obj->integer.value > U32_MAX)
1000-
return -EOVERFLOW;
1001-
1002-
if (val)
1003-
*(u32 *)val = obj->integer.value;
1004-
1005-
break;
1006-
default:
1007-
if (val)
1008-
*(u64 *)val = obj->integer.value;
1009-
1010-
break;
1011-
}
1012-
1013-
if (!val)
1014-
return 1;
1015-
} else if (proptype == DEV_PROP_STRING) {
978+
else if (proptype == DEV_PROP_STRING)
1016979
ret = acpi_data_get_property(data, propname, ACPI_TYPE_STRING, &obj);
1017-
if (ret)
1018-
return ret;
980+
if (ret)
981+
return ret;
1019982

983+
switch (proptype) {
984+
case DEV_PROP_U8:
985+
if (obj->integer.value > U8_MAX)
986+
return -EOVERFLOW;
987+
if (val)
988+
*(u8 *)val = obj->integer.value;
989+
break;
990+
case DEV_PROP_U16:
991+
if (obj->integer.value > U16_MAX)
992+
return -EOVERFLOW;
993+
if (val)
994+
*(u16 *)val = obj->integer.value;
995+
break;
996+
case DEV_PROP_U32:
997+
if (obj->integer.value > U32_MAX)
998+
return -EOVERFLOW;
999+
if (val)
1000+
*(u32 *)val = obj->integer.value;
1001+
break;
1002+
case DEV_PROP_U64:
1003+
if (val)
1004+
*(u64 *)val = obj->integer.value;
1005+
break;
1006+
case DEV_PROP_STRING:
10201007
if (val)
10211008
*(char **)val = obj->string.pointer;
1022-
10231009
return 1;
1024-
} else {
1025-
ret = -EINVAL;
1010+
default:
1011+
return -EINVAL;
10261012
}
1027-
return ret;
1013+
1014+
/* When no storage provided return number of available values */
1015+
return val ? 0 : 1;
10281016
}
10291017

10301018
#define acpi_copy_property_array_uint(items, val, nval) \

0 commit comments

Comments
 (0)