[Freedreno] help: mipi dsi drm driver on 8084

vinay simha vinaysimha at inforcecomputing.com
Wed Apr 15 06:22:44 PDT 2015


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.
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
> >>
> >
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/freedreno/attachments/20150415/a4849242/attachment.html>


More information about the Freedreno mailing list