Skip to content

Add Maxim SerDes suspend and resume support - #37

Open
khaiwenng wants to merge 5 commits into
intel:mainfrom
khaiwenng:external-port/20260731
Open

Add Maxim SerDes suspend and resume support#37
khaiwenng wants to merge 5 commits into
intel:mainfrom
khaiwenng:external-port/20260731

Conversation

@khaiwenng

Copy link
Copy Markdown
Contributor

Summary

Port four commits from intel-innersource/drivers.camera.scaling.sensor:main after the title-matched baseline patches: ipu6: Add D4XX support into IPU6 drivers:

  • add suspend and resume support for MAX96717 and MAX96724
  • add Maxim SerDes S3/S4 PM suspend/resume handling
  • restore serializer attachment addresses during resume
  • add the DKMS build workflow and kernel-source helper updates

Validation

  • git cherry confirms all four internal patches are patch-equivalent to this branch
  • git diff --check origin/main...HEAD passes
  • local make -j$(nproc) is blocked by incomplete checkout content (ipu7-drivers and 6.17.0 paths are absent) and API mismatches with the installed Linux 6.17 headers (MEDIA_PAD_FL_INTERNAL, module namespace macros, and src_pad)

changchingyew and others added 4 commits July 31, 2026 14:23
Add system sleep callbacks for the MAX96724 deserializer and the
MAX96717 serializer.

Use the common serdes suspend helpers to preserve state on suspend, and
restore device access and common serdes state on resume before
streaming restarts.

Signed-off-by: Yew, Chang Ching <chang.ching.yew@intel.com>
Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
Restore minimal hardware state on resume:
- Deserializer: restore serializer I2C alias translations and re-run
  select_links() with RESET_ONESHOT for forwarding pipeline
- Serializer: restore cached I2C translations and tunnel mode (if active)
- Set resume_reconfigure_pending flag to bypass stale software cache and
  force full hardware reprogram on next stream start

The implementation follows the standard Linux PM model: suspend quiesces
hardware, resume reinitializes to clean baseline, and enable_streams()
reprograms full runtime configuration when userspace restarts streaming.

Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
On resume, reuse max_des_ser_attach_addr() in re-attach mode instead
of the open-coded max_des_resume_restore_serializer_aliases() helper.
This consolidates the retry logic and GMSL version pinning in one
place and removes the now-redundant helper function.

Shorten verbose block comments to single-line comments.

Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
Runs dkms build against multiple kernel families on self-hosted
Linux runners:

  Ubuntu 24.04: 6.12-intel, 6.17-intel, 6.18-intel, 6.17, 7.0
  Ubuntu 26.04: 7.0

-intel rows pull headers from the public Intel Linux Overlay
(download.01.org) and canonical rows use only Ubuntu archives, with
6.17 / 7.0 arriving via HWE-edge and OEM meta packages.

POST_ADD is neutered during 'dkms add'; the upstream source paths
extracted for the OOT build are derived from dkms.conf's POST_ADD+=
lines so this workflow stays in sync when dkms.conf changes.

Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
Comment thread .github/workflows/dkms-build.yml Outdated
@vunnyso

vunnyso commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

checkpatch needs to be fixed.

@khaiwenng
khaiwenng force-pushed the external-port/20260731 branch 2 times, most recently from 2537da5 to c676ca3 Compare August 6, 2026 02:55
Signed-off-by: Sodhi, Vunny <vunny.sodhi@intel.com>
Signed-off-by: Khai Wen, Ng <khai.wen.ng@intel.com>
@khaiwenng
khaiwenng force-pushed the external-port/20260731 branch from c676ca3 to abf6576 Compare August 6, 2026 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants