diff options
Diffstat (limited to 'drivers/rtc/rtc-rs5c348.c')
| -rw-r--r-- | drivers/rtc/rtc-rs5c348.c | 12 | 
1 files changed, 3 insertions, 9 deletions
| diff --git a/drivers/rtc/rtc-rs5c348.c b/drivers/rtc/rtc-rs5c348.c index 72ef10be866..2c37df3586c 100644 --- a/drivers/rtc/rtc-rs5c348.c +++ b/drivers/rtc/rtc-rs5c348.c @@ -158,7 +158,8 @@ static int rs5c348_probe(struct spi_device *spi)  	struct rtc_device *rtc;  	struct rs5c348_plat_data *pdata; -	pdata = kzalloc(sizeof(struct rs5c348_plat_data), GFP_KERNEL); +	pdata = devm_kzalloc(&spi->dev, sizeof(struct rs5c348_plat_data), +				GFP_KERNEL);  	if (!pdata)  		return -ENOMEM;  	spi->dev.platform_data = pdata; @@ -202,7 +203,7 @@ static int rs5c348_probe(struct spi_device *spi)  	if (ret & RS5C348_BIT_24H)  		pdata->rtc_24h = 1; -	rtc = rtc_device_register(rs5c348_driver.driver.name, &spi->dev, +	rtc = devm_rtc_device_register(&spi->dev, rs5c348_driver.driver.name,  				  &rs5c348_rtc_ops, THIS_MODULE);  	if (IS_ERR(rtc)) { @@ -214,18 +215,11 @@ static int rs5c348_probe(struct spi_device *spi)  	return 0;   kfree_exit: -	kfree(pdata);  	return ret;  }  static int rs5c348_remove(struct spi_device *spi)  { -	struct rs5c348_plat_data *pdata = spi->dev.platform_data; -	struct rtc_device *rtc = pdata->rtc; - -	if (rtc) -		rtc_device_unregister(rtc); -	kfree(pdata);  	return 0;  } | 
