linux/sound/pci/asihpi/hpidebug.c
<<
>>
Prefs
   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(KERN_CONT "%s%04x", k == 0 ? "" : " ", pdata[i]);
  75
  76                printk(KERN_CONT "\n");
  77        }
  78}
  79