xref: /openbmc/linux/sound/pci/asihpi/hpidebug.c (revision 41e4b7dc)
1 /************************************************************************
2 
3     AudioScience HPI driver
4     Copyright (C) 1997-2011  AudioScience Inc. <support@audioscience.com>
5 
6     This program is free software; you can redistribute it and/or modify
7     it under the terms of version 2 of the GNU General Public License as
8     published by the Free Software Foundation;
9 
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14 
15     You should have received a copy of the GNU General Public License
16     along with this program; if not, write to the Free Software
17     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 
19 Debug macro translation.
20 
21 ************************************************************************/
22 
23 #include "hpi_internal.h"
24 #include "hpidebug.h"
25 
26 /* Debug level; 0 quiet; 1 informative, 2 debug, 3 verbose debug.  */
27 int hpi_debug_level = HPI_DEBUG_LEVEL_DEFAULT;
28 
29 void hpi_debug_init(void)
30 {
31 	printk(KERN_INFO "debug start\n");
32 }
33 
34 int hpi_debug_level_set(int level)
35 {
36 	int old_level;
37 
38 	old_level = hpi_debug_level;
39 	hpi_debug_level = level;
40 	return old_level;
41 }
42 
43 int hpi_debug_level_get(void)
44 {
45 	return hpi_debug_level;
46 }
47 
48 void hpi_debug_message(struct hpi_message *phm, char *sz_fileline)
49 {
50 	if (phm) {
51 		printk(KERN_DEBUG "HPI_MSG%d,%d,%d,%d,%d\n", phm->version,
52 			phm->adapter_index, phm->obj_index, phm->function,
53 			phm->u.c.attribute);
54 	}
55 
56 }
57 
58 void hpi_debug_data(u16 *pdata, u32 len)
59 {
60 	u32 i;
61 	int j;
62 	int k;
63 	int lines;
64 	int cols = 8;
65 
66 	lines = (len + cols - 1) / cols;
67 	if (lines > 8)
68 		lines = 8;
69 
70 	for (i = 0, j = 0; j < lines; j++) {
71 		printk(KERN_DEBUG "%p:", (pdata + i));
72 
73 		for (k = 0; k < cols && i < len; i++, k++)
74 			printk(KERN_CONT "%s%04x", k == 0 ? "" : " ", pdata[i]);
75 
76 		printk(KERN_CONT "\n");
77 	}
78 }
79