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 26  
27 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 35 * Input/Output GPIO pins:
31 36 * 32x PIO device
... ... @@ -88,7 +93,7 @@ typedef struct PIOState {
88 93  
89 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 97 PIOState *s = opaque;
93 98 int mask = 1 << (pin % PIO_PINS);
94 99 int input_set = pin / PIO_PINS;
... ... @@ -98,7 +103,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level)
98 103 if (input_set == 0) {
99 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 108 /* Skip input if output mode is enabled for the pin */
104 109 if (s->osr & mask)
... ... @@ -111,7 +116,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level)
111 116 if (level == -1) {
112 117 s->unknown_state |= mask;
113 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 120 s->unknown_state &= ~mask;
116 121 s->pdsr |= mask;
117 122 }
... ... @@ -122,7 +127,7 @@ void at91_pio_set_pin(void *opaque, int pin, int level)
122 127 } else {
123 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 132 } else {
128 133 /* Peripheral -> PIO pin */
... ... @@ -148,7 +153,7 @@ static uint32_t at91_pio_mem_read(void *opaque, target_phys_addr_t offset)
148 153 case PIO_ODSR:
149 154 return s->odsr;
150 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 157 s->pdsr, s->unknown_state,
153 158 (s->pdsr & ~s->unknown_state) |
154 159 (s->ppusr & s->unknown_state));
... ... @@ -181,9 +186,11 @@ static void at91_pio_mem_write(void *opaque, target_phys_addr_t offset,
181 186 PIOState *s = opaque;
182 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 191 offset &= PIO_SIZE - 1;
  192 +
  193 + uint32_t prev;
187 194 switch (offset) {
188 195 case PIO_PER:
189 196 s->psr |= value;
... ... @@ -204,21 +211,29 @@ static void at91_pio_mem_write(void *opaque, target_phys_addr_t offset,
204 211 s->ifsr &= ~value;
205 212 break;
206 213 case PIO_SODR:
  214 + prev = s->odsr;
207 215 s->odsr |= value;
208 216 for (i = 0; i < PIO_PINS; i++)
209 217 if (value & (1 << i) & s->osr)
210 218 {
211 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 225 break;
215 226 case PIO_CODR:
  227 + prev = s->odsr;
216 228 s->odsr &= ~value;
217 229 for (i = 0; i < PIO_PINS; i++)
218 230 if (value & (1 << i) & s->osr)
219 231 {
220 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 238 break;
224 239 case PIO_ODSR:
... ... @@ -338,7 +353,7 @@ int at91_io_cnt = 0;
338 353  
339 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 357 PIOState *s = FROM_SYSBUS(typeof (*s), dev);
343 358 at91_io_state[at91_io_cnt++] = s;
344 359 int pio_regs;
... ...