All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.