RE: On the APIs for Enabling and Disabling Wakeup capability.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kevin,

Thanks
Partha

> -----Original Message-----
> From: Kalliguddi, Hema
> Sent: Thursday, June 24, 2010 8:25 PM
> To: Kevin Hilman; Basak, Partha
> Cc: Cousson, Benoit; paul@xxxxxxxxx; Nayak, Rajendra; linux-
> omap@xxxxxxxxxxxxxxx; Gadiyar, Anand; Kamat, Nishant
> Subject: RE: On the APIs for Enabling and Disabling Wakeup capability.
> 
> Kevin,
> Replying on top of latest chin.
> 
> Thanks,
> Hema
> 
> >-----Original Message-----
> >From: Kevin Hilman [mailto:khilman@xxxxxxxxxxxxxxxxxxx]
> >Sent: Thursday, June 24, 2010 2:01 AM
> >To: Basak, Partha
> >Cc: Kalliguddi, Hema; Cousson, Benoit; paul@xxxxxxxxx; Nayak,
> >Rajendra; linux-omap@xxxxxxxxxxxxxxx
> >Subject: Re: On the APIs for Enabling and Disabling Wakeup capability.
> >
> >"Basak, Partha" <p-basak2@xxxxxx> writes:
> >
> >> Benoit/Kevin,
> >>
> >>> -----Original Message-----
> >>> From: Kevin Hilman [mailto:khilman@xxxxxxxxxxxxxxxxxxx]
> >>> Sent: Friday, June 18, 2010 8:29 PM
> >>> To: Kalliguddi, Hema
> >>> Cc: Cousson, Benoit; Basak, Partha; paul@xxxxxxxxx; Nayak, Rajendra;
> >>> linux-omap@xxxxxxxxxxxxxxx
> >>> Subject: Re: On the APIs for Enabling and Disabling Wakeup
> >capability.
> >>>
> >>> "Kalliguddi, Hema" <hemahk@xxxxxx> writes:
> >>>
> >>> > Hi Benoit,
> >>> >
> >>> > I have 2 cases in usb for the need of separate API for
> >setting the auto
> >>> idle bit.
> >>> >
> >>> > 1. Below the link for omap3430TRM. Please refer 24.1.5.4.2 and
> >>> 24.1.5.4.3 there is note not to set smart
> >>> > idle and autoidle bit simultaneously. Suggestion is to
> >set the auto idle
> >>> 0 before setting smart idle. Then set to 1.
> >>>
> >>> Maybe this sequence should be enforced by the hwmod code itself,
> >>> rather than the knowledge living in the driver.
> >>>
> >>> However, based on the errata below, auto-idle will always be zero so
> >>> the there should be no conflict in setting smart-idle and auto-idle
> >>> simultaneously today.
> >>>
> >>> > This applicable for omap4 as well.  I don't have the
> >omap4430 pblic TRM
> >>> to share.
> >>> > http://focus.ti.com/pdfs/wtbu/SWPU223D_Final_EPDF_06_07_2010.pdf
> >>> >
> 
> [HK] The errata is applicable to OMAP3430 only.
> But this sequence applicable for omap4 as well. So for submitting the
> changes we need
> to have the HWMOD api to be changed to enaforce the Autodile set only
> after the smart idle.
> 
> >>> > 2. There is a Errata in OMAP3 errata #1.59 that If auto
> >idle is set then
> >>> the USB can't  wakeup the system by
> >>> > usb external events. The suggested workaround is to
> >disable the autoIdle
> >>> for omap3.
> >>>
> >>> This one could be handled at init time in usb-musb.c by setting
> >>> HWMOD_NO_OCP_AUTOIDLE for the hwmod with a comment summarizing this
> >>> errata.
> >>>
> >>> Note also that Errata 1.166 is another one related to MUSB auto-idle
> >>> and we have a workaround in the PM branch to ensure that MUSB
> >>> auto-idle is disabled in the idle path since it may be re-enabled
> >>> after an off-mode transition.
> >>>
> >> Few questions:
> >> 1. Are you mentioning about the following patch:
> >>
> >http://git.kernel.org/?p=linux/kernel/git/khilman/linux-omap-pm
> >.git;a=commit;h=865f0e0b1dd25899fe30eee5c8f1dba420eea177?
> >
> >No, this is a totally unrelated problem related to a specific init
> >sequene.
[Partha] Please send the commit ID
> >
> >> Though this patch allows clearing of AutoIdle bit(signified by
> >> HWMOD_INIT_NO_IDLE) while remaining in Idle state, it does not allow
> >> the reverse, i.e. setting back the AutoIdle bit, while still
> >remaining
> >> in Idle state.
> >
> >The use-case for setting the auto-idle bit while leaving the device in
> >idle have not been described.
> >
[Partha] My comment was more from a consistency of implementation standpoint. Once you clear the AutoIdle, there is no way to set it back before enabling the module. Anyhow, not clear what use-case you are trying to cater to here.

> >> 2. Changing the hwmod flags (oh->flags) is acceptable in
> >run-time. Correct?
> >
> >For errata workarounds, in device/SoC init code yes.  In drivers, no.
> >Drivers should not have any knowledge of hwmod internals.
> >
> >> 3. I believe, SysConfig settings have been a tricky area because of
> >> different h/w-errata. Instead of looking into particular errata, as
> >> and when they come in time to time and explore how to fit them in the
> >> framework, would it not be more useful to provide a more generic
> >> framework to operate on the SysConfig settings? Of course, as you
> >> suggested, the preferred approach would be to absorb the changes in
> >> the omap_device/hw-mod layer as much as possible. But unfortunately,
> >> that may not be sufficient in all situations.
> >
> >For this kind of thing, I strongly prefer to better understand the
> >specific errata that require the special settings.
> >
> >History suggests that having an API to modify sysconfig means it would
> >get used not just for errata workarounds but also because "it doesn't
> >work unless I do this."   We *really* need to better understand the
> >reasons behind these special cases.
> >
> 
[Partha] Refer to the details provided by Hema for the supporting information.
> [HK] I agree that this can be handled using hw->flags for omap3.
> Can you please point me the commit for the above errata fix? I am not
> successful in getting the exact commit.
> 
> There are few observation in the USBOTG with respect to offmode and
> sysconfig settings.
> Still the investigations are in progress. Current mainline code for 3630
> have a patch for the offmode as below.
> 
> Enable the force ilde and force standby before going to offmode.
> Reset the sysconfig with smart standby and smartidle in restore path.
> With the current API support I will not be in a position to implement the
> this workaround.
> 
> I think there are some more errata which needs the dynamic configuration
> of the sysconfig register like
> Set the force idle when data transfer is complete and set back to smart
> idle/smart standby during data transfer.
> I see the errata already in UART #2.15.
> 
> Can you please let me know how do we meet such requirement using the
> existing APIs?
> 
[Partha] The issue is not about providing control to configure AutoIdle alone. It is about exposing a wider control of SysConfig to the driver so that errata can be taken care of.

Also, I assume, as per your earlier suggestion, you would absorb setting and clearing of EnableWakeup inside hwmod_nable/idle functions. Correct?

> ~Hema
> 
> >Kevin
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux