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 <joeypabali...@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