sparc64: vcc: Add VCC debug message macros
authorJag Raman <jag.raman@oracle.com>
Tue, 15 Aug 2017 21:02:58 +0000 (17:02 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 16 Aug 2017 04:33:51 +0000 (21:33 -0700)
Add C macros to print debug messages from VCC module

Signed-off-by: Jagannathan Raman <jag.raman@oracle.com>
Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/ldc.c
drivers/tty/vcc.c

index 840e0b21bfe31addc817bcbbf6a8cb70d6f9f72f..1169915f7568f00c24bd58b90d068dad536ee41e 100644 (file)
@@ -1493,6 +1493,7 @@ void __ldc_print(struct ldc_channel *lp, const char *caller)
                lp->tx_head, lp->tx_tail, lp->tx_num_entries,
                lp->rcv_nxt, lp->snd_nxt);
 }
+EXPORT_SYMBOL(__ldc_print);
 
 static int write_raw(struct ldc_channel *lp, const void *buf, unsigned int size)
 {
index e1b809927cd6bd8fa0208cc8df2567dbd90d1e08..4fd8dd0bda5e982cc84f158ead3daa18eef7d3bc 100644 (file)
@@ -5,6 +5,47 @@
 
 #include <linux/module.h>
 
+#define DRV_MODULE_NAME                "vcc"
+#define DRV_MODULE_VERSION     "1.1"
+#define DRV_MODULE_RELDATE     "July 1, 2017"
+
+MODULE_DESCRIPTION("Sun LDOM virtual console concentrator driver");
+MODULE_LICENSE("GPL");
+MODULE_VERSION(DRV_MODULE_VERSION);
+
+int vcc_dbg;
+int vcc_dbg_ldc;
+int vcc_dbg_vio;
+
+module_param(vcc_dbg, uint, 0664);
+module_param(vcc_dbg_ldc, uint, 0664);
+module_param(vcc_dbg_vio, uint, 0664);
+
+#define VCC_DBG_DRV    0x1
+#define VCC_DBG_LDC    0x2
+#define VCC_DBG_PKT    0x4
+
+#define vccdbg(f, a...)                                                \
+       do {                                                    \
+               if (vcc_dbg & VCC_DBG_DRV)                      \
+                       pr_info(f, ## a);                       \
+       } while (0)                                             \
+
+#define vccdbgl(l)                                             \
+       do {                                                    \
+               if (vcc_dbg & VCC_DBG_LDC)                      \
+                       ldc_print(l);                           \
+       } while (0)                                             \
+
+#define vccdbgp(pkt)                                           \
+       do {                                                    \
+               if (vcc_dbg & VCC_DBG_PKT) {                    \
+                       int i;                                  \
+                       for (i = 0; i < pkt.tag.stype; i++)     \
+                               pr_info("[%c]", pkt.data[i]);   \
+               }                                               \
+       } while (0)                                             \
+
 static int __init vcc_init(void)
 {
        return 0;