Просмотр исходного кода

Make spi-gpio hotplug capable, so we can initialize devices after boot.

SVN-Revision: 14475
Michael Büsch 17 лет назад
Родитель
Сommit
d64adbe7bb
1 измененных файлов с 62 добавлено и 0 удалено
  1. 62 0
      target/linux/generic-2.6/patches-2.6.28/920-01-hotpluggable-spi-gpio.patch

+ 62 - 0
target/linux/generic-2.6/patches-2.6.28/920-01-hotpluggable-spi-gpio.patch

@@ -0,0 +1,62 @@
+Fix spi-gpio for hotplug.
+
+--mb
+
+
+
+Index: linux-2.6.28.2/drivers/spi/spi_gpio.c
+===================================================================
+--- linux-2.6.28.2.orig/drivers/spi/spi_gpio.c	2009-02-11 17:58:42.000000000 +0100
++++ linux-2.6.28.2/drivers/spi/spi_gpio.c	2009-02-11 18:48:23.000000000 +0100
+@@ -213,7 +213,7 @@ static void spi_gpio_cleanup(struct spi_
+ 	spi_bitbang_cleanup(spi);
+ }
+ 
+-static int __init spi_gpio_alloc(unsigned pin, const char *label, bool is_in)
++static int __devinit spi_gpio_alloc(unsigned pin, const char *label, bool is_in)
+ {
+ 	int value;
+ 
+@@ -227,7 +227,7 @@ static int __init spi_gpio_alloc(unsigne
+ 	return value;
+ }
+ 
+-static int __init
++static int __devinit
+ spi_gpio_request(struct spi_gpio_platform_data *pdata, const char *label)
+ {
+ 	int value;
+@@ -256,7 +256,7 @@ done:
+ 	return value;
+ }
+ 
+-static int __init spi_gpio_probe(struct platform_device *pdev)
++static int __devinit spi_gpio_probe(struct platform_device *pdev)
+ {
+ 	int				status;
+ 	struct spi_master		*master;
+@@ -312,7 +312,7 @@ gpio_free:
+ 	return status;
+ }
+ 
+-static int __exit spi_gpio_remove(struct platform_device *pdev)
++static int __devexit spi_gpio_remove(struct platform_device *pdev)
+ {
+ 	struct spi_gpio			*spi_gpio;
+ 	struct spi_gpio_platform_data	*pdata;
+@@ -339,12 +339,13 @@ MODULE_ALIAS("platform:" DRIVER_NAME);
+ static struct platform_driver spi_gpio_driver = {
+ 	.driver.name	= DRIVER_NAME,
+ 	.driver.owner	= THIS_MODULE,
+-	.remove		= __exit_p(spi_gpio_remove),
++	.probe		= spi_gpio_probe,
++	.remove		= __devexit_p(spi_gpio_remove),
+ };
+ 
+ static int __init spi_gpio_init(void)
+ {
+-	return platform_driver_probe(&spi_gpio_driver, spi_gpio_probe);
++	return platform_driver_register(&spi_gpio_driver);
+ }
+ module_init(spi_gpio_init);
+