lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 4 Jun 2012 13:13:44 -0400
From:	Marc Butler <marc@...stictigers.com>
To:	Sagar Dharia <sdharia@...eaurora.org>
Cc:	davidb@...eaurora.org, bryanh@...eaurora.org,
	kheitke@...eaurora.org, gclemson@...ience.com,
	broonie@...nsource.wolfsonmicro.com, linux-arm-msm@...r.kernel.org,
	linux-arm-kernel@...ts.infradead.org, rob@...dley.net,
	grant.likely@...retlab.ca, rob.herring@...xeda.com,
	ohad@...ery.com, gregkh@...uxfoundation.org,
	linus.walleij@...aro.org, rusty@...tcorp.com.au,
	joerg.roedel@....com, trenn@...e.de, ak@...ux.intel.com,
	linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
	devicetree-discuss@...ts.ozlabs.org
Subject: Re: [PATCH] slimbus: Linux driver framework for SLIMbus.

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)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