Commit ac7e6319512e6ba971de0a78ae63590d5d62d3e6

Authored by Grzegorz Jabłoński
1 parent 254a2710

Clean up messages from PIO

Showing 1 changed file with 24 additions and 9 deletions
hw/at91_pio.c
@@ -26,6 +26,11 @@ @@ -26,6 +26,11 @@
26 26
27 #include "sysbus.h" 27 #include "sysbus.h"
28 28
  29 +//#define DPRINTF(fmt, ...) printf(fmt, ## __VA_ARGS__)
  30 +#define DPRINTF(fmt, ...) do { } while (0)
  31 +
  32 +
  33 +
29 /* 34 /*
30 * Input/Output GPIO pins: 35 * Input/Output GPIO pins:
31 * 32x PIO device 36 * 32x PIO device
@@ -88,7 +93,7 @@ typedef struct PIOState { @@ -88,7 +93,7 @@ typedef struct PIOState {
88 93
89 void at91_pio_set_pin(void *opaque, int pin, int level) 94 void at91_pio_set_pin(void *opaque, int pin, int level)
90 { 95 {
91 - printf("In at91_pio_set_pin, opaque=%p, pin=%d, level=%d\n", opaque, pin, level); 96 + DPRINTF("In at91_pio_set_pin, opaque=%p, pin=%d, level=%d\n", opaque, pin, level);
92 PIOState *s = opaque; 97 PIOState *s = opaque;
93 int mask = 1 << (pin % PIO_PINS); 98 int mask = 1 << (pin % PIO_PINS);
94 int input_set = pin / PIO_PINS; 99 int input_set = pin / PIO_PINS;
@@ -98,7 +103,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level) @@ -98,7 +103,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level)
98 if (input_set == 0) { 103 if (input_set == 0) {
99 /* PIO pin -> Peripheral / IO */ 104 /* PIO pin -> Peripheral / IO */
100 105
101 - printf("In at91_pio_set_pin, s->osr=%08x, s->psr=%08x, mask=%08x\n",s->osr, s->psr, mask); 106 + DPRINTF("In at91_pio_set_pin, s->osr=%08x, s->psr=%08x, mask=%08x\n",s->osr, s->psr, mask);
102 107
103 /* Skip input if output mode is enabled for the pin */ 108 /* Skip input if output mode is enabled for the pin */
104 if (s->osr & mask) 109 if (s->osr & mask)
@@ -111,7 +116,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level) @@ -111,7 +116,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level)
111 if (level == -1) { 116 if (level == -1) {
112 s->unknown_state |= mask; 117 s->unknown_state |= mask;
113 } else if (level) { 118 } else if (level) {
114 - printf("In at91_pio_set_pin, setting level\n"); 119 + DPRINTF("In at91_pio_set_pin, setting level\n");
115 s->unknown_state &= ~mask; 120 s->unknown_state &= ~mask;
116 s->pdsr |= mask; 121 s->pdsr |= mask;
117 } 122 }
@@ -122,7 +127,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level) @@ -122,7 +127,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level)
122 } else { 127 } else {
123 qemu_set_irq(s->out[PIO_PINS + (output_set * PIO_PINS)], level); 128 qemu_set_irq(s->out[PIO_PINS + (output_set * PIO_PINS)], level);
124 } 129 }
125 - printf("In at91_pio_set_pin, s->pdsr=%08x\n",s->pdsr); 130 + DPRINTF("In at91_pio_set_pin, s->pdsr=%08x\n",s->pdsr);
126 131
127 } else { 132 } else {
128 /* Peripheral -> PIO pin */ 133 /* Peripheral -> PIO pin */
@@ -148,7 +153,7 @@ static uint32_t at91_pio_mem_read(void *opaque, target_phys_addr_t offset) @@ -148,7 +153,7 @@ static uint32_t at91_pio_mem_read(void *opaque, target_phys_addr_t offset)
148 case PIO_ODSR: 153 case PIO_ODSR:
149 return s->odsr; 154 return s->odsr;
150 case PIO_PDSR: 155 case PIO_PDSR:
151 - printf("In at91_pio_mem_read, reading PDSR, s->pdsr=%08x, s->unknown_state=%08x, retval=%08x\n", 156 + DPRINTF("In at91_pio_mem_read, reading PDSR, s->pdsr=%08x, s->unknown_state=%08x, retval=%08x\n",
152 s->pdsr, s->unknown_state, 157 s->pdsr, s->unknown_state,
153 (s->pdsr & ~s->unknown_state) | 158 (s->pdsr & ~s->unknown_state) |
154 (s->ppusr & s->unknown_state)); 159 (s->ppusr & s->unknown_state));
@@ -181,9 +186,11 @@ static void at91_pio_mem_write(void *opaque, target_phys_addr_t offset, @@ -181,9 +186,11 @@ static void at91_pio_mem_write(void *opaque, target_phys_addr_t offset,
181 PIOState *s = opaque; 186 PIOState *s = opaque;
182 int i; 187 int i;
183 188
184 - printf("Writing PIO: offset=0x%08lx, value=0x%08x\n",offset,value); 189 + DPRINTF("Writing PIO: offset=0x%08lx, value=0x%08x\n",offset,value);
185 190
186 offset &= PIO_SIZE - 1; 191 offset &= PIO_SIZE - 1;
  192 +
  193 + uint32_t prev;
187 switch (offset) { 194 switch (offset) {
188 case PIO_PER: 195 case PIO_PER:
189 s->psr |= value; 196 s->psr |= value;
@@ -204,21 +211,29 @@ static void at91_pio_mem_write(void *opaque, target_phys_addr_t offset, @@ -204,21 +211,29 @@ static void at91_pio_mem_write(void *opaque, target_phys_addr_t offset,
204 s->ifsr &= ~value; 211 s->ifsr &= ~value;
205 break; 212 break;
206 case PIO_SODR: 213 case PIO_SODR:
  214 + prev = s->odsr;
207 s->odsr |= value; 215 s->odsr |= value;
208 for (i = 0; i < PIO_PINS; i++) 216 for (i = 0; i < PIO_PINS; i++)
209 if (value & (1 << i) & s->osr) 217 if (value & (1 << i) & s->osr)
210 { 218 {
211 qemu_set_irq(s->out[i], 1); 219 qemu_set_irq(s->out[i], 1);
212 - printf("Pin %d set\n",i); 220 + if(prev != s->odsr)
  221 + {
  222 + printf("Pin %d set\n",i);
  223 + }
213 } 224 }
214 break; 225 break;
215 case PIO_CODR: 226 case PIO_CODR:
  227 + prev = s->odsr;
216 s->odsr &= ~value; 228 s->odsr &= ~value;
217 for (i = 0; i < PIO_PINS; i++) 229 for (i = 0; i < PIO_PINS; i++)
218 if (value & (1 << i) & s->osr) 230 if (value & (1 << i) & s->osr)
219 { 231 {
220 qemu_set_irq(s->out[i], 0); 232 qemu_set_irq(s->out[i], 0);
221 - printf("Pin %d reset\n",i); 233 + if(prev != s->odsr)
  234 + {
  235 + printf("Pin %d reset\n",i);
  236 + }
222 } 237 }
223 break; 238 break;
224 case PIO_ODSR: 239 case PIO_ODSR:
@@ -338,7 +353,7 @@ int at91_io_cnt = 0; @@ -338,7 +353,7 @@ int at91_io_cnt = 0;
338 353
339 static void at91_pio_init(SysBusDevice *dev) 354 static void at91_pio_init(SysBusDevice *dev)
340 { 355 {
341 - printf("at91_pio_init called\n"); 356 + DPRINTF("at91_pio_init called\n");
342 PIOState *s = FROM_SYSBUS(typeof (*s), dev); 357 PIOState *s = FROM_SYSBUS(typeof (*s), dev);
343 at91_io_state[at91_io_cnt++] = s; 358 at91_io_state[at91_io_cnt++] = s;
344 int pio_regs; 359 int pio_regs;