[Freedreno] help: mipi dsi drm driver on 8084
Rob Clark
robdclark at gmail.com
Wed Apr 15 06:37:05 PDT 2015
On Wed, Apr 15, 2015 at 9:22 AM, vinay simha
<vinaysimha at inforcecomputing.com> wrote:
> Hai,
>
> added the panel in dts, now the new panel-truly is getting probed. updated
> my branch
> https://github.com/vinaysimha/kernel-msm-ifc6410/commits/ifc6540-drm-4.4.4-dsi
>
> panel backlight is up, hdmi display is coming. No data in the dsi.
> i had not used this function dsi_host_init_panel_gpios, since gpiolib.c is
> different from 4.x kernel to 3.10.40 kernel. i handled the gpios in
> panel-truly.c
>
> Does these reg address are correct ?
>
> mdss_dsi0: qcom,mdss_dsi at fd922800
> reg = <0xfd922800 0x200>,
> <0xfd922b00 0x20c>,
> <0xfd922d80 0x20>,
> <0xfd828000 0x108>;
> reg-names = "dsi_ctrl", "dsi_phy", "dsi_phy_regulator", "mmss_misc_phys";
>
> }
>
> When i tried the modetest,
> hdmi encoders is set properly to 32 , crtc 20
> But for the dsi encoder set to 1 is not correct i guess. It should be 29.
fwiw, I tihnk "1" is number of modes, and there are no encoders..
btw, that modetest output made me realize that modetest needed to be
updated with new encoder/connector names.. I just pushed a fix so it
won't show "invalid" for DSI connector/encoder types:
http://cgit.freedesktop.org/mesa/drm/commit/?id=0d78b37b1cac304ce5e84d1207f0a43abd29c000
BR,
-R
> Any suggestions?
>
> -----------------------------------
> Encoders:
> id crtc type possible crtcs possible clones
> 29 18 (invalid) 0x0000000f 0x00000000
> 30 0 (invalid) 0x0000000f 0x00000000
> 32 20 TMDS 0x0000000f 0x00000000
>
> ************************************************
> Connectors:
> id encoder status type size (mm) modes encoders
> 31 29 connected (invalid) 0x0 1
> ************************************************
> modes:
> name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
> 480x864 60 480 526 530 574 864 879 880 896 flags: ; type:
> props:
> 1 EDID:
> flags: immutable blob
> blobs:
>
> value:
> 2 DPMS:
> flags: enum
> enums: On=0 Standby=1 Suspend=2 Off=3
> value: 0
> ***********************************************
> 33 32 connected HDMI-A 480x270 28 32
> ***********************************************
> modes:
> name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
> 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync,
> pvsync; type: preferred, driver
> 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync,
> pvsync; type: driver
>
> CRTCs:
> id fb pos size
> 18 60 (0,0) (480x864)
> 480x864 60 480 526 530 574 864 879 880 896 flags: ; type:
> props:
> 20 60 (0,0) (1920x1080)
> 1920x1080 60 1920 2008 2052 2200 1080 1084 1089 1125 flags: phsync,
> pvsync; type: preferred, driver
> props:
> -----------------------------------------------------
>
> Regards,
> vinay simha
>
> On Tue, Apr 14, 2015 at 8:15 PM, <hali at codeaurora.org> wrote:
>>
>> Hi Vinay,
>>
>> > On Mon, Apr 13, 2015 at 5:26 AM, vinay simha
>> > <vinaysimha at inforcecomputing.com> wrote:
>> >> Hi,
>> >>
>> >> i had backported msm-next dsi branch to 3.10.40 kernel
>> >>
>> >> https://github.com/vinaysimha/kernel-msm-ifc6410/tree/ifc6540-drm-4.4.4-dsi
>> >>
>> >> created the panel-truly in drivers/gpu/drm/panel/panel-truly.c- having
>> >> some
>> >> issue regarding probing this driver even though i added the panel
>> >> description in apq8084-mdss.dtsi.
>> >>
>> >> -------------------------------------------------------------
>> >> mdss_dsi0: qcom,mdss_dsi at fd922800 {
>> >>
>> >> panel = <&panel_truly>;
>> >> }
>> >>
>> >> panel_truly : panel {
>> >> compatible = "truly,otm8018b";
>> >> };
>> >> -------------------------------------------------------------
>> >>
>> >> But panel-truly is not getting probed. So created a
>> >> panel_simple_create,
>> >> but
>> >> mipi_dsi_device instance is not able to access so i cannot set
>> >> dsi->lanes,
>> >> dsi->format so the mipi_dsi_generic_write is failing.
>> >
>> > hmm, I think calling panel_simple_create() is not the right way..
>> >
>> > when you of_drm_find_panel(), what happens? Is it returning
>> > -EPROBE_DEFER?
>> >
>> > hacking around the normal way to get the panel from DT is probably
>> > going to result in the panel not knowing what it's resources are, so
>> > you should probably focus on why it is not working with
>> > of_drm_find_panel().
>> >
>> > Hai Li might have some suggestions.. I've asked them to add some DT
>> > bindings docs for the msm parts of it. From that snippet above, I
>> > guess you may also need:
>> >
>> > qcom,mdss_mdp at fd900000 {
>> > ...
>> > connectors = <&mdss_hdmi_tx, &mdss_dsi0>;
>> > }
>> >
>> > or something roughly like that. Looks like the dsi node would also
>> > require "qcom,dsi-host-index".. and:
>> >
>> > interrupt-parent = <&mdss_mdp>;
>> > interrupts = <4 0>; /* MDP5_HW_INTR_STATUS.INTR_DSI0
>> > */
>> >
>> >
>> > BR,
>> > -R
>> >
>>
>> The panel node needs to be a child node of the DSI host node and have a
>> *reg* entry to specify its virtual channel number, which will let
>> mipi_dsi_host_register() find the panel and attach it to the host.
>>
>> Also, panel node should include some gpios if they are on your board,
>> please see dsi_host_init_panel_gpios().
>>
>> So the host node in DT board file should be looks like this:
>> &mdss_dsi0 {
>> panel at 0 {
>> reg = <0>;
>> compatible = "...";
>> disp-enable-gpios = <...>;
>> disp-te-gpios = <...>;
>>
>> ...
>> (other entries needed by panel driver)
>> };
>> };
>>
>> The binding file change is under internal legal and tech review. I will
>> push it once it is ready.
>>
>> Thanks,
>> Hai
>> >> But if i hardcode dsi->lanes in
>> >> msm_dsi_host_power_on of drivers/gpu/drm/msm/dsi/dsi_host.c it will
>> >> work
>> >> but
>> >> still i cannot use the
>> >> mipi_dsi_generic_write for panel settings.
>> >>
>> >> Any suggestions?
>> >> Is there any reference panel driver and .dts files to enable the dsi on
>> >> 8084?
>> >>
>> >> Regards,
>> >> vinay simha
>> >>
>> >> _______________________________________________
>> >> Freedreno mailing list
>> >> Freedreno at lists.freedesktop.org
>> >> http://lists.freedesktop.org/mailman/listinfo/freedreno
>> >>
>> >
>>
>>
>
More information about the Freedreno
mailing list