All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] adv748x: Add support for s2ram
@ 2020-11-22 16:36 Niklas Söderlund
  2020-11-22 16:36 ` [PATCH 1/3] adv748x: afe: Select input port when device is reset Niklas Söderlund
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Niklas Söderlund @ 2020-11-22 16:36 UTC (permalink / raw)
  To: linux-media; +Cc: linux-renesas-soc, Niklas Söderlund

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


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-11-25 13:58 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-22 16:36 [PATCH 0/3] adv748x: Add support for s2ram Niklas Söderlund
2020-11-22 16:36 ` [PATCH 1/3] adv748x: afe: Select input port when device is reset Niklas Söderlund
2020-11-23  8:00   ` Sergei Shtylyov
2020-11-25 12:10   ` Kieran Bingham
2020-11-25 13:16     ` Niklas Söderlund
2020-11-22 16:36 ` [PATCH 2/3] adv748x: csi2: Set virtual channel " Niklas Söderlund
2020-11-23  8:06   ` Sergei Shtylyov
2020-11-22 16:36 ` [PATCH 3/3] adv748x: Configure device when resuming from sleep Niklas Söderlund
2020-11-23  8:09   ` Sergei Shtylyov
2020-11-23  8:05 ` [PATCH 0/3] adv748x: Add support for s2ram Sergei Shtylyov
2020-11-25 13:09 ` Kieran Bingham
2020-11-25 13:39   ` Niklas Söderlund
2020-11-25 13:58     ` Geert Uytterhoeven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.