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]
Message-ID: <808c8e9d1002271036s387b4638u9c754da1e88b6e1b@mail.gmail.com>
Date:	Sat, 27 Feb 2010 12:36:24 -0600
From:	Ben Gardner <gardner.ben@...il.com>
To:	David Brownell <david-b@...bell.net>
Cc:	linux-kernel@...r.kernel.org,
	Andres Salomon <dilinger@...labora.co.uk>,
	Andrew Morton <akpm@...ux-foundation.org>,
	Jani Nikula <ext-jani.1.nikula@...ia.com>
Subject: Re: [PATCH 1/3] gpiolib: add gpio_set_direction()

> NAK.
>
> When we discussed the programming interface originally, having the
> direction be part of the function name was explicitly requested as
> a way to reduce programming errors.
>
> I recall that  a gpio_set_direction() was in the original proposal...
> removing that was one of the handful of fixes that went into the final
> set of calls in this programming interface.
>
> And in fact  ... it *was* very easy to make errors with a few GPIO
> interfaces which worked like that.  With even fewer parameters to
> create confusion than in your proposal.
>
> Let's have no retrograde motion...
>
>
>> Add 'none' and 'inout' directions to the sysfs interface.
>
> Both of those seem nonsensical:
>
>  "none" ... since it's not even a GPIO, why would it show
>        up through the GPIO subsystem???
>
>  "inout" ... is not a direction.  But if you want to do this,
>        you really ought to bite the bullet and come up with a
>        way the implementation can pass up its capabilities.
>
>        Did you read the definition of gpio_get_value()?  It says
>        "When reading the value of an output pin, the value returned
>        should be what's seen on the pin ... that won't always match
>        the specified output value, because of issues including
>        open-drain signaling and output latencies."  Also:  "note that
>        not all platforms can read the value of output pins; those that
>        can't should always return zero."
>
>        Another way to say that is that "output" means 'inout" except
>        when the platform can't do that.  So you'd need to address the
>        case of hardware that's truly output-only ... instead of
>        ignoring that, as done here.  (That is:  you'd need to have a
>        way to reject "inout" mode ... or for that matter, "output-only".)
>
>
>        Doing that well might be a Good Thing ... if for example it
>        lets the initial mode of a GPIO show up properly ... there's
>        currently an assumption in sysfs that they start up as "input",
>        which of course makes sense for any power-sensitive system
>        (you don't enable output drivers unless that power consumption
>        is for some reason required).
>
>        I've never, for example, seen GPIO hardware that would support
>        the equivalent of that "open in <bitmask> mode".   It's either
>        unidirectional (rarely), or (normally) the only real option is
>        whether the output drivers are disabled.  So you always get the
>        "inout" semantics described above, or input-only ones.  Asking
>        for output-only would need to fail.  (Or in the less typical
>        cases, it's asking for "inout" that would need to fail.)

OK. Lets dump this patch series and I'll send off a patch that fixes
the cs5535-gpio driver to behave as indicated.

Ben
--
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