staging: pi433: change order in which driver config the rf69 chip
authorPaulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com>
Tue, 18 Jan 2022 23:05:02 +0000 (12:05 +1300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 25 Jan 2022 15:33:55 +0000 (16:33 +0100)
There is an explicit dependency between modulation and bit rate
configurations. To ensure proper validation of input value for the
set_bit_rate routine, we must ensure that modulation has been set
before.

This patch ensures that set_modulation is always called before
set_bit_rate for both RX and TX routines

Acked-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Paulo Miguel Almeida <paulo.miguel.almeida.rodenas@gmail.com>
Link: https://lore.kernel.org/r/20220118230502.GA4897@mail.google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/pi433/pi433_if.c

index 051c905..523a1bc 100644 (file)
@@ -164,10 +164,10 @@ rf69_set_rx_cfg(struct pi433_device *dev, struct pi433_rx_cfg *rx_cfg)
        ret = rf69_set_frequency(dev->spi, rx_cfg->frequency);
        if (ret < 0)
                return ret;
-       ret = rf69_set_bit_rate(dev->spi, rx_cfg->bit_rate);
+       ret = rf69_set_modulation(dev->spi, rx_cfg->modulation);
        if (ret < 0)
                return ret;
-       ret = rf69_set_modulation(dev->spi, rx_cfg->modulation);
+       ret = rf69_set_bit_rate(dev->spi, rx_cfg->bit_rate);
        if (ret < 0)
                return ret;
        ret = rf69_set_antenna_impedance(dev->spi, rx_cfg->antenna_impedance);
@@ -287,10 +287,10 @@ rf69_set_tx_cfg(struct pi433_device *dev, struct pi433_tx_cfg *tx_cfg)
        ret = rf69_set_frequency(dev->spi, tx_cfg->frequency);
        if (ret < 0)
                return ret;
-       ret = rf69_set_bit_rate(dev->spi, tx_cfg->bit_rate);
+       ret = rf69_set_modulation(dev->spi, tx_cfg->modulation);
        if (ret < 0)
                return ret;
-       ret = rf69_set_modulation(dev->spi, tx_cfg->modulation);
+       ret = rf69_set_bit_rate(dev->spi, tx_cfg->bit_rate);
        if (ret < 0)
                return ret;
        ret = rf69_set_deviation(dev->spi, tx_cfg->dev_frequency);