On 03/28/2014 04:31 PM, Oliver Neukum wrote:
On Fri, 2014-03-28 at 11:33 +0800, Roger wrote:
On 03/26/2014 10:36 PM, Oliver Neukum wrote:
On Tue, 2014-03-25 at 18:44 +0800, rogerable@xxxxxxxxxxx wrote:
From: Roger Tseng <rogerable@xxxxxxxxxxx>
+ if (ret)
+ goto out_init_fail;
+
+ /* initialize USB SG transfer timer */
+ init_timer(&ucr->sg_timer);
+ setup_timer(&ucr->sg_timer, rtsx_usb_sg_timed_out, (unsigned long) ucr);
+#ifdef CONFIG_PM
+ intf->needs_remote_wakeup = 1;
Why?
Our reader supports remote wake-up from card slot event(insertion,
removal). It should be enabled to let the driver be able to detect the
newly inserted card.
Interesting. This capability has been lacking for a long time.
That is cool hardware. Are you sure the upper layers implement
the event infrastructure so that devices are not polled?
Polling is still necessary because USB essentially doesn't support
interrupt.
However, if remote wake-up is not enabled or supported, the device will
have to be resumed every time when polling and then suspended right away
if there isn't a new card. This should consume more power than the
designed behavior: suspending device while card removed, taking failed
polls as no-card, and card being successfully polled after
insertion-triggered remote wake-up.
The LED is not in a permanent cut-off state after here. It is called to
guarantee the LED is off during suspend to save more power. It could be
lit up in the card host drivers(e.g. rtsx_usb_sdmmc.c) anytime whenever
necessary.
This has been asked may times. I'm considering putting some comment in
next revision.
Good idea.
Regards
Oliver
Best regards,
Roger Tseng
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel