Commit 95078069 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull RTC fixes from Alexandre Belloni:
 "Here are a few fixes for 6.2. The EFI one is the most important as it
  allows some RTCs to actually work. The other two are warnings that are
  worth fixing.

   - efi: make WAKEUP services optional

   - sunplus: fix format string warning"

* tag 'rtc-6.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
  rtc: sunplus: fix format string for printing resource
  dt-bindings: rtc: qcom-pm8xxx: allow 'wakeup-source' property
  rtc: efi: Enable SET/GET WAKEUP services as optional
parents db27c222 08279468
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ properties:
    description:
      Indicates that the setting of RTC time is allowed by the host CPU.

  wakeup-source: true

required:
  - compatible
  - reg
+27 −21
Original line number Diff line number Diff line
@@ -191,6 +191,7 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
	efi_time_t        eft, alm;
	efi_time_cap_t    cap;
	efi_bool_t        enabled, pending;
	struct rtc_device *rtc = dev_get_drvdata(dev);

	memset(&eft, 0, sizeof(eft));
	memset(&alm, 0, sizeof(alm));
@@ -213,6 +214,7 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
		/* XXX fixme: convert to string? */
		seq_printf(seq, "Timezone\t: %u\n", eft.timezone);

	if (test_bit(RTC_FEATURE_ALARM, rtc->features)) {
		seq_printf(seq,
			   "Alarm Time\t: %u:%u:%u.%09u\n"
			   "Alarm Date\t: %u-%u-%u\n"
@@ -230,6 +232,7 @@ static int efi_procfs(struct device *dev, struct seq_file *seq)
		else
			/* XXX fixme: convert to string? */
			seq_printf(seq, "Timezone\t: %u\n", alm.timezone);
	}

	/*
	 * now prints the capabilities
@@ -269,7 +272,10 @@ static int __init efi_rtc_probe(struct platform_device *dev)

	rtc->ops = &efi_rtc_ops;
	clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->features);
	if (efi_rt_services_supported(EFI_RT_SUPPORTED_WAKEUP_SERVICES))
		set_bit(RTC_FEATURE_ALARM_WAKEUP_ONLY, rtc->features);
	else
		clear_bit(RTC_FEATURE_ALARM, rtc->features);

	device_init_wakeup(&dev->dev, true);

+2 −2
Original line number Diff line number Diff line
@@ -240,8 +240,8 @@ static int sp_rtc_probe(struct platform_device *plat_dev)
	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);
	dev_dbg(&plat_dev->dev, "res = 0x%x, reg_base = 0x%lx\n",
		sp_rtc->res->start, (unsigned long)sp_rtc->reg_base);
	dev_dbg(&plat_dev->dev, "res = %pR, reg_base = %p\n",
		sp_rtc->res, sp_rtc->reg_base);

	sp_rtc->irq = platform_get_irq(plat_dev, 0);
	if (sp_rtc->irq < 0)
+2 −1
Original line number Diff line number Diff line
@@ -668,7 +668,8 @@ extern struct efi {

#define EFI_RT_SUPPORTED_ALL					0x3fff

#define EFI_RT_SUPPORTED_TIME_SERVICES				0x000f
#define EFI_RT_SUPPORTED_TIME_SERVICES				0x0003
#define EFI_RT_SUPPORTED_WAKEUP_SERVICES			0x000c
#define EFI_RT_SUPPORTED_VARIABLE_SERVICES			0x0070

extern struct mm_struct efi_mm;