Add missing platform_set_drvdata() in gpio_extcon_probe(), otherwise calling
platform_get_drvdata in gpio_extcon_remove() returns NULL.
Also add missing free_irq call in gpio_extcon_remove().
Signed-off-by: Axel Lin <[email protected]>
---
drivers/extcon/extcon_gpio.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/extcon/extcon_gpio.c b/drivers/extcon/extcon_gpio.c
index fe7a07b..8a0dcc1 100644
--- a/drivers/extcon/extcon_gpio.c
+++ b/drivers/extcon/extcon_gpio.c
@@ -125,6 +125,7 @@ static int __devinit gpio_extcon_probe(struct platform_device *pdev)
if (ret < 0)
goto err_request_irq;
+ platform_set_drvdata(pdev, extcon_data);
/* Perform initial detection */
gpio_extcon_work(&extcon_data->work.work);
@@ -146,6 +147,7 @@ static int __devexit gpio_extcon_remove(struct platform_device *pdev)
struct gpio_extcon_data *extcon_data = platform_get_drvdata(pdev);
cancel_delayed_work_sync(&extcon_data->work);
+ free_irq(extcon_data->irq, extcon_data);
gpio_free(extcon_data->gpio);
extcon_dev_unregister(&extcon_data->edev);
devm_kfree(&pdev->dev, extcon_data);
--
1.7.9.5
Also remove unneeded devm_kfree calls.
Signed-off-by: Axel Lin <[email protected]>
---
drivers/extcon/extcon_gpio.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/drivers/extcon/extcon_gpio.c b/drivers/extcon/extcon_gpio.c
index 8a0dcc1..fe3db45 100644
--- a/drivers/extcon/extcon_gpio.c
+++ b/drivers/extcon/extcon_gpio.c
@@ -105,25 +105,25 @@ static int __devinit gpio_extcon_probe(struct platform_device *pdev)
ret = extcon_dev_register(&extcon_data->edev, &pdev->dev);
if (ret < 0)
- goto err_extcon_dev_register;
+ return ret;
ret = gpio_request_one(extcon_data->gpio, GPIOF_DIR_IN, pdev->name);
if (ret < 0)
- goto err_request_gpio;
+ goto err;
INIT_DELAYED_WORK(&extcon_data->work, gpio_extcon_work);
extcon_data->irq = gpio_to_irq(extcon_data->gpio);
if (extcon_data->irq < 0) {
ret = extcon_data->irq;
- goto err_detect_irq_num_failed;
+ goto err;
}
ret = request_any_context_irq(extcon_data->irq, gpio_irq_handler,
pdata->irq_flags, pdev->name,
extcon_data);
if (ret < 0)
- goto err_request_irq;
+ goto err;
platform_set_drvdata(pdev, extcon_data);
/* Perform initial detection */
@@ -131,13 +131,8 @@ static int __devinit gpio_extcon_probe(struct platform_device *pdev)
return 0;
-err_request_irq:
-err_detect_irq_num_failed:
- gpio_free(extcon_data->gpio);
-err_request_gpio:
+err:
extcon_dev_unregister(&extcon_data->edev);
-err_extcon_dev_register:
- devm_kfree(&pdev->dev, extcon_data);
return ret;
}
@@ -148,9 +143,7 @@ static int __devexit gpio_extcon_remove(struct platform_device *pdev)
cancel_delayed_work_sync(&extcon_data->work);
free_irq(extcon_data->irq, extcon_data);
- gpio_free(extcon_data->gpio);
extcon_dev_unregister(&extcon_data->edev);
- devm_kfree(&pdev->dev, extcon_data);
return 0;
}
--
1.7.9.5
> Add missing platform_set_drvdata() in gpio_extcon_probe(), otherwise calling
> platform_get_drvdata in gpio_extcon_remove() returns NULL.
>
> Also add missing free_irq call in gpio_extcon_remove().
>
> Signed-off-by: Axel Lin <[email protected]>
Thanks!
Acked-by: MyungJoo Ham <[email protected]>
I'll apply this patch to the extcon-for-next.
I would appear in http://git.infradead.org/users/kmpark/linux-samsung/shortlog/refs/heads/extcon-for-next soon after syncing servers.
Cheers!
MyungJoo
> ---
> drivers/extcon/extcon_gpio.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/extcon/extcon_gpio.c b/drivers/extcon/extcon_gpio.c
> index fe7a07b..8a0dcc1 100644
> --- a/drivers/extcon/extcon_gpio.c
> +++ b/drivers/extcon/extcon_gpio.c
> @@ -125,6 +125,7 @@ static int __devinit gpio_extcon_probe(struct platform_device *pdev)
> if (ret < 0)
> goto err_request_irq;
>
> + platform_set_drvdata(pdev, extcon_data);
> /* Perform initial detection */
> gpio_extcon_work(&extcon_data->work.work);
>
> @@ -146,6 +147,7 @@ static int __devexit gpio_extcon_remove(struct platform_device *pdev)
> struct gpio_extcon_data *extcon_data = platform_get_drvdata(pdev);
>
> cancel_delayed_work_sync(&extcon_data->work);
> + free_irq(extcon_data->irq, extcon_data);
> gpio_free(extcon_data->gpio);
> extcon_dev_unregister(&extcon_data->edev);
> devm_kfree(&pdev->dev, extcon_data);
> --
> 1.7.9.5
>
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
> Also remove unneeded devm_kfree calls.
>
> Signed-off-by: Axel Lin <[email protected]>
Acked-by: MyungJoo Ham <[email protected]>
Thanks!
You will be able to see this patch along with other extcon patches at the infradead repository soon:
http://git.infradead.org/users/kmpark/linux-samsung/shortlog/refs/heads/extcon-for-next
Cheers!
MyungJoo.
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
2012/6/19 함명주 <[email protected]>:
>> Add missing platform_set_drvdata() in gpio_extcon_probe(), otherwise calling
>> platform_get_drvdata in gpio_extcon_remove() returns NULL.
>>
>> Also add missing free_irq call in gpio_extcon_remove().
>>
>> Signed-off-by: Axel Lin <[email protected]>
>
> Thanks!
>
>
> Acked-by: MyungJoo Ham <[email protected]>
>
> I'll apply this patch to the extcon-for-next.
> I would appear in http://git.infradead.org/users/kmpark/linux-samsung/shortlog/refs/heads/extcon-for-next soon after syncing servers.
Hi MyungJoo,
These patches are already in today's linux-next tree.
It's already picked up by Greg.
Regards,
Axel
On Tue, Jun 19, 2012 at 10:19:07AM +0000, 함명주 wrote:
> > Add missing platform_set_drvdata() in gpio_extcon_probe(), otherwise calling
> > platform_get_drvdata in gpio_extcon_remove() returns NULL.
> >
> > Also add missing free_irq call in gpio_extcon_remove().
> >
> > Signed-off-by: Axel Lin <[email protected]>
>
> Thanks!
>
>
> Acked-by: MyungJoo Ham <[email protected]>
>
> I'll apply this patch to the extcon-for-next.
> I would appear in http://git.infradead.org/users/kmpark/linux-samsung/shortlog/refs/heads/extcon-for-next soon after syncing servers.
Does this mean you are going to have a separate extcon git tree
somewhere, feeding into linux-next, and sending stuff directly to Linus?
I don't see an entry in the MAINTAINERS file saying this, which is why I
was picking up extcon patches, should I not be doing this?
confused,
greg k-h
> On Tue, Jun 19, 2012 at 10:19:07AM +0000, ?Ը??? wrote:
> > > Add missing platform_set_drvdata() in gpio_extcon_probe(), otherwise calling
> > > platform_get_drvdata in gpio_extcon_remove() returns NULL.
> > >
> > > Also add missing free_irq call in gpio_extcon_remove().
> > >
> > > Signed-off-by: Axel Lin <[email protected]>
> >
> > Thanks!
> >
> >
> > Acked-by: MyungJoo Ham <[email protected]>
> >
> > I'll apply this patch to the extcon-for-next.
> > I would appear in http://git.infradead.org/users/kmpark/linux-samsung/shortlog/refs/heads/extcon-for-next soon after syncing servers.
>
> Does this mean you are going to have a separate extcon git tree
> somewhere, feeding into linux-next, and sending stuff directly to Linus?
>
> I don't see an entry in the MAINTAINERS file saying this, which is why I
> was picking up extcon patches, should I not be doing this?
>
> confused,
>
> greg k-h
>
You are right. We do not have MAINTAINERS entry for extcon.
I can wait until we have MAINTAINERS entry registered for extcon, which we have not request or submit, yet. Until then, I think you may pick up the extcon patches and I will simply follow your repositories (keep rebasing from yours)
Sorry for the confusion.
MyungJoo
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m????????????I?
On Wed, Jun 20, 2012 at 04:32:06AM +0000, MyungJoo Ham wrote:
> > On Tue, Jun 19, 2012 at 10:19:07AM +0000, 함명주 wrote:
> > > > Add missing platform_set_drvdata() in gpio_extcon_probe(), otherwise calling
> > > > platform_get_drvdata in gpio_extcon_remove() returns NULL.
> > > >
> > > > Also add missing free_irq call in gpio_extcon_remove().
> > > >
> > > > Signed-off-by: Axel Lin <[email protected]>
> > >
> > > Thanks!
> > >
> > >
> > > Acked-by: MyungJoo Ham <[email protected]>
> > >
> > > I'll apply this patch to the extcon-for-next.
> > > I would appear in http://git.infradead.org/users/kmpark/linux-samsung/shortlog/refs/heads/extcon-for-next soon after syncing servers.
> >
> > Does this mean you are going to have a separate extcon git tree
> > somewhere, feeding into linux-next, and sending stuff directly to Linus?
> >
> > I don't see an entry in the MAINTAINERS file saying this, which is why I
> > was picking up extcon patches, should I not be doing this?
> >
> > confused,
> >
> > greg k-h
> >
>
> You are right. We do not have MAINTAINERS entry for extcon.
You can easily fix that (hint, hint, hint...)
> I can wait until we have MAINTAINERS entry registered for extcon,
> which we have not request or submit, yet. Until then, I think you may
> pick up the extcon patches and I will simply follow your repositories
> (keep rebasing from yours)
My trees never need rebasing, why would you need to do that? What is
going into your tree that isn't in mine? Am I missing patches?
I would be very glad for you to take over this maintainership, if it's
something you want to do, otherwise I have no problem taking the
patches. It's up to you.
thanks,
greg k-h