mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	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