d09778d16e
Use recently introduced devm_platform_ioremap_resource helper which wraps platform_get_resource() and devm_ioremap_resource() together. This helps produce much cleaner code and remove local `struct resource` declaration. Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
61 lines
1.3 KiB
Plaintext
61 lines
1.3 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
/// Use devm_platform_ioremap_resource helper which wraps
|
|
/// platform_get_resource() and devm_ioremap_resource() together.
|
|
///
|
|
// Confidence: High
|
|
// Copyright: (C) 2019 Himanshu Jha GPLv2.
|
|
// Copyright: (C) 2019 Julia Lawall, Inria/LIP6. GPLv2.
|
|
// Keywords: platform_get_resource, devm_ioremap_resource,
|
|
// Keywords: devm_platform_ioremap_resource
|
|
|
|
virtual patch
|
|
virtual report
|
|
|
|
@r depends on patch && !report@
|
|
expression e1, e2, arg1, arg2, arg3;
|
|
identifier id;
|
|
@@
|
|
|
|
(
|
|
- id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
|
|
|
|
- struct resource *id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
|
)
|
|
... when != id
|
|
- e1 = devm_ioremap_resource(arg3, id);
|
|
+ e1 = devm_platform_ioremap_resource(arg1, arg2);
|
|
... when != id
|
|
? id = e2
|
|
|
|
@r1 depends on patch && !report@
|
|
identifier r.id;
|
|
type T;
|
|
@@
|
|
|
|
- T *id;
|
|
...when != id
|
|
|
|
@r2 depends on report && !patch@
|
|
identifier id;
|
|
expression e1, e2, arg1, arg2, arg3;
|
|
position j0;
|
|
@@
|
|
|
|
(
|
|
id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
|
|
|
|
struct resource *id = platform_get_resource(arg1, IORESOURCE_MEM, arg2);
|
|
)
|
|
... when != id
|
|
e1@j0 = devm_ioremap_resource(arg3, id);
|
|
... when != id
|
|
? id = e2
|
|
|
|
@script:python depends on report && !patch@
|
|
e1 << r2.e1;
|
|
j0 << r2.j0;
|
|
@@
|
|
|
|
msg = "WARNING: Use devm_platform_ioremap_resource for %s" % (e1)
|
|
coccilib.report.print_report(j0[0], msg)
|