Am 09.08.2018 um 14:33 schrieb Ben Whitten:
> Instead of passing around the spi device we instead pass around our
> driver data directly.
> 
> Signed-off-by: Ben Whitten <ben.whit...@lairdtech.com>
> ---
>  drivers/net/lora/sx1301.c | 305 
> +++++++++++++++++++++++-----------------------
>  1 file changed, 155 insertions(+), 150 deletions(-)
> 
> diff --git a/drivers/net/lora/sx1301.c b/drivers/net/lora/sx1301.c
> index 3c09f5a..7324001 100644
> --- a/drivers/net/lora/sx1301.c
> +++ b/drivers/net/lora/sx1301.c
> @@ -73,24 +73,26 @@ struct spi_sx1301 {
>  };
>  
>  struct sx1301_priv {
> +     struct device           *dev;
> +     struct spi_device       *spi;

Obviously this is not a long-term solution, but as interim step it'll
have to do.

>       struct lora_priv lora;
>       struct gpio_desc *rst_gpio;
>       u8 cur_page;
>       struct spi_controller *radio_a_ctrl, *radio_b_ctrl;
>  };
>  
> -static int sx1301_read_burst(struct spi_device *spi, u8 reg, u8 *val, size_t 
> len)
> +static int sx1301_read_burst(struct sx1301_priv *priv, u8 reg, u8 *val, 
> size_t len)
>  {
>       u8 addr = reg & 0x7f;
> -     return spi_write_then_read(spi, &addr, 1, val, len);
> +     return spi_write_then_read(priv->spi, &addr, 1, val, len);
>  }
>  
> -static int sx1301_read(struct spi_device *spi, u8 reg, u8 *val)
> +static int sx1301_read(struct sx1301_priv *priv, u8 reg, u8 *val)
>  {
> -     return sx1301_read_burst(spi, reg, val, 1);
> +     return sx1301_read_burst(priv, reg, val, 1);
>  }
>  
> -static int sx1301_write_burst(struct spi_device *spi, u8 reg, const u8 *val, 
> size_t len)
> +static int sx1301_write_burst(struct sx1301_priv *priv, u8 reg, const u8 
> *val, size_t len)
>  {
>       u8 addr = reg | BIT(7);
>       struct spi_transfer xfr[2] = {

This hunk did not apply for some reason, I've manually re-applied it.

[...]
> @@ -654,22 +646,35 @@ static int sx1301_probe(struct spi_device *spi)
>       priv->rst_gpio = rst;
>       priv->cur_page = 0xff;
>  
> -     spi_set_drvdata(spi, netdev);
> +     spi_set_drvdata(spi, priv);

This change seems unnecessary and counter-productive for unregistration.

Otherwise applying.

Thanks,
Andreas

-- 
SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)

Reply via email to