mirror of https://gitee.com/openkylin/linux.git
soc/tegra: pmc: Add comments clarifying wake events
Add some comments to clarify the purpose of the wake event support implemented in the PMC driver. Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
03b3c21cb3
commit
34abf69732
|
@ -241,6 +241,11 @@ struct tegra_pmc_soc {
|
|||
const char * const *reset_levels;
|
||||
unsigned int num_reset_levels;
|
||||
|
||||
/*
|
||||
* These describe events that can wake the system from sleep (i.e.
|
||||
* LP0 or SC7). Wakeup from other sleep states (such as LP1 or LP2)
|
||||
* are dealt with in the LIC.
|
||||
*/
|
||||
const struct tegra_wake_event *wake_events;
|
||||
unsigned int num_wake_events;
|
||||
};
|
||||
|
@ -1906,6 +1911,11 @@ static int tegra_pmc_irq_alloc(struct irq_domain *domain, unsigned int virq,
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For interrupts that don't have associated wake events, assign a
|
||||
* dummy hardware IRQ number. This is used in the ->irq_set_type()
|
||||
* and ->irq_set_wake() callbacks to return early for these IRQs.
|
||||
*/
|
||||
if (i == soc->num_wake_events)
|
||||
err = irq_domain_set_hwirq_and_chip(domain, virq, ULONG_MAX,
|
||||
&pmc->irq, pmc);
|
||||
|
@ -1924,6 +1934,7 @@ static int tegra_pmc_irq_set_wake(struct irq_data *data, unsigned int on)
|
|||
unsigned int offset, bit;
|
||||
u32 value;
|
||||
|
||||
/* nothing to do if there's no associated wake event */
|
||||
if (WARN_ON(data->hwirq == ULONG_MAX))
|
||||
return 0;
|
||||
|
||||
|
@ -1954,6 +1965,7 @@ static int tegra_pmc_irq_set_type(struct irq_data *data, unsigned int type)
|
|||
struct tegra_pmc *pmc = irq_data_get_irq_chip_data(data);
|
||||
u32 value;
|
||||
|
||||
/* nothing to do if there's no associated wake event */
|
||||
if (data->hwirq == ULONG_MAX)
|
||||
return 0;
|
||||
|
||||
|
|
Loading…
Reference in New Issue