From: "Cousson, Benoit" <b-cousson@ti.com>
To: "ABRAHAM, KISHON VIJAY" <kishon@ti.com>, Paul Walmsley <paul@pwsan.com>
Cc: Kevin Hilman <khilman@deeprootsystems.com>,
"Basak, Partha" <p-basak2@ti.com>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>,
"Kamat, Nishant" <nskamat@ti.com>,
"Varadarajan, Charulatha" <charu@ti.com>,
"Datta, Shubhrajyoti" <shubhrajyoti@ti.com>,
"ext-eero.nurkkala@nokia.com" <ext-eero.nurkkala@nokia.com>,
"eduardo.valentin@nokia.com" <eduardo.valentin@nokia.com>
Subject: Re: [PATCH 6/7] [RFC] OMAP: hwmod: SYSCONFIG register modification for MCBSP
Date: Tue, 30 Nov 2010 17:03:16 +0100 [thread overview]
Message-ID: <4CF52044.6040904@ti.com> (raw)
In-Reply-To: <AANLkTimExJBgLTfO2Q7zgohHquShvm9kP64=DLjQv21u@mail.gmail.com>
Hi Kishon,
Sorry, for the delay.
On 11/22/2010 4:59 PM, ABRAHAM, KISHON VIJAY wrote:
> Resending the mail in plain text format..
>
> On Mon, Nov 22, 2010 at 9:20 PM, ABRAHAM, KISHON VIJAY<kishon@ti.com> wrote:
>>
>> On Mon, Oct 11, 2010 at 11:48 AM, ABRAHAM, KISHON VIJAY<kishon@ti.com> wrote:
>>>
>>> On Friday 08 October 2010 01:12 PM, Cousson, Benoit wrote:
>>>> Hi Kishon,
>>>>
>>>> On 10/5/2010 6:37 PM, ABRAHAM, KISHON VIJAY wrote:
>>>>> MCBSP 2 and 3 in OMAP3 has sidetone feature which requires
>>>>> autoidle to be disabled before starting the sidetone. Also SYSCONFIG
>>>>> register has to be set with smart idle or no idle depending on the
>>>>> dma op mode (threshold or element sync). For doing these operations
>>>>> dynamically at runtime, hwmod API'S are used to modify SYSCONFIG
>>> register
>>>>> directly.
>>>>
>>>> OK, it looks like we don't have the choice... But for the
>>>> implementation, please discussed with Manju on that, He is doing the
>>>> similar thing for the smartstandby issue on SDMA.
>>>
>>> OK.
>>
>>
>> Looks like we have a problem when we write an API similar to the one written
>> by Manju (omap_hwmod_set_master_standbymode()) [1]. In the case of McBSP,
>> I have to modify omap_hwmod_set_slave_idlemode() (which is already existing),
>> to include something like
>>
>> + if (sf& SYSC_HAS_SIDLEMODE) {
>> + if (idlemode)
>> + idlemode = HWMOD_IDLEMODE_NO;
>> + else
>> + idlemode = (oh->flags& HWMOD_SWSUP_SIDLE) ?
>> + HWMOD_IDLEMODE_NO : HWMOD_IDLEMODE_SMART;
>> + }
How to you enable HWMOD_IDLEMODE_FORCE mode in that case?
>> Then an API like omap_device_require_no_idle() and omap_device_release_no_idle()
>> would be written similar to omap_device_require_no_mstandby and
>> omap_device_release_no_mstandby() (see [1]) that calls
>> omap_hwmod_set_slave_idlemode() with true/false. Passing true to
>> omap_hwmod_set_slave_idlemode() will write SIDLE bits with
>> HWMOD_IDLEMODE_NO and false to it will write
>> HWMOD_IDLEMODE_NO/HWMOD_IDLEMODE_SMART depending on
>> HWMOD_SWSUP_SIDLE to SIDLE bits.
>>
>> This works fine for McBSP since only two modes come to play here
>> (HWMOD_IDLEMODE_NO/HWMOD_IDLEMODE_SMART).
>>
>> But omap_hwmod_set_slave_idlemode() API is used by UART
>> (serial.c Please refer [2]) which writes SIDLE bits to
>> HWMOD_IDLEMODE_NO/HWMOD_IDLEMODE_SMART/ and
>> HWMOD_IDLEMODE_FORCE.
That code should not be there. It was a temporary hacks that should be
replaced eventually with a clean omap_device API like the one you are
currently implementing.
There are a bunch of direct access to omap_hwmod struct that need to be
removed as well.
>> Modifying omap_hwmod_set_slave_idlemode() will require
>> 1) serial.c to be modified to call functions like 'omap_device_require_no_idle(),
>> omap_device_release_no_idle()' and 'omap_device_require_force_idle() and
>> omap_device_release_force_idle()' instead of
>> omap_hwmod_set_slave_idlemode() which is currently present.
Yep, you're right.
>>
>> There are 2 problems associated with it
>> 1) The first problem is having a single API like omap_hwmod_set_slave_idlemode() to
>> set two different values like HWMOD_IDLEMODE_NO or
>> HWMOD_IDLEMODE_FORCE (intended to be called by omap_device_require_no_idle()
>> and omap_device_require_force_idle() respectively). According to the new design
>> omap_hwmod_set_slave_idlemode() is intended to take only true/false as
>> arguments.
>>
>> 2) The second problem is having the release API's (omap_device_release_no_idle() and
>> omap_device_release_force_idle()) to restore the SYSCONFIG to the previous state.
>> Remember, this was not problem for McBSP since only two modes were needed.
And what about 3 APIs?
omap_device_force_idle
omap_device_no_idle
omap_device_smart_idle
It is probably much more appropriate than a require / release in that case?
Regards,
Benoit
next prev parent reply other threads:[~2010-11-30 16:03 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-05 16:37 [PATCH 1/7] [RFC] OMAP: MCBSP: hwmod database for 2xxx devices Kishon Vijay Abraham I
2010-10-05 16:37 ` [PATCH 2/7] [RFC] OMAP: MCBSP: hwmod database for 3xxx devices Kishon Vijay Abraham I
2010-10-05 16:37 ` [PATCH 3/7] [RFC] OMAP: MCBSP: hwmod database for 4xxx devices Kishon Vijay Abraham I
2010-10-06 9:20 ` Cousson, Benoit
2010-10-06 9:51 ` kishon
2010-10-05 16:37 ` [PATCH 4/7] [RFC] OMAP: hwmod implementation for MCBSP Kishon Vijay Abraham I
2010-10-06 6:01 ` Peter Ujfalusi
2010-10-06 6:12 ` Varadarajan, Charulatha
2010-10-06 6:58 ` Peter Ujfalusi
2010-10-06 7:06 ` Varadarajan, Charulatha
2010-10-06 9:34 ` Cousson, Benoit
2010-10-06 10:39 ` kishon
2010-10-07 16:53 ` kishon
2010-10-05 16:37 ` [PATCH 5/7] [RFC] OMAP: hwmod: New API to modify the autoidle bit of sysconfig register Kishon Vijay Abraham I
2010-10-05 16:37 ` [PATCH 6/7] [RFC] OMAP: hwmod: SYSCONFIG register modification for MCBSP Kishon Vijay Abraham I
2010-10-08 7:42 ` Cousson, Benoit
2010-10-11 6:18 ` kishon
[not found] ` <AANLkTi=a80MLvj5YuC==evfGqY6xUToHcBU3TyWEBHAo@mail.gmail.com>
2010-11-22 15:59 ` ABRAHAM, KISHON VIJAY
2010-11-30 16:03 ` Cousson, Benoit [this message]
2010-12-01 7:14 ` Basak, Partha
2010-12-01 11:15 ` Cousson, Benoit
2010-12-01 12:05 ` Govindraj
2010-12-02 10:54 ` Kevin Hilman
2010-12-07 13:15 ` Basak, Partha
2010-10-05 16:37 ` [PATCH 7/7] [RFC] OMAP: pm_runtime support " Kishon Vijay Abraham I
2010-10-06 7:01 ` [PATCH 1/7] [RFC] OMAP: MCBSP: hwmod database for 2xxx devices Varadarajan, Charulatha
2010-10-06 7:17 ` Peter Ujfalusi
2010-10-08 6:20 ` Varadarajan, Charulatha
2010-10-08 7:22 ` Cousson, Benoit
2010-10-12 9:33 ` kishon
2010-10-13 8:31 ` Peter Ujfalusi
2010-10-14 14:51 ` Varadarajan, Charulatha
2010-10-15 6:51 ` Jarkko Nikula
2010-10-15 14:24 ` Mark Brown
2010-10-15 7:13 ` Peter Ujfalusi
2010-10-06 10:32 ` kishon
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=4CF52044.6040904@ti.com \
--to=b-cousson@ti.com \
--cc=charu@ti.com \
--cc=eduardo.valentin@nokia.com \
--cc=ext-eero.nurkkala@nokia.com \
--cc=khilman@deeprootsystems.com \
--cc=kishon@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=nskamat@ti.com \
--cc=p-basak2@ti.com \
--cc=paul@pwsan.com \
--cc=shubhrajyoti@ti.com \
/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).