forked from mirrors/linux
		
	rtc: max77686: convert to devm_i2c_new_dummy_device()
I was about to simplify the call to i2c_unregister_device() when I realized that converting to devm_i2c_new_dummy_device() will simplify the driver a lot. So I took this approach. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Link: https://lore.kernel.org/r/20190830133124.21633-2-wsa+renesas@sang-engineering.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
This commit is contained in:
		
							parent
							
								
									7ef66122bd
								
							
						
					
					
						commit
						59a7f24fce
					
				
					 1 changed files with 4 additions and 13 deletions
				
			
		|  | @ -690,8 +690,8 @@ static int max77686_init_rtc_regmap(struct max77686_rtc_info *info) | ||||||
| 		goto add_rtc_irq; | 		goto add_rtc_irq; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	info->rtc = i2c_new_dummy_device(parent_i2c->adapter, | 	info->rtc = devm_i2c_new_dummy_device(info->dev, parent_i2c->adapter, | ||||||
| 					 info->drv_data->rtc_i2c_addr); | 					      info->drv_data->rtc_i2c_addr); | ||||||
| 	if (IS_ERR(info->rtc)) { | 	if (IS_ERR(info->rtc)) { | ||||||
| 		dev_err(info->dev, "Failed to allocate I2C device for RTC\n"); | 		dev_err(info->dev, "Failed to allocate I2C device for RTC\n"); | ||||||
| 		return PTR_ERR(info->rtc); | 		return PTR_ERR(info->rtc); | ||||||
|  | @ -702,7 +702,7 @@ static int max77686_init_rtc_regmap(struct max77686_rtc_info *info) | ||||||
| 	if (IS_ERR(info->rtc_regmap)) { | 	if (IS_ERR(info->rtc_regmap)) { | ||||||
| 		ret = PTR_ERR(info->rtc_regmap); | 		ret = PTR_ERR(info->rtc_regmap); | ||||||
| 		dev_err(info->dev, "Failed to allocate RTC regmap: %d\n", ret); | 		dev_err(info->dev, "Failed to allocate RTC regmap: %d\n", ret); | ||||||
| 		goto err_unregister_i2c; | 		return ret; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| add_rtc_irq: | add_rtc_irq: | ||||||
|  | @ -712,15 +712,10 @@ static int max77686_init_rtc_regmap(struct max77686_rtc_info *info) | ||||||
| 				  &info->rtc_irq_data); | 				  &info->rtc_irq_data); | ||||||
| 	if (ret < 0) { | 	if (ret < 0) { | ||||||
| 		dev_err(info->dev, "Failed to add RTC irq chip: %d\n", ret); | 		dev_err(info->dev, "Failed to add RTC irq chip: %d\n", ret); | ||||||
| 		goto err_unregister_i2c; | 		return ret; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| 
 |  | ||||||
| err_unregister_i2c: |  | ||||||
| 	if (info->rtc) |  | ||||||
| 		i2c_unregister_device(info->rtc); |  | ||||||
| 	return ret; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int max77686_rtc_probe(struct platform_device *pdev) | static int max77686_rtc_probe(struct platform_device *pdev) | ||||||
|  | @ -783,8 +778,6 @@ static int max77686_rtc_probe(struct platform_device *pdev) | ||||||
| 
 | 
 | ||||||
| err_rtc: | err_rtc: | ||||||
| 	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data); | 	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data); | ||||||
| 	if (info->rtc) |  | ||||||
| 		i2c_unregister_device(info->rtc); |  | ||||||
| 
 | 
 | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
|  | @ -795,8 +788,6 @@ static int max77686_rtc_remove(struct platform_device *pdev) | ||||||
| 
 | 
 | ||||||
| 	free_irq(info->virq, info); | 	free_irq(info->virq, info); | ||||||
| 	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data); | 	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data); | ||||||
| 	if (info->rtc) |  | ||||||
| 		i2c_unregister_device(info->rtc); |  | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Wolfram Sang
						Wolfram Sang