Messages in this thread | | | Date | Wed, 3 Aug 2016 18:03:41 -0700 | From | Bjorn Andersson <> | Subject | Re: [RFC][PATCH 3/4] power: reset: Add sram-reboot-mode driver |
| |
On Wed 03 Aug 16:05 PDT 2016, John Stultz wrote:
[..] > diff --git a/drivers/power/reset/sram-reboot-mode.c b/drivers/power/reset/sram-reboot-mode.c [..] > + > +struct sram_reboot_mode { > + struct reboot_mode_driver reboot; > + void __iomem *reboot_reason_val_addr;
23 characters is...a lot of characters...
> +}; > + > +static int sram_reboot_mode_write(struct reboot_mode_driver *reboot, > + unsigned int magic) > +{ > + struct sram_reboot_mode *sram_rbm; > + > + sram_rbm = container_of(reboot, struct sram_reboot_mode, reboot); > + > + writel(magic, sram_rbm->reboot_reason_val_addr); > + return 0; > +} > + > +static int sram_reboot_mode_probe(struct platform_device *pdev) > +{ > + struct sram_reboot_mode *sram_rbm; > + struct resource *res; > + int ret; > + > + sram_rbm = devm_kzalloc(&pdev->dev, sizeof(*sram_rbm), GFP_KERNEL); > + if (!sram_rbm) > + return -ENOMEM; > + > + sram_rbm->reboot.dev = &pdev->dev; > + sram_rbm->reboot.write = sram_reboot_mode_write; > + > + dev_set_drvdata(&pdev->dev, sram_rbm); > + > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > + if (!res) > + return PTR_ERR(res); > + > + sram_rbm->reboot_reason_val_addr = devm_ioremap(&pdev->dev, res->start, > + resource_size(res));
Use devm_ioremap_resource() instead, it saves you the return value check on platform_get_resource() and is cleaner.
> + if (IS_ERR(sram_rbm->reboot_reason_val_addr)) > + return PTR_ERR(sram_rbm->reboot_reason_val_addr); > + > + ret = reboot_mode_register(&sram_rbm->reboot);
I think you should take the time to throw in a devm_reboot_mode_register(), it would save you from the dev_set_drvdata() and you can drop the remove function.
> + if (ret) > + dev_err(&pdev->dev, "can't register reboot mode\n"); > + > + return ret; > +} > +
Regards, Bjorn
| |