hwmon: (pwm-fan) Use HWMON_CHANNEL_INFO macro
authorGuenter Roeck <linux@roeck-us.net>
Thu, 12 May 2022 19:05:59 +0000 (12:05 -0700)
committerGuenter Roeck <linux@roeck-us.net>
Sun, 22 May 2022 18:32:31 +0000 (11:32 -0700)
commit7282d2aefcc6cc3ab093968df108f399f93e69e8
tree69489896606129fff0cdd16beb7d1adc3a2583be
parent7c399d6a5bdf844fb02842e9db3d19d2df911c6a
hwmon: (pwm-fan) Use HWMON_CHANNEL_INFO macro

The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood
of errors, and makes the code easier to read.

The conversion was done automatically with coccinelle. The semantic patch
used to make this change is as follows.

@s@
identifier i,j,ty;
@@

-struct hwmon_channel_info j = {
-       .type = ty,
-       .config = i,
-};

@r@
initializer list elements;
identifier s.i;
@@

-u32 i[] = {
-  elements,
-  0
-};

@script:ocaml t@
ty << s.ty;
elements << r.elements;
shorter;
elems;
@@

shorter :=
   make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty)));
elems :=
   make_ident
    (String.concat ","
     (List.map (fun x -> Printf.sprintf "\n\t\t\t   %s" x)
       (Str.split (Str.regexp " , ") elements)))

@@
identifier s.j,t.shorter;
identifier t.elems;
@@

- &j
+ HWMON_CHANNEL_INFO(shorter,elems)

This patch does not introduce functional changes. Many thanks to
Julia Lawall for providing the coccinelle script.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/pwm-fan.c