[Gta04-owner] Linux 3.2-rc4 - now with wifi

Klaus 'mrmoku' Kurzmann mok at mnet-online.de
Mon Dec 5 22:35:24 CET 2011


On Tue, 06 Dec 2011, NeilBrown wrote:

> On Mon, 5 Dec 2011 17:20:45 +0100 Klaus 'mrmoku' Kurzmann
> <mok at mnet-online.de> wrote:

> > Hello Neil,
> > 
> > On Sat, 03 Dec 2011, NeilBrown wrote:
> > 
> > 
> > > hi all,
> > 
> > >  I've updated my mainline gta04 kernel tree to 3.2-rc4.
> > >     git://neil.brown.name/gta04 merge
> > 
> > 
> > > The main new functionality is wireless.  The details for enabling wireless
> > > are slightly different than with the hw-validation kernel.
> > 
> > > 1/ the reset line is /sys/class/gpio/gta04:wlan:reset
> > >     write 0 to reset, 1 to release the reset
> > >    The "reset" line is active-low.
> > 
> > > 2/ After power-on and reset you need to trigger a card-detect signal.
> > >    This requires making gpio/gta:wlan/cd go high, then low.  Card-detect
> > >    is active-low too.
> > 
> > > so:
> > 
> > > VDD=3150000
> > > # VDD=2800000
> > > echo 1 > /sys/class/gpio/gta04:wlan:cd/value
> > > echo "0" >/sys/class/gpio/gta04:wlan:reset/value # activate reset
> > > echo "$VDD" >/sys/devices/platform/reg-virt-consumer.4/max_microvolts
> > > echo "$VDD" >/sys/devices/platform/reg-virt-consumer.4/min_microvolts
> > > echo "normal" >/sys/devices/platform/reg-virt-consumer.4/mode
> > > echo "1" >/sys/class/gpio/gta04:wlan:reset/value # release reset
> > > echo 0 > /sys/class/gpio/gta04:wlan:cd/value  # edge triggers interrupt.
> > 
> > > Each gpio directory has an 'active_low' setting.  I should probably find a
> > > way to enable that...  Unless I end up hiding all of this inside an rfkill.
> > 
> > 
> > > I added the code to enable power-off, but it doesn't work.
> > > As soon as it tries to access the i2c device to send the power-down command to
> > > the twl4030 it triggers an error.  It seems that something earlier in the
> > > shutdown sequence disabled something that is needed for writing to I2C, but I
> > > have no idea what.
> > > I've sent an email to someone to ask for hints..
> > 
> > > I discovered that USB_OTG is disabled in the default config, because
> > > USB_SUSPEND is disabled.  If I enable this (because they sound like good
> > > things) the charging doesn't work any more.
> > > I think the usb port goes to sleep and so stops charging.  I really need to
> > > find a way for the charger to keep the usb port awake.
> > 
> > > Still to do:
> > >  - power off
> > >  - accelerometers
> > >  - explore various bugs reported in dmesg:
> > >  - Find out why 'suspend' doesn't suspend
> > >  - Make sure suspend saves maximum power.
> > >  - make sure can wake from suspend by:
> > >     power button, rtc, accelerometer, GSM
> > >  - tidy up LCD panel driver.
> > >  - make charger keep usb awake, and enable USB_OTG
> > >  - see if I can make an 'rfkill' device that will power-on wifi/BT for me.
> > >  - Maybe an rfkill for 'gps' as well.
> > >  - further explore the rtc alarm bug I found last week.
> > >  - gyroscope, compass, barometer,  FM radio?
> > >  - See if I can get it to charge from Openmoko charger.
> > >  - get all the fixes upstream.
> > 
> > > My goal is to be using this as my regular phone by LCA-2012 !!
> > 
> > great :-)
> > 
> > I have one problem with rc4. Touchsreen stopped working:
> > 
> > root at om-gta04:~# cat /dev/input/event0 
> > [  739.782196] omap_i2c omap_i2c.2: controller timed out
> > [  739.813537] tsc2007 2-0048: i2c io error: -110

> 110 is ETIMEDOUT

> > 
> > 
> > any hint?

> Not really.  I don't have a real touch screen attached yet so I might have
> trouble testing.  I'll have a look though.

> My guess is that it is related to runtime-power-management, but that is just
> because the last two weird bugs were.

I enabled debug for the i2c and this is what I get when touching the
screen:

