From: Joey Pabalinas <joeypabalinas@gmail.com>
To: linux-kernel@vger.kernel.org
Cc: Joey Pabalinas <joeypabalinas@gmail.com>
Subject: [PATCH 4/4] tty/nozomi: refactor conditional statements
Date: Fri, 23 Mar 2018 14:31:27 -1000 [thread overview]
Message-ID: <20180324003127.4287-5-joeypabalinas@gmail.com> (raw)
In-Reply-To: <20180324003127.4287-1-joeypabalinas@gmail.com>
Reduce unnecessarily deep nesting of blocks and simplify
control flow (e.g. "if/else" constructs changed to "if/return"
and single case "switch" statements changed to "if" conditionals
where possible).
Signed-off-by: Joey Pabalinas <joeypabalinas@gmail.com>
1 file changed, 52 insertions(+), 50 deletions(-)
diff --git a/drivers/tty/nozomi.c b/drivers/tty/nozomi.c
index a5074a59d3e3d33e68..0ea3e1de23c093e808 100644
--- a/drivers/tty/nozomi.c
+++ b/drivers/tty/nozomi.c
@@ -694,12 +694,13 @@ static void enable_transmit_ul(enum port_type port, struct nozomi *dc)
{
static const u16 mask[] = {MDM_UL, DIAG_UL, APP1_UL, APP2_UL, CTRL_UL};
- if (port < NOZOMI_MAX_PORTS) {
- dc->last_ier |= mask[port];
- writew(dc->last_ier, dc->reg_ier);
- } else {
+ if (port >= NOZOMI_MAX_PORTS) {
dev_err(&dc->pdev->dev, "Called with wrong port?\n");
+ return;
}
+
+ dc->last_ier |= mask[port];
+ writew(dc->last_ier, dc->reg_ier);
}
/* Disable uplink interrupts */
@@ -708,12 +709,13 @@ static void disable_transmit_ul(enum port_type port, struct nozomi *dc)
static const u16 mask[] =
{~MDM_UL, ~DIAG_UL, ~APP1_UL, ~APP2_UL, ~CTRL_UL};
- if (port < NOZOMI_MAX_PORTS) {
- dc->last_ier &= mask[port];
- writew(dc->last_ier, dc->reg_ier);
- } else {
+ if (port >= NOZOMI_MAX_PORTS) {
dev_err(&dc->pdev->dev, "Called with wrong port?\n");
+ return;
}
+
+ dc->last_ier &= mask[port];
+ writew(dc->last_ier, dc->reg_ier);
}
/* Enable downlink interrupts */
@@ -721,12 +723,13 @@ static void enable_transmit_dl(enum port_type port, struct nozomi *dc)
{
static const u16 mask[] = {MDM_DL, DIAG_DL, APP1_DL, APP2_DL, CTRL_DL};
- if (port < NOZOMI_MAX_PORTS) {
- dc->last_ier |= mask[port];
- writew(dc->last_ier, dc->reg_ier);
- } else {
+ if (port >= NOZOMI_MAX_PORTS) {
dev_err(&dc->pdev->dev, "Called with wrong port?\n");
+ return;
}
+
+ dc->last_ier |= mask[port];
+ writew(dc->last_ier, dc->reg_ier);
}
/* Disable downlink interrupts */
@@ -735,12 +738,13 @@ static void disable_transmit_dl(enum port_type port, struct nozomi *dc)
static const u16 mask[] =
{~MDM_DL, ~DIAG_DL, ~APP1_DL, ~APP2_DL, ~CTRL_DL};
- if (port < NOZOMI_MAX_PORTS) {
- dc->last_ier &= mask[port];
- writew(dc->last_ier, dc->reg_ier);
- } else {
+ if (port >= NOZOMI_MAX_PORTS) {
dev_err(&dc->pdev->dev, "Called with wrong port?\n");
+ return;
}
+
+ dc->last_ier &= mask[port];
+ writew(dc->last_ier, dc->reg_ier);
}
/*
@@ -1028,33 +1032,31 @@ static int handle_data_dl(struct nozomi *dc, enum port_type port, u8 *toggle,
if (*toggle == 0 && read_iir & mask1) {
if (receive_data(port, dc)) {
writew(mask1, dc->reg_fcr);
- *toggle = !(*toggle);
+ *toggle = !*toggle;
}
- if (read_iir & mask2) {
- if (receive_data(port, dc)) {
- writew(mask2, dc->reg_fcr);
- *toggle = !(*toggle);
- }
+ if (read_iir & mask2 && receive_data(port, dc)) {
+ writew(mask2, dc->reg_fcr);
+ *toggle = !*toggle;
}
+
+ return 1;
} else if (*toggle == 1 && read_iir & mask2) {
if (receive_data(port, dc)) {
writew(mask2, dc->reg_fcr);
- *toggle = !(*toggle);
+ *toggle = !*toggle;
}
- if (read_iir & mask1) {
- if (receive_data(port, dc)) {
- writew(mask1, dc->reg_fcr);
- *toggle = !(*toggle);
- }
+ if (read_iir & mask1 && receive_data(port, dc)) {
+ writew(mask1, dc->reg_fcr);
+ *toggle = !*toggle;
}
- } else {
- dev_err(&dc->pdev->dev, "port out of sync!, toggle:%d\n",
- *toggle);
- return 0;
+
+ return 1;
}
- return 1;
+
+ dev_err(&dc->pdev->dev, "port out of sync!, toggle:%d\n", *toggle);
+ return 0;
}
/*
@@ -1087,6 +1089,7 @@ static int handle_data_ul(struct nozomi *dc, enum port_type port, u16 read_iir)
}
}
+ return 1;
} else if (*toggle == 1 && read_iir & MDM_UL2) {
dc->last_ier &= ~MDM_UL;
writew(dc->last_ier, dc->reg_ier);
@@ -1107,12 +1110,13 @@ static int handle_data_ul(struct nozomi *dc, enum port_type port, u16 read_iir)
*toggle = !*toggle;
}
}
- } else {
- writew(read_iir & MDM_UL, dc->reg_fcr);
- dev_err(&dc->pdev->dev, "port out of sync!\n");
- return 0;
+
+ return 1;
}
- return 1;
+
+ writew(read_iir & MDM_UL, dc->reg_fcr);
+ dev_err(&dc->pdev->dev, "port out of sync!\n");
+ return 0;
}
static irqreturn_t interrupt_handler(int irq, void *dev_id)
@@ -1121,7 +1125,7 @@ static irqreturn_t interrupt_handler(int irq, void *dev_id)
unsigned int i;
u16 read_iir;
- if (!dc)
+ if (unlikely(!dc))
return IRQ_NONE;
spin_lock(&dc->spin_mutex);
@@ -1344,8 +1348,9 @@ static int nozomi_card_init(struct pci_dev *pdev,
ret = pci_request_regions(dc->pdev, NOZOMI_NAME);
if (ret) {
- /* nozomi_private.io_addr */
- dev_err(&pdev->dev, "I/O address 0x%04x already in use\n", 0);
+ dev_err(&pdev->dev, "I/O address 0x%04x already in use\n",
+ /* (int) nozomi_private.io_addr */ 0);
+
goto err_disable_device;
}
@@ -1752,18 +1757,15 @@ static int ntty_ioctl(struct tty_struct *tty,
DBG1("******** IOCTL, cmd: %d", cmd);
- switch (cmd) {
- case TIOCMIWAIT: {
- struct async_icount cprev = port->tty_icount;
- rval = wait_event_interruptible(port->tty_wait,
- ntty_cflags_changed(port, arg, &cprev));
- break;
- }
- default:
+ if (cmd != TIOCMIWAIT) {
DBG1("ERR: 0x%08X, %d", cmd, cmd);
- break;
+ goto no_ioctl;
}
+ rval = wait_event_interruptible(port->tty_wait,
+ ntty_cflags_changed(port, arg, &port->tty_icount));
+
+no_ioctl:
return rval;
}
--
2.16.3
prev parent reply other threads:[~2018-03-24 0:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-24 0:31 [PATCH 0/4] tty/nozomi: general module cleanup Joey Pabalinas
2018-03-24 0:31 ` [PATCH 1/4] tty/nozomi: cleanup DUMP() macro Joey Pabalinas
2018-03-24 0:31 ` [PATCH 2/4] tty/nozomi: fix inconsistent indentation Joey Pabalinas
2018-03-24 0:31 ` [PATCH 3/4] tty/nozomi: improve code readability and style Joey Pabalinas
2018-03-24 0:31 ` Joey Pabalinas [this message]
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=20180324003127.4287-5-joeypabalinas@gmail.com \
--to=joeypabalinas@gmail.com \
--cc=linux-kernel@vger.kernel.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).