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, 02 Jan 2017 17:07:13 +0100
From:   joerg Reisenweber <joerg@...nmoko.org>
To:     Jarkko Nikula <jarkko.nikula@...mer.com>
Cc:     Pavel Machek <pavel@....cz>,
        Pali Rohár <pali.rohar@...il.com>,
        Tony Lindgren <tony@...mide.com>,
        Peter Ujfalusi <peter.ujfalusi@...com>,
        Eduardo Valentin <edubezval@...il.com>,
        Lars-Peter Clausen <lars@...afoo.de>,
        Aaro Koskinen <aaro.koskinen@....fi>,
        Nishanth Menon <nm@...com>, Sebastian Reichel <sre@...nel.org>,
        Ivaylo Dimitrov <ivo.g.dimitrov.75@...il.com>,
        linux-omap@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: Nokia N900 sound driver and ECI GPIOs

On Mon 02 January 2017 11:01:48 Jarkko Nikula wrote:
> Hi
> 
> On 01/02/2017 12:36 AM, Pavel Machek wrote:
> >> Jarkko, you are listed as original author of that driver. Do you (or
> >> anybody else) remember what that rx51_set_eci_switches() function is
> >> doing? And what gpio 178 controls? I was even not able to find gpio 178
> >> in RX-51 Schematics [6].
> >> 
> >> And do you know something about Nokia ECI headsets supports for Nokia
> >> N900. Looks like there is already some kernel code but support for ECI
> >> bus or multibuttons headset is missing.
> 
> Multibutton ECI headset support using GPIO was planned during early in
> HW design phase but wasn't implemented for the actual product. I don't
> remember was it due no actual product requirement for it or GPIO based
> implementation was not reliable. If I remember correctly ECI protocol
> carries information by shorting mic bias to ground at some 1 kHz rate so
> trying to detect those pulses by SW won't work too well without hard
> real-time OS.

I think it's perfectly feasible with an IRQ handler that detects inbound ECI 
data from edges on ECI0 pin (slightly out of spec for ECI, the Schmitt Trigger 
has threshold 0.5V, for ECI it ideally had 1.1V). The IRQ handler needs to 
push timestamps onto a stack for a worker thread to analyze and decode, and 
provide data to userland. Even an *occasional* glitch in data is not exactly a 
catastrophic failure, user can press same button again to make the intended 
action happen.
ECI data-send to be implemented via TVOUT_EN while TVOUT at 0. You could even 
lock IRQs during the short (only a few milliseconds) data bursts, to achieve 
accurate timing.

http://neo900.org/stuff/joerg/ECI/

cheers
jOERG


> 
> Even ECI is not implemented in final product the production HW still has
> two switches to route mic bias to voltage detection circuit, tv-out or
> codec. One of the switches is statically driven because only codec or
> tv-out route is needed. See commit 31164c7cf119 ("ASoC: omap: rx51: Add
> headset support")
> 
> > I'd like to get detection of headset button presses to work in recent
> > kernels, but could not figure it out :-(.
> 
> My vague memory doesn't tell how basic button press detection was
> implemented in Maemo kernel. Was it codec, same voltage detection
> circuit than ECI or some another GPIO? I don't even remember did we
> implement it for the MeeGo N900 developer edition :-(

-- 
()  ascii ribbon campaign
/\  
against html e-mail - against proprietary attachments
http://www.georgedillon.com/web/html_email_is_evil.shtml          
http://www.nonhtmlmail.org/campaign.html
http://www.georgedillon.com/web/html_email_is_evil_still.shtml    
http://www.gerstbach.at/2004/ascii/ (German)

Download attachment "signature.asc" of type "application/pgp-signature" (199 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