• Rob Clark's avatar
    drm/msm/mdp5: use irqdomains · f6a8eaca
    Rob Clark authored
    For mdp5, the irqs of hdmi/eDP/dsi0/dsi1 blocks get routed through the
    mdp block.  In order to decouple hdmi/eDP/etc, register an irq domain
    in mdp5.  When hdmi/dsi/etc are used with mdp4, they can directly setup
    their irqs in their DT nodes as normal.  When used with mdp5, instead
    set the mdp device as the interrupt-parent, as in:
    
    	mdp: qcom,mdss_mdp@fd900000 {
    		compatible = "qcom,mdss_mdp";
    		interrupt-controller;
    		#interrupt-cells = <1>;
    		...
    	};
    
    	hdmi: qcom,hdmi_tx@fd922100 {
    		compatible = "qcom,hdmi-tx-8074";
    		interrupt-parent = <&mdp>;
    		interrupts = <8 0>;   /* MDP5_HW_INTR_STATUS.INTR_HDMI */
    		...
    	};
    
    There is a slight awkwardness, in that we cannot disable child irqs
    at the mdp level, they can only be cleared in the child block.  So
    you must not use threaded irq handlers in the child.  I'm not sure
    if there is a better way to deal with that.
    Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
    f6a8eaca
mdp5_irq.c 5 KB