From c803dd48f0539cb6adcbbcf41c758502e1e102cb Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 9 Jan 2013 10:12:14 +0300 Subject: [PATCH] staging: sb105x: clean up interface type test IIR_RS232 is zero so "if (IIR_RS232 == (b_ret & IIR_RS232))" is always true so RS232 was always chosen by default. The test should be "if (0 == (b_ret & 0x30)) { ". The other tests should also be in that format. This does change how the code works... If 0x30 is set then it now defaults to RS232 instead of RS485. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman --- drivers/staging/sb105x/sb_mp_register.h | 2 +- drivers/staging/sb105x/sb_pci_mp.c | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/drivers/staging/sb105x/sb_mp_register.h b/drivers/staging/sb105x/sb_mp_register.h index 5480ae11368f..a2087f5b0d1a 100644 --- a/drivers/staging/sb105x/sb_mp_register.h +++ b/drivers/staging/sb105x/sb_mp_register.h @@ -45,7 +45,7 @@ #define IIR_RS232 0x00 /* RS232 type */ #define IIR_RS422 0x10 /* RS422 type */ #define IIR_RS485 0x20 /* RS485 type */ -#define IIR_UNKNOWN 0x30 /* unknown type */ +#define IIR_TYPE_MASK 0x30 /* Interrrupt Mask Register */ #define MP_OPTR_IMR0 0x0C /* port0 ~ port8 */ diff --git a/drivers/staging/sb105x/sb_pci_mp.c b/drivers/staging/sb105x/sb_pci_mp.c index c34ebff6bb04..3da44dff24bf 100644 --- a/drivers/staging/sb105x/sb_pci_mp.c +++ b/drivers/staging/sb105x/sb_pci_mp.c @@ -2851,18 +2851,12 @@ static void __init multi_init_ports(void) printk("IIR_RET = %x\n",b_ret); } - if(IIR_RS232 == (b_ret & IIR_RS232)) - { - mtpt->interface = RS232; - } - if(IIR_RS422 == (b_ret & IIR_RS422)) - { + /* default to RS232 */ + mtpt->interface = RS232; + if (IIR_RS422 == (b_ret & IIR_TYPE_MASK)) mtpt->interface = RS422PTP; - } - if(IIR_RS485 == (b_ret & IIR_RS485)) - { + if (IIR_RS485 == (b_ret & IIR_TYPE_MASK)) mtpt->interface = RS485NE; - } } } } -- 2.30.2