net: eepro100: Fix EE_*_CMD macros
authorMarek Vasut <marek.vasut+renesas@gmail.com>
Sat, 23 May 2020 14:23:28 +0000 (16:23 +0200)
committerMarek Vasut <marek.vasut+renesas@gmail.com>
Thu, 18 Jun 2020 17:34:40 +0000 (19:34 +0200)
Those macros depended on specific variable names to be declared
at their usage sites, fix this by adding an argument to those
macros and also protect the argument with braces.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
drivers/net/eepro100.c

index 861d39c..a8d617c 100644 (file)
 #define EE_DATA_BITS           16
 
 /* The EEPROM commands include the alway-set leading bit. */
-#define EE_EWENB_CMD           (4 << addr_len)
-#define EE_WRITE_CMD           (5 << addr_len)
-#define EE_READ_CMD            (6 << addr_len)
-#define EE_ERASE_CMD           (7 << addr_len)
+#define EE_EWENB_CMD(addr_len) (4 << (addr_len))
+#define EE_WRITE_CMD(addr_len) (5 << (addr_len))
+#define EE_READ_CMD(addr_len)  (6 << (addr_len))
+#define EE_ERASE_CMD(addr_len) (7 << (addr_len))
 
 /* Receive frame descriptors. */
 struct eepro100_rxfd {
@@ -433,7 +433,7 @@ static int eepro100_txcmd_send(struct eth_device *dev,
 static int read_eeprom(struct eth_device *dev, int location, int addr_len)
 {
        unsigned short retval = 0;
-       int read_cmd = location | EE_READ_CMD;
+       int read_cmd = location | EE_READ_CMD(addr_len);
        int i;
 
        OUTW(dev, EE_ENB & ~EE_CS, SCB_EEPROM);