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
19Debug 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.  */
27int hpi_debug_level = HPI_DEBUG_LEVEL_DEFAULT;
28
29void hpi_debug_init(void)
30{
31	printk(KERN_INFO "debug start\n");
32}
33
34int 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
43int hpi_debug_level_get(void)
44{
45	return hpi_debug_level;
46}
47
48void 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
58void 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("%s%04x", k == 0 ? "" : " ", pdata[i]);
75
76		printk("\n");
77	}
78}
79