msm8916-mainline / linux-mdss-dsi-panel-driver-generator

Generate Linux DRM panel kernel driver based on QCOM MDSS DSI device tree
GNU General Public License v2.0
53 stars 33 forks source link

Feature request: generate panel orientation code #24

Open JamiKettunen opened 1 year ago

JamiKettunen commented 1 year ago

In case e.g. qcom,mdss-dsi-panel-orientation = "180"; is set for a panel it should generate code for the panel driver to be able to customize the orientation in DTS (and provide the value to set there as well in the example).

On my OnePlus 5 the used qcom,mdss_dsi_samsung_s6e3fa5_1080p_cmd panel is oriented physically upside down and thus the default rendered output is upside down if this isn't accounted for in the panel driver.

FDT: cheeseburger.dtb.zip Source DTS: https://github.com/LineageOS/android_kernel_oneplus_msm8998/blob/lineage-19.1/arch/arm/boot/dts/qcom/dsi-panel-samsung_s6e3fa5_1080p_cmd.dtsi#L158

For now I've got these related commits in my mainline kernel fork for the panel driver:

stephan-gh commented 1 year ago

Contributions welcome, should be pretty straightforward to add this. Although maybe we should wait until that TODO in the panel driver can be removed.

JamiKettunen commented 1 year ago

Ack, perhaps I'll send a PR later if I'm not too busy or forget about this. Let's keep an eye on https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpu/drm/panel/panel-simple.c commit-wise / around the drm_connector_set_panel_orientation() call.