* [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd)
@ 2024-10-02 7:34 Julia Lawall
2024-10-02 20:37 ` Janne Grunau
0 siblings, 1 reply; 3+ messages in thread
From: Julia Lawall @ 2024-10-02 7:34 UTC (permalink / raw)
To: Asahi Lina, Janne Grunau, oe-kbuild-all
Please check whether lines 197 and 201 need of_node_put. Maybe you can
alternatively use for_each_child_of_node_scoped.
julia
---------- Forwarded message ----------
Date: Wed, 2 Oct 2024 13:55:07 +0800
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
Subject: [asahilinux:bits/240-isp 22/52]
drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function
"for_each_child_of_node" should have of_node_put() before goto around lines
197.
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Asahi Lina <lina@asahilina.net>
CC: Janne Grunau <j@jannau.net>
tree: https://github.com/AsahiLinux/linux bits/240-isp
head: 2eb812826ec58e3b803055a8aa0fd857f1675f14
commit: b4d2b4922ce8a77666206a64314192e08c1aca0a [22/52] media: apple: isp: Working t602x and multiple formats and more fixes
:::::: branch date: 2 weeks ago
:::::: commit date: 2 weeks ago
config: arc-randconfig-r062-20241002 (https://download.01.org/0day-ci/archive/20241002/202410021337.EQ74x7c7-lkp@intel.com/config)
compiler: arc-elf-gcc (GCC) 13.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202410021337.EQ74x7c7-lkp@intel.com/
cocci warnings: (new ones prefixed by >>)
>> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197.
drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 201.
vim +/for_each_child_of_node +183 drivers/media/platform/apple/isp/isp-drv.c
b4d2b4922ce8a7 Asahi Lina 2023-09-24 154
b4d2b4922ce8a7 Asahi Lina 2023-09-24 155 static int apple_isp_init_presets(struct apple_isp *isp)
b4d2b4922ce8a7 Asahi Lina 2023-09-24 156 {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 157 struct device *dev = isp->dev;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 158 struct device_node *np, *child;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 159 struct isp_preset *preset;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 160 int err = 0;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 161
b4d2b4922ce8a7 Asahi Lina 2023-09-24 162 np = of_get_child_by_name(dev->of_node, "sensor-presets");
b4d2b4922ce8a7 Asahi Lina 2023-09-24 163 if (!np) {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 164 dev_err(dev, "failed to get DT node 'presets'\n");
b4d2b4922ce8a7 Asahi Lina 2023-09-24 165 return -EINVAL;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 166 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 167
b4d2b4922ce8a7 Asahi Lina 2023-09-24 168 isp->num_presets = of_get_child_count(np);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 169 if (!isp->num_presets) {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 170 dev_err(dev, "no sensor presets found\n");
b4d2b4922ce8a7 Asahi Lina 2023-09-24 171 err = -EINVAL;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 172 goto err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 173 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 174
b4d2b4922ce8a7 Asahi Lina 2023-09-24 175 isp->presets = devm_kzalloc(
b4d2b4922ce8a7 Asahi Lina 2023-09-24 176 dev, sizeof(*isp->presets) * isp->num_presets, GFP_KERNEL);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 177 if (!isp->presets) {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 178 err = -ENOMEM;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 179 goto err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 180 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 181
b4d2b4922ce8a7 Asahi Lina 2023-09-24 182 preset = isp->presets;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 @183 for_each_child_of_node(np, child) {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 184 u32 xywh[4];
b4d2b4922ce8a7 Asahi Lina 2023-09-24 185
b4d2b4922ce8a7 Asahi Lina 2023-09-24 186 err = of_property_read_u32(child, "apple,config-index",
b4d2b4922ce8a7 Asahi Lina 2023-09-24 187 &preset->index);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 188 if (err) {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 189 dev_err(dev, "no apple,config-index property\n");
b4d2b4922ce8a7 Asahi Lina 2023-09-24 190 of_node_put(child);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 191 goto err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 192 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 193
b4d2b4922ce8a7 Asahi Lina 2023-09-24 194 err = isp_of_read_coord(dev, child, "apple,input-size",
b4d2b4922ce8a7 Asahi Lina 2023-09-24 195 &preset->input_dim);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 196 if (err)
b4d2b4922ce8a7 Asahi Lina 2023-09-24 197 goto err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 198 err = isp_of_read_coord(dev, child, "apple,output-size",
b4d2b4922ce8a7 Asahi Lina 2023-09-24 199 &preset->output_dim);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 200 if (err)
b4d2b4922ce8a7 Asahi Lina 2023-09-24 201 goto err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 202
b4d2b4922ce8a7 Asahi Lina 2023-09-24 203 err = of_property_read_u32_array(child, "apple,crop", xywh, 4);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 204 if (err) {
b4d2b4922ce8a7 Asahi Lina 2023-09-24 205 dev_err(dev, "failed to read 'apple,crop' property\n");
b4d2b4922ce8a7 Asahi Lina 2023-09-24 206 of_node_put(child);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 207 goto err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 208 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 209 preset->crop_offset.x = xywh[0];
b4d2b4922ce8a7 Asahi Lina 2023-09-24 210 preset->crop_offset.y = xywh[1];
b4d2b4922ce8a7 Asahi Lina 2023-09-24 211 preset->crop_size.x = xywh[2];
b4d2b4922ce8a7 Asahi Lina 2023-09-24 212 preset->crop_size.y = xywh[3];
b4d2b4922ce8a7 Asahi Lina 2023-09-24 213
b4d2b4922ce8a7 Asahi Lina 2023-09-24 214 preset++;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 215 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 216
b4d2b4922ce8a7 Asahi Lina 2023-09-24 217 err:
b4d2b4922ce8a7 Asahi Lina 2023-09-24 218 of_node_put(np);
b4d2b4922ce8a7 Asahi Lina 2023-09-24 219 return err;
b4d2b4922ce8a7 Asahi Lina 2023-09-24 220 }
b4d2b4922ce8a7 Asahi Lina 2023-09-24 221
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd)
2024-10-02 7:34 [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd) Julia Lawall
@ 2024-10-02 20:37 ` Janne Grunau
2024-10-02 20:43 ` Julia Lawall
0 siblings, 1 reply; 3+ messages in thread
From: Janne Grunau @ 2024-10-02 20:37 UTC (permalink / raw)
To: Julia Lawall; +Cc: Asahi Lina, oe-kbuild-all
Hej,
On Wed, Oct 02, 2024 at 09:34:09AM +0200, Julia Lawall wrote:
> Please check whether lines 197 and 201 need of_node_put. Maybe you can
> alternatively use for_each_child_of_node_scoped.
These were false positives since the called function isp_of_read_coord()
calls of_node_put(). It was documented but is still surprising /
unorthodox. I've replaced the loop with for_each_child_of_node_scoped
anyway and added __free(device_node) cleanup for np to avoid the goto.
Thanks for the report. Despite being a false positive it still pointed
to code which was more complicated than it needs to be now.
Janne
>
> ---------- Forwarded message ----------
> Date: Wed, 2 Oct 2024 13:55:07 +0800
> From: kernel test robot <lkp@intel.com>
> To: oe-kbuild@lists.linux.dev
> Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
> Subject: [asahilinux:bits/240-isp 22/52]
> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function
> "for_each_child_of_node" should have of_node_put() before goto around lines
> 197.
>
> BCC: lkp@intel.com
> CC: oe-kbuild-all@lists.linux.dev
> TO: Asahi Lina <lina@asahilina.net>
> CC: Janne Grunau <j@jannau.net>
>
> tree: https://github.com/AsahiLinux/linux bits/240-isp
> head: 2eb812826ec58e3b803055a8aa0fd857f1675f14
> commit: b4d2b4922ce8a77666206a64314192e08c1aca0a [22/52] media: apple: isp: Working t602x and multiple formats and more fixes
> :::::: branch date: 2 weeks ago
> :::::: commit date: 2 weeks ago
> config: arc-randconfig-r062-20241002 (https://download.01.org/0day-ci/archive/20241002/202410021337.EQ74x7c7-lkp@intel.com/config)
> compiler: arc-elf-gcc (GCC) 13.2.0
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Julia Lawall <julia.lawall@inria.fr>
> | Closes: https://lore.kernel.org/r/202410021337.EQ74x7c7-lkp@intel.com/
>
> cocci warnings: (new ones prefixed by >>)
> >> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197.
> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 201.
>
> vim +/for_each_child_of_node +183 drivers/media/platform/apple/isp/isp-drv.c
>
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 154
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 155 static int apple_isp_init_presets(struct apple_isp *isp)
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 156 {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 157 struct device *dev = isp->dev;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 158 struct device_node *np, *child;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 159 struct isp_preset *preset;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 160 int err = 0;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 161
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 162 np = of_get_child_by_name(dev->of_node, "sensor-presets");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 163 if (!np) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 164 dev_err(dev, "failed to get DT node 'presets'\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 165 return -EINVAL;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 166 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 167
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 168 isp->num_presets = of_get_child_count(np);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 169 if (!isp->num_presets) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 170 dev_err(dev, "no sensor presets found\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 171 err = -EINVAL;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 172 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 173 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 174
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 175 isp->presets = devm_kzalloc(
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 176 dev, sizeof(*isp->presets) * isp->num_presets, GFP_KERNEL);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 177 if (!isp->presets) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 178 err = -ENOMEM;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 179 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 180 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 181
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 182 preset = isp->presets;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 @183 for_each_child_of_node(np, child) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 184 u32 xywh[4];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 185
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 186 err = of_property_read_u32(child, "apple,config-index",
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 187 &preset->index);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 188 if (err) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 189 dev_err(dev, "no apple,config-index property\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 190 of_node_put(child);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 191 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 192 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 193
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 194 err = isp_of_read_coord(dev, child, "apple,input-size",
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 195 &preset->input_dim);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 196 if (err)
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 197 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 198 err = isp_of_read_coord(dev, child, "apple,output-size",
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 199 &preset->output_dim);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 200 if (err)
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 201 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 202
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 203 err = of_property_read_u32_array(child, "apple,crop", xywh, 4);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 204 if (err) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 205 dev_err(dev, "failed to read 'apple,crop' property\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 206 of_node_put(child);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 207 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 208 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 209 preset->crop_offset.x = xywh[0];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 210 preset->crop_offset.y = xywh[1];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 211 preset->crop_size.x = xywh[2];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 212 preset->crop_size.y = xywh[3];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 213
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 214 preset++;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 215 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 216
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 217 err:
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 218 of_node_put(np);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 219 return err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 220 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 221
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd)
2024-10-02 20:37 ` Janne Grunau
@ 2024-10-02 20:43 ` Julia Lawall
0 siblings, 0 replies; 3+ messages in thread
From: Julia Lawall @ 2024-10-02 20:43 UTC (permalink / raw)
To: Janne Grunau; +Cc: Asahi Lina, oe-kbuild-all
On Wed, 2 Oct 2024, Janne Grunau wrote:
> Hej,
>
> On Wed, Oct 02, 2024 at 09:34:09AM +0200, Julia Lawall wrote:
> > Please check whether lines 197 and 201 need of_node_put. Maybe you can
> > alternatively use for_each_child_of_node_scoped.
>
> These were false positives since the called function isp_of_read_coord()
> calls of_node_put(). It was documented but is still surprising /
> unorthodox. I've replaced the loop with for_each_child_of_node_scoped
> anyway and added __free(device_node) cleanup for np to avoid the goto.
>
> Thanks for the report. Despite being a false positive it still pointed
> to code which was more complicated than it needs to be now.
Thanks for the feedback.
julia
>
> Janne
> >
> > ---------- Forwarded message ----------
> > Date: Wed, 2 Oct 2024 13:55:07 +0800
> > From: kernel test robot <lkp@intel.com>
> > To: oe-kbuild@lists.linux.dev
> > Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
> > Subject: [asahilinux:bits/240-isp 22/52]
> > drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function
> > "for_each_child_of_node" should have of_node_put() before goto around lines
> > 197.
> >
> > BCC: lkp@intel.com
> > CC: oe-kbuild-all@lists.linux.dev
> > TO: Asahi Lina <lina@asahilina.net>
> > CC: Janne Grunau <j@jannau.net>
> >
> > tree: https://github.com/AsahiLinux/linux bits/240-isp
> > head: 2eb812826ec58e3b803055a8aa0fd857f1675f14
> > commit: b4d2b4922ce8a77666206a64314192e08c1aca0a [22/52] media: apple: isp: Working t602x and multiple formats and more fixes
> > :::::: branch date: 2 weeks ago
> > :::::: commit date: 2 weeks ago
> > config: arc-randconfig-r062-20241002 (https://download.01.org/0day-ci/archive/20241002/202410021337.EQ74x7c7-lkp@intel.com/config)
> > compiler: arc-elf-gcc (GCC) 13.2.0
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Reported-by: Julia Lawall <julia.lawall@inria.fr>
> > | Closes: https://lore.kernel.org/r/202410021337.EQ74x7c7-lkp@intel.com/
> >
> > cocci warnings: (new ones prefixed by >>)
> > >> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197.
> > drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 201.
> >
> > vim +/for_each_child_of_node +183 drivers/media/platform/apple/isp/isp-drv.c
> >
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 154
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 155 static int apple_isp_init_presets(struct apple_isp *isp)
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 156 {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 157 struct device *dev = isp->dev;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 158 struct device_node *np, *child;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 159 struct isp_preset *preset;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 160 int err = 0;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 161
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 162 np = of_get_child_by_name(dev->of_node, "sensor-presets");
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 163 if (!np) {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 164 dev_err(dev, "failed to get DT node 'presets'\n");
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 165 return -EINVAL;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 166 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 167
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 168 isp->num_presets = of_get_child_count(np);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 169 if (!isp->num_presets) {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 170 dev_err(dev, "no sensor presets found\n");
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 171 err = -EINVAL;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 172 goto err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 173 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 174
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 175 isp->presets = devm_kzalloc(
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 176 dev, sizeof(*isp->presets) * isp->num_presets, GFP_KERNEL);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 177 if (!isp->presets) {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 178 err = -ENOMEM;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 179 goto err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 180 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 181
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 182 preset = isp->presets;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 @183 for_each_child_of_node(np, child) {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 184 u32 xywh[4];
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 185
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 186 err = of_property_read_u32(child, "apple,config-index",
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 187 &preset->index);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 188 if (err) {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 189 dev_err(dev, "no apple,config-index property\n");
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 190 of_node_put(child);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 191 goto err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 192 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 193
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 194 err = isp_of_read_coord(dev, child, "apple,input-size",
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 195 &preset->input_dim);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 196 if (err)
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 197 goto err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 198 err = isp_of_read_coord(dev, child, "apple,output-size",
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 199 &preset->output_dim);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 200 if (err)
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 201 goto err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 202
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 203 err = of_property_read_u32_array(child, "apple,crop", xywh, 4);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 204 if (err) {
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 205 dev_err(dev, "failed to read 'apple,crop' property\n");
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 206 of_node_put(child);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 207 goto err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 208 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 209 preset->crop_offset.x = xywh[0];
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 210 preset->crop_offset.y = xywh[1];
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 211 preset->crop_size.x = xywh[2];
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 212 preset->crop_size.y = xywh[3];
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 213
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 214 preset++;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 215 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 216
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 217 err:
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 218 of_node_put(np);
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 219 return err;
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 220 }
> > b4d2b4922ce8a7 Asahi Lina 2023-09-24 221
> >
> > --
> > 0-DAY CI Kernel Test Service
> > https://github.com/intel/lkp-tests/wiki
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-10-02 20:43 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-02 7:34 [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd) Julia Lawall
2024-10-02 20:37 ` Janne Grunau
2024-10-02 20:43 ` Julia Lawall
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.