mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 12:58:12 -04:00
Merge "dmaengine: gpi: Add support to make GPI driver GKI compliant"
This commit is contained in:
commit
eda093d5ef
1 changed files with 43 additions and 3 deletions
|
|
@ -92,7 +92,7 @@ enum EV_PRIORITY {
|
|||
|
||||
#define GPI_DMA_DRV_NAME "gpi_dma"
|
||||
#define DEFAULT_KLOG_LVL (LOG_LVL_CRITICAL)
|
||||
#ifdef CONFIG_MSM_GPI_DMA_DEBUG
|
||||
#if IS_ENABLED(CONFIG_MSM_GPI_DMA_DEBUG)
|
||||
#define DEFAULT_IPC_LOG_LVL (LOG_LVL_VERBOSE)
|
||||
#define IPC_LOG_PAGES (40)
|
||||
#define GPI_DBG_LOG_SIZE (SZ_1K) /* size must be power of 2 */
|
||||
|
|
@ -627,7 +627,7 @@ static inline void *to_virtual(const struct gpi_ring *const ring,
|
|||
return ring->base + (addr - ring->phys_addr);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MSM_GPI_DMA_DEBUG
|
||||
#if IS_ENABLED(CONFIG_MSM_GPI_DMA_DEBUG)
|
||||
static inline u32 gpi_read_reg(struct gpii *gpii, void __iomem *addr)
|
||||
{
|
||||
u64 time = sched_clock();
|
||||
|
|
@ -2993,6 +2993,38 @@ static int gpi_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int gpi_remove(struct platform_device *pdev)
|
||||
{
|
||||
struct gpi_dev *gpi_dev = platform_get_drvdata(pdev);
|
||||
int i;
|
||||
|
||||
of_dma_controller_free(gpi_dev->dev->of_node);
|
||||
dma_async_device_unregister(&gpi_dev->dma_device);
|
||||
|
||||
for (i = 0; i < gpi_dev->max_gpii; i++) {
|
||||
struct gpii *gpii = &gpi_dev->gpiis[i];
|
||||
int chan;
|
||||
|
||||
if (!((1 << i) & gpi_dev->gpii_mask))
|
||||
continue;
|
||||
|
||||
for (chan = 0; chan < MAX_CHANNELS_PER_GPII; chan++) {
|
||||
struct gpii_chan *gpii_chan = &gpii->gpii_chan[chan];
|
||||
|
||||
gpi_free_chan_resources(&gpii_chan->vc.chan);
|
||||
}
|
||||
|
||||
if (gpii->ilctxt)
|
||||
ipc_log_context_destroy(gpii->ilctxt);
|
||||
}
|
||||
|
||||
if (gpi_dev->ilctxt)
|
||||
ipc_log_context_destroy(gpi_dev->ilctxt);
|
||||
|
||||
debugfs_remove(pdentry);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct of_device_id gpi_of_match[] = {
|
||||
{ .compatible = "qcom,gpi-dma" },
|
||||
{}
|
||||
|
|
@ -3001,6 +3033,7 @@ MODULE_DEVICE_TABLE(of, gpi_of_match);
|
|||
|
||||
static struct platform_driver gpi_driver = {
|
||||
.probe = gpi_probe,
|
||||
.remove = gpi_remove,
|
||||
.driver = {
|
||||
.name = GPI_DMA_DRV_NAME,
|
||||
.of_match_table = gpi_of_match,
|
||||
|
|
@ -3012,7 +3045,14 @@ static int __init gpi_init(void)
|
|||
pdentry = debugfs_create_dir(GPI_DMA_DRV_NAME, NULL);
|
||||
return platform_driver_register(&gpi_driver);
|
||||
}
|
||||
module_init(gpi_init)
|
||||
|
||||
static void __exit gpi_exit(void)
|
||||
{
|
||||
platform_driver_unregister(&gpi_driver);
|
||||
}
|
||||
|
||||
module_init(gpi_init);
|
||||
module_exit(gpi_exit);
|
||||
|
||||
MODULE_DESCRIPTION("QCOM GPI DMA engine driver");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
|
|
|||
Loading…
Reference in a new issue