From ffdb57874643a8ad65a46a02dceb2211283816c2 Mon Sep 17 00:00:00 2001 From: Eliot Blennerhassett Date: Thu, 10 Feb 2011 17:26:00 +1300 Subject: [PATCH] ALSA: asihpi - Add adapter index to cache info for debug. Signed-off-by: Eliot Blennerhassett Signed-off-by: Takashi Iwai --- sound/pci/asihpi/hpi6000.c | 3 +++ sound/pci/asihpi/hpi6205.c | 3 +++ sound/pci/asihpi/hpicmn.c | 16 ++++++++++++---- sound/pci/asihpi/hpicmn.h | 3 ++- 4 files changed, 20 insertions(+), 5 deletions(-) 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 -- 2.30.2