diff --git a/drivers/soc/qcom/slatecom_spi.c b/drivers/soc/qcom/slatecom_spi.c index 67faac3ca9d2..521ba6a200bc 100644 --- a/drivers/soc/qcom/slatecom_spi.c +++ b/drivers/soc/qcom/slatecom_spi.c @@ -352,7 +352,7 @@ static int slatecom_transfer(void *handle, uint8_t *tx_buf, struct spi_transfer *tx_xfer; struct slate_spi_priv *slate_spi; struct slate_context *cntx; - struct spi_device *spi; + struct spi_device *spi = NULL; int ret = 0; if (!handle || !tx_buf) @@ -428,8 +428,11 @@ void send_event(enum slatecom_event_type event, void slatecom_slatedown_handler(void) { - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; + if (!is_slatecom_ready()) + return; + spi = get_spi_device(); g_slav_status_reg = 0; atomic_set(&ok_to_sleep, 0); pm_runtime_get_sync(&spi->dev); @@ -863,7 +866,7 @@ int slatecom_ahb_read(void *handle, uint32_t ahb_start_addr, int ret = 0; uint8_t cmnd = 0; uint32_t ahb_addr = 0; - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; if (!handle || !read_buf || num_words == 0 || num_words > SLATE_SPI_MAX_WORDS) { @@ -877,7 +880,7 @@ int slatecom_ahb_read(void *handle, uint32_t ahb_start_addr, SLATECOM_ERR("Device busy\n"); return -EBUSY; } - + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex); @@ -928,7 +931,7 @@ int slatecom_ahb_write_bytes(void *handle, uint32_t ahb_start_addr, uint8_t cmnd = 0; uint32_t ahb_addr = 0; uint32_t curr_num_bytes; - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; if (!handle || !write_buf || num_bytes == 0 || num_bytes > (SLATE_SPI_MAX_WORDS * sizeof(int))) { @@ -943,7 +946,7 @@ int slatecom_ahb_write_bytes(void *handle, uint32_t ahb_start_addr, SLATECOM_ERR("Device busy\n"); return -EBUSY; } - + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex); @@ -998,7 +1001,7 @@ int slatecom_ahb_write(void *handle, uint32_t ahb_start_addr, uint32_t ahb_addr = 0; uint32_t curr_num_words; uint32_t curr_num_bytes; - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; if (!handle || !write_buf || num_words == 0 || num_words > SLATE_SPI_MAX_WORDS) { @@ -1013,7 +1016,7 @@ int slatecom_ahb_write(void *handle, uint32_t ahb_start_addr, SLATECOM_ERR("Device busy\n"); return -EBUSY; } - + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex); @@ -1062,13 +1065,11 @@ int slatecom_fifo_write(void *handle, uint32_t num_words, uint32_t size; int ret = 0; uint8_t cmnd = 0; - struct spi_device *spi; + struct spi_device *spi = NULL; if (!is_slatecom_ready()) return -ENODEV; - spi = get_spi_device(); - if (!handle || !write_buf || num_words == 0 || num_words > SLATE_SPI_MAX_WORDS) { SLATECOM_ERR("Invalid param\n"); @@ -1079,7 +1080,7 @@ int slatecom_fifo_write(void *handle, uint32_t num_words, SLATECOM_ERR("Device busy\n"); return -EBUSY; } - + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex); @@ -1116,7 +1117,7 @@ int slatecom_fifo_read(void *handle, uint32_t num_words, uint32_t size; uint8_t cmnd = 0; int ret = 0; - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; if (!handle || !read_buf || num_words == 0 || num_words > SLATE_SPI_MAX_WORDS) { @@ -1131,7 +1132,7 @@ int slatecom_fifo_read(void *handle, uint32_t num_words, SLATECOM_ERR("Device busy\n"); return -EBUSY; } - + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex); @@ -1216,8 +1217,9 @@ int slatecom_reg_write(void *handle, uint8_t reg_start_addr, uint8_t num_regs, void *write_buf) { int ret = 0; - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex); @@ -1294,7 +1296,7 @@ int slatecom_reg_read(void *handle, uint8_t reg_start_addr, uint32_t size; int ret = 0; uint8_t cmnd = 0; - struct spi_device *spi = get_spi_device(); + struct spi_device *spi = NULL; if (!handle || !read_buf || num_regs == 0 || num_regs > SLATE_SPI_MAX_REGS) { @@ -1309,7 +1311,7 @@ int slatecom_reg_read(void *handle, uint8_t reg_start_addr, SLATECOM_ERR("Device busy\n"); return -EBUSY; } - + spi = get_spi_device(); pm_runtime_get_sync(&spi->dev); mutex_lock(&slate_task_mutex);