2012-11-29 05:03:21

by Stephen Rothwell

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

Hi all,

Today's linux-next merge of the arm-soc tree got a conflict in
drivers/leds/leds-ns2.c between commit 98ea1ea20cb7 ("leds: remove use of
__devinit") from the driver-core tree and commit 72052fcc1026 ("leds:
leds-ns2: add device tree binding") from the arm-soc 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/leds/leds-ns2.c
index bc6a0db,d64cc22..0000000
--- a/drivers/leds/leds-ns2.c
+++ b/drivers/leds/leds-ns2.c
@@@ -247,9 -260,67 +248,65 @@@ static void delete_ns2_led(struct ns2_l
{
device_remove_file(led_dat->cdev.dev, &dev_attr_sata);
led_classdev_unregister(&led_dat->cdev);
- gpio_free(led_dat->cmd);
- gpio_free(led_dat->slow);
}

+ #ifdef CONFIG_OF_GPIO
+ /*
+ * Translate OpenFirmware node properties into platform_data.
+ */
-static int __devinit
++static int
+ ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata)
+ {
+ struct device_node *np = dev->of_node;
+ struct device_node *child;
+ struct ns2_led *leds;
+ int num_leds = 0;
+ int i = 0;
+
+ num_leds = of_get_child_count(np);
+ if (!num_leds)
+ return -ENODEV;
+
+ leds = devm_kzalloc(dev, num_leds * sizeof(struct ns2_led),
+ GFP_KERNEL);
+ if (!leds)
+ return -ENOMEM;
+
+ for_each_child_of_node(np, child) {
+ const char *string;
+ int ret;
+
+ ret = of_get_named_gpio(child, "cmd-gpio", 0);
+ if (ret < 0)
+ return ret;
+ leds[i].cmd = ret;
+ ret = of_get_named_gpio(child, "slow-gpio", 0);
+ if (ret < 0)
+ return ret;
+ leds[i].slow = ret;
+ ret = of_property_read_string(child, "label", &string);
+ leds[i].name = (ret == 0) ? string : child->name;
+ ret = of_property_read_string(child, "linux,default-trigger",
+ &string);
+ if (ret == 0)
+ leds[i].default_trigger = string;
+
+ i++;
+ }
+
+ pdata->leds = leds;
+ pdata->num_leds = num_leds;
+
+ return 0;
+ }
+
+ static const struct of_device_id of_ns2_leds_match[] = {
+ { .compatible = "lacie,ns2-leds", },
+ {},
+ };
+ #endif /* CONFIG_OF_GPIO */
+
-static int __devinit ns2_led_probe(struct platform_device *pdev)
+static int ns2_led_probe(struct platform_device *pdev)
{
struct ns2_led_platform_data *pdata = pdev->dev.platform_data;
struct ns2_led_data *leds_data;
@@@ -296,10 -381,11 +367,11 @@@ static int ns2_led_remove(struct platfo

static struct platform_driver ns2_led_driver = {
.probe = ns2_led_probe,
- .remove = __devexit_p(ns2_led_remove),
+ .remove = ns2_led_remove,
.driver = {
- .name = "leds-ns2",
- .owner = THIS_MODULE,
+ .name = "leds-ns2",
+ .owner = THIS_MODULE,
+ .of_match_table = of_match_ptr(of_ns2_leds_match),
},
};


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

2012-11-29 05:15:55

by Greg KH

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

On Thu, Nov 29, 2012 at 04:03:09PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the arm-soc tree got a conflict in
> drivers/leds/leds-ns2.c between commit 98ea1ea20cb7 ("leds: remove use of
> __devinit") from the driver-core tree and commit 72052fcc1026 ("leds:
> leds-ns2: add device tree binding") from the arm-soc tree.
>
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).

Looks good, thanks.

greg k-h

2012-11-29 23:11:18

by Simon Guinot

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

On Thu, Nov 29, 2012 at 04:03:09PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the arm-soc tree got a conflict in
> drivers/leds/leds-ns2.c between commit 98ea1ea20cb7 ("leds: remove use of
> __devinit") from the driver-core tree and commit 72052fcc1026 ("leds:
> leds-ns2: add device tree binding") from the arm-soc tree.
>
> I fixed it up (see below) and can carry the fix as necessary (no action
> is required).

Hi Stephen,

The merge is fine and the driver works as expected.

Thanks.

Simon

>
> --
> Cheers,
> Stephen Rothwell [email protected]
>
> diff --cc drivers/leds/leds-ns2.c
> index bc6a0db,d64cc22..0000000
> --- a/drivers/leds/leds-ns2.c
> +++ b/drivers/leds/leds-ns2.c
> @@@ -247,9 -260,67 +248,65 @@@ static void delete_ns2_led(struct ns2_l
> {
> device_remove_file(led_dat->cdev.dev, &dev_attr_sata);
> led_classdev_unregister(&led_dat->cdev);
> - gpio_free(led_dat->cmd);
> - gpio_free(led_dat->slow);
> }
>
> + #ifdef CONFIG_OF_GPIO
> + /*
> + * Translate OpenFirmware node properties into platform_data.
> + */
> -static int __devinit
> ++static int
> + ns2_leds_get_of_pdata(struct device *dev, struct ns2_led_platform_data *pdata)
> + {
> + struct device_node *np = dev->of_node;
> + struct device_node *child;
> + struct ns2_led *leds;
> + int num_leds = 0;
> + int i = 0;
> +
> + num_leds = of_get_child_count(np);
> + if (!num_leds)
> + return -ENODEV;
> +
> + leds = devm_kzalloc(dev, num_leds * sizeof(struct ns2_led),
> + GFP_KERNEL);
> + if (!leds)
> + return -ENOMEM;
> +
> + for_each_child_of_node(np, child) {
> + const char *string;
> + int ret;
> +
> + ret = of_get_named_gpio(child, "cmd-gpio", 0);
> + if (ret < 0)
> + return ret;
> + leds[i].cmd = ret;
> + ret = of_get_named_gpio(child, "slow-gpio", 0);
> + if (ret < 0)
> + return ret;
> + leds[i].slow = ret;
> + ret = of_property_read_string(child, "label", &string);
> + leds[i].name = (ret == 0) ? string : child->name;
> + ret = of_property_read_string(child, "linux,default-trigger",
> + &string);
> + if (ret == 0)
> + leds[i].default_trigger = string;
> +
> + i++;
> + }
> +
> + pdata->leds = leds;
> + pdata->num_leds = num_leds;
> +
> + return 0;
> + }
> +
> + static const struct of_device_id of_ns2_leds_match[] = {
> + { .compatible = "lacie,ns2-leds", },
> + {},
> + };
> + #endif /* CONFIG_OF_GPIO */
> +
> -static int __devinit ns2_led_probe(struct platform_device *pdev)
> +static int ns2_led_probe(struct platform_device *pdev)
> {
> struct ns2_led_platform_data *pdata = pdev->dev.platform_data;
> struct ns2_led_data *leds_data;
> @@@ -296,10 -381,11 +367,11 @@@ static int ns2_led_remove(struct platfo
>
> static struct platform_driver ns2_led_driver = {
> .probe = ns2_led_probe,
> - .remove = __devexit_p(ns2_led_remove),
> + .remove = ns2_led_remove,
> .driver = {
> - .name = "leds-ns2",
> - .owner = THIS_MODULE,
> + .name = "leds-ns2",
> + .owner = THIS_MODULE,
> + .of_match_table = of_match_ptr(of_ns2_leds_match),
> },
> };
>



Attachments:
(No filename) (3.08 kB)
signature.asc (198.00 B)
Digital signature
Download all attachments