@@ -36,13 +36,14 @@ static int goodix_berlin_spi_read(void *context, const void *reg_buf,
3636 struct spi_transfer xfers ;
3737 struct spi_message spi_msg ;
3838 const u32 * reg = reg_buf ; /* reg is stored as native u32 at start of buffer */
39- u8 * buf ;
4039 int error ;
4140
4241 if (reg_size != GOODIX_BERLIN_REGISTER_WIDTH )
4342 return - EINVAL ;
4443
45- buf = kzalloc (GOODIX_BERLIN_SPI_READ_PREFIX_LEN + val_size , GFP_KERNEL );
44+ u8 * buf __free (kfree ) =
45+ kzalloc (GOODIX_BERLIN_SPI_READ_PREFIX_LEN + val_size ,
46+ GFP_KERNEL );
4647 if (!buf )
4748 return - ENOMEM ;
4849
@@ -62,12 +63,12 @@ static int goodix_berlin_spi_read(void *context, const void *reg_buf,
6263 spi_message_add_tail (& xfers , & spi_msg );
6364
6465 error = spi_sync (spi , & spi_msg );
65- if (error < 0 )
66+ if (error < 0 ) {
6667 dev_err (& spi -> dev , "spi transfer error, %d" , error );
67- else
68- memcpy ( val_buf , buf + GOODIX_BERLIN_SPI_READ_PREFIX_LEN , val_size );
68+ return error ;
69+ }
6970
70- kfree ( buf );
71+ memcpy ( val_buf , buf + GOODIX_BERLIN_SPI_READ_PREFIX_LEN , val_size );
7172 return error ;
7273}
7374
@@ -79,10 +80,10 @@ static int goodix_berlin_spi_write(void *context, const void *data,
7980 struct spi_transfer xfers ;
8081 struct spi_message spi_msg ;
8182 const u32 * reg = data ; /* reg is stored as native u32 at start of buffer */
82- u8 * buf ;
8383 int error ;
8484
85- buf = kzalloc (GOODIX_BERLIN_SPI_WRITE_PREFIX_LEN + len , GFP_KERNEL );
85+ u8 * buf __free (kfree ) =
86+ kzalloc (GOODIX_BERLIN_SPI_WRITE_PREFIX_LEN + len , GFP_KERNEL );
8687 if (!buf )
8788 return - ENOMEM ;
8889
@@ -100,11 +101,12 @@ static int goodix_berlin_spi_write(void *context, const void *data,
100101 spi_message_add_tail (& xfers , & spi_msg );
101102
102103 error = spi_sync (spi , & spi_msg );
103- if (error < 0 )
104+ if (error < 0 ) {
104105 dev_err (& spi -> dev , "spi transfer error, %d" , error );
106+ return error ;
107+ }
105108
106- kfree (buf );
107- return error ;
109+ return 0 ;
108110}
109111
110112static const struct regmap_config goodix_berlin_spi_regmap_conf = {
0 commit comments