Loading drivers/spi/spi_qsd.c +1 −53 Original line number Diff line number Diff line Loading @@ -32,8 +32,6 @@ #include <linux/io.h> #include <linux/debugfs.h> #include <linux/gpio.h> #include <linux/remote_spinlock.h> #include <linux/pm_qos.h> #include <linux/of.h> #include <linux/of_gpio.h> #include <linux/dma-mapping.h> Loading Loading @@ -2002,9 +2000,6 @@ static int msm_spi_transfer_one_message(struct spi_master *master, if (!pm_runtime_enabled(dd->dev)) msm_spi_pm_resume_runtime(dd->dev); if (dd->use_rlock) remote_mutex_lock(&dd->r_lock); if (!msm_spi_is_valid_state(dd)) { dev_err(dd->dev, "%s: SPI operational state not valid\n", __func__); Loading @@ -2025,9 +2020,6 @@ static int msm_spi_transfer_one_message(struct spi_master *master, dd->transfer_pending = 0; spin_unlock_irqrestore(&dd->queue_lock, flags); if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); mutex_unlock(&dd->core_lock); /* Loading Loading @@ -2097,9 +2089,6 @@ static int msm_spi_setup(struct spi_device *spi) return -EBUSY; } if (dd->use_rlock) remote_mutex_lock(&dd->r_lock); spi_ioc = readl_relaxed(dd->base + SPI_IO_CONTROL); mask = SPI_IO_C_CS_N_POLARITY_0 << spi->chip_select; if (spi->mode & SPI_CS_HIGH) Loading @@ -2118,9 +2107,6 @@ static int msm_spi_setup(struct spi_device *spi) /* Ensure previous write completed before disabling the clocks */ mb(); if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); /* Counter-part of system-resume when runtime-pm is not enabled. */ if (!pm_runtime_enabled(dd->dev)) msm_spi_pm_suspend_runtime(dd->dev); Loading Loading @@ -2922,28 +2908,7 @@ skip_dma_resources: goto err_probe_reqmem; } if (pdata && pdata->rsl_id) { struct remote_mutex_id rmid; rmid.r_spinlock_id = pdata->rsl_id; rmid.delay_us = SPI_TRYLOCK_DELAY; rc = remote_mutex_init(&dd->r_lock, &rmid); if (rc) { dev_err(&pdev->dev, "%s: unable to init remote_mutex " "(%s), (rc=%d)\n", rmid.r_spinlock_id, __func__, rc); goto err_probe_rlock_init; } dd->use_rlock = 1; dd->pm_lat = pdata->pm_lat; pm_qos_add_request(&qos_req_list, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); } mutex_lock(&dd->core_lock); if (dd->use_rlock) remote_mutex_lock(&dd->r_lock); locked = 1; dd->dev = &pdev->dev; Loading Loading @@ -3037,8 +3002,6 @@ skip_dma_resources: goto err_probe_irq; msm_spi_disable_irqs(dd); if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); mutex_unlock(&dd->core_lock); locked = 0; Loading Loading @@ -3080,13 +3043,8 @@ err_probe_clk_enable: err_probe_pclk_get: clk_put(dd->clk); err_probe_clk_get: if (locked) { if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); if (locked) mutex_unlock(&dd->core_lock); } err_probe_rlock_init: err_probe_reqmem: err_probe_res: spi_master_put(master); Loading Loading @@ -3136,9 +3094,6 @@ static int msm_spi_pm_suspend_runtime(struct device *device) msm_spi_free_gpios(dd); if (pm_qos_request_active(&qos_req_list)) pm_qos_update_request(&qos_req_list, PM_QOS_DEFAULT_VALUE); suspend_exit: return 0; } Loading @@ -3160,10 +3115,6 @@ static int msm_spi_pm_resume_runtime(struct device *device) if (!dd->suspended) return 0; if (pm_qos_request_active(&qos_req_list)) pm_qos_update_request(&qos_req_list, dd->pm_lat); /* Configure the spi clk, miso, mosi and cs gpio */ if (dd->pdata->gpio_config) { ret = dd->pdata->gpio_config(); Loading Loading @@ -3230,8 +3181,6 @@ static int msm_spi_resume(struct device *device) #else #define msm_spi_suspend NULL #define msm_spi_resume NULL #define msm_spi_pm_suspend_runtime NULL #define msm_spi_pm_resume_runtime NULL #endif /* CONFIG_PM */ static int msm_spi_remove(struct platform_device *pdev) Loading @@ -3239,7 +3188,6 @@ static int msm_spi_remove(struct platform_device *pdev) struct spi_master *master = platform_get_drvdata(pdev); struct msm_spi *dd = spi_master_get_devdata(master); pm_qos_remove_request(&qos_req_list); spi_debugfs_exit(dd); sysfs_remove_group(&pdev->dev.kobj, &dev_attr_grp); Loading drivers/spi/spi_qsd.h +0 −6 Original line number Diff line number Diff line Loading @@ -216,8 +216,6 @@ struct spi_dmov_cmd { dma_addr_t cmd_ptr; }; static struct pm_qos_request qos_req_list; #ifdef CONFIG_DEBUG_FS /* Used to create debugfs entries */ static const struct { Loading Loading @@ -369,10 +367,6 @@ struct msm_spi { struct dentry *debugfs_spi_regs[ARRAY_SIZE(debugfs_spi_regs)]; #endif struct msm_spi_platform_data *pdata; /* Platform data */ /* Remote Spinlock Data */ bool use_rlock; remote_mutex_t r_lock; uint32_t pm_lat; /* When set indicates multiple transfers in a single message */ bool multi_xfr; bool done; Loading Loading
drivers/spi/spi_qsd.c +1 −53 Original line number Diff line number Diff line Loading @@ -32,8 +32,6 @@ #include <linux/io.h> #include <linux/debugfs.h> #include <linux/gpio.h> #include <linux/remote_spinlock.h> #include <linux/pm_qos.h> #include <linux/of.h> #include <linux/of_gpio.h> #include <linux/dma-mapping.h> Loading Loading @@ -2002,9 +2000,6 @@ static int msm_spi_transfer_one_message(struct spi_master *master, if (!pm_runtime_enabled(dd->dev)) msm_spi_pm_resume_runtime(dd->dev); if (dd->use_rlock) remote_mutex_lock(&dd->r_lock); if (!msm_spi_is_valid_state(dd)) { dev_err(dd->dev, "%s: SPI operational state not valid\n", __func__); Loading @@ -2025,9 +2020,6 @@ static int msm_spi_transfer_one_message(struct spi_master *master, dd->transfer_pending = 0; spin_unlock_irqrestore(&dd->queue_lock, flags); if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); mutex_unlock(&dd->core_lock); /* Loading Loading @@ -2097,9 +2089,6 @@ static int msm_spi_setup(struct spi_device *spi) return -EBUSY; } if (dd->use_rlock) remote_mutex_lock(&dd->r_lock); spi_ioc = readl_relaxed(dd->base + SPI_IO_CONTROL); mask = SPI_IO_C_CS_N_POLARITY_0 << spi->chip_select; if (spi->mode & SPI_CS_HIGH) Loading @@ -2118,9 +2107,6 @@ static int msm_spi_setup(struct spi_device *spi) /* Ensure previous write completed before disabling the clocks */ mb(); if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); /* Counter-part of system-resume when runtime-pm is not enabled. */ if (!pm_runtime_enabled(dd->dev)) msm_spi_pm_suspend_runtime(dd->dev); Loading Loading @@ -2922,28 +2908,7 @@ skip_dma_resources: goto err_probe_reqmem; } if (pdata && pdata->rsl_id) { struct remote_mutex_id rmid; rmid.r_spinlock_id = pdata->rsl_id; rmid.delay_us = SPI_TRYLOCK_DELAY; rc = remote_mutex_init(&dd->r_lock, &rmid); if (rc) { dev_err(&pdev->dev, "%s: unable to init remote_mutex " "(%s), (rc=%d)\n", rmid.r_spinlock_id, __func__, rc); goto err_probe_rlock_init; } dd->use_rlock = 1; dd->pm_lat = pdata->pm_lat; pm_qos_add_request(&qos_req_list, PM_QOS_CPU_DMA_LATENCY, PM_QOS_DEFAULT_VALUE); } mutex_lock(&dd->core_lock); if (dd->use_rlock) remote_mutex_lock(&dd->r_lock); locked = 1; dd->dev = &pdev->dev; Loading Loading @@ -3037,8 +3002,6 @@ skip_dma_resources: goto err_probe_irq; msm_spi_disable_irqs(dd); if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); mutex_unlock(&dd->core_lock); locked = 0; Loading Loading @@ -3080,13 +3043,8 @@ err_probe_clk_enable: err_probe_pclk_get: clk_put(dd->clk); err_probe_clk_get: if (locked) { if (dd->use_rlock) remote_mutex_unlock(&dd->r_lock); if (locked) mutex_unlock(&dd->core_lock); } err_probe_rlock_init: err_probe_reqmem: err_probe_res: spi_master_put(master); Loading Loading @@ -3136,9 +3094,6 @@ static int msm_spi_pm_suspend_runtime(struct device *device) msm_spi_free_gpios(dd); if (pm_qos_request_active(&qos_req_list)) pm_qos_update_request(&qos_req_list, PM_QOS_DEFAULT_VALUE); suspend_exit: return 0; } Loading @@ -3160,10 +3115,6 @@ static int msm_spi_pm_resume_runtime(struct device *device) if (!dd->suspended) return 0; if (pm_qos_request_active(&qos_req_list)) pm_qos_update_request(&qos_req_list, dd->pm_lat); /* Configure the spi clk, miso, mosi and cs gpio */ if (dd->pdata->gpio_config) { ret = dd->pdata->gpio_config(); Loading Loading @@ -3230,8 +3181,6 @@ static int msm_spi_resume(struct device *device) #else #define msm_spi_suspend NULL #define msm_spi_resume NULL #define msm_spi_pm_suspend_runtime NULL #define msm_spi_pm_resume_runtime NULL #endif /* CONFIG_PM */ static int msm_spi_remove(struct platform_device *pdev) Loading @@ -3239,7 +3188,6 @@ static int msm_spi_remove(struct platform_device *pdev) struct spi_master *master = platform_get_drvdata(pdev); struct msm_spi *dd = spi_master_get_devdata(master); pm_qos_remove_request(&qos_req_list); spi_debugfs_exit(dd); sysfs_remove_group(&pdev->dev.kobj, &dev_attr_grp); Loading
drivers/spi/spi_qsd.h +0 −6 Original line number Diff line number Diff line Loading @@ -216,8 +216,6 @@ struct spi_dmov_cmd { dma_addr_t cmd_ptr; }; static struct pm_qos_request qos_req_list; #ifdef CONFIG_DEBUG_FS /* Used to create debugfs entries */ static const struct { Loading Loading @@ -369,10 +367,6 @@ struct msm_spi { struct dentry *debugfs_spi_regs[ARRAY_SIZE(debugfs_spi_regs)]; #endif struct msm_spi_platform_data *pdata; /* Platform data */ /* Remote Spinlock Data */ bool use_rlock; remote_mutex_t r_lock; uint32_t pm_lat; /* When set indicates multiple transfers in a single message */ bool multi_xfr; bool done; Loading