-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Fix DSI display functionality on RPi5 #8294
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThe changes add support for the DesignWare I2C core driver as a loadable module ( Suggested labels
Suggested reviewers
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
✨ Finishing Touches🧪 Generate Unit Tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (1)
config/kernel/linux-bcm2711-current.config (1)
874-874
: Verify module vs built-in configuration for I2C_DESIGNWARE_COREThe DesignWare I2C core driver is currently set as a module (
m
). For CSI display on RPi5, early I2C availability at boot may be critical—ensure this module is auto-loaded before any dependent camera/display drivers initialize. Consider building it-in (y
) if boot-time loading is unreliable.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
config/kernel/linux-bcm2711-current.config
(1 hunks)config/kernel/linux-bcm2711-edge.config
(1 hunks)config/kernel/linux-bcm2711-legacy.config
(1 hunks)
🔇 Additional comments (4)
config/kernel/linux-bcm2711-edge.config (2)
859-859
: Enable CONFIG_I2C_DESIGNWARE_CORE as module
Matches the other bcm2711 configurations in this PR, allowing the DesignWare I2C core driver to be loaded dynamically.
864-864
: Enable CONFIG_I2C_SLAVE built-in
Consistent with the edge and legacy variants, this enables I2C slave support at build time.config/kernel/linux-bcm2711-legacy.config (2)
817-817
: Enable CONFIG_I2C_DESIGNWARE_CORE as module
Aligned with the edge configuration, this adds support for the DesignWare I2C core driver as a loadable module.
822-822
: Enable CONFIG_I2C_SLAVE built-in
In line with other bcm2711 configs, this turns on I2C slave functionality at compile time.
Providing logs for failed builds would be neat... |
Here are the logs of the edge kernel build: Unfortunately, the logs of the legacy kernel build are lost. I will re-try the build and post the logs on monday. |
Please use either |
Seems like the build failure is unrelated to the suggested change but for some reason apt update failed within chroot:
|
reasonable Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@coderabbitai isn't |
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain@EvilOlaf, let me check the configuration files to verify this observation. 🏁 Script executed:
Length of output: 1395 @EvilOlaf, you're absolutely correct! The verification shows that Current status:
This inconsistency should be addressed. If the DSI display functionality requires both configuration options for proper operation, then the edge and legacy kernel configurations are incomplete and may not work correctly. The
|
Did manual tests for current and edge using |
OK, here are the logs for the legacy kernel: |
Remove leading "+" sign on config variable, as this seems to be a typo
Added missing I2C designware slave functionality.
Added missing I2C designware slave functionality
The initial 'current' image I testet did not have the CONFIG_I2C_DESIGNWARE_SLAVE config set, but DSI had worked for me. |
Would it be possible to change the title of this PR into 'Fix DSI display functionality on RPi5'. The C in CSI is about interfacing camera signals, not applicable here. This PR is about interfacing certain screens that combine the MIPI DSI and I2C buses on one flexible flat cable and use the I2C bus to register and initialize the MIPI DSI bus, sometimes combined with touch screen communication via I2C. |
You're absolutely right, this was a typo. |
Description
Fix Raspberry Pi 5 DSI functionality.
Context:
A display connected to the DSI connector of Raspberry Pi 5 does not work.
Dmesg reveals the following information:
[ 13.283052] mipi-dsi 1f00118000.dsi.0: deferred probe pending: mipi-dsi: supplier 2.reg_bridge not ready
[ 13.283060] platform 1.panel_disp: deferred probe pending: platform: wait for supplier /axi/pcie@120000/rp1/i2c@88000/reg_display@45
The problem could be traced back to a missing I2C Driver.
See: https://forum.armbian.com/topic/50963-dsi-display-does-not-work-on-raspberry-pi-5/
Documentation summary for feature / change
Add module to kernel configuration: CONFIG_I2C_DESIGNWARE_CORE
How Has This Been Tested?
Local build of armbian bookworm minimal and test if DSI display works
Both edge and legacy images failed to build, but the failure seems unrelated to the change.
Checklist:
Please delete options that are not relevant.