[Freedreno] help: mipi dsi drm driver on 8084

hali at codeaurora.org hali at codeaurora.org
Tue Apr 14 07:45:11 PDT 2015


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