[  119.375213] i2c i2c-2: master_xfer[0] W, addr=0x48, len=1
[  119.380828] i2c i2c-2: master_xfer[1] R, addr=0x48, len=2
[  119.386566] omap_i2c omap_i2c.2: addr: 0x0048, len: 1, flags: 0x0, stop: 0
[  119.393798] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
[  119.398895] omap_i2c omap_i2c.2: IRQ (ISR = 0x1004)
[  119.404022] omap_i2c omap_i2c.2: addr: 0x0048, len: 2, flags: 0x1, stop: 1
[  119.411315] omap_i2c omap_i2c.2: IRQ (ISR = 0x1008)
[  119.416381] omap_i2c omap_i2c.2: IRQ (ISR = 0x0108)
[  119.421478] omap_i2c omap_i2c.2: IRQ (ISR = 0x0004)
[  119.426605] i2c i2c-2: master_xfer[0] W, addr=0x48, len=1
[  119.432281] i2c i2c-2: master_xfer[1] R, addr=0x48, len=2
[  119.437927] omap_i2c omap_i2c.2: addr: 0x0048, len: 1, flags: 0x0, stop: 0
[  119.445098] omap_i2c omap_i2c.2: IRQ (ISR = 0x0010)
[  119.450195] omap_i2c omap_i2c.2: IRQ (ISR = 0x1004)
[  119.455322] omap_i2c omap_i2c.2: addr: 0x0048, len: 2, flags: 0x1, stop: 1
[  119.462615] omap_i2c omap_i2c.2: IRQ (ISR = 0x1008)
[  119.467712] omap_i2c omap_i2c.2: IRQ (ISR = 0x0108)
[  119.472778] omap_i2c omap_i2c.2: IRQ (ISR = 0x0004)
[  119.477935] i2c i2c-2: master_xfer[0] W, addr=0x48, len=1
[  119.483551] i2c i2c-2: master_xfer[1] R, addr=0x48, len=2
[  119.489227] omap_i2c omap_i2c.2: addr: 0x0048, len: 1, flags: 0x0, stop: 0
[  119.496429] omap_i2c omap_i2c.2: IRQ (ISR = 0x0010)
[  119.501525] omap_i2c omap_i2c.2: IRQ (ISR = 0x1004)
[  119.506622] omap_i2c omap_i2c.2: addr: 0x0048, len: 2, flags: 0x1, stop: 1
[  119.513916] omap_i2c omap_i2c.2: IRQ (ISR = 0x1008)
[  119.519012] omap_i2c omap_i2c.2: IRQ (ISR = 0x0108)
[  119.524078] omap_i2c omap_i2c.2: IRQ (ISR = 0x0004)
[  119.529235] i2c i2c-2: master_xfer[0] W, addr=0x48, len=1
[  119.534881] i2c i2c-2: master_xfer[1] R, addr=0x48, len=2
[  119.540527] omap_i2c omap_i2c.2: addr: 0x0048, len: 1, flags: 0x0, stop: 0
[  119.547729] omap_i2c omap_i2c.2: IRQ (ISR = 0x0010)
[  119.552856] omap_i2c omap_i2c.2: IRQ (ISR = 0x1004)
[  119.557983] omap_i2c omap_i2c.2: addr: 0x0048, len: 2, flags: 0x1, stop: 1
[  119.565277] omap_i2c omap_i2c.2: IRQ (ISR = 0x1008)
[  119.570343] omap_i2c omap_i2c.2: IRQ (ISR = 0x0108)
[  119.575439] omap_i2c omap_i2c.2: IRQ (ISR = 0x0004)
[  119.580566] i2c i2c-2: master_xfer[0] W, addr=0x48, len=1
[  119.586212] i2c i2c-2: master_xfer[1] R, addr=0x48, len=2
[  119.591857] omap_i2c omap_i2c.2: addr: 0x0048, len: 1, flags: 0x0, stop: 0
[  119.599029] omap_i2c omap_i2c.2: IRQ (ISR = 0x0010)
[  119.604156] omap_i2c omap_i2c.2: IRQ (ISR = 0x1004)
[  119.609252] omap_i2c omap_i2c.2: addr: 0x0048, len: 2, flags: 0x1, stop: 1
[  119.616577] omap_i2c omap_i2c.2: IRQ (ISR = 0x1008)
[  119.621673] omap_i2c omap_i2c.2: IRQ (ISR = 0x0108)
[  119.626739] omap_i2c omap_i2c.2: IRQ (ISR = 0x0004)

no idea if that is of any help...
/me already regrets to not have attended Christoph's talk about i2c in
the kernel :/


> > 
> > And another big thank you for the great work you're doing (being burned
> > by the stuttering upstreaming works of Nokia for n900 we (SHR) really appreciate
> > that)

> :-)
> There is a reason we call it the bleeding edge - but when you bleed, at least
> that proves you are alive!

yeah, bleeding is fine as long as there is effort to make it stop - just
like in real life :-)

> NeilBrown


-- 
Klaus 'mrmoku' Kurzmann
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.goldelico.com/pipermail/gta04-owner/attachments/20111205/512d78b2/attachment.bin>


More information about the Gta04-owner mailing list