Loading drivers/rtc/rtc-ds2404.c +7 −18 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ static int ds2404_gpio_map(struct ds2404 *chip, struct platform_device *pdev, return err; } static void ds2404_gpio_unmap(struct ds2404 *chip) static void ds2404_gpio_unmap(void *data) { int i; Loading Loading @@ -218,7 +218,11 @@ static int rtc_probe(struct platform_device *pdev) retval = ds2404_gpio_map(chip, pdev, pdata); if (retval) goto err_chip; return retval; retval = devm_add_action_or_reset(&pdev->dev, ds2404_gpio_unmap, chip); if (retval) return retval; dev_info(&pdev->dev, "using GPIOs RST:%d, CLK:%d, DQ:%d\n", chip->gpio[DS2404_RST].gpio, chip->gpio[DS2404_CLK].gpio, Loading @@ -231,29 +235,14 @@ static int rtc_probe(struct platform_device *pdev) retval = rtc_register_device(chip->rtc); if (retval) goto err_io; ds2404_enable_osc(&pdev->dev); return 0; err_io: ds2404_gpio_unmap(chip); err_chip: return retval; } static int rtc_remove(struct platform_device *dev) { struct ds2404 *chip = platform_get_drvdata(dev); ds2404_gpio_unmap(chip); ds2404_enable_osc(&pdev->dev); return 0; } static struct platform_driver rtc_device_driver = { .probe = rtc_probe, .remove = rtc_remove, .driver = { .name = "ds2404", }, Loading Loading
drivers/rtc/rtc-ds2404.c +7 −18 Original line number Diff line number Diff line Loading @@ -72,7 +72,7 @@ static int ds2404_gpio_map(struct ds2404 *chip, struct platform_device *pdev, return err; } static void ds2404_gpio_unmap(struct ds2404 *chip) static void ds2404_gpio_unmap(void *data) { int i; Loading Loading @@ -218,7 +218,11 @@ static int rtc_probe(struct platform_device *pdev) retval = ds2404_gpio_map(chip, pdev, pdata); if (retval) goto err_chip; return retval; retval = devm_add_action_or_reset(&pdev->dev, ds2404_gpio_unmap, chip); if (retval) return retval; dev_info(&pdev->dev, "using GPIOs RST:%d, CLK:%d, DQ:%d\n", chip->gpio[DS2404_RST].gpio, chip->gpio[DS2404_CLK].gpio, Loading @@ -231,29 +235,14 @@ static int rtc_probe(struct platform_device *pdev) retval = rtc_register_device(chip->rtc); if (retval) goto err_io; ds2404_enable_osc(&pdev->dev); return 0; err_io: ds2404_gpio_unmap(chip); err_chip: return retval; } static int rtc_remove(struct platform_device *dev) { struct ds2404 *chip = platform_get_drvdata(dev); ds2404_gpio_unmap(chip); ds2404_enable_osc(&pdev->dev); return 0; } static struct platform_driver rtc_device_driver = { .probe = rtc_probe, .remove = rtc_remove, .driver = { .name = "ds2404", }, Loading