@ -309,7 +309,7 @@ static int rtc_probe(struct platform_device *pdev)
int i ;
int temp ;
chip = kzalloc ( sizeof * chip , GFP_KERNEL ) ;
chip = devm_ kzalloc( & pdev - > dev , sizeof ( * chip ) , GFP_KERNEL ) ;
if ( ! chip )
return - ENOMEM ;
@ -353,8 +353,8 @@ static int rtc_probe(struct platform_device *pdev)
platform_set_drvdata ( pdev , chip ) ;
chip - > rtc = rtc_device_register ( " v3020 " ,
& pdev - > dev , & v3020_rtc_ops , THIS_MODULE ) ;
chip - > rtc = devm_ rtc_device_register( & pdev - > dev , " v3020 " ,
& v3020_rtc_ops , THIS_MODULE ) ;
if ( IS_ERR ( chip - > rtc ) ) {
retval = PTR_ERR ( chip - > rtc ) ;
goto err_io ;
@ -365,21 +365,14 @@ static int rtc_probe(struct platform_device *pdev)
err_io :
chip - > ops - > unmap_io ( chip ) ;
err_chip :
kfree ( chip ) ;
return retval ;
}
static int rtc_remove ( struct platform_device * dev )
{
struct v3020 * chip = platform_get_drvdata ( dev ) ;
struct rtc_device * rtc = chip - > rtc ;
if ( rtc )
rtc_device_unregister ( rtc ) ;
chip - > ops - > unmap_io ( chip ) ;
kfree ( chip ) ;
return 0 ;
}