diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/rtc | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/rtc')
51 files changed, 108 insertions, 259 deletions
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 5a71579af0a1..753872408615 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig @@ -1970,7 +1970,7 @@ config RTC_DRV_MSC313  config RTC_DRV_POLARFIRE_SOC  	tristate "Microchip PolarFire SoC built-in RTC" -	depends on SOC_MICROCHIP_POLARFIRE +	depends on ARCH_MICROCHIP_POLARFIRE  	help  	  If you say yes here you will get support for the  	  built-in RTC on Polarfire SoC. diff --git a/drivers/rtc/class.c b/drivers/rtc/class.c index e5b7b48cffac..edfd942f8c54 100644 --- a/drivers/rtc/class.c +++ b/drivers/rtc/class.c @@ -475,7 +475,7 @@ EXPORT_SYMBOL_GPL(devm_rtc_device_register);  static int __init rtc_init(void)  { -	rtc_class = class_create(THIS_MODULE, "rtc"); +	rtc_class = class_create("rtc");  	if (IS_ERR(rtc_class)) {  		pr_err("couldn't create class\n");  		return PTR_ERR(rtc_class); diff --git a/drivers/rtc/rtc-88pm80x.c b/drivers/rtc/rtc-88pm80x.c index 6a3f44cf6ebe..f40cc06b0979 100644 --- a/drivers/rtc/rtc-88pm80x.c +++ b/drivers/rtc/rtc-88pm80x.c @@ -317,11 +317,10 @@ out:  	return ret;  } -static int pm80x_rtc_remove(struct platform_device *pdev) +static void pm80x_rtc_remove(struct platform_device *pdev)  {  	struct pm80x_rtc_info *info = platform_get_drvdata(pdev);  	pm80x_free_irq(info->chip, info->irq, info); -	return 0;  }  static struct platform_driver pm80x_rtc_driver = { @@ -330,7 +329,7 @@ static struct platform_driver pm80x_rtc_driver = {  		   .pm = &pm80x_rtc_pm_ops,  		   },  	.probe = pm80x_rtc_probe, -	.remove = pm80x_rtc_remove, +	.remove_new = pm80x_rtc_remove,  };  module_platform_driver(pm80x_rtc_driver); diff --git a/drivers/rtc/rtc-88pm860x.c b/drivers/rtc/rtc-88pm860x.c index 2c809a1a445e..0f124ed5b3e5 100644 --- a/drivers/rtc/rtc-88pm860x.c +++ b/drivers/rtc/rtc-88pm860x.c @@ -331,7 +331,7 @@ static int pm860x_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int pm860x_rtc_remove(struct platform_device *pdev) +static void pm860x_rtc_remove(struct platform_device *pdev)  {  	struct pm860x_rtc_info *info = platform_get_drvdata(pdev); @@ -340,8 +340,6 @@ static int pm860x_rtc_remove(struct platform_device *pdev)  	/* disable measurement */  	pm860x_set_bits(info->i2c, PM8607_MEAS_EN2, MEAS2_VRTC, 0);  #endif	/* VRTC_CALIBRATION */ - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -373,7 +371,7 @@ static struct platform_driver pm860x_rtc_driver = {  		.pm	= &pm860x_rtc_pm_ops,  	},  	.probe		= pm860x_rtc_probe, -	.remove		= pm860x_rtc_remove, +	.remove_new	= pm860x_rtc_remove,  };  module_platform_driver(pm860x_rtc_driver); diff --git a/drivers/rtc/rtc-ab8500.c b/drivers/rtc/rtc-ab8500.c index ea33e149d545..75bb2ac9005c 100644 --- a/drivers/rtc/rtc-ab8500.c +++ b/drivers/rtc/rtc-ab8500.c @@ -392,12 +392,10 @@ static int ab8500_rtc_probe(struct platform_device *pdev)  	return devm_rtc_register_device(rtc);  } -static int ab8500_rtc_remove(struct platform_device *pdev) +static void ab8500_rtc_remove(struct platform_device *pdev)  {  	dev_pm_clear_wake_irq(&pdev->dev);  	device_init_wakeup(&pdev->dev, false); - -	return 0;  }  static struct platform_driver ab8500_rtc_driver = { @@ -405,7 +403,7 @@ static struct platform_driver ab8500_rtc_driver = {  		.name = "ab8500-rtc",  	},  	.probe	= ab8500_rtc_probe, -	.remove = ab8500_rtc_remove, +	.remove_new = ab8500_rtc_remove,  	.id_table = ab85xx_rtc_ids,  }; diff --git a/drivers/rtc/rtc-ac100.c b/drivers/rtc/rtc-ac100.c index 66783cb5e711..eaf2c9ab9661 100644 --- a/drivers/rtc/rtc-ac100.c +++ b/drivers/rtc/rtc-ac100.c @@ -613,13 +613,11 @@ static int ac100_rtc_probe(struct platform_device *pdev)  	return devm_rtc_register_device(chip->rtc);  } -static int ac100_rtc_remove(struct platform_device *pdev) +static void ac100_rtc_remove(struct platform_device *pdev)  {  	struct ac100_rtc_dev *chip = platform_get_drvdata(pdev);  	ac100_rtc_unregister_clks(chip); - -	return 0;  }  static const struct of_device_id ac100_rtc_match[] = { @@ -630,7 +628,7 @@ MODULE_DEVICE_TABLE(of, ac100_rtc_match);  static struct platform_driver ac100_rtc_driver = {  	.probe		= ac100_rtc_probe, -	.remove		= ac100_rtc_remove, +	.remove_new	= ac100_rtc_remove,  	.driver		= {  		.name		= "ac100-rtc",  		.of_match_table	= of_match_ptr(ac100_rtc_match), diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c index cc542e6b1d5b..b4139c200676 100644 --- a/drivers/rtc/rtc-armada38x.c +++ b/drivers/rtc/rtc-armada38x.c @@ -491,7 +491,6 @@ MODULE_DEVICE_TABLE(of, armada38x_rtc_of_match_table);  static __init int armada38x_rtc_probe(struct platform_device *pdev)  { -	struct resource *res;  	struct armada38x_rtc *rtc;  	rtc = devm_kzalloc(&pdev->dev, sizeof(struct armada38x_rtc), @@ -508,12 +507,10 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)  	spin_lock_init(&rtc->lock); -	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rtc"); -	rtc->regs = devm_ioremap_resource(&pdev->dev, res); +	rtc->regs = devm_platform_ioremap_resource_byname(pdev, "rtc");  	if (IS_ERR(rtc->regs))  		return PTR_ERR(rtc->regs); -	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rtc-soc"); -	rtc->regs_soc = devm_ioremap_resource(&pdev->dev, res); +	rtc->regs_soc = devm_platform_ioremap_resource_byname(pdev, "rtc-soc");  	if (IS_ERR(rtc->regs_soc))  		return PTR_ERR(rtc->regs_soc); diff --git a/drivers/rtc/rtc-asm9260.c b/drivers/rtc/rtc-asm9260.c index de795e489f71..a83b47e0d8f5 100644 --- a/drivers/rtc/rtc-asm9260.c +++ b/drivers/rtc/rtc-asm9260.c @@ -308,14 +308,13 @@ err_return:  	return ret;  } -static int asm9260_rtc_remove(struct platform_device *pdev) +static void asm9260_rtc_remove(struct platform_device *pdev)  {  	struct asm9260_rtc_priv *priv = platform_get_drvdata(pdev);  	/* Disable alarm matching */  	iowrite32(BM_AMR_OFF, priv->iobase + HW_AMR);  	clk_disable_unprepare(priv->clk); -	return 0;  }  static const struct of_device_id asm9260_dt_ids[] = { @@ -326,7 +325,7 @@ MODULE_DEVICE_TABLE(of, asm9260_dt_ids);  static struct platform_driver asm9260_rtc_driver = {  	.probe		= asm9260_rtc_probe, -	.remove		= asm9260_rtc_remove, +	.remove_new	= asm9260_rtc_remove,  	.driver		= {  		.name	= "asm9260-rtc",  		.of_match_table = asm9260_dt_ids, diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c index b7b5ea1a4e67..610f27dfc462 100644 --- a/drivers/rtc/rtc-at91sam9.c +++ b/drivers/rtc/rtc-at91sam9.c @@ -442,7 +442,7 @@ err_clk:  /*   * Disable and remove the RTC driver   */ -static int at91_rtc_remove(struct platform_device *pdev) +static void at91_rtc_remove(struct platform_device *pdev)  {  	struct sam9_rtc	*rtc = platform_get_drvdata(pdev);  	u32		mr = rtt_readl(rtc, MR); @@ -451,8 +451,6 @@ static int at91_rtc_remove(struct platform_device *pdev)  	rtt_writel(rtc, MR, mr & ~(AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN));  	clk_disable_unprepare(rtc->sclk); - -	return 0;  }  static void at91_rtc_shutdown(struct platform_device *pdev) @@ -531,7 +529,7 @@ MODULE_DEVICE_TABLE(of, at91_rtc_dt_ids);  static struct platform_driver at91_rtc_driver = {  	.probe		= at91_rtc_probe, -	.remove		= at91_rtc_remove, +	.remove_new	= at91_rtc_remove,  	.shutdown	= at91_rtc_shutdown,  	.driver		= {  		.name	= "rtc-at91sam9", diff --git a/drivers/rtc/rtc-brcmstb-waketimer.c b/drivers/rtc/rtc-brcmstb-waketimer.c index 1efa81cecc27..3cdc015692ca 100644 --- a/drivers/rtc/rtc-brcmstb-waketimer.c +++ b/drivers/rtc/rtc-brcmstb-waketimer.c @@ -336,14 +336,12 @@ err_clk:  	return ret;  } -static int brcmstb_waketmr_remove(struct platform_device *pdev) +static void brcmstb_waketmr_remove(struct platform_device *pdev)  {  	struct brcmstb_waketmr *timer = dev_get_drvdata(&pdev->dev);  	unregister_reboot_notifier(&timer->reboot_notifier);  	clk_disable_unprepare(timer->clk); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -382,7 +380,7 @@ static const __maybe_unused struct of_device_id brcmstb_waketmr_of_match[] = {  static struct platform_driver brcmstb_waketmr_driver = {  	.probe			= brcmstb_waketmr_probe, -	.remove			= brcmstb_waketmr_remove, +	.remove_new		= brcmstb_waketmr_remove,  	.driver = {  		.name		= "brcmstb-waketimer",  		.pm		= &brcmstb_waketmr_pm_ops, diff --git a/drivers/rtc/rtc-cadence.c b/drivers/rtc/rtc-cadence.c index 1edf7f16d73a..4ca60b519836 100644 --- a/drivers/rtc/rtc-cadence.c +++ b/drivers/rtc/rtc-cadence.c @@ -354,7 +354,7 @@ err_disable_pclk:  	return ret;  } -static int cdns_rtc_remove(struct platform_device *pdev) +static void cdns_rtc_remove(struct platform_device *pdev)  {  	struct cdns_rtc *crtc = platform_get_drvdata(pdev); @@ -363,8 +363,6 @@ static int cdns_rtc_remove(struct platform_device *pdev)  	clk_disable_unprepare(crtc->pclk);  	clk_disable_unprepare(crtc->ref_clk); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -404,7 +402,7 @@ static struct platform_driver cdns_rtc_driver = {  		.pm = &cdns_rtc_pm_ops,  	},  	.probe = cdns_rtc_probe, -	.remove = cdns_rtc_remove, +	.remove_new = cdns_rtc_remove,  };  module_platform_driver(cdns_rtc_driver); diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c index 00e2ca7374ec..c9416fe8542d 100644 --- a/drivers/rtc/rtc-cmos.c +++ b/drivers/rtc/rtc-cmos.c @@ -1489,10 +1489,9 @@ static int __init cmos_platform_probe(struct platform_device *pdev)  	return cmos_do_probe(&pdev->dev, resource, irq);  } -static int cmos_platform_remove(struct platform_device *pdev) +static void cmos_platform_remove(struct platform_device *pdev)  {  	cmos_do_remove(&pdev->dev); -	return 0;  }  static void cmos_platform_shutdown(struct platform_device *pdev) @@ -1514,7 +1513,7 @@ static void cmos_platform_shutdown(struct platform_device *pdev)  MODULE_ALIAS("platform:rtc_cmos");  static struct platform_driver cmos_platform_driver = { -	.remove		= cmos_platform_remove, +	.remove_new	= cmos_platform_remove,  	.shutdown	= cmos_platform_shutdown,  	.driver = {  		.name		= driver_name, diff --git a/drivers/rtc/rtc-cros-ec.c b/drivers/rtc/rtc-cros-ec.c index a3ec066d8066..998ab8606f0b 100644 --- a/drivers/rtc/rtc-cros-ec.c +++ b/drivers/rtc/rtc-cros-ec.c @@ -371,7 +371,7 @@ static int cros_ec_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int cros_ec_rtc_remove(struct platform_device *pdev) +static void cros_ec_rtc_remove(struct platform_device *pdev)  {  	struct cros_ec_rtc *cros_ec_rtc = platform_get_drvdata(pdev);  	struct device *dev = &pdev->dev; @@ -382,13 +382,11 @@ static int cros_ec_rtc_remove(struct platform_device *pdev)  				&cros_ec_rtc->notifier);  	if (ret)  		dev_err(dev, "failed to unregister notifier\n"); - -	return 0;  }  static struct platform_driver cros_ec_rtc_driver = {  	.probe = cros_ec_rtc_probe, -	.remove = cros_ec_rtc_remove, +	.remove_new = cros_ec_rtc_remove,  	.driver = {  		.name = DRV_NAME,  		.pm = &cros_ec_rtc_pm_ops, diff --git a/drivers/rtc/rtc-ds1390.c b/drivers/rtc/rtc-ds1390.c index 93ce72b9ae59..f46428ca77cc 100644 --- a/drivers/rtc/rtc-ds1390.c +++ b/drivers/rtc/rtc-ds1390.c @@ -213,7 +213,7 @@ static int ds1390_probe(struct spi_device *spi)  	return res;  } -static const struct of_device_id ds1390_of_match[] = { +static const struct of_device_id ds1390_of_match[] __maybe_unused = {  	{ .compatible = "dallas,ds1390" },  	{}  }; diff --git a/drivers/rtc/rtc-ds1685.c b/drivers/rtc/rtc-ds1685.c index 5db9c737c022..0f707be0eb87 100644 --- a/drivers/rtc/rtc-ds1685.c +++ b/drivers/rtc/rtc-ds1685.c @@ -1322,7 +1322,7 @@ ds1685_rtc_probe(struct platform_device *pdev)   * ds1685_rtc_remove - removes rtc driver.   * @pdev: pointer to platform_device structure.   */ -static int +static void  ds1685_rtc_remove(struct platform_device *pdev)  {  	struct ds1685_priv *rtc = platform_get_drvdata(pdev); @@ -1344,8 +1344,6 @@ ds1685_rtc_remove(struct platform_device *pdev)  	rtc->write(rtc, RTC_EXT_CTRL_4A,  		   (rtc->read(rtc, RTC_EXT_CTRL_4A) &  		    ~(RTC_CTRL_4A_RWK_MASK))); - -	return 0;  }  /* @@ -1356,7 +1354,7 @@ static struct platform_driver ds1685_rtc_driver = {  		.name	= "rtc-ds1685",  	},  	.probe		= ds1685_rtc_probe, -	.remove		= ds1685_rtc_remove, +	.remove_new	= ds1685_rtc_remove,  };  module_platform_driver(ds1685_rtc_driver);  /* ----------------------------------------------------------------------- */ diff --git a/drivers/rtc/rtc-ftrtc010.c b/drivers/rtc/rtc-ftrtc010.c index 25c6e7d9570f..8bfe7378f653 100644 --- a/drivers/rtc/rtc-ftrtc010.c +++ b/drivers/rtc/rtc-ftrtc010.c @@ -191,7 +191,7 @@ err_disable_pclk:  	return ret;  } -static int ftrtc010_rtc_remove(struct platform_device *pdev) +static void ftrtc010_rtc_remove(struct platform_device *pdev)  {  	struct ftrtc010_rtc *rtc = platform_get_drvdata(pdev); @@ -199,8 +199,6 @@ static int ftrtc010_rtc_remove(struct platform_device *pdev)  		clk_disable_unprepare(rtc->extclk);  	if (!IS_ERR(rtc->pclk))  		clk_disable_unprepare(rtc->pclk); - -	return 0;  }  static const struct of_device_id ftrtc010_rtc_dt_match[] = { @@ -216,7 +214,7 @@ static struct platform_driver ftrtc010_rtc_driver = {  		.of_match_table = ftrtc010_rtc_dt_match,  	},  	.probe		= ftrtc010_rtc_probe, -	.remove		= ftrtc010_rtc_remove, +	.remove_new	= ftrtc010_rtc_remove,  };  module_platform_driver_probe(ftrtc010_rtc_driver, ftrtc010_rtc_probe); diff --git a/drivers/rtc/rtc-hid-sensor-time.c b/drivers/rtc/rtc-hid-sensor-time.c index 16fdefafec5d..b81cea505ee9 100644 --- a/drivers/rtc/rtc-hid-sensor-time.c +++ b/drivers/rtc/rtc-hid-sensor-time.c @@ -296,14 +296,12 @@ err_open:  	return ret;  } -static int hid_time_remove(struct platform_device *pdev) +static void hid_time_remove(struct platform_device *pdev)  {  	struct hid_sensor_hub_device *hsdev = dev_get_platdata(&pdev->dev);  	sensor_hub_device_close(hsdev);  	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TIME); - -	return 0;  }  static const struct platform_device_id hid_time_ids[] = { @@ -321,7 +319,7 @@ static struct platform_driver hid_time_platform_driver = {  		.name	= KBUILD_MODNAME,  	},  	.probe		= hid_time_probe, -	.remove		= hid_time_remove, +	.remove_new	= hid_time_remove,  };  module_platform_driver(hid_time_platform_driver); diff --git a/drivers/rtc/rtc-jz4740.c b/drivers/rtc/rtc-jz4740.c index 59d279e3e6f5..36453b008139 100644 --- a/drivers/rtc/rtc-jz4740.c +++ b/drivers/rtc/rtc-jz4740.c @@ -414,7 +414,8 @@ static int jz4740_rtc_probe(struct platform_device *pdev)  			return dev_err_probe(dev, ret,  					     "Unable to register clk32k clock\n"); -		ret = of_clk_add_hw_provider(np, of_clk_hw_simple_get, &rtc->clk32k); +		ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_simple_get, +						  &rtc->clk32k);  		if (ret)  			return dev_err_probe(dev, ret,  					     "Unable to register clk32k clock provider\n"); diff --git a/drivers/rtc/rtc-lpc24xx.c b/drivers/rtc/rtc-lpc24xx.c index eec881a81067..a4612e543f35 100644 --- a/drivers/rtc/rtc-lpc24xx.c +++ b/drivers/rtc/rtc-lpc24xx.c @@ -264,7 +264,7 @@ disable_rtc_clk:  	return ret;  } -static int lpc24xx_rtc_remove(struct platform_device *pdev) +static void lpc24xx_rtc_remove(struct platform_device *pdev)  {  	struct lpc24xx_rtc *rtc = platform_get_drvdata(pdev); @@ -276,8 +276,6 @@ static int lpc24xx_rtc_remove(struct platform_device *pdev)  	clk_disable_unprepare(rtc->clk_rtc);  	clk_disable_unprepare(rtc->clk_reg); - -	return 0;  }  static const struct of_device_id lpc24xx_rtc_match[] = { @@ -288,7 +286,7 @@ MODULE_DEVICE_TABLE(of, lpc24xx_rtc_match);  static struct platform_driver lpc24xx_rtc_driver = {  	.probe	= lpc24xx_rtc_probe, -	.remove	= lpc24xx_rtc_remove, +	.remove_new = lpc24xx_rtc_remove,  	.driver	= {  		.name = "lpc24xx-rtc",  		.of_match_table	= lpc24xx_rtc_match, diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c index b0250d91fb00..35a6021d9ba4 100644 --- a/drivers/rtc/rtc-max77686.c +++ b/drivers/rtc/rtc-max77686.c @@ -806,14 +806,12 @@ err_rtc:  	return ret;  } -static int max77686_rtc_remove(struct platform_device *pdev) +static void max77686_rtc_remove(struct platform_device *pdev)  {  	struct max77686_rtc_info *info = platform_get_drvdata(pdev);  	free_irq(info->virq, info);  	regmap_del_irq_chip(info->rtc_irq, info->rtc_irq_data); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -877,7 +875,7 @@ static struct platform_driver max77686_rtc_driver = {  		.pm	= &max77686_rtc_pm_ops,  	},  	.probe		= max77686_rtc_probe, -	.remove		= max77686_rtc_remove, +	.remove_new	= max77686_rtc_remove,  	.id_table	= rtc_id,  }; diff --git a/drivers/rtc/rtc-mc13xxx.c b/drivers/rtc/rtc-mc13xxx.c index d4234e78497e..763a42f422eb 100644 --- a/drivers/rtc/rtc-mc13xxx.c +++ b/drivers/rtc/rtc-mc13xxx.c @@ -324,7 +324,7 @@ err_irq_request:  	return ret;  } -static int mc13xxx_rtc_remove(struct platform_device *pdev) +static void mc13xxx_rtc_remove(struct platform_device *pdev)  {  	struct mc13xxx_rtc *priv = platform_get_drvdata(pdev); @@ -334,8 +334,6 @@ static int mc13xxx_rtc_remove(struct platform_device *pdev)  	mc13xxx_irq_free(priv->mc13xxx, MC13XXX_IRQ_RTCRST, priv);  	mc13xxx_unlock(priv->mc13xxx); - -	return 0;  }  static const struct platform_device_id mc13xxx_rtc_idtable[] = { @@ -352,7 +350,7 @@ MODULE_DEVICE_TABLE(platform, mc13xxx_rtc_idtable);  static struct platform_driver mc13xxx_rtc_driver = {  	.id_table = mc13xxx_rtc_idtable, -	.remove = mc13xxx_rtc_remove, +	.remove_new = mc13xxx_rtc_remove,  	.driver = {  		.name = DRIVER_NAME,  	}, diff --git a/drivers/rtc/rtc-meson-vrtc.c b/drivers/rtc/rtc-meson-vrtc.c index 1463c8621561..648fa362ec44 100644 --- a/drivers/rtc/rtc-meson-vrtc.c +++ b/drivers/rtc/rtc-meson-vrtc.c @@ -23,7 +23,7 @@ static int meson_vrtc_read_time(struct device *dev, struct rtc_time *tm)  	struct timespec64 time;  	dev_dbg(dev, "%s\n", __func__); -	ktime_get_raw_ts64(&time); +	ktime_get_real_ts64(&time);  	rtc_time64_to_tm(time.tv_sec, tm);  	return 0; @@ -96,7 +96,7 @@ static int __maybe_unused meson_vrtc_suspend(struct device *dev)  		long alarm_secs;  		struct timespec64 time; -		ktime_get_raw_ts64(&time); +		ktime_get_real_ts64(&time);  		local_time = time.tv_sec;  		dev_dbg(dev, "alarm_time = %lus, local_time=%lus\n", diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c index 6d7656a75cae..07df43e4c4d0 100644 --- a/drivers/rtc/rtc-mpc5121.c +++ b/drivers/rtc/rtc-mpc5121.c @@ -372,7 +372,7 @@ out_dispose:  	return err;  } -static int mpc5121_rtc_remove(struct platform_device *op) +static void mpc5121_rtc_remove(struct platform_device *op)  {  	struct mpc5121_rtc_data *rtc = platform_get_drvdata(op);  	struct mpc5121_rtc_regs __iomem *regs = rtc->regs; @@ -383,8 +383,6 @@ static int mpc5121_rtc_remove(struct platform_device *op)  	irq_dispose_mapping(rtc->irq);  	irq_dispose_mapping(rtc->irq_periodic); - -	return 0;  }  #ifdef CONFIG_OF @@ -402,7 +400,7 @@ static struct platform_driver mpc5121_rtc_driver = {  		.of_match_table = of_match_ptr(mpc5121_rtc_match),  	},  	.probe = mpc5121_rtc_probe, -	.remove = mpc5121_rtc_remove, +	.remove_new = mpc5121_rtc_remove,  };  module_platform_driver(mpc5121_rtc_driver); diff --git a/drivers/rtc/rtc-mpfs.c b/drivers/rtc/rtc-mpfs.c index 2a479d44f198..5b96a6d39210 100644 --- a/drivers/rtc/rtc-mpfs.c +++ b/drivers/rtc/rtc-mpfs.c @@ -274,11 +274,9 @@ static int mpfs_rtc_probe(struct platform_device *pdev)  	return devm_rtc_register_device(rtcdev->rtc);  } -static int mpfs_rtc_remove(struct platform_device *pdev) +static void mpfs_rtc_remove(struct platform_device *pdev)  {  	dev_pm_clear_wake_irq(&pdev->dev); - -	return 0;  }  static const struct of_device_id mpfs_rtc_of_match[] = { @@ -290,7 +288,7 @@ MODULE_DEVICE_TABLE(of, mpfs_rtc_of_match);  static struct platform_driver mpfs_rtc_driver = {  	.probe = mpfs_rtc_probe, -	.remove = mpfs_rtc_remove, +	.remove_new = mpfs_rtc_remove,  	.driver	= {  		.name = "mpfs_rtc",  		.of_match_table = mpfs_rtc_of_match, diff --git a/drivers/rtc/rtc-mt7622.c b/drivers/rtc/rtc-mt7622.c index f1e356394814..81857a457c32 100644 --- a/drivers/rtc/rtc-mt7622.c +++ b/drivers/rtc/rtc-mt7622.c @@ -357,13 +357,11 @@ err:  	return ret;  } -static int mtk_rtc_remove(struct platform_device *pdev) +static void mtk_rtc_remove(struct platform_device *pdev)  {  	struct mtk_rtc *hw = platform_get_drvdata(pdev);  	clk_disable_unprepare(hw->clk); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -396,7 +394,7 @@ static SIMPLE_DEV_PM_OPS(mtk_rtc_pm_ops, mtk_rtc_suspend, mtk_rtc_resume);  static struct platform_driver mtk_rtc_driver = {  	.probe	= mtk_rtc_probe, -	.remove	= mtk_rtc_remove, +	.remove_new = mtk_rtc_remove,  	.driver = {  		.name = MTK_RTC_DEV,  		.of_match_table = mtk_rtc_match, diff --git a/drivers/rtc/rtc-mxc_v2.c b/drivers/rtc/rtc-mxc_v2.c index f6d2ad91ff7a..6934bce4b29f 100644 --- a/drivers/rtc/rtc-mxc_v2.c +++ b/drivers/rtc/rtc-mxc_v2.c @@ -362,12 +362,11 @@ static int mxc_rtc_probe(struct platform_device *pdev)  	return ret;  } -static int mxc_rtc_remove(struct platform_device *pdev) +static void mxc_rtc_remove(struct platform_device *pdev)  {  	struct mxc_rtc_data *pdata = platform_get_drvdata(pdev);  	clk_disable_unprepare(pdata->clk); -	return 0;  }  static const struct of_device_id mxc_ids[] = { @@ -382,7 +381,7 @@ static struct platform_driver mxc_rtc_driver = {  		.of_match_table = mxc_ids,  	},  	.probe = mxc_rtc_probe, -	.remove = mxc_rtc_remove, +	.remove_new = mxc_rtc_remove,  };  module_platform_driver(mxc_rtc_driver); diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c index 4d4f3b1a7309..8ae4d7824ec9 100644 --- a/drivers/rtc/rtc-omap.c +++ b/drivers/rtc/rtc-omap.c @@ -25,6 +25,7 @@  #include <linux/platform_device.h>  #include <linux/pm_runtime.h>  #include <linux/rtc.h> +#include <linux/rtc/rtc-omap.h>  /*   * The OMAP RTC is a year/month/day/hours/minutes/seconds BCD clock @@ -910,7 +911,7 @@ err:  	return ret;  } -static int omap_rtc_remove(struct platform_device *pdev) +static void omap_rtc_remove(struct platform_device *pdev)  {  	struct omap_rtc *rtc = platform_get_drvdata(pdev);  	u8 reg; @@ -941,8 +942,6 @@ static int omap_rtc_remove(struct platform_device *pdev)  	/* Disable the clock/module */  	pm_runtime_put_sync(&pdev->dev);  	pm_runtime_disable(&pdev->dev); - -	return 0;  }  static int __maybe_unused omap_rtc_suspend(struct device *dev) @@ -1017,7 +1016,7 @@ static void omap_rtc_shutdown(struct platform_device *pdev)  static struct platform_driver omap_rtc_driver = {  	.probe		= omap_rtc_probe, -	.remove		= omap_rtc_remove, +	.remove_new	= omap_rtc_remove,  	.shutdown	= omap_rtc_shutdown,  	.driver		= {  		.name	= "omap_rtc", diff --git a/drivers/rtc/rtc-palmas.c b/drivers/rtc/rtc-palmas.c index 67571f7f0bbc..6971e47c6021 100644 --- a/drivers/rtc/rtc-palmas.c +++ b/drivers/rtc/rtc-palmas.c @@ -308,10 +308,9 @@ static int palmas_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int palmas_rtc_remove(struct platform_device *pdev) +static void palmas_rtc_remove(struct platform_device *pdev)  {  	palmas_rtc_alarm_irq_enable(&pdev->dev, 0); -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -347,7 +346,7 @@ MODULE_DEVICE_TABLE(of, of_palmas_rtc_match);  static struct platform_driver palmas_rtc_driver = {  	.probe		= palmas_rtc_probe, -	.remove		= palmas_rtc_remove, +	.remove_new	= palmas_rtc_remove,  	.driver		= {  		.name	= "palmas-rtc",  		.pm	= &palmas_rtc_pm_ops, diff --git a/drivers/rtc/rtc-pcf50633.c b/drivers/rtc/rtc-pcf50633.c index 48951a16d65d..23edd11aa40c 100644 --- a/drivers/rtc/rtc-pcf50633.c +++ b/drivers/rtc/rtc-pcf50633.c @@ -260,14 +260,12 @@ static int pcf50633_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int pcf50633_rtc_remove(struct platform_device *pdev) +static void pcf50633_rtc_remove(struct platform_device *pdev)  {  	struct pcf50633_rtc *rtc;  	rtc = platform_get_drvdata(pdev);  	pcf50633_free_irq(rtc->pcf, PCF50633_IRQ_ALARM); - -	return 0;  }  static struct platform_driver pcf50633_rtc_driver = { @@ -275,7 +273,7 @@ static struct platform_driver pcf50633_rtc_driver = {  		.name = "pcf50633-rtc",  	},  	.probe = pcf50633_rtc_probe, -	.remove = pcf50633_rtc_remove, +	.remove_new = pcf50633_rtc_remove,  };  module_platform_driver(pcf50633_rtc_driver); diff --git a/drivers/rtc/rtc-pcf8523.c b/drivers/rtc/rtc-pcf8523.c index 2e111cdb94f7..e7115ebef707 100644 --- a/drivers/rtc/rtc-pcf8523.c +++ b/drivers/rtc/rtc-pcf8523.c @@ -21,7 +21,7 @@  #define PCF8523_CONTROL2_AF BIT(3)  #define PCF8523_REG_CONTROL3 0x02 -#define PCF8523_CONTROL3_PM  GENMASK(7,5) +#define PCF8523_CONTROL3_PM  GENMASK(7, 5)  #define PCF8523_PM_STANDBY   0x7  #define PCF8523_CONTROL3_BLF BIT(2) /* battery low bit, read-only */  #define PCF8523_CONTROL3_BSF BIT(3) @@ -65,7 +65,7 @@ static int pcf8523_load_capacitance(struct pcf8523 *pcf8523, struct device_node  			 load);  		fallthrough;  	case 12500: -		value |= PCF8523_CONTROL1_CAP_SEL; +		value = PCF8523_CONTROL1_CAP_SEL;  		break;  	case 7000:  		break; @@ -234,8 +234,7 @@ static int pcf8523_param_get(struct device *dev, struct rtc_param *param)  	int ret;  	u32 value; -	switch(param->param) { - +	switch (param->param) {  	case RTC_PARAM_BACKUP_SWITCH_MODE:  		ret = regmap_read(pcf8523->regmap, PCF8523_REG_CONTROL3, &value);  		if (ret < 0) @@ -243,7 +242,7 @@ static int pcf8523_param_get(struct device *dev, struct rtc_param *param)  		value = FIELD_GET(PCF8523_CONTROL3_PM, value); -		switch(value) { +		switch (value) {  		case 0x0:  		case 0x4:  			param->uvalue = RTC_BSM_LEVEL; @@ -273,7 +272,7 @@ static int pcf8523_param_set(struct device *dev, struct rtc_param *param)  	struct pcf8523 *pcf8523 = dev_get_drvdata(dev);  	u8 mode; -	switch(param->param) { +	switch (param->param) {  	case RTC_PARAM_BACKUP_SWITCH_MODE:  		switch (param->uvalue) {  		case RTC_BSM_DISABLED: @@ -385,9 +384,9 @@ static const struct rtc_class_ops pcf8523_rtc_ops = {  };  static const struct regmap_config regmap_config = { -        .reg_bits = 8, -        .val_bits = 8, -        .max_register = 0x13, +	.reg_bits = 8, +	.val_bits = 8, +	.max_register = 0x13,  };  static int pcf8523_probe(struct i2c_client *client) diff --git a/drivers/rtc/rtc-pic32.c b/drivers/rtc/rtc-pic32.c index fa351ac20158..4f85e0c3d757 100644 --- a/drivers/rtc/rtc-pic32.c +++ b/drivers/rtc/rtc-pic32.c @@ -284,15 +284,13 @@ static void pic32_rtc_enable(struct pic32_rtc_dev *pdata, int en)  	clk_disable(pdata->clk);  } -static int pic32_rtc_remove(struct platform_device *pdev) +static void pic32_rtc_remove(struct platform_device *pdev)  {  	struct pic32_rtc_dev *pdata = platform_get_drvdata(pdev);  	pic32_rtc_setaie(&pdev->dev, 0);  	clk_unprepare(pdata->clk);  	pdata->clk = NULL; - -	return 0;  }  static int pic32_rtc_probe(struct platform_device *pdev) @@ -373,7 +371,7 @@ MODULE_DEVICE_TABLE(of, pic32_rtc_dt_ids);  static struct platform_driver pic32_rtc_driver = {  	.probe		= pic32_rtc_probe, -	.remove		= pic32_rtc_remove, +	.remove_new	= pic32_rtc_remove,  	.driver		= {  		.name	= "pic32-rtc",  		.of_match_table	= of_match_ptr(pic32_rtc_dt_ids), diff --git a/drivers/rtc/rtc-pm8xxx.c b/drivers/rtc/rtc-pm8xxx.c index 372494e82f40..f6b779c12ca7 100644 --- a/drivers/rtc/rtc-pm8xxx.c +++ b/drivers/rtc/rtc-pm8xxx.c @@ -530,15 +530,14 @@ static int pm8xxx_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int pm8xxx_remove(struct platform_device *pdev) +static void pm8xxx_remove(struct platform_device *pdev)  {  	dev_pm_clear_wake_irq(&pdev->dev); -	return 0;  }  static struct platform_driver pm8xxx_rtc_driver = {  	.probe		= pm8xxx_rtc_probe, -	.remove		= pm8xxx_remove, +	.remove_new	= pm8xxx_remove,  	.driver	= {  		.name		= "rtc-pm8xxx",  		.of_match_table	= pm8xxx_id_table, diff --git a/drivers/rtc/rtc-rc5t583.c b/drivers/rtc/rtc-rc5t583.c index 18684a7026c4..6f4bf919827a 100644 --- a/drivers/rtc/rtc-rc5t583.c +++ b/drivers/rtc/rtc-rc5t583.c @@ -262,12 +262,11 @@ static int rc5t583_rtc_probe(struct platform_device *pdev)   * Disable rc5t583 RTC interrupts.   * Sets status flag to free.   */ -static int rc5t583_rtc_remove(struct platform_device *pdev) +static void rc5t583_rtc_remove(struct platform_device *pdev)  {  	struct rc5t583_rtc *rc5t583_rtc = platform_get_drvdata(pdev);  	rc5t583_rtc_alarm_irq_enable(&rc5t583_rtc->rtc->dev, 0); -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -299,7 +298,7 @@ static SIMPLE_DEV_PM_OPS(rc5t583_rtc_pm_ops, rc5t583_rtc_suspend,  static struct platform_driver rc5t583_rtc_driver = {  	.probe		= rc5t583_rtc_probe, -	.remove		= rc5t583_rtc_remove, +	.remove_new	= rc5t583_rtc_remove,  	.driver		= {  		.name	= "rtc-rc5t583",  		.pm	= &rc5t583_rtc_pm_ops, diff --git a/drivers/rtc/rtc-rtd119x.c b/drivers/rtc/rtc-rtd119x.c index 8f9abd65846c..29662dfd56fe 100644 --- a/drivers/rtc/rtc-rtd119x.c +++ b/drivers/rtc/rtc-rtd119x.c @@ -216,7 +216,7 @@ static int rtd119x_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int rtd119x_rtc_remove(struct platform_device *pdev) +static void rtd119x_rtc_remove(struct platform_device *pdev)  {  	struct rtd119x_rtc *data = platform_get_drvdata(pdev); @@ -224,13 +224,11 @@ static int rtd119x_rtc_remove(struct platform_device *pdev)  	clk_disable_unprepare(data->clk);  	clk_put(data->clk); - -	return 0;  }  static struct platform_driver rtd119x_rtc_driver = {  	.probe = rtd119x_rtc_probe, -	.remove = rtd119x_rtc_remove, +	.remove_new = rtd119x_rtc_remove,  	.driver = {  		.name = "rtd1295-rtc",  		.of_match_table	= rtd119x_rtc_dt_ids, diff --git a/drivers/rtc/rtc-rzn1.c b/drivers/rtc/rtc-rzn1.c index 0d36bc50197c..dca736caba85 100644 --- a/drivers/rtc/rtc-rzn1.c +++ b/drivers/rtc/rtc-rzn1.c @@ -391,11 +391,9 @@ dis_runtime_pm:  	return ret;  } -static int rzn1_rtc_remove(struct platform_device *pdev) +static void rzn1_rtc_remove(struct platform_device *pdev)  {  	pm_runtime_put(&pdev->dev); - -	return 0;  }  static const struct of_device_id rzn1_rtc_of_match[] = { @@ -406,7 +404,7 @@ MODULE_DEVICE_TABLE(of, rzn1_rtc_of_match);  static struct platform_driver rzn1_rtc_driver = {  	.probe = rzn1_rtc_probe, -	.remove = rzn1_rtc_remove, +	.remove_new = rzn1_rtc_remove,  	.driver = {  		.name	= "rzn1-rtc",  		.of_match_table = rzn1_rtc_of_match, diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c index 8fc5efde3e0b..70e1a18e5efd 100644 --- a/drivers/rtc/rtc-s3c.c +++ b/drivers/rtc/rtc-s3c.c @@ -385,7 +385,7 @@ static void s3c6410_rtc_disable(struct s3c_rtc *info)  	writew(con, info->base + S3C2410_RTCCON);  } -static int s3c_rtc_remove(struct platform_device *pdev) +static void s3c_rtc_remove(struct platform_device *pdev)  {  	struct s3c_rtc *info = platform_get_drvdata(pdev); @@ -394,8 +394,6 @@ static int s3c_rtc_remove(struct platform_device *pdev)  	if (info->data->needs_src_clk)  		clk_unprepare(info->rtc_src_clk);  	clk_unprepare(info->rtc_clk); - -	return 0;  }  static int s3c_rtc_probe(struct platform_device *pdev) @@ -600,7 +598,7 @@ MODULE_DEVICE_TABLE(of, s3c_rtc_dt_match);  static struct platform_driver s3c_rtc_driver = {  	.probe		= s3c_rtc_probe, -	.remove		= s3c_rtc_remove, +	.remove_new	= s3c_rtc_remove,  	.driver		= {  		.name	= "s3c-rtc",  		.pm	= &s3c_rtc_pm_ops, diff --git a/drivers/rtc/rtc-s5m.c b/drivers/rtc/rtc-s5m.c index 4243fe6d3842..dad294a0ce2a 100644 --- a/drivers/rtc/rtc-s5m.c +++ b/drivers/rtc/rtc-s5m.c @@ -85,7 +85,7 @@ struct s5m_rtc_reg_config {  	unsigned int write_alarm_udr_mask;  }; -/* Register map for S5M8763 and S5M8767 */ +/* Register map for S5M8767 */  static const struct s5m_rtc_reg_config s5m_rtc_regs = {  	.regs_count		= 8,  	.time			= S5M_RTC_SEC, @@ -236,7 +236,6 @@ static int s5m_check_peding_alarm_interrupt(struct s5m_rtc_info *info,  	switch (info->device_type) {  	case S5M8767X: -	case S5M8763X:  		ret = regmap_read(info->regmap, S5M_RTC_STATUS, &val);  		val &= S5M_ALARM0_STATUS;  		break; @@ -299,7 +298,6 @@ static int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)  	data |= info->regs->write_alarm_udr_mask;  	switch (info->device_type) { -	case S5M8763X:  	case S5M8767X:  		data &= ~S5M_RTC_TIME_EN_MASK;  		break; @@ -329,38 +327,6 @@ static int s5m8767_rtc_set_alarm_reg(struct s5m_rtc_info *info)  	return ret;  } -static void s5m8763_data_to_tm(u8 *data, struct rtc_time *tm) -{ -	tm->tm_sec = bcd2bin(data[RTC_SEC]); -	tm->tm_min = bcd2bin(data[RTC_MIN]); - -	if (data[RTC_HOUR] & HOUR_12) { -		tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x1f); -		if (data[RTC_HOUR] & HOUR_PM) -			tm->tm_hour += 12; -	} else { -		tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x3f); -	} - -	tm->tm_wday = data[RTC_WEEKDAY] & 0x07; -	tm->tm_mday = bcd2bin(data[RTC_DATE]); -	tm->tm_mon = bcd2bin(data[RTC_MONTH]); -	tm->tm_year = bcd2bin(data[RTC_YEAR1]) + bcd2bin(data[RTC_YEAR2]) * 100; -	tm->tm_year -= 1900; -} - -static void s5m8763_tm_to_data(struct rtc_time *tm, u8 *data) -{ -	data[RTC_SEC] = bin2bcd(tm->tm_sec); -	data[RTC_MIN] = bin2bcd(tm->tm_min); -	data[RTC_HOUR] = bin2bcd(tm->tm_hour); -	data[RTC_WEEKDAY] = tm->tm_wday; -	data[RTC_DATE] = bin2bcd(tm->tm_mday); -	data[RTC_MONTH] = bin2bcd(tm->tm_mon); -	data[RTC_YEAR1] = bin2bcd(tm->tm_year % 100); -	data[RTC_YEAR2] = bin2bcd((tm->tm_year + 1900) / 100); -} -  static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)  {  	struct s5m_rtc_info *info = dev_get_drvdata(dev); @@ -385,10 +351,6 @@ static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm)  		return ret;  	switch (info->device_type) { -	case S5M8763X: -		s5m8763_data_to_tm(data, tm); -		break; -  	case S5M8767X:  	case S2MPS15X:  	case S2MPS14X: @@ -412,9 +374,6 @@ static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm)  	int ret = 0;  	switch (info->device_type) { -	case S5M8763X: -		s5m8763_tm_to_data(tm, data); -		break;  	case S5M8767X:  	case S2MPS15X:  	case S2MPS14X: @@ -444,7 +403,6 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)  {  	struct s5m_rtc_info *info = dev_get_drvdata(dev);  	u8 data[RTC_MAX_NUM_TIME_REGS]; -	unsigned int val;  	int ret, i;  	ret = regmap_bulk_read(info->regmap, info->regs->alarm0, data, @@ -453,15 +411,6 @@ static int s5m_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alrm)  		return ret;  	switch (info->device_type) { -	case S5M8763X: -		s5m8763_data_to_tm(data, &alrm->time); -		ret = regmap_read(info->regmap, S5M_ALARM0_CONF, &val); -		if (ret < 0) -			return ret; - -		alrm->enabled = !!val; -		break; -  	case S5M8767X:  	case S2MPS15X:  	case S2MPS14X: @@ -500,10 +449,6 @@ static int s5m_rtc_stop_alarm(struct s5m_rtc_info *info)  	dev_dbg(info->dev, "%s: %ptR(%d)\n", __func__, &tm, tm.tm_wday);  	switch (info->device_type) { -	case S5M8763X: -		ret = regmap_write(info->regmap, S5M_ALARM0_CONF, 0); -		break; -  	case S5M8767X:  	case S2MPS15X:  	case S2MPS14X: @@ -531,7 +476,6 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)  {  	int ret;  	u8 data[RTC_MAX_NUM_TIME_REGS]; -	u8 alarm0_conf;  	struct rtc_time tm;  	ret = regmap_bulk_read(info->regmap, info->regs->alarm0, data, @@ -543,11 +487,6 @@ static int s5m_rtc_start_alarm(struct s5m_rtc_info *info)  	dev_dbg(info->dev, "%s: %ptR(%d)\n", __func__, &tm, tm.tm_wday);  	switch (info->device_type) { -	case S5M8763X: -		alarm0_conf = 0x77; -		ret = regmap_write(info->regmap, S5M_ALARM0_CONF, alarm0_conf); -		break; -  	case S5M8767X:  	case S2MPS15X:  	case S2MPS14X: @@ -585,10 +524,6 @@ static int s5m_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alrm)  	int ret;  	switch (info->device_type) { -	case S5M8763X: -		s5m8763_tm_to_data(&alrm->time, data); -		break; -  	case S5M8767X:  	case S2MPS15X:  	case S2MPS14X: @@ -655,7 +590,6 @@ static int s5m8767_rtc_init_reg(struct s5m_rtc_info *info)  	int ret;  	switch (info->device_type) { -	case S5M8763X:  	case S5M8767X:  		/* UDR update time. Default of 7.32 ms is too long. */  		ret = regmap_update_bits(info->regmap, S5M_RTC_UDR_CON, @@ -729,11 +663,6 @@ static int s5m_rtc_probe(struct platform_device *pdev)  		info->regs = &s2mps13_rtc_regs;  		alarm_irq = S2MPS14_IRQ_RTCA0;  		break; -	case S5M8763X: -		regmap_cfg = &s5m_rtc_regmap_config; -		info->regs = &s5m_rtc_regs; -		alarm_irq = S5M8763_IRQ_ALARM0; -		break;  	case S5M8767X:  		regmap_cfg = &s5m_rtc_regmap_config;  		info->regs = &s5m_rtc_regs; @@ -786,13 +715,8 @@ static int s5m_rtc_probe(struct platform_device *pdev)  	info->rtc_dev->ops = &s5m_rtc_ops; -	if (info->device_type == S5M8763X) { -		info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_0000; -		info->rtc_dev->range_max = RTC_TIMESTAMP_END_9999; -	} else { -		info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000; -		info->rtc_dev->range_max = RTC_TIMESTAMP_END_2099; -	} +	info->rtc_dev->range_min = RTC_TIMESTAMP_BEGIN_2000; +	info->rtc_dev->range_max = RTC_TIMESTAMP_END_2099;  	if (!info->irq) {  		clear_bit(RTC_FEATURE_ALARM, info->rtc_dev->features); diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c index 1250887e4382..0b2cfa8ca05b 100644 --- a/drivers/rtc/rtc-sa1100.c +++ b/drivers/rtc/rtc-sa1100.c @@ -297,7 +297,7 @@ static int sa1100_rtc_probe(struct platform_device *pdev)  	return sa1100_rtc_init(pdev, info);  } -static int sa1100_rtc_remove(struct platform_device *pdev) +static void sa1100_rtc_remove(struct platform_device *pdev)  {  	struct sa1100_rtc *info = platform_get_drvdata(pdev); @@ -307,8 +307,6 @@ static int sa1100_rtc_remove(struct platform_device *pdev)  		spin_unlock_irq(&info->lock);  		clk_disable_unprepare(info->clk);  	} - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -343,7 +341,7 @@ MODULE_DEVICE_TABLE(of, sa1100_rtc_dt_ids);  static struct platform_driver sa1100_rtc_driver = {  	.probe		= sa1100_rtc_probe, -	.remove		= sa1100_rtc_remove, +	.remove_new	= sa1100_rtc_remove,  	.driver		= {  		.name	= "sa1100-rtc",  		.pm	= &sa1100_rtc_pm_ops, diff --git a/drivers/rtc/rtc-spear.c b/drivers/rtc/rtc-spear.c index 736fe535cd45..1df5c7e94198 100644 --- a/drivers/rtc/rtc-spear.c +++ b/drivers/rtc/rtc-spear.c @@ -405,15 +405,13 @@ err_disable_clock:  	return status;  } -static int spear_rtc_remove(struct platform_device *pdev) +static void spear_rtc_remove(struct platform_device *pdev)  {  	struct spear_rtc_config *config = platform_get_drvdata(pdev);  	spear_rtc_disable_interrupt(config);  	clk_disable_unprepare(config->clk);  	device_init_wakeup(&pdev->dev, 0); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -477,7 +475,7 @@ MODULE_DEVICE_TABLE(of, spear_rtc_id_table);  static struct platform_driver spear_rtc_driver = {  	.probe = spear_rtc_probe, -	.remove = spear_rtc_remove, +	.remove_new = spear_rtc_remove,  	.shutdown = spear_rtc_shutdown,  	.driver = {  		.name = "rtc-spear", diff --git a/drivers/rtc/rtc-stm32.c b/drivers/rtc/rtc-stm32.c index ac9e228b56d0..229cb2847cc4 100644 --- a/drivers/rtc/rtc-stm32.c +++ b/drivers/rtc/rtc-stm32.c @@ -846,7 +846,7 @@ err_no_rtc_ck:  	return ret;  } -static int stm32_rtc_remove(struct platform_device *pdev) +static void stm32_rtc_remove(struct platform_device *pdev)  {  	struct stm32_rtc *rtc = platform_get_drvdata(pdev);  	const struct stm32_rtc_registers *regs = &rtc->data->regs; @@ -869,8 +869,6 @@ static int stm32_rtc_remove(struct platform_device *pdev)  	dev_pm_clear_wake_irq(&pdev->dev);  	device_init_wakeup(&pdev->dev, false); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -917,7 +915,7 @@ static SIMPLE_DEV_PM_OPS(stm32_rtc_pm_ops,  static struct platform_driver stm32_rtc_driver = {  	.probe		= stm32_rtc_probe, -	.remove		= stm32_rtc_remove, +	.remove_new	= stm32_rtc_remove,  	.driver		= {  		.name	= DRIVER_NAME,  		.pm	= &stm32_rtc_pm_ops, diff --git a/drivers/rtc/rtc-stmp3xxx.c b/drivers/rtc/rtc-stmp3xxx.c index aae40d20d086..6f11b745f34d 100644 --- a/drivers/rtc/rtc-stmp3xxx.c +++ b/drivers/rtc/rtc-stmp3xxx.c @@ -232,17 +232,15 @@ static const struct rtc_class_ops stmp3xxx_rtc_ops = {  	.set_alarm	= stmp3xxx_rtc_set_alarm,  }; -static int stmp3xxx_rtc_remove(struct platform_device *pdev) +static void stmp3xxx_rtc_remove(struct platform_device *pdev)  {  	struct stmp3xxx_rtc_data *rtc_data = platform_get_drvdata(pdev);  	if (!rtc_data) -		return 0; +		return;  	writel(STMP3XXX_RTC_CTRL_ALARM_IRQ_EN,  		rtc_data->io + STMP3XXX_RTC_CTRL + STMP_OFFSET_REG_CLR); - -	return 0;  }  static int stmp3xxx_rtc_probe(struct platform_device *pdev) @@ -406,7 +404,7 @@ MODULE_DEVICE_TABLE(of, rtc_dt_ids);  static struct platform_driver stmp3xxx_rtcdrv = {  	.probe		= stmp3xxx_rtc_probe, -	.remove		= stmp3xxx_rtc_remove, +	.remove_new	= stmp3xxx_rtc_remove,  	.driver		= {  		.name	= "stmp3xxx-rtc",  		.pm	= &stmp3xxx_rtc_pm_ops, diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c index 7038f47d77ff..dc76537f1b62 100644 --- a/drivers/rtc/rtc-sun6i.c +++ b/drivers/rtc/rtc-sun6i.c @@ -260,7 +260,7 @@ static void __init sun6i_rtc_clk_init(struct device_node *node,  	}  	/* Switch to the external, more precise, oscillator, if present */ -	if (of_get_property(node, "clocks", NULL)) { +	if (of_property_present(node, "clocks")) {  		reg |= SUN6I_LOSC_CTRL_EXT_OSC;  		if (rtc->data->has_losc_en)  			reg |= SUN6I_LOSC_CTRL_EXT_LOSC_EN; diff --git a/drivers/rtc/rtc-sunplus.c b/drivers/rtc/rtc-sunplus.c index 4b578e4d44f6..f33dc301f301 100644 --- a/drivers/rtc/rtc-sunplus.c +++ b/drivers/rtc/rtc-sunplus.c @@ -235,8 +235,7 @@ static int sp_rtc_probe(struct platform_device *plat_dev)  	if (!sp_rtc)  		return -ENOMEM; -	sp_rtc->res = platform_get_resource_byname(plat_dev, IORESOURCE_MEM, RTC_REG_NAME); -	sp_rtc->reg_base = devm_ioremap_resource(&plat_dev->dev, sp_rtc->res); +	sp_rtc->reg_base = devm_platform_ioremap_resource_byname(plat_dev, RTC_REG_NAME);  	if (IS_ERR(sp_rtc->reg_base))  		return dev_err_probe(&plat_dev->dev, PTR_ERR(sp_rtc->reg_base),  					    "%s devm_ioremap_resource fail\n", RTC_REG_NAME); @@ -304,15 +303,13 @@ free_clk:  	return ret;  } -static int sp_rtc_remove(struct platform_device *plat_dev) +static void sp_rtc_remove(struct platform_device *plat_dev)  {  	struct sunplus_rtc *sp_rtc = dev_get_drvdata(&plat_dev->dev);  	device_init_wakeup(&plat_dev->dev, 0);  	reset_control_assert(sp_rtc->rstc);  	clk_disable_unprepare(sp_rtc->rtcclk); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -347,7 +344,7 @@ static SIMPLE_DEV_PM_OPS(sp_rtc_pm_ops, sp_rtc_suspend, sp_rtc_resume);  static struct platform_driver sp_rtc_driver = {  	.probe   = sp_rtc_probe, -	.remove  = sp_rtc_remove, +	.remove_new = sp_rtc_remove,  	.driver  = {  		.name	= "sp7021-rtc",  		.of_match_table = sp_rtc_of_match, diff --git a/drivers/rtc/rtc-tegra.c b/drivers/rtc/rtc-tegra.c index 85f7ad5d5390..441e0a66b215 100644 --- a/drivers/rtc/rtc-tegra.c +++ b/drivers/rtc/rtc-tegra.c @@ -342,13 +342,11 @@ disable_clk:  	return ret;  } -static int tegra_rtc_remove(struct platform_device *pdev) +static void tegra_rtc_remove(struct platform_device *pdev)  {  	struct tegra_rtc_info *info = platform_get_drvdata(pdev);  	clk_disable_unprepare(info->clk); - -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -401,7 +399,7 @@ static void tegra_rtc_shutdown(struct platform_device *pdev)  static struct platform_driver tegra_rtc_driver = {  	.probe = tegra_rtc_probe, -	.remove = tegra_rtc_remove, +	.remove_new = tegra_rtc_remove,  	.shutdown = tegra_rtc_shutdown,  	.driver = {  		.name = "tegra_rtc", diff --git a/drivers/rtc/rtc-ti-k3.c b/drivers/rtc/rtc-ti-k3.c index ba23163cc042..0d90fe923355 100644 --- a/drivers/rtc/rtc-ti-k3.c +++ b/drivers/rtc/rtc-ti-k3.c @@ -632,7 +632,8 @@ static int __maybe_unused ti_k3_rtc_suspend(struct device *dev)  	struct ti_k3_rtc *priv = dev_get_drvdata(dev);  	if (device_may_wakeup(dev)) -		enable_irq_wake(priv->irq); +		return enable_irq_wake(priv->irq); +  	return 0;  } diff --git a/drivers/rtc/rtc-tps6586x.c b/drivers/rtc/rtc-tps6586x.c index 52093e7ba22d..9f14e2475747 100644 --- a/drivers/rtc/rtc-tps6586x.c +++ b/drivers/rtc/rtc-tps6586x.c @@ -279,13 +279,12 @@ fail_rtc_register:  	return ret;  }; -static int tps6586x_rtc_remove(struct platform_device *pdev) +static void tps6586x_rtc_remove(struct platform_device *pdev)  {  	struct device *tps_dev = to_tps6586x_dev(&pdev->dev);  	tps6586x_update(tps_dev, RTC_CTRL, 0,  		RTC_ENABLE | OSC_SRC_SEL | PRE_BYPASS | CL_SEL_MASK); -	return 0;  }  #ifdef CONFIG_PM_SLEEP @@ -317,7 +316,7 @@ static struct platform_driver tps6586x_rtc_driver = {  		.pm	= &tps6586x_pm_ops,  	},  	.probe	= tps6586x_rtc_probe, -	.remove	= tps6586x_rtc_remove, +	.remove_new = tps6586x_rtc_remove,  };  module_platform_driver(tps6586x_rtc_driver); diff --git a/drivers/rtc/rtc-twl.c b/drivers/rtc/rtc-twl.c index c24d1e18f56c..81b36948c2fa 100644 --- a/drivers/rtc/rtc-twl.c +++ b/drivers/rtc/rtc-twl.c @@ -586,7 +586,7 @@ static int twl_rtc_probe(struct platform_device *pdev)   * Disable all TWL RTC module interrupts.   * Sets status flag to free.   */ -static int twl_rtc_remove(struct platform_device *pdev) +static void twl_rtc_remove(struct platform_device *pdev)  {  	struct twl_rtc *twl_rtc = platform_get_drvdata(pdev); @@ -599,8 +599,6 @@ static int twl_rtc_remove(struct platform_device *pdev)  		twl6030_interrupt_mask(TWL6030_RTC_INT_MASK,  			REG_INT_MSK_STS_A);  	} - -	return 0;  }  static void twl_rtc_shutdown(struct platform_device *pdev) @@ -642,7 +640,7 @@ MODULE_DEVICE_TABLE(of, twl_rtc_of_match);  static struct platform_driver twl4030rtc_driver = {  	.probe		= twl_rtc_probe, -	.remove		= twl_rtc_remove, +	.remove_new	= twl_rtc_remove,  	.shutdown	= twl_rtc_shutdown,  	.driver		= {  		.name		= "twl_rtc", diff --git a/drivers/rtc/rtc-vt8500.c b/drivers/rtc/rtc-vt8500.c index 197b649cd629..ccfa76513a2c 100644 --- a/drivers/rtc/rtc-vt8500.c +++ b/drivers/rtc/rtc-vt8500.c @@ -235,14 +235,12 @@ static int vt8500_rtc_probe(struct platform_device *pdev)  	return devm_rtc_register_device(vt8500_rtc->rtc);  } -static int vt8500_rtc_remove(struct platform_device *pdev) +static void vt8500_rtc_remove(struct platform_device *pdev)  {  	struct vt8500_rtc *vt8500_rtc = platform_get_drvdata(pdev);  	/* Disable alarm matching */  	writel(0, vt8500_rtc->regbase + VT8500_RTC_IS); - -	return 0;  }  static const struct of_device_id wmt_dt_ids[] = { @@ -253,7 +251,7 @@ MODULE_DEVICE_TABLE(of, wmt_dt_ids);  static struct platform_driver vt8500_rtc_driver = {  	.probe		= vt8500_rtc_probe, -	.remove		= vt8500_rtc_remove, +	.remove_new	= vt8500_rtc_remove,  	.driver		= {  		.name	= "vt8500-rtc",  		.of_match_table = wmt_dt_ids, diff --git a/drivers/rtc/rtc-wm8350.c b/drivers/rtc/rtc-wm8350.c index 6eaa9321c074..947f8071803f 100644 --- a/drivers/rtc/rtc-wm8350.c +++ b/drivers/rtc/rtc-wm8350.c @@ -451,14 +451,12 @@ static int wm8350_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int wm8350_rtc_remove(struct platform_device *pdev) +static void wm8350_rtc_remove(struct platform_device *pdev)  {  	struct wm8350 *wm8350 = platform_get_drvdata(pdev);  	wm8350_free_irq(wm8350, WM8350_IRQ_RTC_SEC, wm8350);  	wm8350_free_irq(wm8350, WM8350_IRQ_RTC_ALM, wm8350); - -	return 0;  }  static SIMPLE_DEV_PM_OPS(wm8350_rtc_pm_ops, wm8350_rtc_suspend, @@ -466,7 +464,7 @@ static SIMPLE_DEV_PM_OPS(wm8350_rtc_pm_ops, wm8350_rtc_suspend,  static struct platform_driver wm8350_rtc_driver = {  	.probe = wm8350_rtc_probe, -	.remove = wm8350_rtc_remove, +	.remove_new = wm8350_rtc_remove,  	.driver = {  		.name = "wm8350-rtc",  		.pm = &wm8350_rtc_pm_ops, diff --git a/drivers/rtc/rtc-xgene.c b/drivers/rtc/rtc-xgene.c index d3d0054e21fd..f78efc9760c0 100644 --- a/drivers/rtc/rtc-xgene.c +++ b/drivers/rtc/rtc-xgene.c @@ -192,14 +192,13 @@ static int xgene_rtc_probe(struct platform_device *pdev)  	return 0;  } -static int xgene_rtc_remove(struct platform_device *pdev) +static void xgene_rtc_remove(struct platform_device *pdev)  {  	struct xgene_rtc_dev *pdata = platform_get_drvdata(pdev);  	xgene_rtc_alarm_irq_enable(&pdev->dev, 0);  	device_init_wakeup(&pdev->dev, 0);  	clk_disable_unprepare(pdata->clk); -	return 0;  }  static int __maybe_unused xgene_rtc_suspend(struct device *dev) @@ -264,7 +263,7 @@ MODULE_DEVICE_TABLE(of, xgene_rtc_of_match);  static struct platform_driver xgene_rtc_driver = {  	.probe		= xgene_rtc_probe, -	.remove		= xgene_rtc_remove, +	.remove_new	= xgene_rtc_remove,  	.driver		= {  		.name	= "xgene-rtc",  		.pm = &xgene_rtc_pm_ops, diff --git a/drivers/rtc/rtc-zynqmp.c b/drivers/rtc/rtc-zynqmp.c index c9b85c838ebe..08ed171bdab4 100644 --- a/drivers/rtc/rtc-zynqmp.c +++ b/drivers/rtc/rtc-zynqmp.c @@ -342,12 +342,10 @@ static int xlnx_rtc_probe(struct platform_device *pdev)  	return devm_rtc_register_device(xrtcdev->rtc);  } -static int xlnx_rtc_remove(struct platform_device *pdev) +static void xlnx_rtc_remove(struct platform_device *pdev)  {  	xlnx_rtc_alarm_irq_enable(&pdev->dev, 0);  	device_init_wakeup(&pdev->dev, 0); - -	return 0;  }  static int __maybe_unused xlnx_rtc_suspend(struct device *dev) @@ -384,7 +382,7 @@ MODULE_DEVICE_TABLE(of, xlnx_rtc_of_match);  static struct platform_driver xlnx_rtc_driver = {  	.probe		= xlnx_rtc_probe, -	.remove		= xlnx_rtc_remove, +	.remove_new	= xlnx_rtc_remove,  	.driver		= {  		.name	= KBUILD_MODNAME,  		.pm	= &xlnx_rtc_pm_ops,  |