From 4b87d814df3f243edf4bedb61ddeb995210137ba Mon Sep 17 00:00:00 2001 From: Robin Mallinson Date: Sun, 18 Nov 2012 14:09:45 +0000 Subject: [PATCH] Add crude 'written_data' array so dev_read simply echos verbatim what was written to dev_write without probing the actual DMA control block data. This gives no clue as to whether the DMA control bloack has been programmed but does mean that Richard's control code - which has a special case for delay=0 - does not require changing. Next steps are to have an array per-process. --- ServoBlaster/servoblaster.c | 10 +++++----- ServoBlaster/servoblaster.ko | Bin 9896 -> 9925 bytes 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ServoBlaster/servoblaster.c b/ServoBlaster/servoblaster.c index ad624ba..9031eee 100644 --- a/ServoBlaster/servoblaster.c +++ b/ServoBlaster/servoblaster.c @@ -321,6 +321,8 @@ static int dev_open(struct inode *inod,struct file *fil) return 0; } +static int written_data[NUM_SERVOS] = { 0 }; + static ssize_t dev_read(struct file *filp,char *buf,size_t count,loff_t *f_pos) { ssize_t bytesPrinted = 0; @@ -334,13 +336,10 @@ static ssize_t dev_read(struct file *filp,char *buf,size_t count,loff_t *f_pos) // Get fresh data for (servo=0, idx=0; servo < NUM_SERVOS; ++servo) { - if (wait_for_servo(servo)) - return -EINTR; - idx += snprintf(returnedData+idx, sizeof(returnedData)-idx, - "%i %lu\n", + "%i %i\n", servo, - ctl->cb[servo*4+1].length / sizeof(uint32_t) + written_data[servo] ); } } @@ -411,6 +410,7 @@ static ssize_t dev_write(struct file *filp,const char *buf,size_t count,loff_t * ctl->cb[servo*4+1].length = cnt * sizeof(uint32_t); ctl->cb[servo*4+3].length = (cycle_ticks / 8 - cnt) * sizeof(uint32_t); } + written_data[servo] = cnt; // Record data for use by dev_read local_irq_enable(); return count; diff --git a/ServoBlaster/servoblaster.ko b/ServoBlaster/servoblaster.ko index bb50e0706ec6bba8ca82487df12e2643863bffff..59cf14a125f7fc91951c800221f67daf7b9dfd33 100644 GIT binary patch delta 2742 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