drm: imx: multi-display support questions
Eric Nelson
eric.nelson at boundarydevices.com
Sat May 30 09:27:42 PDT 2015
Hi Philipp,
On 05/29/2015 02:30 AM, Philipp Zabel wrote:
> Hi Eric,
>
> Am Donnerstag, den 28.05.2015, 12:30 -0700 schrieb Eric Nelson:
>> Hi Philipp,
>>
>> On 05/28/2015 03:58 AM, Philipp Zabel wrote:
>>> Hi Gary,
>>>
>>> Am Mittwoch, den 27.05.2015, 15:31 +0200 schrieb Gary Bisson:
>>>>> According to the kerneldoc comment for drm_fb_helper_initial_config
>>>>> (which is used by imx-drm via drm_fbdev_cma_init), it should set up a
>>>>> single /dev/fb cloned over all connectors. This works here with LVDS and
>>>>> HDMI.
>>>>
>>>> Does it require the two displays to have the exact same resolution?
>>>> I'm wondering what is wrong with my setup but with a 1024x768 LVDS and
>>>> a 1920x1080 HDMI display no image is shown on the HDMI (no signal).
>>>> The CRTC settings show that both have the same origin (0,0) so I
>>>> expected the LVDS to display a part of what the HDMI *should* display.
>>>
>>> No, but it does require the HDMI and LVDS display to use different clock
>>> sources (unless LVDS serializer clock happens to be the same as the HDMI
>>> pixel clock).
>>>
>>> I wonder what we should do about this for devices that have both LVDS
>>> and HDMI output and can only use PLL5 for both. Register a clock
>>> notifier that vetoes changes?
>>>
>>
>> The LDB can be clocked from PLL2.
>>
>> Here's a snippet of the clock tree from our 3.10.53 (Android) kernel
>> running both HDMI at 720P and the Hannstar hsd070pww1 panel:
>>
>> pll2_pfd0_352m 1 1 500210526
>
> What is the parent of gpu2d_core_sel? This looks like it would severely
> overclock the vivante 2d core.
>
PLL3.
Here's a full clock tree for a Nitrogen6x configured for 1280x800
LVDS and 720P HDMI.
The GPU 2d core is running at 480MHz and the 3d core at 528MHz, so
they're both under the limits of 532 and 540.
Looking at the clock tree for 4.1, it appears that the gpu3d_core
is being over-clocked at 594 MHz.
Regards,
Eric
-------------- next part --------------
clock enable_cnt prepare_cnt rate
---------------------------------------------------------------------
anaclk2 0 0 0
lvds2_in 0 0 0
anaclk1 0 0 0
lvds1_in 0 0 0
dummy 2 3 0
usbphy2_gate 1 1 0
usbphy1_gate 1 1 0
clk24m 0 0 24000000
osc 7 7 24000000
cko2_sel 1 1 24000000
cko2_podf 1 1 24000000
cko2 1 1 24000000
cko 2 2 24000000
gpt_3m 1 1 3000000
pll4_sel 0 0 24000000
pll4_audio 0 0 1083801600
pll4_post_div 0 0 541900800
pll4_audio_div 0 0 541900800
esai_sel 0 0 541900800
esai_pred 0 0 270950400
esai_podf 0 0 33868800
esai_extal 0 0 33868800
ssi3_sel 0 0 541900800
ssi3_pred 0 0 135475200
ssi3_podf 0 0 67737600
ssi3 0 0 67737600
ssi2_sel 0 0 541900800
ssi2_pred 0 0 135475200
ssi2_podf 0 0 67737600
ssi2 0 0 67737600
ssi1_sel 0 0 541900800
ssi1_pred 0 0 135475200
ssi1_podf 0 0 67737600
ssi1 0 0 67737600
pll7_usb_host 1 1 480000000
usbphy2 1 1 480000000
pll6_enet 0 0 500000000
enet_ref 0 0 50000000
pcie_ref 0 0 125000000
pcie_ref_125m 0 0 125000000
sata_ref 0 0 100000000
lvds1_sel 0 0 100000000
lvds1_out 0 0 100000000
sata_ref_100m 0 0 100000000
pll5_video 1 1 1188000000
pll5_post_div 1 1 297000000
pll5_video_div 1 1 74250000
ipu2_di1_pre_sel 0 0 74250000
ipu2_di1_pre 0 0 24750000
ipu2_di1_sel 0 0 24750000
ipu2_di1 0 0 24750000
ipu2_di0_pre_sel 1 1 74250000
ipu2_di0_pre 1 1 74250000
ipu2_di0_sel 1 1 74250000
ipu2_di0 1 1 74250000
ipu2_pclk0_sel 1 1 74250000
ipu2_pclk0_div 1 1 74250000
ipu2_pclk_0 1 1 74250000
ipu1_di1_pre_sel 0 0 74250000
ipu1_di1_pre 0 0 24750000
ipu1_di0_pre_sel 0 0 74250000
ipu1_di0_pre 0 0 24750000
ipu1_di0_sel 0 0 24750000
ipu1_di0 0 0 24750000
pll3_usb_otg 3 4 480000000
gpu2d_core_sel 0 0 480000000
gpu2d_core_podf 0 0 480000000
gpu2d_core 0 0 480000000
spdif1_sel 0 0 480000000
spdif1_pred 0 0 240000000
spdif1_podf 0 0 30000000
periph2_clk2_sel 0 0 480000000
periph2_clk2 0 0 480000000
periph_clk2_sel 0 0 480000000
periph_clk2 0 0 480000000
pll3_60m 0 1 60000000
ecspi_root 0 1 60000000
ecspi5 0 0 60000000
ecspi4 0 0 60000000
ecspi3 0 0 60000000
ecspi2 0 0 60000000
ecspi1 0 2 60000000
can_root 0 0 30000000
can2_serial 0 0 30000000
can1_serial 0 0 30000000
pll3_80m 1 1 80000000
uart_serial_podf 1 1 80000000
uart_serial 1 2 80000000
pll3_120m 0 0 120000000
pll3_pfd3_454m 0 0 454736842
spdif_sel 0 0 454736842
spdif_pred 0 0 227368421
spdif_podf 0 0 227368421
spdif 0 0 227368421
pll3_pfd2_508m 0 0 508235294
pll3_pfd1_540m 1 1 540000000
hdmi_isfr 1 1 540000000
video_27m 0 0 27000000
pll3_pfd0_720m 0 0 720000000
usbphy1 1 1 480000000
pll2_bus 3 3 528000000
periph2_pre 0 0 528000000
periph2 0 0 528000000
mmdc_ch1_axi_podf 0 0 528000000
periph_pre 1 1 528000000
periph 3 3 528000000
ahb 7 8 132000000
sdma 8 2 132000000
rom 1 1 132000000
ocram 2 2 132000000
hdmi_iahb 1 1 132000000
esai_mem 0 0 132000000
caam_aclk 1 1 132000000
caam_mem 1 1 132000000
asrc_gate 0 1 132000000
asrc_mem 0 1 132000000
asrc_ipg 0 0 132000000
cko1_sel 0 0 132000000
cko1_podf 0 0 16500000
cko1 0 0 16500000
ipg 6 7 66000000
usboh3 2 2 66000000
uart_ipg 1 2 66000000
ssi3_ipg 0 0 66000000
ssi2_ipg 0 0 66000000
ssi1_ipg 0 0 66000000
spba 0 0 66000000
sata 1 1 66000000
iim 0 1 66000000
gpt_ipg 1 1 66000000
esai_ipg 0 0 66000000
epit2 0 0 66000000
epit1 0 0 66000000
enet 0 0 66000000
can2_ipg 0 0 66000000
can1_ipg 0 0 66000000
caam_ipg 1 1 66000000
ipg_per 3 3 66000000
pwm4 1 1 66000000
pwm3 1 1 66000000
pwm2 0 0 66000000
pwm1 1 1 66000000
i2c3 0 0 66000000
i2c2 0 0 66000000
i2c1 0 0 66000000
gpt_ipg_per 0 0 66000000
mmdc_ch0_axi_podf 3 3 528000000
gpu3d_core_sel 0 0 528000000
gpu3d_core_podf 0 0 528000000
gpu3d_core 0 0 528000000
tzasc2 0 0 528000000
ipu1_sel 1 1 528000000
ipu1_podf 1 1 264000000
ipu1 1 1 264000000
ipu1_pclk0_sel 0 0 264000000
ipu1_pclk0_div 0 0 0
ipu1_pclk_0 0 0 0
dcic1 0 0 264000000
ipu2_sel 1 1 528000000
ipu2_podf 1 1 264000000
ipu2 1 1 264000000
ipu2_pclk1_sel 0 0 264000000
ipu2_pclk1_div 0 0 0
ipu2_pclk_1 0 0 0
dcic2 0 0 264000000
axi_sel 1 1 528000000
axi 1 1 264000000
openvg_axi 0 0 264000000
mlb 0 0 264000000
gpu2d_axi 0 0 264000000
gpu3d_axi 0 0 264000000
pcie_axi_sel 0 0 264000000
pcie_axi 0 0 264000000
emi_slow_sel 1 1 264000000
emi_slow_podf 1 1 132000000
eim_slow 1 1 132000000
vdo_axi_sel 0 0 264000000
vdo_axi 0 0 264000000
vdoa 0 0 264000000
vpu_axi_sel 0 0 264000000
vpu_axi_podf 0 0 264000000
vpu_axi 0 0 264000000
pll2_pfd2_396m 2 2 396000000
enfc_sel 0 0 396000000
enfc_pred 0 0 79200000
enfc_podf 0 0 19800000
enfc 0 0 19800000
gpmi_io 0 0 19800000
emi_sel 0 0 396000000
emi_podf 0 0 198000000
usdhc4_sel 1 1 396000000
usdhc4_podf 1 1 198000000
usdhc4 3 3 198000000
gpmi_bch 0 0 198000000
usdhc3_sel 0 0 396000000
usdhc3_podf 0 0 198000000
usdhc3 0 0 198000000
apbh_dma 0 0 198000000
per1_bch 0 0 198000000
gpmi_bch_apb 0 0 198000000
gpmi_apb 0 0 198000000
usdhc2_sel 0 0 396000000
usdhc2_podf 0 0 198000000
usdhc2 0 0 198000000
usdhc1_sel 0 0 396000000
usdhc1_podf 0 0 198000000
usdhc1 0 0 198000000
hsi_tx_sel 1 1 396000000
hsi_tx_podf 1 1 198000000
hsi_tx 1 1 198000000
axi_alt_sel 0 0 396000000
step 0 0 396000000
pll2_198m 0 0 198000000
pll2_pfd1_594m 0 0 594000000
gpu3d_shader_sel 0 0 594000000
gpu3d_shader 0 0 594000000
pll2_pfd0_352m 1 1 500210526
ldb_di1_div_7 0 0 71458646
ldb_di1_div_sel 0 0 71458646
ldb_di1 0 0 71458646
ldb_di1_div_3_5 0 0 142917293
ldb_di0_div_7 1 1 71458646
ldb_di0_div_sel 1 1 71458646
ldb_di0 1 1 71458646
ipu1_di1_sel 1 1 71458646
ipu1_di1 1 1 71458646
ipu1_pclk1_sel 1 1 71458646
ipu1_pclk1_div 1 1 71458646
ipu1_pclk_1 1 1 71458646
ldb_di0_div_3_5 0 0 142917293
pll1_sys 1 1 996000000
pll1_sw 1 1 996000000
arm 2 2 996000000
lvds2_sel 0 0 996000000
lvds2_out 0 0 996000000
twd 1 1 498000000
ckih1 0 0 0
ckil 0 0 32768
More information about the dri-devel
mailing list