devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marc Butler <marc@plastictigers.com>
To: Sagar Dharia <sdharia@codeaurora.org>
Cc: davidb@codeaurora.org, bryanh@codeaurora.org,
	kheitke@codeaurora.org, gclemson@audience.com,
	broonie@opensource.wolfsonmicro.com,
	linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, rob@landley.net,
	grant.likely@secretlab.ca, rob.herring@calxeda.com,
	ohad@wizery.com, gregkh@linuxfoundation.org,
	linus.walleij@linaro.org, rusty@rustcorp.com.au,
	joerg.roedel@amd.com, trenn@suse.de, ak@linux.intel.com,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH] slimbus: Linux driver framework for SLIMbus.
Date: Mon, 4 Jun 2012 13:13:44 -0400	[thread overview]
Message-ID: <20120604171344.GA15837@plastictigers.com> (raw)
In-Reply-To: <74993ac9d11db0db7080c0864daef397.squirrel@www.codeaurora.org>

On Mon, Jun 04, 2012 at 03:21:06AM -0700, Sagar Dharia wrote:
> > The enumeration slim_ch_proto is incorrect. It declares 2 transport
> > protocols which do not exist in the specification: SLIM_HARD_ISO;
> > SLIM_AUTO_ISO.
> 
> The enums are more SW representation (and not 1-1 mapping). Difference
> between HARD_ISO and AUTO_ISO with example:
> Let's say the root frequency is 24.576MHz. then all 4K family channels
> (sample rate multiple of 4K) can run isochronously, and all 11.025KHz
> channel can run with good efficiency.
> So if a client wants 11.025KHz and is does not want to do flow-control at
> this root frequency, then the client can specify AUTO_ISO to get the next
> available isochronous frequency.

I understand it is not a 1-to-1 mapping. However it *is* used as such:

 wbuf[2] = (u8)((segdist & 0xF00) >> 8) | (slc->prop.prot << 4);

which results in NEXT_DEFINE_CHANNEL messages with an invalid TP
field.

More importantly I think it makes it harder to understand the
framework. The concept of HARD_ISO and AUTO_ISO are extensions, and
should really look like such, say perhaps:

enum {
       SLIM_ISO,
       SLIM_PUSH,
       SLIM_PULL,
       SLIM_LOCKED,
       SLIM_ASYNC_SMPLX,
       SLIM_ASYNC_HALF_DUP,
       SLIM_EXT_SMPLX, 
       SLIM_EXT_HALF_DUP,
       SLIM_AUTO_ISO,
       SLIM_USER_DEF_1 = 14,
       SLIM_USER_DEF_2 = 15,
       /* extensions */
       SLIM_HARD_ISO,
       SLIM_AUTO_ISO
};       

> > b) Similarly to (a) the driver may be probed before the device has
> > been given a logical address (LA). This makes sense in the case of
> > driver that turns on the device (say via gpio) once the bus has
> > booted. However, the driver then needs to sit and poll
> > slim_get_logical_addr() until the logical address.
> This is not the case anymore.
> While taking care of the comments for RFC, I have introduced a completion
> that will be signalled when LA is given to the device. The driver can wait
> on that completion (wait_enum) instead of polling.

Yes, my mistake. The driver wouldn't have to poll if there was another
callback. So I don't see how the completion mechanism is superior: it
forces a synchronous interface to asynchronous events, or the driver
developer has to work around it.

-- 
If you wake up and you're not in pain, you know you're dead.
(Russian Proverb)

  parent reply	other threads:[~2012-06-04 17:13 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-30  1:11 [PATCH] slimbus: Linux driver framework for SLIMbus Sagar Dharia
2012-05-30 18:13 ` Mark Brown
2012-06-04  9:54   ` Sagar Dharia
2012-06-01  0:16 ` Marc Butler
2012-06-04 10:21   ` Sagar Dharia
2012-06-04 10:27     ` Mark Brown
2012-06-04 10:36       ` Sagar Dharia
2012-06-04 10:42         ` Mark Brown
2012-06-04 17:13     ` Marc Butler [this message]
2012-06-06  8:13       ` Sagar Dharia
     [not found] ` <1338340310-4473-1-git-send-email-sdharia-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2012-06-03 16:34   ` Joe Perches
2012-06-04 10:25     ` Sagar Dharia
2012-06-04  3:14 ` Rob Landley
2012-06-04  7:29   ` Mark Brown
2012-06-04  9:51   ` Sagar Dharia
2012-06-04 23:41 ` Ryan Mallon
2012-06-06  8:19   ` Sagar Dharia
2012-06-05 20:57 ` Marc Butler

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=20120604171344.GA15837@plastictigers.com \
    --to=marc@plastictigers.com \
    --cc=ak@linux.intel.com \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=bryanh@codeaurora.org \
    --cc=davidb@codeaurora.org \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=gclemson@audience.com \
    --cc=grant.likely@secretlab.ca \
    --cc=gregkh@linuxfoundation.org \
    --cc=joerg.roedel@amd.com \
    --cc=kheitke@codeaurora.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ohad@wizery.com \
    --cc=rob.herring@calxeda.com \
    --cc=rob@landley.net \
    --cc=rusty@rustcorp.com.au \
    --cc=sdharia@codeaurora.org \
    --cc=trenn@suse.de \
    /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).