linux-next: manual merge of the arm-soc tree with the driver-core tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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                    sfr@xxxxxxxxxxxxxxxx

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),
  	},
  };
  

Attachment: pgpzMTgleSl5u.pgp
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux