You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is approximately about sc8280xp's dsi support.
ACPI tables here: matebook-e-go-acpi-tables.
It is a tablet with a dual-dsi panel CSOT PPC357DB1(driven by himax hx83121 chip). Sadly there is no mdss-dsi description in sc8280xp.dtsi until now in mainline linux. So I tried to merge mdss-dsi descriptions from sm8350.dtsi into sc8280xp.dtsi and it didnt work.
Try to add dsi support in sc8280xp.dtsi, code can be found here.
Create a new dts for matebook-e-go based on x13s's dts, code here.
Because PPC357DB1 panel is also used in Samsung galaxy tab s7 FE, get its source and trans it to a panel driver using lmdpdg. Driver code here.
PROBLEMS
Boot from a usb hdd.
Kernel is booted successfully because dmesg and syslog appear in /var/log. Screen keeps black with a little backlight after grub. Push power button twice can turn the device off.
errors occured and some attempts to fix them
Error:
efifb: invalid framebuffer address
So there's no kernel boot info being printed to screen. Ignored because syslog can be viewed.
Error:
msm_dsi_host_init: get config failed
msm_dsi: probe of ae94000.dsi failed with error -22
This is because msm_dsi_host_init gets sc8280xp dsi version 0x20050001 that is not configured in drivers/gpu/drm/msm/dsi/dsi_cfg.h. Then I add it into dsi_cfg.h and dsi_cfg.c.
dsi_link_clk_set_rate_6g: Failed to set rate pixel clk, -22
I tried to trace the rate settings of the pixel clk's clock tree. Log here:
[ 0.947206] kernel: dsi_get_pclk_rate: pixel clock rate now is 281848000
[ 0.947301] kernel: dsi_mgr_phy_enable: single dsi, id is 0
[ 0.948407] kernel: dsi_get_pclk_rate: pixel clock rate now is 281848000
[ 0.948410] kernel: dsi_get_pclk_rate: pixel clock rate now is 281848000
[ 0.948811] kernel: dsi_7nm_pll_restore_state:set dsi_pll rate when restore
[ 0.948813] kernel: dsi_pll_7nm_vco_set_rate:DSI PLL0 rate=0, parent's=19200000
[ 0.949200] kernel: clk_calc_new_rates: now calc clk: disp0_cc_mdss_byte0_clk, its parent clk: disp0_cc_mdss_byte0_clk_src, its rate: 0, its req_rate:105693000
[ 0.949204] kernel: clk_calc_new_rates: disp0_cc_mdss_byte0_clk pass-through clock with adjustable parent
[ 0.949205] kernel: clk_calc_new_rates: now calc clk: disp0_cc_mdss_byte0_clk_src, its parent clk: dsi0_phy_pll_out_byteclk, its rate: 0, its req_rate:105693000
[ 0.949207] kernel: clk_calc_new_rates: disp0_cc_mdss_byte0_clk_src clk_core_can_round is TRUE
[ 0.949210] kernel: clk_calc_new_rates: disp0_cc_mdss_byte0_clk_src new rate is 105693000, req.rate is 105693000 and parent is dsi0_phy_pll_out_byteclk
[ 0.949226] kernel: clk_calc_new_rates: set disp0_cc_mdss_byte0_clk_src parent dsi0_phy_pll_out_byteclk rate: 105693000
[ 0.949227] kernel: clk_calc_new_rates: now calc clk: dsi0_phy_pll_out_byteclk, its parent clk: dsi0_pll_bit_clk, its rate: 0, its req_rate:105693000
[ 0.949229] kernel: clk_calc_new_rates: dsi0_phy_pll_out_byteclk clk_core_can_round is TRUE
[ 0.949232] kernel: clk_calc_new_rates: dsi0_phy_pll_out_byteclk new rate is 105693000, req.rate is 105693000 and parent is dsi0_pll_bit_clk
[ 0.949234] kernel: clk_calc_new_rates: set dsi0_phy_pll_out_byteclk parent dsi0_pll_bit_clk rate: 739851000
[ 0.949235] kernel: clk_calc_new_rates: now calc clk: dsi0_pll_bit_clk, its parent clk: dsi0_pll_out_div_clk, its rate: 0, its req_rate:739851000
[ 0.949237] kernel: clk_calc_new_rates: dsi0_pll_bit_clk clk_core_can_round is TRUE
[ 0.949240] kernel: clk_calc_new_rates: dsi0_pll_bit_clk new rate is 739851000, req.rate is 739851000 and parent is dsi0_pll_out_div_clk
[ 0.949241] kernel: clk_calc_new_rates: set dsi0_pll_bit_clk parent dsi0_pll_out_div_clk rate: 739851000
[ 0.949242] kernel: clk_calc_new_rates: now calc clk: dsi0_pll_out_div_clk, its parent clk: dsi0vco_clk, its rate: 0, its req_rate:739851000
[ 0.949244] kernel: clk_calc_new_rates: dsi0_pll_out_div_clk clk_core_can_round is TRUE
[ 0.949245] kernel: clk_calc_new_rates: dsi0_pll_out_div_clk new rate is 739851000, req.rate is 739851000 and parent is dsi0vco_clk
[ 0.949246] kernel: clk_calc_new_rates: set dsi0_pll_out_div_clk parent dsi0vco_clk rate: 739851000
[ 0.949247] kernel: clk_calc_new_rates: now calc clk: dsi0vco_clk, its parent clk: bi_tcxo, its rate: 0, its req_rate:739851000
[ 0.949250] kernel: clk_calc_new_rates: dsi0vco_clk clk_core_can_round is TRUE
[ 0.949250] kernel: clk_calc_new_rates: dsi0vco_clk new rate is 739851000, req.rate is 739851000 and parent is bi_tcxo
[ 0.949289] kernel: dsi_pll_7nm_vco_set_rate:DSI PLL0 rate=739851000, parent's=19200000
[ 0.949389] kernel: clk_calc_new_rates: now calc clk: disp0_cc_mdss_pclk0_clk, its parent clk: disp0_cc_mdss_pclk0_clk_src, its rate: 14092400, its req_rate:281848000
[ 0.949391] kernel: clk_calc_new_rates: disp0_cc_mdss_pclk0_clk pass-through clock with adjustable parent
[ 0.949392] kernel: clk_calc_new_rates: now calc clk: disp0_cc_mdss_pclk0_clk_src, its parent clk: dsi0_phy_pll_out_dsiclk, its rate: 14092400, its req_rate:281848000
[ 0.949394] kernel: clk_calc_new_rates: disp0_cc_mdss_pclk0_clk_src clk_core_can_round is TRUE
[ 0.949395] kernel: clk_calc_new_rates: disp0_cc_mdss_pclk0_clk_src clk_core_determine_round_nolock is error -22
I added some debug info and hope you could understand :(
When setting disp0_cc_mdss_pclk0_clk_src's rate, clk_core_determine_round_nolock returns error -22.
If I comment the return of clk_core_determine_round_nolock and let it goes on:
This issue is approximately about sc8280xp's dsi support.
ACPI tables here: matebook-e-go-acpi-tables.
It is a tablet with a dual-dsi panel CSOT PPC357DB1(driven by himax hx83121 chip). Sadly there is no mdss-dsi description in
sc8280xp.dtsi
until now in mainline linux. So I tried to merge mdss-dsi descriptions fromsm8350.dtsi
intosc8280xp.dtsi
and it didnt work.WHAT I HAD DONE
source from steev/linux/lenovo-x13s-6.4.y
sc8280xp.dtsi
, code can be found here.PROBLEMS
Boot from a usb hdd.
Kernel is booted successfully because
dmesg
andsyslog
appear in/var/log
. Screen keeps black with a little backlight after grub. Push power button twice can turn the device off.errors occured and some attempts to fix them
Error:
So there's no kernel boot info being printed to screen. Ignored because syslog can be viewed.
Error:
This is because msm_dsi_host_init gets sc8280xp dsi version 0x20050001 that is not configured in
drivers/gpu/drm/msm/dsi/dsi_cfg.h
. Then I add it into dsi_cfg.h and dsi_cfg.c.Fix attempts:
Add
into
dsi_cfg.h
Add
into
dsi_cfg_handlers[]
I'm not sure if using
sc7280_dsi_cfg
is proper.It seems work and then ...
Error:
I tried to trace the rate settings of the pixel clk's clock tree. Log here:
I added some debug info and hope you could understand :(
When setting disp0_cc_mdss_pclk0_clk_src's rate, clk_core_determine_round_nolock returns error -22.
If I comment the return of clk_core_determine_round_nolock and let it goes on:
Full log here. Ignore all those "pixel clock from ...".
I doubt that sc8280xp's dsi controller/phy is not the same address as sm8350's. But it can get the dsi version 0x20050001. I'm quite confused.
Any help is appreciated!
The text was updated successfully, but these errors were encountered: