linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kiran Gunda <kgunda@codeaurora.org>
To: gregkh@linuxfoundation.org, sboyd@codeaurora.org,
	Kiran Gunda <kgunda@codeaurora.org>,
	Abhijeet Dharmapurikar <adharmap@codeaurora.org>,
	David Collins <collinsd@codeaurora.org>,
	linux-kernel@vger.kernel.org
Cc: linux-arm-msm@vger.kernel.org
Subject: [PATCH V1 04/12] spmi: pmic-arb: optimize qpnpint_irq_set_type function
Date: Thu, 20 Jul 2017 13:01:42 +0530	[thread overview]
Message-ID: <1500535910-28705-5-git-send-email-kgunda@codeaurora.org> (raw)
In-Reply-To: <1500535910-28705-1-git-send-email-kgunda@codeaurora.org>

Optimize the qpnpint_irq_set_type() by using a local variable
to hold the handler type. Also clean up other variable usage.

Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
---
 drivers/spmi/spmi-pmic-arb.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c
index cd78665..0c98495 100644
--- a/drivers/spmi/spmi-pmic-arb.c
+++ b/drivers/spmi/spmi-pmic-arb.c
@@ -587,35 +587,35 @@ static void qpnpint_irq_unmask(struct irq_data *d)
 static int qpnpint_irq_set_type(struct irq_data *d, unsigned int flow_type)
 {
 	struct spmi_pmic_arb_qpnpint_type type;
+	irq_flow_handler_t flow_handler;
 	u8 irq = hwirq_to_irq(d->hwirq);
-	u8 bit_mask_irq = BIT(irq);
 
 	qpnpint_spmi_read(d, QPNPINT_REG_SET_TYPE, &type, sizeof(type));
 
 	if (flow_type & (IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING)) {
-		type.type |= bit_mask_irq;
+		type.type |= BIT(irq);
 		if (flow_type & IRQF_TRIGGER_RISING)
-			type.polarity_high |= bit_mask_irq;
+			type.polarity_high |= BIT(irq);
 		if (flow_type & IRQF_TRIGGER_FALLING)
-			type.polarity_low  |= bit_mask_irq;
+			type.polarity_low  |= BIT(irq);
+
+		flow_handler = handle_edge_irq;
 	} else {
 		if ((flow_type & (IRQF_TRIGGER_HIGH)) &&
 		    (flow_type & (IRQF_TRIGGER_LOW)))
 			return -EINVAL;
 
-		type.type &= ~bit_mask_irq; /* level trig */
+		type.type &= ~BIT(irq); /* level trig */
 		if (flow_type & IRQF_TRIGGER_HIGH)
-			type.polarity_high |= bit_mask_irq;
+			type.polarity_high |= BIT(irq);
 		else
-			type.polarity_low  |= bit_mask_irq;
+			type.polarity_low  |= BIT(irq);
+
+		flow_handler = handle_level_irq;
 	}
 
 	qpnpint_spmi_write(d, QPNPINT_REG_SET_TYPE, &type, sizeof(type));
-
-	if (flow_type & IRQ_TYPE_EDGE_BOTH)
-		irq_set_handler_locked(d, handle_edge_irq);
-	else
-		irq_set_handler_locked(d, handle_level_irq);
+	irq_set_handler_locked(d, flow_handler);
 
 	return 0;
 }
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project

  parent reply	other threads:[~2017-07-20  7:32 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-20  7:31 [PATCH V1 00/12]: spmi: pmic-arb: Support for HW v5 and other fixes Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 01/12] spmi: pmic-arb: remove the read/write access checks Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 02/12] spmi: pmic-arb: rename pa_xx to pmic_arb_xx and other cleanup Kiran Gunda
2017-07-28  0:00   ` Stephen Boyd
2017-07-28  5:54     ` kgunda
2017-07-20  7:31 ` [PATCH V1 03/12] spmi: pmic-arb: clean up pmic_arb_find_apid function Kiran Gunda
2017-07-28  1:18   ` Stephen Boyd
2017-07-28  5:33     ` kgunda
2017-07-20  7:31 ` Kiran Gunda [this message]
2017-07-27 23:46   ` [PATCH V1 04/12] spmi: pmic-arb: optimize qpnpint_irq_set_type function Stephen Boyd
2017-07-20  7:31 ` [PATCH V1 05/12] spmi: pmic-arb: fix memory allocation for mapping_table Kiran Gunda
2017-07-27 23:49   ` Stephen Boyd
2017-07-28  0:01     ` Stephen Boyd
2017-07-28  5:32     ` kgunda
2017-07-20  7:31 ` [PATCH V1 06/12] spmi: pmic-arb: replace the writel_relaxed with __raw_writel Kiran Gunda
2017-07-28  0:01   ` Stephen Boyd
2017-07-28  5:34     ` kgunda
2017-07-20  7:31 ` [PATCH V1 07/12] spmi: pmic-arb: return the value instead of passing by pointer Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 08/12] spmi: pmic-arb: use irq_chip callback to set spmi irq wakeup capability Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 09/12] spmi: pmic-arb: return __iomem pointer instead of offset Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 10/12] spmi: pmic-arb: fix a possible null pointer dereference Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 11/12] spmi: pmic-arb: add support for HW version 5 Kiran Gunda
2017-07-20  7:31 ` [PATCH V1 12/12] spmi: pmic-arb: Remove checking opc value not less than 0 Kiran Gunda

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1500535910-28705-5-git-send-email-kgunda@codeaurora.org \
    --to=kgunda@codeaurora.org \
    --cc=adharmap@codeaurora.org \
    --cc=collinsd@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sboyd@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).