development kernel tree: Changes to 'andy'

git at git at
Sun Jun 15 23:34:30 CEST 2008

 arch/arm/mach-s3c2440/mach-gta02.c |   29 +++
 drivers/base/core.c                |    5 +
 drivers/i2c/busses/i2c-s3c2410.c   |    1 +
 drivers/i2c/chips/pcf50633.c       |  356 +++++++++++++++++++++++-------------
 drivers/mfd/glamo/glamo-core.c     |  269 +++++++++++++--------------
 drivers/mfd/glamo/glamo-core.h     |    2 +
 drivers/mfd/glamo/glamo-regs.h     |    6 +-
 include/linux/pcf50633.h           |   10 +-
 8 files changed, 408 insertions(+), 270 deletions(-)

New commits:
commit ceab59ca27f3ee5f6a19baa88476e1f565f09310
Author: Andy Green <andy at>
Date:   Sun Jun 15 22:32:48 2008 +0100

    Everywhere in the sources except the probe function the context
    pointer is called "pcf"... in there it's called "data" for some
    reason.  This stops confusion by changing it to be "pcf" in there
    as well.
    Signed-off-by: Andy Green <andy at>

commit b99193f40c7bcf44269c3026662c5f1fc24ac073
Author: Andy Green <andy at>
Date:   Sun Jun 15 22:31:31 2008 +0100

    pcf50633.c shouldn't know GTAxx at all.  Move to using a
    platform callback to allow definition of platform devices
    with pcf50633 as parent device (good for enforcing suspend /
    resume ordering).  Remove all code references to GTAxx from
    the sources (one string left for compatability).
    Signed-off-by: Andy Green <andy at>

commit f6822ccebe013505fd83e8aef91be8f31ba69b0a
Author: Andy Green <andy at>
Date:   Sun Jun 15 22:03:53 2008 +0100

    Signed-off-by: Andy Green <andy at>

commit b5ed6f770895aef477f0046d1652673f167437a7
Author: Andy Green <andy at>
Date:   Sun Jun 15 21:47:37 2008 +0100

    Two issues... we never took care to take down engines in suspend
    and bring them back in resume.  This was part of the display
    corruption that could be seen briefly on resume.  The other issue
    that made the "noise" corruption was bad ordering of resume steps.
    This patch simplifies (removing needless re-init) resume actions
    and makes explicit the suspend and resume steps.  It also adds
    code to track which engines are up and push them down in suspend
    and bring them back in resume.
    The result is no more corruption of display buffer in suspend, it
    comes back completely clean.
    Signed-off-by: Andy Green <andy at>

commit 287c1cf4ff520041bee55cdaeb09c9d4b1cec24a
Author: Andy Green <andy at>
Date:   Sun Jun 15 21:44:28 2008 +0100

    Backlight wasn't off by default on resume, so it was never really
    deferred (until LCM is initialized).  This fixes that and so removes
    the brief white screen between pcf50633 resume and LCM init.
    Signed-off-by: Andy Green <andy at>

commit 98a1a864e624b8c175ae4c4b5ad352a57423bb01
Author: Andy Green <andy at>
Date:   Sun Jun 15 15:54:19 2008 +0100

    Signed-off-by: Andy Green <andy at>

commit 7e3dddfd547a2fde459de5eee96a8ca572f4d50a
Author: Andy Green <andy at>
Date:   Sun Jun 15 15:27:25 2008 +0100

    Disable pcf interrupt (not for wake, just as interrupt) in
    suspend, re-enable it again just before we force-call the
    workqueue function at end of pcf resume, which leads to
    pcf interrupt source registers getting cleared so it can
    signal an interrupt normally again.
    This change ends the uncontrolled appearance of pcf interrupts
    during resume time which previously caused the work to attempt
    to use the I2C stuff before i2c host device had itself resumed.
    Now the isr work is only queued, and the isr work function called,
    definitively after pcf resume completes.
    In suspend time, the work function may have been queued some
    time before and be pending, and it could still show up at a
    bad time.  Therefore if the work function sees that it is
    coming since the start of pcf50633 suspend function, it
    aborts without attempting to read the pcf interrupt regs,
    leaving them for resume to take care of.
    USB current limit and no battery work functions are also made
    aware of suspend state and act accordingly.
    Lastly I noticed that in early resume, i2c_get_clientdata(&pcf->client)
    returns NULL, presumably because i2c device is still suspended.  This
    could easily make trouble for async events like interrupt work,
    since pcf pointer is the client data.  Disabling appearance of the
    work until after pcf50633 resume will also avoid that.
    Signed-off-by: Andy Green <andy at>

commit cd466da2ef5d5cc022644c76c3c3698a1844b4f0
Author: Andy Green <andy at>
Date:   Sun Jun 15 15:21:45 2008 +0100

    Use an enum to define pcf50633 suspend / resume state.
    Add PCF50633_SS_RESUMING_BUT_NOT_US_YET to be the state
    early in resume: add platform driver resume function just
    to set this state so we can differentiate between early
    resume and late suspend.
    Signed-off-by: Andy Green <andy at>

commit 73eae787d37b5d753bcdfbc8ac9fb382b46255d1
Author: Andy Green <andy at>
Date:   Sun Jun 15 09:39:10 2008 +0100

    Signed-off-by: Andy Green <andy at>

More information about the commitlog mailing list