2012-11-29 05:27:34

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: manual merge of the pwm tree with the driver-core tree

Hi Thierry,

Today's linux-next merge of the pwm tree got a conflict in
drivers/pwm/pwm-tiehrpwm.c between commit 3e9fe83d278c ("pwm: remove use
of __devinit") from the driver-core tree and commit 53ad9e8d3703 ("pwm:
tiehrpwm: Add device-tree binding") from the pwm tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

--
Cheers,
Stephen Rothwell [email protected]

diff --cc drivers/pwm/pwm-tiehrpwm.c
index 9ffd389,542d5f3..0000000
--- a/drivers/pwm/pwm-tiehrpwm.c
+++ b/drivers/pwm/pwm-tiehrpwm.c
@@@ -392,7 -403,13 +403,13 @@@ static const struct pwm_ops ehrpwm_pwm_
.owner = THIS_MODULE,
};

+ static const struct of_device_id ehrpwm_of_match[] = {
+ { .compatible = "ti,am33xx-ehrpwm" },
+ {},
+ };
+ MODULE_DEVICE_TABLE(of, ehrpwm_of_match);
+
-static int __devinit ehrpwm_pwm_probe(struct platform_device *pdev)
+static int ehrpwm_pwm_probe(struct platform_device *pdev)
{
int ret;
struct resource *r;
@@@ -439,11 -471,29 +471,29 @@@
}

pm_runtime_enable(&pdev->dev);
+ pm_runtime_get_sync(&pdev->dev);
+
+ status = pwmss_submodule_state_change(pdev->dev.parent,
+ PWMSS_EPWMCLK_EN);
+ if (!(status & PWMSS_EPWMCLK_EN_ACK)) {
+ dev_err(&pdev->dev, "PWMSS config space clock enable failed\n");
+ ret = -EINVAL;
+ goto pwmss_clk_failure;
+ }
+
+ pm_runtime_put_sync(&pdev->dev);
+
platform_set_drvdata(pdev, pc);
return 0;
+
+ pwmss_clk_failure:
+ pm_runtime_put_sync(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
+ pwmchip_remove(&pc->chip);
+ return ret;
}

-static int __devexit ehrpwm_pwm_remove(struct platform_device *pdev)
+static int ehrpwm_pwm_remove(struct platform_device *pdev)
{
struct ehrpwm_pwm_chip *pc = platform_get_drvdata(pdev);

@@@ -454,10 -512,12 +512,12 @@@

static struct platform_driver ehrpwm_pwm_driver = {
.driver = {
- .name = "ehrpwm",
+ .name = "ehrpwm",
+ .owner = THIS_MODULE,
+ .of_match_table = ehrpwm_of_match,
},
.probe = ehrpwm_pwm_probe,
- .remove = __devexit_p(ehrpwm_pwm_remove),
+ .remove = ehrpwm_pwm_remove,
};

module_platform_driver(ehrpwm_pwm_driver);


Attachments:
(No filename) (2.12 kB)
(No filename) (836.00 B)
Download all attachments

2012-11-29 06:46:46

by Thierry Reding

[permalink] [raw]
Subject: Re: linux-next: manual merge of the pwm tree with the driver-core tree

On Thu, Nov 29, 2012 at 04:27:30PM +1100, Stephen Rothwell wrote:
> Hi Thierry,
>
> Today's linux-next merge of the pwm tree got a conflict in
> drivers/pwm/pwm-tiehrpwm.c between commit 3e9fe83d278c ("pwm: remove use
> of __devinit") from the driver-core tree and commit 53ad9e8d3703 ("pwm:
> tiehrpwm: Add device-tree binding") from the pwm tree.
>
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).

Also looking good, thanks.

Thierry

> --
> Cheers,
> Stephen Rothwell [email protected]
>
> diff --cc drivers/pwm/pwm-tiehrpwm.c
> index 9ffd389,542d5f3..0000000
> --- a/drivers/pwm/pwm-tiehrpwm.c
> +++ b/drivers/pwm/pwm-tiehrpwm.c
> @@@ -392,7 -403,13 +403,13 @@@ static const struct pwm_ops ehrpwm_pwm_
> .owner = THIS_MODULE,
> };
>
> + static const struct of_device_id ehrpwm_of_match[] = {
> + { .compatible = "ti,am33xx-ehrpwm" },
> + {},
> + };
> + MODULE_DEVICE_TABLE(of, ehrpwm_of_match);
> +
> -static int __devinit ehrpwm_pwm_probe(struct platform_device *pdev)
> +static int ehrpwm_pwm_probe(struct platform_device *pdev)
> {
> int ret;
> struct resource *r;
> @@@ -439,11 -471,29 +471,29 @@@
> }
>
> pm_runtime_enable(&pdev->dev);
> + pm_runtime_get_sync(&pdev->dev);
> +
> + status = pwmss_submodule_state_change(pdev->dev.parent,
> + PWMSS_EPWMCLK_EN);
> + if (!(status & PWMSS_EPWMCLK_EN_ACK)) {
> + dev_err(&pdev->dev, "PWMSS config space clock enable failed\n");
> + ret = -EINVAL;
> + goto pwmss_clk_failure;
> + }
> +
> + pm_runtime_put_sync(&pdev->dev);
> +
> platform_set_drvdata(pdev, pc);
> return 0;
> +
> + pwmss_clk_failure:
> + pm_runtime_put_sync(&pdev->dev);
> + pm_runtime_disable(&pdev->dev);
> + pwmchip_remove(&pc->chip);
> + return ret;
> }
>
> -static int __devexit ehrpwm_pwm_remove(struct platform_device *pdev)
> +static int ehrpwm_pwm_remove(struct platform_device *pdev)
> {
> struct ehrpwm_pwm_chip *pc = platform_get_drvdata(pdev);
>
> @@@ -454,10 -512,12 +512,12 @@@
>
> static struct platform_driver ehrpwm_pwm_driver = {
> .driver = {
> - .name = "ehrpwm",
> + .name = "ehrpwm",
> + .owner = THIS_MODULE,
> + .of_match_table = ehrpwm_of_match,
> },
> .probe = ehrpwm_pwm_probe,
> - .remove = __devexit_p(ehrpwm_pwm_remove),
> + .remove = ehrpwm_pwm_remove,
> };
>
> module_platform_driver(ehrpwm_pwm_driver);



Attachments:
(No filename) (2.37 kB)
(No filename) (836.00 B)
Download all attachments