diff options
author | anish kumar <anish198519851985@gmail.com> | 2011-06-27 13:08:00 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-06-28 14:39:52 -0700 |
commit | 3fd47d44860aaac5b6f55bb3522e32f32e1be9e6 (patch) | |
tree | 0cb416ac14d97922c880c2a544c1f3ff75f0c47e /drivers/staging | |
parent | d5614701df8a3c7abf439d04143f1b25acc0f7c5 (diff) | |
download | talos-obmc-linux-3fd47d44860aaac5b6f55bb3522e32f32e1be9e6.tar.gz talos-obmc-linux-3fd47d44860aaac5b6f55bb3522e32f32e1be9e6.zip |
staging:iio:accel:kxsd9 replace kmallocs in power_up with use of already allocated buffer.
Signed-off-by: anish kumar <anish198519851985@gmail.com>
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging')
-rw-r--r-- | drivers/staging/iio/accel/kxsd9.c | 38 |
1 files changed, 9 insertions, 29 deletions
diff --git a/drivers/staging/iio/accel/kxsd9.c b/drivers/staging/iio/accel/kxsd9.c index 7d7852a4f1ec..c8a358a5df87 100644 --- a/drivers/staging/iio/accel/kxsd9.c +++ b/drivers/staging/iio/accel/kxsd9.c @@ -251,52 +251,32 @@ static const struct attribute_group kxsd9_attribute_group = { .attrs = kxsd9_attributes, }; -static int __devinit kxsd9_power_up(struct spi_device *spi) +static int __devinit kxsd9_power_up(struct kxsd9_state *st) { - int ret; struct spi_transfer xfers[2] = { { .bits_per_word = 8, .len = 2, .cs_change = 1, + .tx_buf = st->tx, }, { .bits_per_word = 8, .len = 2, .cs_change = 1, + .tx_buf = st->tx + 2, }, }; struct spi_message msg; - u8 *tx2; - u8 *tx = kmalloc(2, GFP_KERNEL); - - if (tx == NULL) { - ret = -ENOMEM; - goto error_ret; - } - tx2 = kmalloc(2, GFP_KERNEL); - if (tx2 == NULL) { - ret = -ENOMEM; - goto error_free_tx; - } - tx[0] = 0x0d; - tx[1] = 0x40; - - tx2[0] = 0x0c; - tx2[1] = 0x9b; + st->tx[0] = 0x0d; + st->tx[1] = 0x40; + st->tx[2] = 0x0c; + st->tx[3] = 0x9b; - xfers[0].tx_buf = tx; - xfers[1].tx_buf = tx2; spi_message_init(&msg); spi_message_add_tail(&xfers[0], &msg); spi_message_add_tail(&xfers[1], &msg); - ret = spi_sync(spi, &msg); - - kfree(tx2); -error_free_tx: - kfree(tx); -error_ret: - return ret; + return spi_sync(st->us, &msg); }; static const struct iio_info kxsd9_info = { @@ -331,7 +311,7 @@ static int __devinit kxsd9_probe(struct spi_device *spi) spi->mode = SPI_MODE_0; spi_setup(spi); - kxsd9_power_up(spi); + kxsd9_power_up(st); return 0; |