[Xenomai-git] Jorge Ramirez-Ortiz : drivers/analogy: add ftrace support to a4l_dbg and a4l_info

2014-07-02 Thread git repository hosting
Module: xenomai-forge
Branch: next
Commit: ef97407c68371abfb4fc4f1afdd9b3fa2686904a
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=ef97407c68371abfb4fc4f1afdd9b3fa2686904a

Author: Jorge Ramirez-Ortiz 
Date:   Tue Jun 24 16:42:59 2014 -0400

drivers/analogy: add ftrace support to a4l_dbg and a4l_info

Enable ftrace support in the analogy debug config

---

 include/cobalt/kernel/rtdm/analogy/buffer.h|   14 ++--
 include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h  |   40 +++-
 kernel/drivers/analogy/Kconfig |   10 ++-
 kernel/drivers/analogy/buffer.c|   40 
 kernel/drivers/analogy/command.c   |8 +--
 kernel/drivers/analogy/device.c|5 +-
 kernel/drivers/analogy/driver.c|6 +-
 kernel/drivers/analogy/intel/parport.c |6 +-
 .../analogy/national_instruments/mio_common.c  |   48 +-
 kernel/drivers/analogy/national_instruments/mite.c |   29 +++-
 .../drivers/analogy/national_instruments/ni_660x.c |   21 +++---
 .../drivers/analogy/national_instruments/ni_670x.c |   18 ++---
 .../drivers/analogy/national_instruments/pcimio.c  |4 +-
 kernel/drivers/analogy/rtdm_interface.c|8 ++-
 kernel/drivers/analogy/sensoray/s526.c |2 +-
 kernel/drivers/analogy/testing/fake.c  |   21 +++---
 kernel/drivers/analogy/transfer.c  |7 +-
 utils/analogy/cmd_read.c   |   69 +---
 utils/analogy/cmd_write.c  |9 +--
 19 files changed, 175 insertions(+), 190 deletions(-)

diff --git a/include/cobalt/kernel/rtdm/analogy/buffer.h 
b/include/cobalt/kernel/rtdm/analogy/buffer.h
index 3003a4f..d4baefe 100644
--- a/include/cobalt/kernel/rtdm/analogy/buffer.h
+++ b/include/cobalt/kernel/rtdm/analogy/buffer.h
@@ -50,6 +50,7 @@
 #define A4L_BUF_MAP_NR 9
 #define A4L_BUF_MAP (1 << A4L_BUF_MAP_NR)
 
+
 /* Buffer descriptor structure */
 struct a4l_buffer {
 
@@ -87,6 +88,13 @@ struct a4l_buffer {
unsigned long wake_count;
 };
 
+static inline void __dump_buffer_counters(struct a4l_buffer *buf)
+{
+   __a4l_dbg(1, core_dbg, "a4l_buffer=0x%p, p=0x%p \n", buf, buf->buf);
+   __a4l_dbg(1, core_dbg, "end=%06ld, prd=%06ld, cns=%06ld, tmp=%06ld \n",
+   buf->end_count, buf->prd_count, buf->cns_count, buf->tmp_count);
+}
+
 /* --- Static inline functions related with
user<->kernel data transfers --- */
 
@@ -191,13 +199,11 @@ static inline int __handle_event(struct a4l_buffer * buf)
 
/* The event "End of acquisition" must not be cleaned
   before the complete flush of the buffer */
-   if (test_bit(A4L_BUF_EOA_NR, &buf->flags)) {
+   if (test_bit(A4L_BUF_EOA_NR, &buf->flags))
ret = -ENOENT;
-   }
 
-   if (test_bit(A4L_BUF_ERROR_NR, &buf->flags)) {
+   if (test_bit(A4L_BUF_ERROR_NR, &buf->flags))
ret = -EPIPE;
-   }
 
return ret;
 }
diff --git a/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h 
b/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h
index 2dffc89..8a0798c 100644
--- a/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h
+++ b/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h
@@ -36,22 +36,30 @@
 
 #define RTDM_SUBCLASS_ANALOGY 0
 
