xref: /linux/sound/pci/asihpi/hpidebug.c (revision 164666fa66669d437bdcc8d5f1744a2aee73be41)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /************************************************************************
3 
4     AudioScience HPI driver
5     Copyright (C) 1997-2011  AudioScience Inc. <support@audioscience.com>
6 
7 
8 Debug macro translation.
9 
10 ************************************************************************/
11 
12 #include "hpi_internal.h"
13 #include "hpidebug.h"
14 
15 /* Debug level; 0 quiet; 1 informative, 2 debug, 3 verbose debug.  */
16 int hpi_debug_level = HPI_DEBUG_LEVEL_DEFAULT;
17 
18 void hpi_debug_init(void)
19 {
20 	printk(KERN_INFO "debug start\n");
21 }
22 
23 int hpi_debug_level_set(int level)
24 {
25 	int old_level;
26 
27 	old_level = hpi_debug_level;
28 	hpi_debug_level = level;
29 	return old_level;
30 }
31 
32 int hpi_debug_level_get(void)
33 {
34 	return hpi_debug_level;
35 }
36 
37 void hpi_debug_message(struct hpi_message *phm, char *sz_fileline)
38 {
39 	if (phm) {
40 		printk(KERN_DEBUG "HPI_MSG%d,%d,%d,%d,%d\n", phm->version,
41 			phm->adapter_index, phm->obj_index, phm->function,
42 			phm->u.c.attribute);
43 	}
44 
45 }
46 
47 void hpi_debug_data(u16 *pdata, u32 len)
48 {
49 	u32 i;
50 	int j;
51 	int k;
52 	int lines;
53 	int cols = 8;
54 
55 	lines = DIV_ROUND_UP(len, cols);
56 	if (lines > 8)
57 		lines = 8;
58 
59 	for (i = 0, j = 0; j < lines; j++) {
60 		printk(KERN_DEBUG "%p:", (pdata + i));
61 
62 		for (k = 0; k < cols && i < len; i++, k++)
63 			printk(KERN_CONT "%s%04x", k == 0 ? "" : " ", pdata[i]);
64 
65 		printk(KERN_CONT "\n");
66 	}
67 }
68