[PATCH 0/3] adv748x: Add support for s2ram

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

This series enables usage of the ADV748x after the system have been 
suspended to ram. During s2ram the ADV748x may be powered down and thus 
lose its configuration from probe time. The configuration contains  
among other things the i2c slave address mappings for the different 
blocks inside the ADV748x. If this is lost the hardware listens to the 
"wrong" i2c addresses and becomes inaccessible.

Example trying to read the analog standard before and after s2ram with 
and without this this series.

Without this series,

  # subdev=$(grep -l "adv748x 4-0070 afe" /sys/class/video4linux/*/name | sed 's#.*video4linux\(.*\)/name#/dev\1#g')
  # v4l2-ctl --get-detected-standard -d $subdev
  Video Standard = 0x000000ff
          PAL-B/B1/G/H/I/D/D1/K
  # echo on > /sys/bus/i2c/drivers/bd9571mwv/*/bd9571mwv-regulator*/backup_mode
  ** flipp SW23 off **
  # echo mem > /sys/power/state
  ** flipp SW23 on **
  # v4l2-ctl --get-detected-standard -d $subdev
  [  502.753723] adv748x 4-0070: error reading 63, 02
  [  502.866437] adv748x 4-0070: error reading 63, 02
  VIDIOC_QUERYSTD: failed: No such device or address

With this series,

  # subdev=$(grep -l "adv748x 4-0070 afe" /sys/class/video4linux/*/name | sed 's#.*video4linux\(.*\)/name#/dev\1#g')
  # v4l2-ctl --get-detected-standard -d $subdev
  Video Standard = 0x000000ff
          PAL-B/B1/G/H/I/D/D1/K
  # echo on > /sys/bus/i2c/drivers/bd9571mwv/*/bd9571mwv-regulator*/backup_mode
  ** flipp SW23 off **
  # echo mem > /sys/power/state
  ** flipp SW23 on **
  # v4l2-ctl --get-detected-standard -d $subdev
  Video Standard = 0x000000ff
          PAL-B/B1/G/H/I/D/D1/K

Also any streaming while the system is suspended to ram fails to resume 
without this series due to the issue demonstrated above. This series is 
tested on R-Car M3-N on-top of latest media-tree.

Niklas Söderlund (3):
  adv748x: afe: Select input port when device is reset
  adv748x: csi2: Set virtual channel when device is reset
  adv748x: Configure device when resuming from sleep

 drivers/media/i2c/adv748x/adv748x-afe.c  |  6 +----
 drivers/media/i2c/adv748x/adv748x-core.c | 29 ++++++++++++++++++++++--
 drivers/media/i2c/adv748x/adv748x-csi2.c |  6 +----
 drivers/media/i2c/adv748x/adv748x.h      |  2 ++
 4 files changed, 31 insertions(+), 12 deletions(-)

-- 
2.29.2





[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux