Skip to contentSkip to conversation

pata_artop: use *switch* in artop_init_one()

PATCH In review Sergey Shtylyov 2 participants 3 messages Feb 4, 2022 – Feb 5, 2022 libata

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 pata_artop: use *switch* in artop_init_one()

This driver uses a string of the *if* statements where a *switch* statement fits better...

---
This patch is against the 'for-next' branch of Damien Le Moal's 'libata.git' repo.

Changes in version 3:
- fixed up the patch subject.

Changes in version 2:
- updated #define DRV_VERSION.

 drivers/ata/pata_artop.c |   24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)
drivers/ata/pata_artop.c +15 -9
Index: libata/drivers/ata/pata_artop.c
===================================================================
@@ -28,7 +28,7 @@
 #include <linux/ata.h>
 
 #define DRV_NAME	"pata_artop"
-#define DRV_VERSION	"0.4.6"
+#define DRV_VERSION	"0.4.7"
 
 /*
  *	The ARTOP has 33 Mhz and "over clocked" timing tables. Until we
@@ -394,16 +394,22 @@ static int artop_init_one (struct pci_de
 	if (rc)
 		return rc;
 
-	if (id->driver_data == 0)	/* 6210 variant */
+	switch (id->driver_data) {
+	case 0:		/* 6210 variant */
 		ppi[0] = &info_6210;
-	else if (id->driver_data == 1)	/* 6260 */
+		break;
+	case 1:		/* 6260 */
 		ppi[0] = &info_626x;
-	else if (id->driver_data == 2)	{ /* 6280 or 6280 + fast */
-		unsigned long io = pci_resource_start(pdev, 4);
-
-		ppi[0] = &info_628x;
-		if (inb(io) & 0x10)
-			ppi[0] = &info_628x_fast;
+		break;
+	case 2:		/* 6280 or 6280 + fast */
+		{
+			unsigned long io = pci_resource_start(pdev, 4);
+
+			ppi[0] = &info_628x;
+			if (inb(io) & 0x10)
+				ppi[0] = &info_628x_fast;
+		}
+		break;
 	}
 
 	BUG_ON(ppi[0] == NULL);
#1 lore raw
Quoted 48 lines · Sergey Shtylyov

This driver uses a string of the *if* statements where a *switch* statement fits better...

---
This patch is against the 'for-next' branch of Damien Le Moal's 'libata.git' repo.

Changes in version 3:
- fixed up the patch subject.

Changes in version 2:
- updated #define DRV_VERSION.

 drivers/ata/pata_artop.c |   24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

Index: libata/drivers/ata/pata_artop.c
===================================================================

drivers/ata/pata_artop.c +5 -8
@@ -28,7 +28,7 @@
 #include <linux/ata.h>
 
 #define DRV_NAME	"pata_artop"
-#define DRV_VERSION	"0.4.6"
+#define DRV_VERSION	"0.4.7"
 
 /*
  *	The ARTOP has 33 Mhz and "over clocked" timing tables. Until we
@@ -394,16 +394,22 @@ static int artop_init_one (struct pci_de
 	if (rc)
 		return rc;
 
-	if (id->driver_data == 0)	/* 6210 variant */
+	switch (id->driver_data) {
+	case 0:		/* 6210 variant */
 		ppi[0] = &info_6210;
-	else if (id->driver_data == 1)	/* 6260 */
+		break;
+	case 1:		/* 6260 */
 		ppi[0] = &info_626x;
-	else if (id->driver_data == 2)	{ /* 6280 or 6280 + fast */
-		unsigned long io = pci_resource_start(pdev, 4);
-
-		ppi[0] = &info_628x;
-		if (inb(io) & 0x10)

drivers/ata/pata_artop.c static int artop_init_one (struct pci_de · line 411

Quoted 10 lines
drivers/ata/pata_artop.c +9 -1
-			ppi[0] = &info_628x_fast;
+		break;
+	case 2:		/* 6280 or 6280 + fast */
+		{
+			unsigned long io = pci_resource_start(pdev, 4);
+
+			ppi[0] = &info_628x;
+			if (inb(io) & 0x10)
+				ppi[0] = &info_628x_fast;
+		}

Do you really need the local variable ?
I would make this:

		if (pci_resource_start(pdev, 4) & 0x10)
			ppi[0] = &info_628x_fast;
		else
			ppi[0] = &info_628x;

simpler :)

Quoted 4 lines
drivers/ata/pata_artop.c +1 -0
+		break;
 	}
 
 	BUG_ON(ppi[0] == NULL);
Signature · 2 lines
Damien Le Moal
Western Digital Research
#2 lore raw
Quoted 63 lines · Damien Le Moal
Quoted 48 lines

This driver uses a string of the *if* statements where a *switch* statement fits better...

---
This patch is against the 'for-next' branch of Damien Le Moal's 'libata.git' repo.

Changes in version 3:
- fixed up the patch subject.

Changes in version 2:
- updated #define DRV_VERSION.

 drivers/ata/pata_artop.c |   24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

Index: libata/drivers/ata/pata_artop.c
===================================================================

drivers/ata/pata_artop.c +5 -8
@@ -28,7 +28,7 @@
 #include <linux/ata.h>
 
 #define DRV_NAME	"pata_artop"
-#define DRV_VERSION	"0.4.6"
+#define DRV_VERSION	"0.4.7"
 
 /*
  *	The ARTOP has 33 Mhz and "over clocked" timing tables. Until we
@@ -394,16 +394,22 @@ static int artop_init_one (struct pci_de
 	if (rc)
 		return rc;
 
-	if (id->driver_data == 0)	/* 6210 variant */
+	switch (id->driver_data) {
+	case 0:		/* 6210 variant */
 		ppi[0] = &info_6210;
-	else if (id->driver_data == 1)	/* 6260 */
+		break;
+	case 1:		/* 6260 */
 		ppi[0] = &info_626x;
-	else if (id->driver_data == 2)	{ /* 6280 or 6280 + fast */
-		unsigned long io = pci_resource_start(pdev, 4);
-
-		ppi[0] = &info_628x;
-		if (inb(io) & 0x10)

drivers/ata/pata_artop.c static int artop_init_one (struct pci_de · line 411

Quoted 10 lines
drivers/ata/pata_artop.c +9 -1
-			ppi[0] = &info_628x_fast;
+		break;
+	case 2:		/* 6280 or 6280 + fast */
+		{
+			unsigned long io = pci_resource_start(pdev, 4);
+
+			ppi[0] = &info_628x;
+			if (inb(io) & 0x10)
+				ppi[0] = &info_628x_fast;
+		}

Do you really need the local variable ?
I would make this:

Quoted 6 lines
		if (pci_resource_start(pdev, 4) & 0x10)
			ppi[0] = &info_628x_fast;
		else
			ppi[0] = &info_628x;

simpler :)

Yeah! :-)
But a matter of another patch, I think...

[...]

MBR, Sergey