Fix typo.
[b43-tools.git] / ssb_sprom / ssb_sprom.c
index facacab9f643f0ca9762908f79ce2f0f9610e9c4..f03a4d73c4514faeb1a709a2b47cc2f9166038f5 100644 (file)
@@ -293,10 +293,16 @@ static int modify_value(uint8_t *sprom,
                        sprom[SPROM_BOARDREV + 1] |= (1 << 5);
                break;
        case VALUE_ANTGA:
-               sprom[SPROM_ANTENNA_GAIN + 0] = (v & 0xFF);
+               if (sprom_rev != 4)
+                       sprom[SPROM_ANTENNA_GAIN + 1] = (v & 0xFF);
+               else
+                       sprom[SPROM4_ANTENNA_GAIN + 1] = (v & 0xFF);
                break;
        case VALUE_ANTGBG:
-               sprom[SPROM_ANTENNA_GAIN + 1] = (v & 0xFF);
+               if (sprom_rev != 4)
+                       sprom[SPROM_ANTENNA_GAIN] = (v & 0xFF);
+               else
+                       sprom[SPROM4_ANTENNA_GAIN] = (v & 0xFF);
                break;
        case VALUE_PA0B0:
                sprom[SPROM_PA0B0 + 0] = (v & 0x00FF);
@@ -574,7 +580,7 @@ static void display_value(const uint8_t *sprom,
        case VALUE_ANTGA:
                if (sprom_rev != 4) {
                        desc = "A PHY antenna gain";
-                       offset = SPROM_ANTENNA_GAIN + 1;
+                       offset = SPROM_ANTENNA_GAIN;
                } else {
                        desc = "Antenna 1 Gain";
                        offset = SPROM4_ANTENNA_GAIN;
@@ -1016,12 +1022,12 @@ static int do_cmp_arg(char **argv, int *pos,
        }
        if (strcmp(arg, template) == 0) {
                if (param) {
-                       /* Skip the parameter on the next iteration. */
-                       (*pos)++;
                        if (*param == 0) {
                                prerror("%s needs a parameter\n", arg);
                                return ARG_ERROR;
                        }
+                       /* Skip the parameter on the next iteration. */
+                       (*pos)++;
                }
                return ARG_MATCH;
        }
@@ -1511,7 +1517,8 @@ static int parse_args(int argc, char *argv[])
                        if (err)
                                goto error;
                } else {
-                       prerror("Unrecognized argument: %s\n", argv[i]);
+                       if (!parse_err)
+                               prerror("Unrecognized argument: %s\n", argv[i]);
                        goto out_usage;
                }
                if (parse_err)