* [PATCH] Staging: comedi: Checkpatch cleanups in adl_pci9111.c
@ 2010-05-31 9:19 Mark
2010-05-31 9:19 ` [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c Mark
2010-05-31 9:19 ` [PATCH] Staging: comedi: Fixed long lines in gsc_hpdi.c Mark
0 siblings, 2 replies; 5+ messages in thread
From: Mark @ 2010-05-31 9:19 UTC (permalink / raw)
To: gregkh
Cc: Mark, Bill Pemberton, Rich Folsom, Mithlesh Thukral, Jiri Slaby,
devel, linux-kernel
This patch cleans up some various warnings generated from checkpatch.pl
Signed-off-by: Mark Rankilor <reodge@gmail.com>
---
drivers/staging/comedi/drivers/adl_pci9111.c | 105 ++++++++++++++-----------
1 files changed, 59 insertions(+), 46 deletions(-)
diff --git a/drivers/staging/comedi/drivers/adl_pci9111.c b/drivers/staging/comedi/drivers/adl_pci9111.c
index 36a254c..595689d 100644
--- a/drivers/staging/comedi/drivers/adl_pci9111.c
+++ b/drivers/staging/comedi/drivers/adl_pci9111.c
@@ -68,8 +68,9 @@ CHANGELOG:
TODO:
- Really test implemented functionality.
- - Add support for the PCI-9111DG with a probe routine to identify the card type
- (perhaps with the help of the channel number readback of the A/D Data register).
+ - Add support for the PCI-9111DG with a probe routine to identify the card
+ type (perhaps with the help of the channel number readback of the A/D Data
+ register).
- Add external multiplexer support.
*/
@@ -83,12 +84,12 @@ TODO:
#include "comedi_pci.h"
#include "comedi_fc.h"
-#define PCI9111_DRIVER_NAME "adl_pci9111"
-#define PCI9111_HR_DEVICE_ID 0x9111
+#define PCI9111_DRIVER_NAME "adl_pci9111"
+#define PCI9111_HR_DEVICE_ID 0x9111
/* TODO: Add other pci9111 board id */
-#define PCI9111_IO_RANGE 0x0100
+#define PCI9111_IO_RANGE 0x0100
#define PCI9111_FIFO_HALF_SIZE 512
@@ -134,27 +135,29 @@ TODO:
/* IO address map */
-#define PCI9111_REGISTER_AD_FIFO_VALUE 0x00 /* AD Data stored in FIFO */
-#define PCI9111_REGISTER_DA_OUTPUT 0x00
-#define PCI9111_REGISTER_DIGITAL_IO 0x02
-#define PCI9111_REGISTER_EXTENDED_IO_PORTS 0x04
-#define PCI9111_REGISTER_AD_CHANNEL_CONTROL 0x06 /* Channel selection */
-#define PCI9111_REGISTER_AD_CHANNEL_READBACK 0x06
-#define PCI9111_REGISTER_INPUT_SIGNAL_RANGE 0x08
-#define PCI9111_REGISTER_RANGE_STATUS_READBACK 0x08
-#define PCI9111_REGISTER_TRIGGER_MODE_CONTROL 0x0A
-#define PCI9111_REGISTER_AD_MODE_INTERRUPT_READBACK 0x0A
-#define PCI9111_REGISTER_SOFTWARE_TRIGGER 0x0E
-#define PCI9111_REGISTER_INTERRUPT_CONTROL 0x0C
+#define PCI9111_REGISTER_AD_FIFO_VALUE 0x00 /* AD Data stored
+ in FIFO */
+#define PCI9111_REGISTER_DA_OUTPUT 0x00
+#define PCI9111_REGISTER_DIGITAL_IO 0x02
+#define PCI9111_REGISTER_EXTENDED_IO_PORTS 0x04
+#define PCI9111_REGISTER_AD_CHANNEL_CONTROL 0x06 /* Channel
+ selection */
+#define PCI9111_REGISTER_AD_CHANNEL_READBACK 0x06
+#define PCI9111_REGISTER_INPUT_SIGNAL_RANGE 0x08
+#define PCI9111_REGISTER_RANGE_STATUS_READBACK 0x08
+#define PCI9111_REGISTER_TRIGGER_MODE_CONTROL 0x0A
+#define PCI9111_REGISTER_AD_MODE_INTERRUPT_READBACK 0x0A
+#define PCI9111_REGISTER_SOFTWARE_TRIGGER 0x0E
+#define PCI9111_REGISTER_INTERRUPT_CONTROL 0x0C
#define PCI9111_REGISTER_8254_COUNTER_0 0x40
#define PCI9111_REGISTER_8254_COUNTER_1 0x42
-#define PCI9111_REGISTER_8254_COUNTER_2 0X44
+#define PCI9111_REGISTER_8254_COUNTER_2 0X44
#define PCI9111_REGISTER_8254_CONTROL 0x46
-#define PCI9111_REGISTER_INTERRUPT_CLEAR 0x48
+#define PCI9111_REGISTER_INTERRUPT_CLEAR 0x48
-#define PCI9111_TRIGGER_MASK 0x0F
-#define PCI9111_PTRG_OFF (0 << 3)
-#define PCI9111_PTRG_ON (1 << 3)
+#define PCI9111_TRIGGER_MASK 0x0F
+#define PCI9111_PTRG_OFF (0 << 3)
+#define PCI9111_PTRG_ON (1 << 3)
#define PCI9111_EITS_EXTERNAL (1 << 2)
#define PCI9111_EITS_INTERNAL (0 << 2)
#define PCI9111_TPST_SOFTWARE_TRIGGER (0 << 1)
@@ -164,9 +167,9 @@ TODO:
#define PCI9111_ISC0_SET_IRQ_ON_ENDING_OF_AD_CONVERSION (0 << 0)
#define PCI9111_ISC0_SET_IRQ_ON_FIFO_HALF_FULL (1 << 0)
-#define PCI9111_ISC1_SET_IRQ_ON_TIMER_TICK (0 << 1)
-#define PCI9111_ISC1_SET_IRQ_ON_EXT_TRG (1 << 1)
-#define PCI9111_FFEN_SET_FIFO_ENABLE (0 << 2)
+#define PCI9111_ISC1_SET_IRQ_ON_TIMER_TICK (0 << 1)
+#define PCI9111_ISC1_SET_IRQ_ON_EXT_TRG (1 << 1)
+#define PCI9111_FFEN_SET_FIFO_ENABLE (0 << 2)
#define PCI9111_FFEN_SET_FIFO_DISABLE (1 << 2)
#define PCI9111_CHANNEL_MASK 0x0F
@@ -177,7 +180,7 @@ TODO:
#define PCI9111_FIFO_FULL_MASK 0x40
#define PCI9111_AD_BUSY_MASK 0x80
-#define PCI9111_IO_BASE dev->iobase
+#define PCI9111_IO_BASE (dev->iobase)
/*
* Define inlined function
@@ -189,8 +192,9 @@ TODO:
#define pci9111_trigger_and_autoscan_set(flags) \
outb(flags, PCI9111_IO_BASE+PCI9111_REGISTER_TRIGGER_MODE_CONTROL)
-#define pci9111_interrupt_and_fifo_get() \
- ((inb(PCI9111_IO_BASE+PCI9111_REGISTER_AD_MODE_INTERRUPT_READBACK) >> 4) &0x03)
+#define pci9111_interrupt_and_fifo_get() \
+ ((inb(PCI9111_IO_BASE+PCI9111_REGISTER_AD_MODE_INTERRUPT_READBACK) >> 4) \
+ &0x03)
#define pci9111_interrupt_and_fifo_set(flags) \
outb(flags, PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL)
@@ -201,38 +205,47 @@ TODO:
#define pci9111_software_trigger() \
outb(0, PCI9111_IO_BASE+PCI9111_REGISTER_SOFTWARE_TRIGGER)
-#define pci9111_fifo_reset() \
- outb(PCI9111_FFEN_SET_FIFO_ENABLE, PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL); \
- outb(PCI9111_FFEN_SET_FIFO_DISABLE, PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL); \
- outb(PCI9111_FFEN_SET_FIFO_ENABLE, PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL)
+#define pci9111_fifo_reset() do { \
+ outb(PCI9111_FFEN_SET_FIFO_ENABLE, \
+ PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL); \
+ outb(PCI9111_FFEN_SET_FIFO_DISABLE, \
+ PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL); \
+ outb(PCI9111_FFEN_SET_FIFO_ENABLE, \
+ PCI9111_IO_BASE+PCI9111_REGISTER_INTERRUPT_CONTROL); \
+ } while (0)
#define pci9111_is_fifo_full() \
((inb(PCI9111_IO_BASE+PCI9111_REGISTER_RANGE_STATUS_READBACK)& \
- PCI9111_FIFO_FULL_MASK)==0)
+ PCI9111_FIFO_FULL_MASK) == 0)
#define pci9111_is_fifo_half_full() \
((inb(PCI9111_IO_BASE+PCI9111_REGISTER_RANGE_STATUS_READBACK)& \
- PCI9111_FIFO_HALF_FULL_MASK)==0)
+ PCI9111_FIFO_HALF_FULL_MASK) == 0)
#define pci9111_is_fifo_empty() \
((inb(PCI9111_IO_BASE+PCI9111_REGISTER_RANGE_STATUS_READBACK)& \
- PCI9111_FIFO_EMPTY_MASK)==0)
+ PCI9111_FIFO_EMPTY_MASK) == 0)
-#define pci9111_ai_channel_set(channel) \
- outb((channel)&PCI9111_CHANNEL_MASK, PCI9111_IO_BASE+PCI9111_REGISTER_AD_CHANNEL_CONTROL)
+#define pci9111_ai_channel_set(channel) \
+ outb((channel)&PCI9111_CHANNEL_MASK, \
+ PCI9111_IO_BASE+PCI9111_REGISTER_AD_CHANNEL_CONTROL)
-#define pci9111_ai_channel_get() \
- inb(PCI9111_IO_BASE+PCI9111_REGISTER_AD_CHANNEL_READBACK)&PCI9111_CHANNEL_MASK
+#define pci9111_ai_channel_get() \
+ (inb(PCI9111_IO_BASE+PCI9111_REGISTER_AD_CHANNEL_READBACK) \
+ &PCI9111_CHANNEL_MASK)
-#define pci9111_ai_range_set(range) \
- outb((range)&PCI9111_RANGE_MASK, PCI9111_IO_BASE+PCI9111_REGISTER_INPUT_SIGNAL_RANGE)
+#define pci9111_ai_range_set(range) \
+ outb((range)&PCI9111_RANGE_MASK, \
+ PCI9111_IO_BASE+PCI9111_REGISTER_INPUT_SIGNAL_RANGE)
-#define pci9111_ai_range_get() \
- inb(PCI9111_IO_BASE+PCI9111_REGISTER_RANGE_STATUS_READBACK)&PCI9111_RANGE_MASK
+#define pci9111_ai_range_get() \
+ (inb(PCI9111_IO_BASE+PCI9111_REGISTER_RANGE_STATUS_READBACK) \
+ &PCI9111_RANGE_MASK)
-#define pci9111_ai_get_data() \
- ((inw(PCI9111_IO_BASE+PCI9111_REGISTER_AD_FIFO_VALUE)>>4)&PCI9111_AI_RESOLUTION_MASK) \
- ^ PCI9111_AI_RESOLUTION_2_CMP_BIT
+#define pci9111_ai_get_data() \
+ (((inw(PCI9111_IO_BASE+PCI9111_REGISTER_AD_FIFO_VALUE)>>4) \
+ &PCI9111_AI_RESOLUTION_MASK) \
+ ^ PCI9111_AI_RESOLUTION_2_CMP_BIT)
#define pci9111_hr_ai_get_data() \
(inw(PCI9111_IO_BASE+PCI9111_REGISTER_AD_FIFO_VALUE) & PCI9111_HR_AI_RESOLUTION_MASK) \
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c
2010-05-31 9:19 [PATCH] Staging: comedi: Checkpatch cleanups in adl_pci9111.c Mark
@ 2010-05-31 9:19 ` Mark
2010-05-31 9:19 ` [PATCH] Staging: comedi: Fixed long lines in gsc_hpdi.c Mark
1 sibling, 0 replies; 5+ messages in thread
From: Mark @ 2010-05-31 9:19 UTC (permalink / raw)
To: gregkh
Cc: Mark, Joe Perches, Mithlesh Thukral, Bill Pemberton, devel,
linux-kernel
This patch refactors some code to clean up some long line length checkpatch
warnings.
Signed-off-by: Mark Rankilor <reodge@gmail.com>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/staging/comedi/drivers.c | 188 ++++++++++++++++++--------------------
1 files changed, 87 insertions(+), 101 deletions(-)
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index 4a29ed7..bdbbe8e 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -420,6 +420,91 @@ static inline unsigned long kvirt_to_kva(unsigned long adr)
return kva;
}
+static void free_buf_page_list(struct comedi_device *dev,
+ struct comedi_subdevice *s)
+{
+ int i;
+ struct comedi_async *async = s->async;
+ struct comedi_buf_page *bp = async->buf_page_list;
+
+ if (!async->buf_page_list)
+ return;
+
+ for (i = 0; i < async->n_buf_pages; ++i) {
+ if (bp->virt_addr) {
+ clear_bit(PG_reserved,
+ &virt_to_page(bp->virt_addr)->flags);
+ if (s->async_dma_dir != DMA_NONE) {
+ dma_free_coherent(dev->hw_dev, PAGE_SIZE,
+ bp->virt_addr, bp->dma_addr);
+ } else {
+ free_page((unsigned long)bp->virt_addr);
+ }
+ }
+ bp++;
+ }
+ vfree(async->buf_page_list);
+ async->buf_page_list = NULL;
+ async->n_buf_pages = 0;
+}
+
+static int alloc_buf_page_list(struct comedi_device *dev,
+ struct comedi_subdevice *s,
+ unsigned long new_size)
+{
+ unsigned i = 0;
+ struct comedi_async *async = s->async;
+ unsigned n_pages = new_size >> PAGE_SHIFT;
+ unsigned bp_size = sizeof(struct comedi_buf_page) * n_pages;
+ struct page **pages = NULL;
+
+ /* allocate new buffer */
+ if (!new_size)
+ return 0;
+
+ async->buf_page_list = vmalloc(bp_size);
+ if (!async->buf_page_list)
+ return -ENOMEM;
+ memset(async->buf_page_list, 0, bp_size);
+ pages = vmalloc(sizeof(struct page *) * n_pages);
+ if (pages) {
+ struct comedi_buf_page *bp = async->buf_page_list;
+ for (i = 0; i < n_pages; i++) {
+ if (s->async_dma_dir != DMA_NONE) {
+ bp->virt_addr =
+ dma_alloc_coherent(dev->hw_dev,
+ PAGE_SIZE,
+ &bp->dma_addr,
+ GFP_KERNEL |
+ __GFP_COMP);
+ } else {
+ bp->virt_addr = (void *)
+ get_zeroed_page(GFP_KERNEL);
+ }
+ if (bp->virt_addr == NULL) {
+ vfree(pages);
+ free_buf_page_list(dev, s);
+ return -ENOMEM;
+ }
+
+ set_bit(PG_reserved,
+ &virt_to_page(bp->virt_addr)->flags);
+ pages[i] = virt_to_page(bp->virt_addr);
+ bp++;
+ }
+ }
+
+ async->prealloc_buf = vmap(pages, n_pages, VM_MAP, PAGE_KERNEL_NOCACHE);
+ vfree(pages);
+ if (!async->prealloc_buf) {
+ free_buf_page_list(dev, s);
+ return -ENOMEM;
+ }
+ async->n_buf_pages = n_pages;
+ async->prealloc_bufsz = new_size;
+ return 0;
+}
+
int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s,
unsigned long new_size)
{
@@ -438,108 +523,9 @@ int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s,
async->prealloc_buf = NULL;
async->prealloc_bufsz = 0;
}
- if (async->buf_page_list) {
- unsigned i;
- for (i = 0; i < async->n_buf_pages; ++i) {
- if (async->buf_page_list[i].virt_addr) {
- clear_bit(PG_reserved, &(virt_to_page(async->buf_page_list[i].virt_addr)->flags));
- if (s->async_dma_dir != DMA_NONE) {
- dma_free_coherent(dev->hw_dev,
- PAGE_SIZE,
- async->
- buf_page_list
- [i].virt_addr,
- async->
- buf_page_list
- [i].dma_addr);
- } else {
- free_page((unsigned long)
- async->buf_page_list[i].
- virt_addr);
- }
- }
- }
- vfree(async->buf_page_list);
- async->buf_page_list = NULL;
- async->n_buf_pages = 0;
- }
- /* allocate new buffer */
- if (new_size) {
- unsigned i = 0;
- unsigned n_pages = new_size >> PAGE_SHIFT;
- struct page **pages = NULL;
-
- async->buf_page_list =
- vmalloc(sizeof(struct comedi_buf_page) * n_pages);
- if (async->buf_page_list) {
- memset(async->buf_page_list, 0,
- sizeof(struct comedi_buf_page) * n_pages);
- pages = vmalloc(sizeof(struct page *) * n_pages);
- }
- if (pages) {
- for (i = 0; i < n_pages; i++) {
- if (s->async_dma_dir != DMA_NONE) {
- async->buf_page_list[i].virt_addr =
- dma_alloc_coherent(dev->hw_dev,
- PAGE_SIZE,
- &async->
- buf_page_list
- [i].dma_addr,
- GFP_KERNEL |
- __GFP_COMP);
- } else {
- async->buf_page_list[i].virt_addr =
- (void *)
- get_zeroed_page(GFP_KERNEL);
- }
- if (async->buf_page_list[i].virt_addr == NULL)
- break;
-
- set_bit(PG_reserved,
- &(virt_to_page(async->buf_page_list[i].virt_addr)->flags));
- pages[i] = virt_to_page(async->buf_page_list[i].virt_addr);
- }
- }
- if (i == n_pages) {
- async->prealloc_buf =
- vmap(pages, n_pages, VM_MAP, PAGE_KERNEL_NOCACHE);
- }
- vfree(pages);
-
- if (async->prealloc_buf == NULL) {
- /* Some allocation failed above. */
- if (async->buf_page_list) {
- for (i = 0; i < n_pages; i++) {
- if (async->buf_page_list[i].virt_addr ==
- NULL) {
- break;
- }
- clear_bit(PG_reserved, &(virt_to_page(async->buf_page_list[i].virt_addr)->flags));
- if (s->async_dma_dir != DMA_NONE) {
- dma_free_coherent(dev->hw_dev,
- PAGE_SIZE,
- async->
- buf_page_list
- [i].virt_addr,
- async->
- buf_page_list
- [i].dma_addr);
- } else {
- free_page((unsigned long)
- async->buf_page_list
- [i].virt_addr);
- }
- }
- vfree(async->buf_page_list);
- async->buf_page_list = NULL;
- }
- return -ENOMEM;
- }
- async->n_buf_pages = n_pages;
- }
- async->prealloc_bufsz = new_size;
- return 0;
+ free_buf_page_list(dev, s);
+ return alloc_buf_page_list(dev, s, new_size);
}
/* munging is applied to data by core as it passes between user
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH] Staging: comedi: Fixed long lines in gsc_hpdi.c
2010-05-31 9:19 [PATCH] Staging: comedi: Checkpatch cleanups in adl_pci9111.c Mark
2010-05-31 9:19 ` [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c Mark
@ 2010-05-31 9:19 ` Mark
1 sibling, 0 replies; 5+ messages in thread
From: Mark @ 2010-05-31 9:19 UTC (permalink / raw)
To: gregkh
Cc: Mark, Bill Pemberton, Dirk Hohndel, Mithlesh Thukral, Jiri Slaby,
devel, linux-kernel
This patch fixes some long line lengths in gsc_hpdi.c as found by the
checkpatch.pl tool
Signed-off-by: Mark Rankilor <reodge@gmail.com>
---
drivers/staging/comedi/drivers/gsc_hpdi.c | 30 +++++++++++++++++++---------
1 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/drivers/staging/comedi/drivers/gsc_hpdi.c b/drivers/staging/comedi/drivers/gsc_hpdi.c
index 51f12bf..17c4f1f 100644
--- a/drivers/staging/comedi/drivers/gsc_hpdi.c
+++ b/drivers/staging/comedi/drivers/gsc_hpdi.c
@@ -311,17 +311,25 @@ struct hpdi_private {
void *plx9080_iobase;
void *hpdi_iobase;
uint32_t *dio_buffer[NUM_DMA_BUFFERS]; /* dma buffers */
- dma_addr_t dio_buffer_phys_addr[NUM_DMA_BUFFERS]; /* physical addresses of dma buffers */
- struct plx_dma_desc *dma_desc; /* array of dma descriptors read by plx9080, allocated to get proper alignment */
- dma_addr_t dma_desc_phys_addr; /* physical address of dma descriptor array */
+ /* physical addresses of dma buffers */
+ dma_addr_t dio_buffer_phys_addr[NUM_DMA_BUFFERS];
+ /* array of dma descriptors read by plx9080, allocated to get proper
+ * alignment */
+ struct plx_dma_desc *dma_desc;
+ /* physical address of dma descriptor array */
+ dma_addr_t dma_desc_phys_addr;
unsigned int num_dma_descriptors;
- uint32_t *desc_dio_buffer[NUM_DMA_DESCRIPTORS]; /* pointer to start of buffers indexed by descriptor */
- volatile unsigned int dma_desc_index; /* index of the dma descriptor that is currently being used */
+ /* pointer to start of buffers indexed by descriptor */
+ uint32_t *desc_dio_buffer[NUM_DMA_DESCRIPTORS];
+ /* index of the dma descriptor that is currently being used */
+ volatile unsigned int dma_desc_index;
unsigned int tx_fifo_size;
unsigned int rx_fifo_size;
volatile unsigned long dio_count;
- volatile uint32_t bits[24]; /* software copies of values written to hpdi registers */
- volatile unsigned int block_size; /* number of bytes at which to generate COMEDI_CB_BLOCK events */
+ /* software copies of values written to hpdi registers */
+ volatile uint32_t bits[24];
+ /* number of bytes at which to generate COMEDI_CB_BLOCK events */
+ volatile unsigned int block_size;
unsigned dio_config_output:1;
};
@@ -570,7 +578,8 @@ static int hpdi_attach(struct comedi_device *dev, struct comedi_devconfig *it)
return -ENOMEM;
pcidev = NULL;
- for (i = 0; i < ARRAY_SIZE(hpdi_boards) && dev->board_ptr == NULL; i++) {
+ for (i = 0; i < ARRAY_SIZE(hpdi_boards) &&
+ dev->board_ptr == NULL; i++) {
do {
pcidev = pci_get_subsys(PCI_VENDOR_ID_PLX,
hpdi_boards[i].device_id,
@@ -618,7 +627,7 @@ static int hpdi_attach(struct comedi_device *dev, struct comedi_devconfig *it)
/* remap, won't work with 2.0 kernels but who cares */
priv(dev)->plx9080_iobase = ioremap(priv(dev)->plx9080_phys_iobase,
pci_resource_len(pcidev,
- PLX9080_BADDRINDEX));
+ PLX9080_BADDRINDEX));
priv(dev)->hpdi_iobase =
ioremap(priv(dev)->hpdi_phys_iobase,
pci_resource_len(pcidev, HPDI_BADDRINDEX));
@@ -769,7 +778,8 @@ static int di_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s,
if (err)
return 1;
- /* step 2: make sure trigger sources are unique and mutually compatible */
+ /* step 2: make sure trigger sources are unique and mutually
+ * compatible */
/* uniqueness check */
if (cmd->stop_src != TRIG_COUNT && cmd->stop_src != TRIG_NONE)
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c
@ 2010-05-24 9:22 Mark
2010-05-24 17:16 ` Joe Perches
0 siblings, 1 reply; 5+ messages in thread
From: Mark @ 2010-05-24 9:22 UTC (permalink / raw)
To: joe, gregkh; +Cc: Mark, Mithlesh Thukral, Bill Pemberton, devel, linux-kernel
Joe I'm happy with this patch, so we can submit it as is. I've added a
signed-off-by line for you below since it is really your code, is that ok for me
to add that?
This patch refactors some code to clean up some long line length checkpatch
warnings.
Signed-off-by: Mark Rankilor <reodge@gmail.com>
Signed-off-by: Joe Perches <joe@perches.com>
---
drivers/staging/comedi/drivers.c | 188 ++++++++++++++++++--------------------
1 files changed, 87 insertions(+), 101 deletions(-)
diff --git a/drivers/staging/comedi/drivers.c b/drivers/staging/comedi/drivers.c
index 4a29ed7..bdbbe8e 100644
--- a/drivers/staging/comedi/drivers.c
+++ b/drivers/staging/comedi/drivers.c
@@ -420,6 +420,91 @@ static inline unsigned long kvirt_to_kva(unsigned long adr)
return kva;
}
+static void free_buf_page_list(struct comedi_device *dev,
+ struct comedi_subdevice *s)
+{
+ int i;
+ struct comedi_async *async = s->async;
+ struct comedi_buf_page *bp = async->buf_page_list;
+
+ if (!async->buf_page_list)
+ return;
+
+ for (i = 0; i < async->n_buf_pages; ++i) {
+ if (bp->virt_addr) {
+ clear_bit(PG_reserved,
+ &virt_to_page(bp->virt_addr)->flags);
+ if (s->async_dma_dir != DMA_NONE) {
+ dma_free_coherent(dev->hw_dev, PAGE_SIZE,
+ bp->virt_addr, bp->dma_addr);
+ } else {
+ free_page((unsigned long)bp->virt_addr);
+ }
+ }
+ bp++;
+ }
+ vfree(async->buf_page_list);
+ async->buf_page_list = NULL;
+ async->n_buf_pages = 0;
+}
+
+static int alloc_buf_page_list(struct comedi_device *dev,
+ struct comedi_subdevice *s,
+ unsigned long new_size)
+{
+ unsigned i = 0;
+ struct comedi_async *async = s->async;
+ unsigned n_pages = new_size >> PAGE_SHIFT;
+ unsigned bp_size = sizeof(struct comedi_buf_page) * n_pages;
+ struct page **pages = NULL;
+
+ /* allocate new buffer */
+ if (!new_size)
+ return 0;
+
+ async->buf_page_list = vmalloc(bp_size);
+ if (!async->buf_page_list)
+ return -ENOMEM;
+ memset(async->buf_page_list, 0, bp_size);
+ pages = vmalloc(sizeof(struct page *) * n_pages);
+ if (pages) {
+ struct comedi_buf_page *bp = async->buf_page_list;
+ for (i = 0; i < n_pages; i++) {
+ if (s->async_dma_dir != DMA_NONE) {
+ bp->virt_addr =
+ dma_alloc_coherent(dev->hw_dev,
+ PAGE_SIZE,
+ &bp->dma_addr,
+ GFP_KERNEL |
+ __GFP_COMP);
+ } else {
+ bp->virt_addr = (void *)
+ get_zeroed_page(GFP_KERNEL);
+ }
+ if (bp->virt_addr == NULL) {
+ vfree(pages);
+ free_buf_page_list(dev, s);
+ return -ENOMEM;
+ }
+
+ set_bit(PG_reserved,
+ &virt_to_page(bp->virt_addr)->flags);
+ pages[i] = virt_to_page(bp->virt_addr);
+ bp++;
+ }
+ }
+
+ async->prealloc_buf = vmap(pages, n_pages, VM_MAP, PAGE_KERNEL_NOCACHE);
+ vfree(pages);
+ if (!async->prealloc_buf) {
+ free_buf_page_list(dev, s);
+ return -ENOMEM;
+ }
+ async->n_buf_pages = n_pages;
+ async->prealloc_bufsz = new_size;
+ return 0;
+}
+
int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s,
unsigned long new_size)
{
@@ -438,108 +523,9 @@ int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s,
async->prealloc_buf = NULL;
async->prealloc_bufsz = 0;
}
- if (async->buf_page_list) {
- unsigned i;
- for (i = 0; i < async->n_buf_pages; ++i) {
- if (async->buf_page_list[i].virt_addr) {
- clear_bit(PG_reserved, &(virt_to_page(async->buf_page_list[i].virt_addr)->flags));
- if (s->async_dma_dir != DMA_NONE) {
- dma_free_coherent(dev->hw_dev,
- PAGE_SIZE,
- async->
- buf_page_list
- [i].virt_addr,
- async->
- buf_page_list
- [i].dma_addr);
- } else {
- free_page((unsigned long)
- async->buf_page_list[i].
- virt_addr);
- }
- }
- }
- vfree(async->buf_page_list);
- async->buf_page_list = NULL;
- async->n_buf_pages = 0;
- }
- /* allocate new buffer */
- if (new_size) {
- unsigned i = 0;
- unsigned n_pages = new_size >> PAGE_SHIFT;
- struct page **pages = NULL;
-
- async->buf_page_list =
- vmalloc(sizeof(struct comedi_buf_page) * n_pages);
- if (async->buf_page_list) {
- memset(async->buf_page_list, 0,
- sizeof(struct comedi_buf_page) * n_pages);
- pages = vmalloc(sizeof(struct page *) * n_pages);
- }
- if (pages) {
- for (i = 0; i < n_pages; i++) {
- if (s->async_dma_dir != DMA_NONE) {
- async->buf_page_list[i].virt_addr =
- dma_alloc_coherent(dev->hw_dev,
- PAGE_SIZE,
- &async->
- buf_page_list
- [i].dma_addr,
- GFP_KERNEL |
- __GFP_COMP);
- } else {
- async->buf_page_list[i].virt_addr =
- (void *)
- get_zeroed_page(GFP_KERNEL);
- }
- if (async->buf_page_list[i].virt_addr == NULL)
- break;
-
- set_bit(PG_reserved,
- &(virt_to_page(async->buf_page_list[i].virt_addr)->flags));
- pages[i] = virt_to_page(async->buf_page_list[i].virt_addr);
- }
- }
- if (i == n_pages) {
- async->prealloc_buf =
- vmap(pages, n_pages, VM_MAP, PAGE_KERNEL_NOCACHE);
- }
- vfree(pages);
-
- if (async->prealloc_buf == NULL) {
- /* Some allocation failed above. */
- if (async->buf_page_list) {
- for (i = 0; i < n_pages; i++) {
- if (async->buf_page_list[i].virt_addr ==
- NULL) {
- break;
- }
- clear_bit(PG_reserved, &(virt_to_page(async->buf_page_list[i].virt_addr)->flags));
- if (s->async_dma_dir != DMA_NONE) {
- dma_free_coherent(dev->hw_dev,
- PAGE_SIZE,
- async->
- buf_page_list
- [i].virt_addr,
- async->
- buf_page_list
- [i].dma_addr);
- } else {
- free_page((unsigned long)
- async->buf_page_list
- [i].virt_addr);
- }
- }
- vfree(async->buf_page_list);
- async->buf_page_list = NULL;
- }
- return -ENOMEM;
- }
- async->n_buf_pages = n_pages;
- }
- async->prealloc_bufsz = new_size;
- return 0;
+ free_buf_page_list(dev, s);
+ return alloc_buf_page_list(dev, s, new_size);
}
/* munging is applied to data by core as it passes between user
--
1.7.1
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c
2010-05-24 9:22 [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c Mark
@ 2010-05-24 17:16 ` Joe Perches
0 siblings, 0 replies; 5+ messages in thread
From: Joe Perches @ 2010-05-24 17:16 UTC (permalink / raw)
To: Mark; +Cc: gregkh, Mithlesh Thukral, Bill Pemberton, devel, linux-kernel
On Mon, 2010-05-24 at 17:22 +0800, Mark wrote:
> Joe I'm happy with this patch, so we can submit it as is. I've added a
> signed-off-by line for you below since it is really your code, is that ok for me
> to add that?
I was just typing for example's sake.
I didn't compile it or test it.
If you have, fine.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-05-31 9:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-31 9:19 [PATCH] Staging: comedi: Checkpatch cleanups in adl_pci9111.c Mark
2010-05-31 9:19 ` [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c Mark
2010-05-31 9:19 ` [PATCH] Staging: comedi: Fixed long lines in gsc_hpdi.c Mark
-- strict thread matches above, loose matches on Subject: below --
2010-05-24 9:22 [PATCH] Staging: comedi: Refactored code to fix long line lengths in drivers.c Mark
2010-05-24 17:16 ` Joe Perches
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).