-#define __a4l_err(fmt, args...) \
-   rtdm_printk(KERN_ERR A4L_PROMPT fmt, ##args)
+#define __a4l_err(fmt, args...)  rtdm_printk(KERN_ERR A4L_PROMPT fmt, ##args)
+#define __a4l_warn(fmt, args...) rtdm_printk(KERN_WARNING A4L_PROMPT fmt, 
##args)
 
-#define __a4l_warn(fmt, args...) \
-   rtdm_printk(KERN_WARNING A4L_PROMPT fmt, ##args)
-
-#define __a4l_info(fmt, args...) \
-   rtdm_printk(KERN_INFO A4L_PROMPT fmt, ##args)
+#ifdef  CONFIG_XENO_DRIVERS_ANALOGY_DEBUG_FTRACE
+#define __a4l_info(fmt, args...) trace_printk(fmt, ##args)
+#else
+#define __a4l_info(fmt, args...)   
\
+rtdm_printk(KERN_INFO A4L_PROMPT "%s: " fmt, __FUNCTION__, ##args)
+#endif
 
 #ifdef CONFIG_XENO_DRIVERS_ANALOGY_DEBUG
-
-#define __a4l_dbg(level, debug, fmt, args...)  \
-   do {\
-   if ((debug) >= (level)) \
-   rtdm_printk(KERN_DEBUG A4L_PROMPT fmt, ##args); \
+#ifdef CONFIG_XENO_DRIVERS_ANALOGY_DEBUG_FTRACE
+#define __a4l_dbg(level, debug, fmt, args...)  \
+   do {\
+   if ((debug) >= (level)) \
+   trace_printk(fmt, ##args);  \
+   } while (0)
+#else
+#define __a4l_dbg(level, debug, fmt, args...)  
\
+   do {
\
+   if ((debug) >= (level))

[Xenomai-git] Jorge Ramirez-Ortiz : drivers/analogy: add ftrace support to a4l_dbg and a4l_info

2014-07-01 Thread git repository hosting
Module: xenomai-forge
Branch: next
Commit: a9a5cf6c1bbfa4f16d636c89f9827842db427e4e
URL:
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=a9a5cf6c1bbfa4f16d636c89f9827842db427e4e

Author: Jorge Ramirez-Ortiz 
Date:   Tue Jun 24 16:42:59 2014 -0400

drivers/analogy: add ftrace support to a4l_dbg and a4l_info

Enable ftrace support in the analogy debug config

---

 include/cobalt/kernel/rtdm/analogy/buffer.h|   14 ++--
 include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h  |   40 +++-
 kernel/drivers/analogy/Kconfig |   10 ++-
 kernel/drivers/analogy/buffer.c|   40 
 kernel/drivers/analogy/command.c   |8 +--
 kernel/drivers/analogy/device.c|5 +-
 kernel/drivers/analogy/driver.c|6 +-
 kernel/drivers/analogy/intel/parport.c |6 +-
 .../analogy/national_instruments/mio_common.c  |   48 +-
 kernel/drivers/analogy/national_instruments/mite.c |   29 +++-
 .../drivers/analogy/national_instruments/ni_660x.c |   21 +++---
 .../drivers/analogy/national_instruments/ni_670x.c |   18 ++---
 .../drivers/analogy/national_instruments/pcimio.c  |4 +-
 kernel/drivers/analogy/rtdm_interface.c|8 ++-
 kernel/drivers/analogy/sensoray/s526.c |2 +-
 kernel/drivers/analogy/testing/fake.c  |   21 +++---
 kernel/drivers/analogy/transfer.c  |7 +-
 utils/analogy/cmd_read.c   |   69 +---
 utils/analogy/cmd_write.c  |9 +--
 19 files changed, 175 insertions(+), 190 deletions(-)

diff --git a/include/cobalt/kernel/rtdm/analogy/buffer.h 
b/include/cobalt/kernel/rtdm/analogy/buffer.h
index 3003a4f..d4baefe 100644
--- a/include/cobalt/kernel/rtdm/analogy/buffer.h
+++ b/include/cobalt/kernel/rtdm/analogy/buffer.h
@@ -50,6 +50,7 @@
 #define A4L_BUF_MAP_NR 9
 #define A4L_BUF_MAP (1 << A4L_BUF_MAP_NR)
 
+
 /* Buffer descriptor structure */
 struct a4l_buffer {
 
@@ -87,6 +88,13 @@ struct a4l_buffer {
unsigned long wake_count;
 };
 
+static inline void __dump_buffer_counters(struct a4l_buffer *buf)
+{
+   __a4l_dbg(1, core_dbg, "a4l_buffer=0x%p, p=0x%p \n", buf, buf->buf);
+   __a4l_dbg(1, core_dbg, "end=%06ld, prd=%06ld, cns=%06ld, tmp=%06ld \n",
+   buf->end_count, buf->prd_count, buf->cns_count, buf->tmp_count);
+}
+
 /* --- Static inline functions related with
user<->kernel data transfers --- */
 
@@ -191,13 +199,11 @@ static inline int __handle_event(struct a4l_buffer * buf)
 
/* The event "End of acquisition" must not be cleaned
   before the complete flush of the buffer */
-   if (test_bit(A4L_BUF_EOA_NR, &buf->flags)) {
+   if (test_bit(A4L_BUF_EOA_NR, &buf->flags))
ret = -ENOENT;
-   }
 
-   if (test_bit(A4L_BUF_ERROR_NR, &buf->flags)) {
+   if (test_bit(A4L_BUF_ERROR_NR, &buf->flags))
ret = -EPIPE;
-   }
 
return ret;
 }
diff --git a/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h 
b/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h
index 2dffc89..8a0798c 100644
--- a/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h
+++ b/include/cobalt/kernel/rtdm/analogy/rtdm_helpers.h
@@ -36,22 +36,30 @@
 
 #define RTDM_SUBCLASS_ANALOGY 0
 
-#define __a4l_err(fmt, args...) \
-   rtdm_printk(KERN_ERR A4L_PROMPT fmt, ##args)
+#define __a4l_err(fmt, args...)  rtdm_printk(KERN_ERR A4L_PROMPT fmt, ##args)
+#define __a4l_warn(fmt, args...) rtdm_printk(KERN_WARNING A4L_PROMPT fmt, 
##args)
 
-#define __a4l_warn(fmt, args...) \
-   rtdm_printk(KERN_WARNING A4L_PROMPT fmt, ##args)
-
-#define __a4l_info(fmt, args...) \
-   rtdm_printk(KERN_INFO A4L_PROMPT fmt, ##args)
+#ifdef  CONFIG_XENO_DRIVERS_ANALOGY_DEBUG_FTRACE
+#define __a4l_info(fmt, args...) trace_printk(fmt, ##args)
+#else
+#define __a4l_info(fmt, args...)   
\
+rtdm_printk(KERN_INFO A4L_PROMPT "%s: " fmt, __FUNCTION__, ##args)
+#endif
 
 #ifdef CONFIG_XENO_DRIVERS_ANALOGY_DEBUG
-
-#define __a4l_dbg(level, debug, fmt, args...)  \
-   do {\
-   if ((debug) >= (level)) \
-   rtdm_printk(KERN_DEBUG A4L_PROMPT fmt, ##args); \
+#ifdef CONFIG_XENO_DRIVERS_ANALOGY_DEBUG_FTRACE
+#define __a4l_dbg(level, debug, fmt, args...)  \
+   do {\
+   if ((debug) >= (level)) \
+   trace_printk(fmt, ##args);  \
+   } while (0)
+#else
+#define __a4l_dbg(level, debug, fmt, args...)  
\
+   do {
\
+   if ((debug) >= (level))