Thread (29 messages) 29 messages, 4 authors, 2017-10-23

[PATCH 7/7] gpio: brcmstb: implement suspend/resume/shutdown

From: opendmb@gmail.com (Doug Berger)
Date: 2017-10-23 23:06:49
Also in: linux-gpio, lkml

On 10/20/2017 05:54 PM, Gregory Fong wrote:
On Thu, Oct 19, 2017 at 11:39 AM, Doug Berger [off-list ref] wrote:
quoted
quoted
quoted
+static int brcmstb_gpio_resume(struct device *dev)
+{
+    struct brcmstb_gpio_priv *priv = dev_get_drvdata(dev);
+    struct brcmstb_gpio_bank *bank;
+    u32 wake_mask = 0;
This isn't really being used as a mask, contrary to appearances.  It's
just tracking whether any active IRQs were seen.  Please change to use a
bool instead and adjust the name accordingly.
I see your point, but I believe it is cleaner to use this to consolidate
the bit masks returned by each __brcmstb_gpio_get_active_irqs() call.
This allows a single test rather than a test per bank.
What about something like this?

bool need_wakeup_event = false;

list_for_each_entry(bank, &priv->bank_list, node) {
        need_wakeup_event |= !!__brcmstb_gpio_get_active_irqs(bank);
        brcmstb_gpio_bank_restore(priv, bank);
}

if (priv->parent_wake_irq && need_wakeup_event)
        pm_wakeup_event(dev, 0);
It's less efficient, but it is not performance sensitive so if you feel
this is more understandable I'll make the change.

Thanks,
    Doug
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help