All pastes #262543 Raw Edit

Diff

public text v1 · immutable
#262543 ·published 2006-11-30 17:34 UTC
rendered paste body
Index: asic3_base.c===================================================================RCS file: /cvs/linux/kernel26/drivers/soc/asic3_base.c,vretrieving revision 1.21diff -u -r1.21 asic3_base.c--- asic3_base.c	19 Nov 2006 23:08:17 -0000	1.21+++ asic3_base.c	30 Nov 2006 17:34:51 -0000@@ -49,29 +49,29 @@  static spinlock_t asic3_gpio_lock; -static int asic3_remove (struct device *dev);+static int asic3_remove (struct platform_device *pdev);  static inline unsigned long-asic3_address (struct device *dev, unsigned int reg)+asic3_address (struct platform_device *pdev, unsigned int reg) { 	struct asic3_data *adata; -	adata = (struct asic3_data *)dev->driver_data;+	adata = (struct asic3_data *)platform_get_drvdata(pdev);  	return (unsigned long)adata->mapping + (reg >> (2 - adata->bus_shift)); }  void-asic3_write_register (struct device *dev, unsigned int reg, unsigned long value)+asic3_write_register (struct platform_device *pdev, unsigned int reg, unsigned long value) {-	__raw_writew (value, asic3_address (dev, reg));+	__raw_writew (value, asic3_address (pdev, reg)); } EXPORT_SYMBOL(asic3_write_register);  unsigned long-asic3_read_register (struct device *dev, unsigned int reg)+asic3_read_register (struct platform_device *pdev, unsigned int reg) {-	return __raw_readw (asic3_address (dev, reg));+	return __raw_readw (asic3_address (pdev, reg)); } EXPORT_SYMBOL(asic3_read_register); @@ -89,20 +89,20 @@  #define ASIC3_GPIO_FN(get_fn_name, set_fn_name, REG)			\ u32                                                                     \-get_fn_name (struct device *dev)					\+get_fn_name (struct platform_device *dev)				\ {                                                                       \-	return asic3_read_register (dev, REG);				\+	return asic3_read_register (pdev, REG);				\ }                                                                       \ EXPORT_SYMBOL( get_fn_name );						\                                                                         \ void                                                                    \-set_fn_name (struct device *dev, u32 bits, u32 val)                     \+set_fn_name (struct platform_device *pdev, u32 bits, u32 val)           \ {                                                                       \ 	unsigned long flags;						\ 									\ 	spin_lock_irqsave (&asic3_gpio_lock, flags);			\-	val |= (asic3_read_register (dev, REG) & ~bits);		\-	asic3_write_register (dev, REG, val);				\+	val |= (asic3_read_register (pdev, REG) & ~bits);		\+	asic3_write_register (pdev, REG, val);				\ 	spin_unlock_irqrestore (&asic3_gpio_lock, flags);		\ }                                                                       \ EXPORT_SYMBOL(set_fn_name);@@ -135,18 +135,18 @@ ASIC3_GPIO_FUNCTIONS(c, C) ASIC3_GPIO_FUNCTIONS(d, D) -int asic3_get_gpio_bit(struct device *dev, int gpio)+int asic3_get_gpio_bit(struct platform_device *pdev, int gpio) { 	u32 mask = ASIC3_GPIO_bit(gpio); 	switch (gpio >> 4) { 		case _IPAQ_ASIC3_GPIO_BANK_A:-			return asic3_get_gpio_status_a(dev) & mask;+			return asic3_get_gpio_status_a(pdev) & mask; 		case _IPAQ_ASIC3_GPIO_BANK_B:-			return asic3_get_gpio_status_b(dev) & mask;+			return asic3_get_gpio_status_b(pdev) & mask; 		case _IPAQ_ASIC3_GPIO_BANK_C:-			return asic3_get_gpio_status_c(dev) & mask;+			return asic3_get_gpio_status_c(pdev) & mask; 		case _IPAQ_ASIC3_GPIO_BANK_D:-			return asic3_get_gpio_status_d(dev) & mask;+			return asic3_get_gpio_status_d(pdev) & mask; 	}  	printk("%s: invalid GPIO value 0x%x", __FUNCTION__, gpio);@@ -156,9 +156,9 @@ EXPORT_SYMBOL(asic3_get_gpio_bit);  int-asic3_irq_base (struct device *dev)+asic3_irq_base (struct platform_device *pdev) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev);  	return asic->irq_base; }@@ -166,9 +166,9 @@ EXPORT_SYMBOL(asic3_irq_base);  void -asic3_set_led (struct device *dev, int led_num, int duty_time, int cycle_time)+asic3_set_led (struct platform_device *pdev, int led_num, int duty_time, int cycle_time) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned int led_base;  	/* it's a macro thing: see #define _IPAQ_ASIC_LED_0_Base for why you@@ -200,9 +200,9 @@ EXPORT_SYMBOL(asic3_set_led);  void-asic3_set_clock_sel (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_clock_sel (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -214,9 +214,9 @@ EXPORT_SYMBOL (asic3_set_clock_sel);  void-asic3_set_clock_cdex (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_clock_cdex (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -228,9 +228,9 @@ EXPORT_SYMBOL (asic3_set_clock_cdex);  void-asic3_set_extcf_select (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_extcf_select (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -242,9 +242,9 @@ EXPORT_SYMBOL (asic3_set_extcf_select);  void-asic3_set_extcf_reset (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_extcf_reset (struct platform_device *pdev, unsigned long bits, unsigned long val) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	unsigned long flags, v;  	spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -256,9 +256,9 @@ EXPORT_SYMBOL (asic3_set_extcf_reset);  void-asic3_set_sdhwctrl (struct device *dev, unsigned long bits, unsigned long val)+asic3_set_sdhwctrl (struct platform_device *pdev, unsigned long bits, unsigned long val) {-        struct asic3_data *asic = dev->driver_data;+        struct asic3_data *asic = platform_get_drvdata(pdev);         unsigned long flags, v;          spin_lock_irqsave (&asic3_gpio_lock, flags);@@ -550,21 +550,18 @@ };  static void-asic3_release (struct device *dev)+asic3_release (struct platform_device *sdev) {-	struct platform_device *sdev = to_platform_device (dev);- 	kfree (sdev->resource); 	kfree (sdev); }  int-asic3_register_mmc (struct device *dev)+asic3_register_mmc (struct platform_device *pdev) { 	struct platform_device *sdev = kmalloc (sizeof (*sdev), GFP_KERNEL); 	struct tmio_mmc_hwconfig *mmc_config = kmalloc (sizeof (*mmc_config), GFP_KERNEL);-	struct platform_device *pdev = to_platform_device (dev);-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	struct resource *res; 	int rc; @@ -611,9 +608,9 @@ EXPORT_SYMBOL(asic3_register_mmc);  int-asic3_unregister_mmc (struct device *dev)+asic3_unregister_mmc (struct platform_device *pdev) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	platform_device_unregister (asic->mmc_dev); 	asic->mmc_dev = 0; @@ -622,10 +619,9 @@ EXPORT_SYMBOL(asic3_unregister_mmc);  static int -asic3_probe (struct device *dev)+asic3_probe (struct platform_device *pdev) {-	struct platform_device *pdev = to_platform_device (dev);-	struct asic3_platform_data *pdata = dev->platform_data;+	struct asic3_platform_data *pdata = pdev->dev.platform_data; 	struct asic3_data *asic; 	unsigned long clksel; @@ -635,7 +631,7 @@ 	memset (asic, 0, sizeof (*asic));  	spin_lock_init (&asic3_gpio_lock);-	dev->driver_data = asic;+	platform_set_drvdata(pdev, asic);  	asic->mapping = ioremap ((unsigned long)pdev->resource[0].start, IPAQ_ASIC3_MAP_SIZE); 	if (!asic->mapping) {@@ -658,46 +654,46 @@ 	__asic3_write_register (asic, _IPAQ_ASIC3_GPIO_C_Base + _IPAQ_ASIC3_GPIO_Mask, 0xffff); 	__asic3_write_register (asic, _IPAQ_ASIC3_GPIO_D_Base + _IPAQ_ASIC3_GPIO_Mask, 0xffff); -	asic3_set_gpio_sleepmask_a (dev, 0xffff, 0xffff);-	asic3_set_gpio_sleepmask_b (dev, 0xffff, 0xffff);-	asic3_set_gpio_sleepmask_c (dev, 0xffff, 0xffff);-	asic3_set_gpio_sleepmask_d (dev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_a (pdev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_b (pdev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_c (pdev, 0xffff, 0xffff);+	asic3_set_gpio_sleepmask_d (pdev, 0xffff, 0xffff);  	if (pdata) {-		asic3_set_gpio_out_a(dev, 0xffff, pdata->gpio_a.init);-		asic3_set_gpio_out_b(dev, 0xffff, pdata->gpio_b.init);-		asic3_set_gpio_out_c(dev, 0xffff, pdata->gpio_c.init);-		asic3_set_gpio_out_d(dev, 0xffff, pdata->gpio_d.init);--		asic3_set_gpio_dir_a(dev, 0xffff, pdata->gpio_a.dir);-		asic3_set_gpio_dir_b(dev, 0xffff, pdata->gpio_b.dir);-		asic3_set_gpio_dir_c(dev, 0xffff, pdata->gpio_c.dir);-		asic3_set_gpio_dir_d(dev, 0xffff, pdata->gpio_d.dir);--		asic3_set_gpio_sleepmask_a(dev, 0xffff, pdata->gpio_a.sleep_mask);-		asic3_set_gpio_sleepmask_b(dev, 0xffff, pdata->gpio_b.sleep_mask);-		asic3_set_gpio_sleepmask_c(dev, 0xffff, pdata->gpio_c.sleep_mask);-		asic3_set_gpio_sleepmask_d(dev, 0xffff, pdata->gpio_d.sleep_mask);--		asic3_set_gpio_sleepout_a(dev, 0xffff, pdata->gpio_a.sleep_out);-		asic3_set_gpio_sleepout_b(dev, 0xffff, pdata->gpio_b.sleep_out);-		asic3_set_gpio_sleepout_c(dev, 0xffff, pdata->gpio_c.sleep_out);-		asic3_set_gpio_sleepout_d(dev, 0xffff, pdata->gpio_d.sleep_out);--		asic3_set_gpio_battfaultout_a(dev, 0xffff, pdata->gpio_a.batt_fault_out);-		asic3_set_gpio_battfaultout_b(dev, 0xffff, pdata->gpio_b.batt_fault_out);-		asic3_set_gpio_battfaultout_c(dev, 0xffff, pdata->gpio_c.batt_fault_out);-		asic3_set_gpio_battfaultout_d(dev, 0xffff, pdata->gpio_d.batt_fault_out);--		asic3_set_gpio_sleepconf_a(dev, 0xffff, pdata->gpio_a.sleep_conf);-		asic3_set_gpio_sleepconf_b(dev, 0xffff, pdata->gpio_b.sleep_conf);-		asic3_set_gpio_sleepconf_c(dev, 0xffff, pdata->gpio_c.sleep_conf);-		asic3_set_gpio_sleepconf_d(dev, 0xffff, pdata->gpio_d.sleep_conf);--		asic3_set_gpio_alt_fn_a(dev, 0xffff, pdata->gpio_a.alt_function);-		asic3_set_gpio_alt_fn_b(dev, 0xffff, pdata->gpio_b.alt_function);-		asic3_set_gpio_alt_fn_c(dev, 0xffff, pdata->gpio_c.alt_function);-		asic3_set_gpio_alt_fn_d(dev, 0xffff, pdata->gpio_d.alt_function);+		asic3_set_gpio_out_a(pdev, 0xffff, pdata->gpio_a.init);+		asic3_set_gpio_out_b(pdev, 0xffff, pdata->gpio_b.init);+		asic3_set_gpio_out_c(pdev, 0xffff, pdata->gpio_c.init);+		asic3_set_gpio_out_d(pdev, 0xffff, pdata->gpio_d.init);++		asic3_set_gpio_dir_a(pdev, 0xffff, pdata->gpio_a.dir);+		asic3_set_gpio_dir_b(pdev, 0xffff, pdata->gpio_b.dir);+		asic3_set_gpio_dir_c(pdev, 0xffff, pdata->gpio_c.dir);+		asic3_set_gpio_dir_d(pdev, 0xffff, pdata->gpio_d.dir);++		asic3_set_gpio_sleepmask_a(pdev, 0xffff, pdata->gpio_a.sleep_mask);+		asic3_set_gpio_sleepmask_b(pdev, 0xffff, pdata->gpio_b.sleep_mask);+		asic3_set_gpio_sleepmask_c(pdev, 0xffff, pdata->gpio_c.sleep_mask);+		asic3_set_gpio_sleepmask_d(pdev, 0xffff, pdata->gpio_d.sleep_mask);++		asic3_set_gpio_sleepout_a(pdev, 0xffff, pdata->gpio_a.sleep_out);+		asic3_set_gpio_sleepout_b(pdev, 0xffff, pdata->gpio_b.sleep_out);+		asic3_set_gpio_sleepout_c(pdev, 0xffff, pdata->gpio_c.sleep_out);+		asic3_set_gpio_sleepout_d(pdev, 0xffff, pdata->gpio_d.sleep_out);++		asic3_set_gpio_battfaultout_a(pdev, 0xffff, pdata->gpio_a.batt_fault_out);+		asic3_set_gpio_battfaultout_b(pdev, 0xffff, pdata->gpio_b.batt_fault_out);+		asic3_set_gpio_battfaultout_c(pdev, 0xffff, pdata->gpio_c.batt_fault_out);+		asic3_set_gpio_battfaultout_d(pdev, 0xffff, pdata->gpio_d.batt_fault_out);++		asic3_set_gpio_sleepconf_a(pdev, 0xffff, pdata->gpio_a.sleep_conf);+		asic3_set_gpio_sleepconf_b(pdev, 0xffff, pdata->gpio_b.sleep_conf);+		asic3_set_gpio_sleepconf_c(pdev, 0xffff, pdata->gpio_c.sleep_conf);+		asic3_set_gpio_sleepconf_d(pdev, 0xffff, pdata->gpio_d.sleep_conf);++		asic3_set_gpio_alt_fn_a(pdev, 0xffff, pdata->gpio_a.alt_function);+		asic3_set_gpio_alt_fn_b(pdev, 0xffff, pdata->gpio_b.alt_function);+		asic3_set_gpio_alt_fn_c(pdev, 0xffff, pdata->gpio_c.alt_function);+		asic3_set_gpio_alt_fn_d(pdev, 0xffff, pdata->gpio_d.alt_function); 	}  	asic->irq_nr = -1;@@ -712,7 +708,7 @@ 		asic->irq_base = alloc_irq_space (ASIC3_NR_IRQS); 		if (asic->irq_base == -1) { 			printk("asic3: unable to allocate %d IRQs\n", ASIC3_NR_IRQS);-			asic3_remove (dev);+			asic3_remove (pdev); 			return -ENOMEM; 		} @@ -749,9 +745,9 @@  	if (pdev->num_resources > 2) { 		int rc;-		rc = asic3_register_mmc (dev);+		rc = asic3_register_mmc (pdev); 		if (rc) {-			asic3_remove (dev);+			asic3_remove (pdev); 			return rc; 		} 	}@@ -763,11 +759,11 @@ }  static int-asic3_remove (struct device *dev)+asic3_remove (struct platform_device *pdev) { 	struct asic3_data *asic;-	struct asic3_platform_data *pdata = dev->platform_data;-	asic = dev->driver_data;+	struct asic3_platform_data *pdata = pdev->dev.platform_data;+	asic = platform_get_drvdata(pdev);  	if (pdata && pdata->child_platform_devs && pdata->num_child_platform_devs != 0) { 		int i;@@ -792,7 +788,7 @@ 	}  	if (asic->mmc_dev)-		asic3_unregister_mmc (dev);+		asic3_unregister_mmc (pdev);  	__asic3_write_register (asic, _IPAQ_ASIC3_CLOCK_Base + _IPAQ_ASIC3_CLOCK_SEL, 0); 	__asic3_write_register (asic, _IPAQ_ASIC3_INTR_Base + _IPAQ_ASIC3_INTR_IntMask, 0);@@ -805,16 +801,16 @@ }  static void-asic3_shutdown (struct device *dev)+asic3_shutdown (struct platform_device *pdev) { }  static unsigned short suspend_cdex;  static int-asic3_suspend (struct device *dev, pm_message_t state)+asic3_suspend (struct platform_device *pdev, pm_message_t state) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev); 	suspend_cdex = __asic3_read_register (asic, 		_IPAQ_ASIC3_CLOCK_Base + _IPAQ_ASIC3_CLOCK_CDEX); 	/* The LEDs are still active during suspend */@@ -825,9 +821,9 @@ }  static int-asic3_resume (struct device *dev)+asic3_resume (struct platform_device *pdev) {-	struct asic3_data *asic = dev->driver_data;+	struct asic3_data *asic = platform_get_drvdata(pdev);  	__asic3_write_register (asic, _IPAQ_ASIC3_INTR_Base + _IPAQ_ASIC3_CLOCK_CDEX, 		suspend_cdex );@@ -844,29 +840,29 @@ 	return 0; } -static struct device_driver asic3_device_driver = {-	.name		= "asic3",-	.bus		= &platform_bus_type,-+static struct platform_driver asic3_driver = { 	.probe		= asic3_probe, 	.remove		= asic3_remove, 	.suspend	= asic3_suspend, 	.resume		= asic3_resume, 	.shutdown	= asic3_shutdown,+	.dev		= {+		.name	= "asic3",+	}, };  static int __init  asic3_base_init (void) { 	int retval = 0;-	retval = driver_register (&asic3_device_driver);+	retval = platform_driver_register (&asic3_driver); 	return retval; }  static void __exit  asic3_base_exit (void) {-	driver_unregister (&asic3_device_driver);+	platform_driver_unregister (&asic3_driver); }  #ifdef MODULE