diff options
Diffstat (limited to 'drivers/staging/kpc2000/kpc_dma')
-rw-r--r-- | drivers/staging/kpc2000/kpc_dma/dma.c | 9 | ||||
-rw-r--r-- | drivers/staging/kpc2000/kpc_dma/fileops.c | 49 | ||||
-rw-r--r-- | drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.c | 9 | ||||
-rw-r--r-- | drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.h | 4 |
4 files changed, 34 insertions, 37 deletions
diff --git a/drivers/staging/kpc2000/kpc_dma/dma.c b/drivers/staging/kpc2000/kpc_dma/dma.c index 51a4dd534a0d..452a3f7c835d 100644 --- a/drivers/staging/kpc2000/kpc_dma/dma.c +++ b/drivers/staging/kpc2000/kpc_dma/dma.c @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ +// SPDX-License-Identifier: GPL-2.0+ #include <linux/init.h> #include <linux/module.h> #include <linux/types.h> @@ -97,11 +97,10 @@ int setup_dma_engine(struct kpc_dma_device *eng, u32 desc_cnt) if (WARN(!(caps & ENG_CAP_PRESENT), "%s() called for DMA Engine at %p which isn't present in hardware!\n", __func__, eng)) return -ENXIO; - if (caps & ENG_CAP_DIRECTION) { + if (caps & ENG_CAP_DIRECTION) eng->dir = DMA_FROM_DEVICE; - } else { + else eng->dir = DMA_TO_DEVICE; - } eng->desc_pool_cnt = desc_cnt; eng->desc_pool = dma_pool_create("KPC DMA Descriptors", &eng->pldev->dev, sizeof(struct kpc_dma_descriptor), DMA_DESC_ALIGNMENT, 4096); @@ -236,7 +235,7 @@ int count_descriptors_available(struct kpc_dma_device *eng) struct kpc_dma_descriptor *cur = eng->desc_next; while (cur != eng->desc_completed) { - BUG_ON(cur == NULL); + BUG_ON(!cur); count++; cur = cur->Next; } diff --git a/drivers/staging/kpc2000/kpc_dma/fileops.c b/drivers/staging/kpc2000/kpc_dma/fileops.c index 40525540dde6..7caabdd77bbf 100644 --- a/drivers/staging/kpc2000/kpc_dma/fileops.c +++ b/drivers/staging/kpc2000/kpc_dma/fileops.c @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ +// SPDX-License-Identifier: GPL-2.0+ #include <linux/module.h> #include <linux/init.h> #include <linux/mm.h> @@ -18,8 +18,8 @@ static inline unsigned int count_pages(unsigned long iov_base, size_t iov_len) { - unsigned long first = (iov_base & PAGE_MASK) >> PAGE_SHIFT; - unsigned long last = ((iov_base+iov_len-1) & PAGE_MASK) >> PAGE_SHIFT; + unsigned long first = (iov_base & PAGE_MASK) >> PAGE_SHIFT; + unsigned long last = ((iov_base + iov_len - 1) & PAGE_MASK) >> PAGE_SHIFT; return last - first + 1; } @@ -66,7 +66,8 @@ static int kpc_dma_transfer(struct dev_private_data *priv, acd->page_count = count_pages(iov_base, iov_len); // Allocate an array of page pointers - acd->user_pages = kzalloc(sizeof(struct page *) * acd->page_count, GFP_KERNEL); + acd->user_pages = kcalloc(acd->page_count, sizeof(struct page *), + GFP_KERNEL); if (!acd->user_pages) { dev_err(&priv->ldev->pldev->dev, "Couldn't kmalloc space for for the page pointers\n"); rv = -ENOMEM; @@ -83,7 +84,7 @@ static int kpc_dma_transfer(struct dev_private_data *priv, } // Allocate and setup the sg_table (scatterlist entries) - rv = sg_alloc_table_from_pages(&acd->sgt, acd->user_pages, acd->page_count, iov_base & (PAGE_SIZE-1), iov_len, GFP_KERNEL); + rv = sg_alloc_table_from_pages(&acd->sgt, acd->user_pages, acd->page_count, iov_base & (PAGE_SIZE - 1), iov_len, GFP_KERNEL); if (rv) { dev_err(&priv->ldev->pldev->dev, "Couldn't alloc sg_table (%ld)\n", rv); goto err_alloc_sg_table; @@ -124,19 +125,19 @@ static int kpc_dma_transfer(struct dev_private_data *priv, pcnt = count_parts_for_sge(sg); for (p = 0 ; p < pcnt ; p++) { // Fill out the descriptor - BUG_ON(desc == NULL); + BUG_ON(!desc); clear_desc(desc); - if (p != pcnt-1) { + if (p != pcnt - 1) desc->DescByteCount = 0x80000; - } else { + else desc->DescByteCount = sg_dma_len(sg) - (p * 0x80000); - } + desc->DescBufferByteCount = desc->DescByteCount; desc->DescControlFlags |= DMA_DESC_CTL_IRQONERR; if (i == 0 && p == 0) desc->DescControlFlags |= DMA_DESC_CTL_SOP; - if (i == acd->mapped_entry_count-1 && p == pcnt-1) + if (i == acd->mapped_entry_count - 1 && p == pcnt - 1) desc->DescControlFlags |= DMA_DESC_CTL_EOP | DMA_DESC_CTL_IRQONDONE; desc->DescCardAddrLS = (card_addr & 0xFFFFFFFF); @@ -148,13 +149,13 @@ static int kpc_dma_transfer(struct dev_private_data *priv, desc->DescSystemAddrMS = (dma_addr & 0xFFFFFFFF00000000UL) >> 32; user_ctl = acd->priv->user_ctl; - if (i == acd->mapped_entry_count-1 && p == pcnt-1) { + if (i == acd->mapped_entry_count - 1 && p == pcnt - 1) user_ctl = acd->priv->user_ctl_last; - } + desc->DescUserControlLS = (user_ctl & 0x00000000FFFFFFFFUL) >> 0; desc->DescUserControlMS = (user_ctl & 0xFFFFFFFF00000000UL) >> 32; - if (i == acd->mapped_entry_count-1 && p == pcnt-1) + if (i == acd->mapped_entry_count - 1 && p == pcnt - 1) desc->acd = acd; dev_dbg(&priv->ldev->pldev->dev, " Filled descriptor %p (acd = %p)\n", desc, desc->acd); @@ -188,9 +189,9 @@ static int kpc_dma_transfer(struct dev_private_data *priv, sg_free_table(&acd->sgt); err_dma_map_sg: err_alloc_sg_table: - for (i = 0 ; i < acd->page_count ; i++) { + for (i = 0 ; i < acd->page_count ; i++) put_page(acd->user_pages[i]); - } + err_get_user_pages: kfree(acd->user_pages); err_alloc_userpages: @@ -203,23 +204,21 @@ void transfer_complete_cb(struct aio_cb_data *acd, size_t xfr_count, u32 flags) { unsigned int i; - BUG_ON(acd == NULL); - BUG_ON(acd->user_pages == NULL); - BUG_ON(acd->sgt.sgl == NULL); - BUG_ON(acd->ldev == NULL); - BUG_ON(acd->ldev->pldev == NULL); + BUG_ON(!acd); + BUG_ON(!acd->user_pages); + BUG_ON(!acd->sgt.sgl); + BUG_ON(!acd->ldev); + BUG_ON(!acd->ldev->pldev); for (i = 0 ; i < acd->page_count ; i++) { - if (!PageReserved(acd->user_pages[i])) { + if (!PageReserved(acd->user_pages[i])) set_page_dirty(acd->user_pages[i]); - } } dma_unmap_sg(&acd->ldev->pldev->dev, acd->sgt.sgl, acd->sgt.nents, acd->ldev->dir); - for (i = 0 ; i < acd->page_count ; i++) { + for (i = 0 ; i < acd->page_count ; i++) put_page(acd->user_pages[i]); - } sg_free_table(&acd->sgt); @@ -253,7 +252,7 @@ int kpc_dma_open(struct inode *inode, struct file *filp) return -EBUSY; /* already open */ } - priv = kzalloc(sizeof(struct dev_private_data), GFP_KERNEL); + priv = kzalloc(sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; diff --git a/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.c b/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.c index ec79a8500caf..c3b30551e0ca 100644 --- a/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.c +++ b/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.c @@ -1,8 +1,8 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ +// SPDX-License-Identifier: GPL-2.0+ #include <linux/init.h> #include <linux/module.h> #include <linux/types.h> -#include <asm/io.h> +#include <linux/io.h> #include <linux/export.h> #include <linux/slab.h> #include <linux/platform_device.h> @@ -26,9 +26,8 @@ struct kpc_dma_device *kpc_dma_lookup_device(int minor) mutex_lock(&kpc_dma_mtx); list_for_each_entry(c, &kpc_dma_list, list) { - if (c->pldev->id == minor) { + if (c->pldev->id == minor) goto out; - } } c = NULL; // not-found case out: @@ -98,7 +97,7 @@ int kpc_dma_probe(struct platform_device *pldev) int rv = 0; dev_t dev; - struct kpc_dma_device *ldev = kzalloc(sizeof(struct kpc_dma_device), GFP_KERNEL); + struct kpc_dma_device *ldev = kzalloc(sizeof(*ldev), GFP_KERNEL); if (!ldev) { dev_err(&pldev->dev, "%s: unable to kzalloc space for kpc_dma_device\n", __func__); diff --git a/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.h b/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.h index 4c8cc866b826..8b9c978257b9 100644 --- a/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.h +++ b/drivers/staging/kpc2000/kpc_dma/kpc_dma_driver.h @@ -198,14 +198,14 @@ u32 GetEngineCompletePtr(struct kpc_dma_device *eng) static inline void lock_engine(struct kpc_dma_device *eng) { - BUG_ON(eng == NULL); + BUG_ON(!eng); mutex_lock(&eng->sem); } static inline void unlock_engine(struct kpc_dma_device *eng) { - BUG_ON(eng == NULL); + BUG_ON(!eng); mutex_unlock(&eng->sem); } |