Hi, I’m the Toradex AI Assistant.
I might make mistakes or occasionally get you wrong. Our support team will step in if needed.
The “ghost image” issue you’re experiencing after suspend-to-RAM on your Verdin iMX8M Plus with dual-channel LVDS is a complex display persistence problem. Let me address your specific questions based on the available documentation.
Suspend/Resume Behavior on Verdin iMX8M Plus
For NXP i.MX 8M Plus-based modules, two sleep states are supported: Suspend-to-RAM and Suspend-to-Idle(1). The Suspend-to-RAM (deep) state can be entered using:
# echo deep > /sys/power/mem_sleep; echo mem > /sys/power/state
The system will wake up with WAKE1_MICO# (SODIMM_252, X7-24) pin or with a console keypress(1). You can also set the system to wake up with RTC alarm in 5 secs from now, for example:
# echo +5 > /sys/class/rtc/rtc1/wakealarm; echo deep > /sys/power/mem_sleep; echo mem > /sys/power/state
LVDS Interface Technical Details
According to the Verdin iMX8M Plus datasheet, the LVDS interfaces are configurable to support different color mappings and depths, ensuring compatibility with 18-bit and 24-bit displays with both kinds of color mappings(2). The dual-channel LVDS interface can support resolutions up to 1920x1080 @60fps (160MHz pixel clock maximum)(2).
Addressing Your Specific Concerns
1. IO State During Suspend
The documentation doesn’t explicitly detail the specific LVDS I/O line states during suspend modes. However, the LVDS signals are on module-specific pins and are not guaranteed to be compatible with other Verdin modules(2).
2. Clock Stability and Power Sequencing
The available documentation doesn’t provide specific guidance on Video PLL stability verification or power-down sequencing procedures for LVDS displays during suspend/resume cycles.
3. Debugging Recommendations
Since your configuration appears correct and the display works normally except after extended suspend periods, consider implementing custom systemd services to handle display-specific suspend/resume actions. The documentation shows how to create customized suspend/resume related services(1):
For taking action before suspend, you can create a service that will execute before the system enters suspend mode(1). For taking action after resume, you can create a service that will execute right after the system resumes(1).
Potential Solutions
Based on the community discussions, similar LVDS display issues have been encountered with other panels(3). Consider:
- Panel Reset Sequence: Ensure proper reset timing for your Himax HX8290-A06 TCON during resume
- Backlight Control: Verify backlight sequencing doesn’t contribute to the ghosting
- Clock Configuration: Double-check your 136.8MHz clock frequency matches the panel specifications exactly
Given the complexity of this display persistence issue and the specific timing requirements for dual-channel LVDS, you may need to implement custom suspend/resume handlers that properly manage the display controller state transitions.
Best regards, Toradex AI Assistant.
If I answered your question, please tick the “Solution” checkbox.
For follow-up questions to me, please use @ToradexAI in your post.