From: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Date: Thu, 10 Feb 2011 04:26:00 +0000 (+1300)
Subject: ALSA: asihpi - Add adapter index to cache info for debug.
X-Git-Tag: v2.6.39-rc1~424^2^2~67
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ffdb57874643a8ad65a46a02dceb2211283816c2;p=linux.git

ALSA: asihpi - Add adapter index to cache info for debug.

Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---

diff --git a/sound/pci/asihpi/hpi6000.c b/sound/pci/asihpi/hpi6000.c
index c85db49e5ec5..c486af182227 100644
--- a/sound/pci/asihpi/hpi6000.c
+++ b/sound/pci/asihpi/hpi6000.c
@@ -582,6 +582,9 @@ static short create_adapter_obj(struct hpi_adapter_obj *pao,
 		pao->adapter_type, pao->index);
 	pao->open = 0;	/* upon creation the adapter is closed */
 
+	if (phw->p_cache)
+		phw->p_cache->adap_idx = pao->index;
+
 	return hpi_add_adapter(pao);
 }
 
diff --git a/sound/pci/asihpi/hpi6205.c b/sound/pci/asihpi/hpi6205.c
index b740edc29b1c..5ebf8f886ad7 100644
--- a/sound/pci/asihpi/hpi6205.c
+++ b/sound/pci/asihpi/hpi6205.c
@@ -718,6 +718,9 @@ static u16 create_adapter_obj(struct hpi_adapter_obj *pao,
 
 	pao->open = 0;	/* upon creation the adapter is closed */
 
+	if (phw->p_cache)
+		phw->p_cache->adap_idx = pao->index;
+
 	HPI_DEBUG_LOG(INFO, "bootload DSP OK\n");
 
 	return hpi_add_adapter(pao);
diff --git a/sound/pci/asihpi/hpicmn.c b/sound/pci/asihpi/hpicmn.c
index 793236ef0a54..85c297279792 100644
--- a/sound/pci/asihpi/hpicmn.c
+++ b/sound/pci/asihpi/hpicmn.c
@@ -197,11 +197,18 @@ static unsigned int control_cache_alloc_check(struct hpi_control_cache *pC)
 				&p_master_cache[byte_count];
 
 			if (!info->size_in32bit_words) {
+				if (i == 0) {
+					HPI_DEBUG_LOG(INFO,
+						"adap %d cache not ready?\n",
+						pC->adap_idx);
+					return 0;
+				}
 				/* ? This is a severe error, the cache is probably
 				   corrupted.  Minimum valid entry size is
 				   sizeof(struct hpi_control_cache_info) */
 				HPI_DEBUG_LOG(ERROR,
-					"zero size cache entry %d\n", i);
+					"adap %d zero size cache entry %d\n",
+					pC->adap_idx, i);
 				break;
 			}
 
@@ -231,12 +238,13 @@ static unsigned int control_cache_alloc_check(struct hpi_control_cache *pC)
 
 		if (byte_count != pC->cache_size_in_bytes)
 			HPI_DEBUG_LOG(WARNING,
-				"bytecount %d != cache size %d", byte_count,
+				"adap %d bytecount %d != cache size %d",
+				pC->adap_idx, byte_count,
 				pC->cache_size_in_bytes);
 		else
 			HPI_DEBUG_LOG(DEBUG,
-				"cache good. bytecount == cache size = %d",
-				byte_count);
+				"adap %d cache good, bytecount == cache size = %d",
+				pC->adap_idx, byte_count);
 
 		pC->init = cached;
 	}
diff --git a/sound/pci/asihpi/hpicmn.h b/sound/pci/asihpi/hpicmn.h
index e2f6f1f11a66..2708c4df2c70 100644
--- a/sound/pci/asihpi/hpicmn.h
+++ b/sound/pci/asihpi/hpicmn.h
@@ -33,8 +33,9 @@ struct hpi_adapter_obj {
 };
 
 struct hpi_control_cache {
-	u32 init;	     /**< indicates whether the
+	u16 init;	     /**< indicates whether the
 				structures are initialized */
+	u16 adap_idx;
 	u32 control_count;
 	u32 cache_size_in_bytes;
 	struct hpi_control_cache_info