summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmaury Pouly <amaury.pouly@gmail.com>2012-01-27 19:50:06 +0100
committerAmaury Pouly <amaury.pouly@gmail.com>2012-01-27 20:08:33 +0100
commit05ba5c19712250b27cc78e8316b93690fd948a03 (patch)
tree7ad562d73c01e231665f22ad8c04f62e1c72bb24
parentbf47e577aa7d5d6e64cb6b8a1f8869c62dc5d2f9 (diff)
downloadrockbox-05ba5c19712250b27cc78e8316b93690fd948a03.tar.gz
rockbox-05ba5c19712250b27cc78e8316b93690fd948a03.zip
imx233: update arbiter to get more debug information, update debug screen accordingly
Change-Id: Ia229e5303692712295f1dbd37a76f865a3eef4ea
-rw-r--r--firmware/target/arm/imx233/debug-imx233.c6
-rw-r--r--firmware/target/arm/imx233/kernel-imx233.c5
-rw-r--r--firmware/target/arm/imx233/kernel-imx233.h1
3 files changed, 9 insertions, 3 deletions
diff --git a/firmware/target/arm/imx233/debug-imx233.c b/firmware/target/arm/imx233/debug-imx233.c
index 7db7ee97d7..a4c50bbaf7 100644
--- a/firmware/target/arm/imx233/debug-imx233.c
+++ b/firmware/target/arm/imx233/debug-imx233.c
@@ -378,14 +378,14 @@ bool dbg_hw_info_dcp(void)
378 info.gather_writes, info.otp_key_ready, info.ch0_merged); 378 info.gather_writes, info.otp_key_ready, info.ch0_merged);
379 lcd_putsf(0, 4, "ctx switching: %d caching: %d", info.context_switching, 379 lcd_putsf(0, 4, "ctx switching: %d caching: %d", info.context_switching,
380 info.context_caching); 380 info.context_caching);
381 lcd_putsf(0, 5, "ch irq ien en rdy pri sem cmdptr"); 381 lcd_putsf(0, 5, "ch irq ien en rdy pri sem cmdptr a");
382 int nr = HW_DCP_NUM_CHANNELS; 382 int nr = HW_DCP_NUM_CHANNELS;
383 for(int i = 0; i < nr; i++) 383 for(int i = 0; i < nr; i++)
384 { 384 {
385 lcd_putsf(0, 6 + i, "%d %d %d %d %d %d %d 0x%08lx", 385 lcd_putsf(0, 6 + i, "%d %d %d %d %d %d %d 0x%08lx %d",
386 i, info.channel[i].irq, info.channel[i].irq_en, info.channel[i].enable, 386 i, info.channel[i].irq, info.channel[i].irq_en, info.channel[i].enable,
387 info.channel[i].ready, info.channel[i].high_priority, 387 info.channel[i].ready, info.channel[i].high_priority,
388 info.channel[i].sema, info.channel[i].cmdptr); 388 info.channel[i].sema, info.channel[i].cmdptr, info.channel[i].acquired);
389 } 389 }
390 lcd_putsf(0, 6 + nr, "csc %d %d %d %d", 390 lcd_putsf(0, 6 + nr, "csc %d %d %d %d",
391 info.csc.irq, info.csc.irq_en, info.csc.enable, info.csc.priority); 391 info.csc.irq, info.csc.irq_en, info.csc.enable, info.csc.priority);
diff --git a/firmware/target/arm/imx233/kernel-imx233.c b/firmware/target/arm/imx233/kernel-imx233.c
index b59d3ed63f..752db68149 100644
--- a/firmware/target/arm/imx233/kernel-imx233.c
+++ b/firmware/target/arm/imx233/kernel-imx233.c
@@ -71,6 +71,11 @@ int arbiter_acquire(struct channel_arbiter_t *a, int timeout)
71 return chan; 71 return chan;
72} 72}
73 73
74bool arbiter_acquired(struct channel_arbiter_t *a, int channel)
75{
76 return !(a->free_bm & (1 << channel));
77}
78
74void arbiter_release(struct channel_arbiter_t *a, int channel) 79void arbiter_release(struct channel_arbiter_t *a, int channel)
75{ 80{
76 mutex_lock(&a->mutex); 81 mutex_lock(&a->mutex);
diff --git a/firmware/target/arm/imx233/kernel-imx233.h b/firmware/target/arm/imx233/kernel-imx233.h
index 3c62c1597c..960f3f2431 100644
--- a/firmware/target/arm/imx233/kernel-imx233.h
+++ b/firmware/target/arm/imx233/kernel-imx233.h
@@ -41,5 +41,6 @@ void arbiter_reserve(struct channel_arbiter_t *a, unsigned channel);
41/* return channel on success and OBJ_WAIT_TIMEOUT on failure */ 41/* return channel on success and OBJ_WAIT_TIMEOUT on failure */
42int arbiter_acquire(struct channel_arbiter_t *a, int timeout); 42int arbiter_acquire(struct channel_arbiter_t *a, int timeout);
43void arbiter_release(struct channel_arbiter_t *a, int channel); 43void arbiter_release(struct channel_arbiter_t *a, int channel);
44bool arbiter_acquired(struct channel_arbiter_t *a, int channel);
44 45
45#endif /* __KERNEL_IMX233__ */ \ No newline at end of file 46#endif /* __KERNEL_IMX233__ */ \ No newline at end of file