aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi.c')
-rw-r--r--drivers/spi/spi.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
index 22aa41cace82..e0531baf2782 100644
--- a/drivers/spi/spi.c
+++ b/drivers/spi/spi.c
@@ -350,14 +350,12 @@ static DEFINE_MUTEX(board_lock);
350struct spi_device *spi_alloc_device(struct spi_master *master) 350struct spi_device *spi_alloc_device(struct spi_master *master)
351{ 351{
352 struct spi_device *spi; 352 struct spi_device *spi;
353 struct device *dev = master->dev.parent;
354 353
355 if (!spi_master_get(master)) 354 if (!spi_master_get(master))
356 return NULL; 355 return NULL;
357 356
358 spi = kzalloc(sizeof(*spi), GFP_KERNEL); 357 spi = kzalloc(sizeof(*spi), GFP_KERNEL);
359 if (!spi) { 358 if (!spi) {
360 dev_err(dev, "cannot alloc spi_device\n");
361 spi_master_put(master); 359 spi_master_put(master);
362 return NULL; 360 return NULL;
363 } 361 }
@@ -624,6 +622,8 @@ static int spi_map_buf(struct spi_master *master, struct device *dev,
624 } 622 }
625 623
626 ret = dma_map_sg(dev, sgt->sgl, sgt->nents, dir); 624 ret = dma_map_sg(dev, sgt->sgl, sgt->nents, dir);
625 if (!ret)
626 ret = -ENOMEM;
627 if (ret < 0) { 627 if (ret < 0) {
628 sg_free_table(sgt); 628 sg_free_table(sgt);
629 return ret; 629 return ret;
@@ -652,8 +652,8 @@ static int __spi_map_msg(struct spi_master *master, struct spi_message *msg)
652 if (!master->can_dma) 652 if (!master->can_dma)
653 return 0; 653 return 0;
654 654
655 tx_dev = &master->dma_tx->dev->device; 655 tx_dev = master->dma_tx->device->dev;
656 rx_dev = &master->dma_rx->dev->device; 656 rx_dev = master->dma_rx->device->dev;
657 657
658 list_for_each_entry(xfer, &msg->transfers, transfer_list) { 658 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
659 if (!master->can_dma(master, msg->spi, xfer)) 659 if (!master->can_dma(master, msg->spi, xfer))
@@ -692,8 +692,8 @@ static int spi_unmap_msg(struct spi_master *master, struct spi_message *msg)
692 if (!master->cur_msg_mapped || !master->can_dma) 692 if (!master->cur_msg_mapped || !master->can_dma)
693 return 0; 693 return 0;
694 694
695 tx_dev = &master->dma_tx->dev->device; 695 tx_dev = master->dma_tx->device->dev;
696 rx_dev = &master->dma_rx->dev->device; 696 rx_dev = master->dma_rx->device->dev;
697 697
698 list_for_each_entry(xfer, &msg->transfers, transfer_list) { 698 list_for_each_entry(xfer, &msg->transfers, transfer_list) {
699 if (!master->can_dma(master, msg->spi, xfer)) 699 if (!master->can_dma(master, msg->spi, xfer))