Message ID | 20200910205429.727766-4-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/misc: Add LED device | expand |
On 9/10/20 10:54 PM, Philippe Mathieu-Daudé wrote: > Track the LED intensity, and emit a trace event when it changes. > > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Luc Michel <luc.michel@greensocs.com> > --- > hw/misc/led.c | 4 ++++ > hw/misc/trace-events | 1 + > 2 files changed, 5 insertions(+) > > diff --git a/hw/misc/led.c b/hw/misc/led.c > index 3ef4f5e0469..ebe1fa45b1e 100644 > --- a/hw/misc/led.c > +++ b/hw/misc/led.c > @@ -41,6 +41,10 @@ void led_set_intensity(LEDState *s, unsigned intensity_percent) > intensity_percent = LED_INTENSITY_PERCENT_MAX; > } > trace_led_set_intensity(s->description, s->color, intensity_percent); > + if (intensity_percent != s->intensity_percent) { > + trace_led_change_intensity(s->description, s->color, > + s->intensity_percent, intensity_percent); > + } > s->intensity_percent = intensity_percent; > } > > diff --git a/hw/misc/trace-events b/hw/misc/trace-events > index 76c9ddb54fe..89d15f05f9a 100644 > --- a/hw/misc/trace-events > +++ b/hw/misc/trace-events > @@ -216,6 +216,7 @@ grlib_apb_pnp_read(uint64_t addr, uint32_t value) "APB PnP read addr:0x%03"PRIx6 > > # led.c > led_set_intensity(const char *color, const char *desc, uint8_t intensity_percent) "LED desc:'%s' color:%s intensity: %u%%" > +led_change_intensity(const char *color, const char *desc, uint8_t old_intensity_percent, uint8_t new_intensity_percent) "LED desc:'%s' color:%s intensity %u%% -> %u%%" > > # pca9552.c > pca955x_gpio_status(const char *description, const char *buf) "%s GPIOs 0-15 [%s]" >
diff --git a/hw/misc/led.c b/hw/misc/led.c index 3ef4f5e0469..ebe1fa45b1e 100644 --- a/hw/misc/led.c +++ b/hw/misc/led.c @@ -41,6 +41,10 @@ void led_set_intensity(LEDState *s, unsigned intensity_percent) intensity_percent = LED_INTENSITY_PERCENT_MAX; } trace_led_set_intensity(s->description, s->color, intensity_percent); + if (intensity_percent != s->intensity_percent) { + trace_led_change_intensity(s->description, s->color, + s->intensity_percent, intensity_percent); + } s->intensity_percent = intensity_percent; } diff --git a/hw/misc/trace-events b/hw/misc/trace-events index 76c9ddb54fe..89d15f05f9a 100644 --- a/hw/misc/trace-events +++ b/hw/misc/trace-events @@ -216,6 +216,7 @@ grlib_apb_pnp_read(uint64_t addr, uint32_t value) "APB PnP read addr:0x%03"PRIx6 # led.c led_set_intensity(const char *color, const char *desc, uint8_t intensity_percent) "LED desc:'%s' color:%s intensity: %u%%" +led_change_intensity(const char *color, const char *desc, uint8_t old_intensity_percent, uint8_t new_intensity_percent) "LED desc:'%s' color:%s intensity %u%% -> %u%%" # pca9552.c pca955x_gpio_status(const char *description, const char *buf) "%s GPIOs 0-15 [%s]"