@@ -2184,6 +2184,34 @@ static int tegra186_pmc_irq_set_type(struct irq_data *data, unsigned int type)
21842184 return 0 ;
21852185}
21862186
2187+ static void tegra_irq_mask_parent (struct irq_data * data )
2188+ {
2189+ if (data -> parent_data )
2190+ irq_chip_mask_parent (data );
2191+ }
2192+
2193+ static void tegra_irq_unmask_parent (struct irq_data * data )
2194+ {
2195+ if (data -> parent_data )
2196+ irq_chip_unmask_parent (data );
2197+ }
2198+
2199+ static void tegra_irq_eoi_parent (struct irq_data * data )
2200+ {
2201+ if (data -> parent_data )
2202+ irq_chip_eoi_parent (data );
2203+ }
2204+
2205+ static int tegra_irq_set_affinity_parent (struct irq_data * data ,
2206+ const struct cpumask * dest ,
2207+ bool force )
2208+ {
2209+ if (data -> parent_data )
2210+ return irq_chip_set_affinity_parent (data , dest , force );
2211+
2212+ return - EINVAL ;
2213+ }
2214+
21872215static int tegra_pmc_irq_init (struct tegra_pmc * pmc )
21882216{
21892217 struct irq_domain * parent = NULL ;
@@ -2199,10 +2227,10 @@ static int tegra_pmc_irq_init(struct tegra_pmc *pmc)
21992227 return 0 ;
22002228
22012229 pmc -> irq .name = dev_name (pmc -> dev );
2202- pmc -> irq .irq_mask = irq_chip_mask_parent ;
2203- pmc -> irq .irq_unmask = irq_chip_unmask_parent ;
2204- pmc -> irq .irq_eoi = irq_chip_eoi_parent ;
2205- pmc -> irq .irq_set_affinity = irq_chip_set_affinity_parent ;
2230+ pmc -> irq .irq_mask = tegra_irq_mask_parent ;
2231+ pmc -> irq .irq_unmask = tegra_irq_unmask_parent ;
2232+ pmc -> irq .irq_eoi = tegra_irq_eoi_parent ;
2233+ pmc -> irq .irq_set_affinity = tegra_irq_set_affinity_parent ;
22062234 pmc -> irq .irq_set_type = pmc -> soc -> irq_set_type ;
22072235 pmc -> irq .irq_set_wake = pmc -> soc -> irq_set_wake ;
22082236
0 commit comments