linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: marek.vasut@gmail.com (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] PXA: Fix wakealarm capability for pxa-rtc
Date: Sun, 1 Aug 2010 02:53:28 +0200	[thread overview]
Message-ID: <201008010253.28319.marek.vasut@gmail.com> (raw)
In-Reply-To: <87iq3vyx7d.fsf@free.fr>

Dne Ne 1. srpna 2010 02:48:38 Robert Jarzmik napsal(a):
> Marek Vasut <marek.vasut@gmail.com> writes:
> > Dne So 31. ?ervence 2010 23:07:06 Robert Jarzmik napsal(a):
> >> Marek Vasut <marek.vasut@gmail.com> writes:
> >> > Dne So 31. ?ervence 2010 17:38:06 Robert Jarzmik napsal(a):
> >> >> Marek Vasut <marek.vasut@gmail.com> writes:
> >> >> > The wakealarm capability was incorrectly set after the RTC was
> >> >> > registered, which resulted into the sysfs node not being created.
> >> >> 
> >> >> On my platform, without this patch:
> >> >> > cat /sys/devices/platform/pxa-rtc/power/wakeup
> >> >> > enabled
> >> >> 
> >> >> The sysfs node is created. What's the issue you're having ?
> >> > 
> >> > It's not created for me without this patch (and if you read the code,
> >> > it is impossible to be created without this patch).
> 
> Are we talking about the same /sys/devices/platform/pxa-rtc/power/wakeup ?
> Aren't you looking for /sys/class/rtc/rtc0/power/wakeup ?

I'm looking for /sys/class/rtc/rtc0/wakealarm

> 
> Because the code you're showing seems to be related to the class sysfs
> entries, not the driver's unless I'm mistaken.
> 
> I'll join Alessandro to the discussion, he might have some insight for [1].
> 
> Cheers.
> 
> --
> Robert
> 
> >> I read the code, and I see:
> >> rtc_device_register()
> >> 
> >>   -> device_register()
> >>   
> >>     -> device_initialize()
> >>     
> >>       -> device_init_wakeup(dev, 0)
> >> 
> >> So with or without your patch, device_init_wakeup() is called. The
> >> difference is that with your patch, we end up with a disabled wakeup
> >> capability. I showed the code sequence, your turn to show your "if you
> >> read the code".
> > 
> > drivers/rtc/rtc-sysfs.c
> > 
> > 217 static inline int rtc_does_wakealarm(struct rtc_device *rtc)
> > 218 {
> > 219         if (!device_can_wakeup(rtc->dev.parent))
> > 220                 return 0;
> > 221         return rtc->ops->set_alarm != NULL;
> > 222 }
> > 223
> > 224
> > 225 void rtc_sysfs_add_device(struct rtc_device *rtc)
> > 226 {
> > 227         int err;
> > 228
> > 229         /* not all RTCs support both alarms and wakeup */
> > 230         if (!rtc_does_wakealarm(rtc))
> > 231                 return;
> > 232
> > 233         err = device_create_file(&rtc->dev, &dev_attr_wakealarm);
> > 234         if (err)
> > 235                 dev_err(rtc->dev.parent,
> > 236                         "failed to create alarm attribute, %d\n",
> > err); 237 }
> > 
> > For me, it leaves the function on rtc_does_wakealarm(); That's because
> > device_can_wakeup on line 219 returns 0;
> > 
> > include/linux/pm_wakeup.h
> > 45 static inline bool device_can_wakeup(struct device *dev)
> > 46 {
> > 47         return dev->power.can_wakeup;
> > 48 }
> > 
> > This dev->power.can_wakeup is set by:
> > 
> > include/linux/pm_wakeup.h
> > 35 static inline void device_init_wakeup(struct device *dev, bool val)
> > 36 {
> > 37         dev->power.can_wakeup = dev->power.should_wakeup = val;
> > 38 }
> > 
> > But, the rtc_sysfs_add_device is called by:
> > 
> > drivers/rtc/class.c
> > 114 struct rtc_device *rtc_device_register(const char *name, struct
> > device *dev, 115                                         const struct
> > rtc_class_ops *ops, 116                                         struct
> > module *owner) 117 {
> > 
> > So the dev->power.can_wakeup must be set before registering the device.
> > 
> >> Moreover, my platform without your patch prooves that the sysfs entry is
> >> created.
> > 
> > My platform (sharp akita) without this patch doesn't even show the
> > wakealarm sysfs node. So something is certainly wrong in this driver,
> > explain what it is please.
> > 
> >> So unless you prove me wrong, I will reject the patch.
> > 
> > Ok, then I'd like to see you come up with better patch that actually
> > fixes my platform.
> > 
> >> Cheers.
> > 
> > Cheers

  reply	other threads:[~2010-08-01  0:53 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-31  4:22 [PATCH] PXA: Fix wakealarm capability for pxa-rtc Marek Vasut
2010-07-31 15:38 ` Robert Jarzmik
2010-07-31 20:15   ` Marek Vasut
2010-07-31 21:07     ` Robert Jarzmik
2010-08-01  0:13       ` Marek Vasut
2010-08-01  0:48         ` Robert Jarzmik
2010-08-01  0:53           ` Marek Vasut [this message]
2010-08-01 11:15             ` Robert Jarzmik
2010-08-01 15:38               ` Marek Vasut
2010-08-01 19:32                 ` Robert Jarzmik
2010-08-03  0:03                 ` Alessandro Zummo
2010-08-03  3:10                   ` Marek Vasut
2010-08-06 19:59                     ` Alessandro Zummo
2010-08-06 21:39                       ` Marek Vasut
2010-08-07  9:43                       ` Robert Jarzmik
2010-08-18  4:08                         ` Eric Miao
2010-08-18  5:04                           ` Marek Vasut
2010-08-18  6:15                             ` Eric Miao
2010-08-01  8:42 ` Igor Grinberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201008010253.28319.marek.vasut@gmail.com \
    --to=marek.vasut@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).