Repository navigation
Drm: phytium: update phytium drm controller driver support to 6.6.0.4 - #2255
Conversation
For BMC mode, due to OpenBMC KVM need to read edid in phytium_connector_get_modes() function, other application scenarios, read edid in phytium_connector_detect() function. Mainline: NA Signed-off-by: Wang Hao <wanghao1851@phytium.com.cn> Signed-off-by: Wang Yinfeng <wangyinfeng@phytium.com.cn> Signed-off-by: Wang Chenlu <wangchenlu2236@phytium.com.cn>
Fix the issue where the source_max_lane_count parameter cannot be customized during driver installation. Mainline: NA Signed-off-by: WangHao <wanghao1851@phytium.com.cn> Signed-off-by: Wang Yinfeng <wangyinfeng@phytium.com.cn> Signed-off-by: Wang Chenlu <wangchenlu2236@phytium.com.cn>
Reviewer's GuideUpdates the Phytium DRM DP controller for the 6.6.0.4 support level by adding mode-aware EDID handling and lifecycle management for BMC and normal DP paths, and by fixing source lane-count configuration so non-default values are honored. Sequence diagram for Phytium DP EDID handlingsequenceDiagram
participant HPD as DP_HPD
participant Connector as DRM_Connector
participant DP as Phytium_DP
participant AUX as DP_AUX_DDC
participant DRM as DRM_EDID
HPD->>Connector: phytium_dp_long_pulse()
Connector->>DP: phytium_dp_set_edid()
DP->>DP: phytium_dp_unset_edid()
DP->>AUX: drm_get_edid()
AUX-->>DP: detect_edid
DP->>DRM: drm_detect_monitor_audio()
DRM-->>DP: has_audio
Connector->>Connector: phytium_connector_get_modes()
Connector->>DRM: drm_edid_is_valid()
Connector->>DRM: drm_add_edid_modes()
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Hi @wangchenlu2236. Thanks for your PR. I'm waiting for a deepin-community member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
There was a problem hiding this comment.
🟡 Changes recommended
Unresolved critical defects overstate a one-lane port’s capacity and prematurely free persistent eDP EDID, risking link-training failures, use-after-free, and double-free.
6 open issues
Avoid freeing persistent eDP EDID during mode queries · New Cap source lane count to the per-port hardware limit · New Refresh cached EDID after override changes · New Update audio capability for non-BMC eDP connectors · New Free cached EDID when destroying the connector · New Preserve DPCD connection status when EDID reading fails · New
What changed in this PR
Updates the Phytium DRM controller driver toward 6.6.0.4, adjusting EDID handling for BMC and non-BMC displays and honoring configurable DisplayPort lane counts.
Changes:
- Cache non-BMC DisplayPort EDID during hotplug detection while retaining mode-time reads for BMC displays.
- Adjust EDID ownership and audio-capability detection.
- Apply non-default source lane-count settings on PX210.
| File | Description |
|---|---|
drivers/gpu/drm/phytium/px210_dp.c |
Applies the source lane-count override. |
drivers/gpu/drm/phytium/phytium_dp.h |
Adds storage for cached detection EDID. |
drivers/gpu/drm/phytium/phytium_dp.c |
Updates EDID caching, mode probing, and audio detection. |
Review effort: Balanced
| if (priv->info.bmc_mode) | ||
| kfree(edid); |
| if (source_max_lane_count != 4) | ||
| return source_max_lane_count; |
| } else if (priv->info.bmc_mode) { | ||
| edid = drm_get_edid(connector, &phytium_dp->aux.ddc); | ||
| } else { | ||
| edid = phytium_dp->detect_edid; |
| if (priv->info.bmc_mode) | ||
| phytium_dp->has_audio = drm_detect_monitor_audio(edid); |
| struct phytium_dp_device *phytium_dp = connector_to_dp_device(connector); | ||
|
|
||
| phytium_dp_unset_edid(connector); | ||
| phytium_dp->detect_edid = drm_get_edid(connector, &phytium_dp->aux.ddc); |
| if (!priv->info.bmc_mode) { | ||
| status = phytium_dp_set_edid(connector); | ||
| if (status == connector_status_disconnected) | ||
| goto out; | ||
| } |


This patches updates the support for phytium drm controller driver.
1.drm/phytium: Read EDID in BMC mode
2.drm/phytium: Bugfix lane count parameter can't be set problem
Summary by Sourcery
Improve Phytium DRM controller support by enabling BMC-mode display detection and correcting DisplayPort lane-count handling.
New Features:
Bug Fixes: