#include "../util.h" #include "../../util/util.h" #include "../../util/debug.h" #include "gtk.h" #include struct perf_gtk_context *pgctx; struct perf_gtk_context *perf_gtk__activate_context(GtkWidget *window) { struct perf_gtk_context *ctx; ctx = malloc(sizeof(*pgctx)); if (ctx) ctx->main_window = window; return ctx; } int perf_gtk__deactivate_context(struct perf_gtk_context **ctx) { if (!perf_gtk__is_active_context(*ctx)) return -1; zfree(ctx); return 0; } static int perf_gtk__error(const char *format, va_list args) { char *msg; GtkWidget *dialog; if (!perf_gtk__is_active_context(pgctx) || vasprintf(&msg, format, args) < 0) { fprintf(stderr, "Error:\n"); vfprintf(stderr, format, args); fprintf(stderr, "\n"); return -1; } dialog = gtk_message_dialog_new_with_markup(GTK_WINDOW(pgctx->main_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error\n\n%s", msg); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); free(msg); return 0; } #ifdef HAVE_GTK_INFO_BAR_SUPPORT static int perf_gtk__warning_info_bar(const char *format, va_list args) { char *msg; if (!perf_gtk__is_active_context(pgctx) || vasprintf(&msg, format, args) < 0) { fprintf(stderr, "Warning:\n"); vfprintf(stderr, format, args); fprintf(stderr, "\n"); return -1; } gtk_label_set_text(GTK_LABEL(pgctx->message_label), msg); gtk_info_bar_set_message_type(GTK_INFO_BAR(pgctx->info_bar), GTK_MESSAGE_WARNING); gtk_widget_show(pgctx->info_bar); free(msg); return 0; } #else static int perf_gtk__warning_statusbar(const char *format, va_list args) { char *msg, *p; if (!perf_gtk__is_active_context(pgctx) || vasprintf(&msg, format, args) < 0) { fprintf(stderr, "Warning:\n"); vfprintf(stderr, format, args); fprintf(stderr, "\n"); return -1; } gtk_statusbar_pop(GTK_STATUSBAR(pgctx->statbar), pgctx->statbar_ctx_id); /* Only first line can be displayed */ p = strchr(msg, '\n'); if (p) *p = '\0'; gtk_statusbar_push(GTK_STATUSBAR(pgctx->statbar), pgctx->statbar_ctx_id, msg); free(msg); return 0; } #endif struct perf_error_ops perf_gtk_eops = { .error = perf_gtk__error, #ifdef HAVE_GTK_INFO_BAR_SUPPORT .warning = perf_gtk__warning_info_bar, #else .warning = perf_gtk__warning_statusbar, #endif }; id' value='1deeaa0b86973bef6629396cc0f5f092872bb6de'/>
path: root/include/dt-bindings/gpio/meson-gxbb-gpio.h
'nds-private-remove'/>
AgeCommit message (Expand)AuthorFilesLines
context:
space:
mode:
authorZach Ploskey <zach@ploskey.com>2017-01-22 00:47:19 -0800
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>2017-01-22 12:47:06 +0200
commitcfee5d63767b2e7997c1f36420d008abbe61565c (patch)
treec66a512525d224f9675c33a8d156e0f058db1de6 /sound/soc/codecs/wm0010.c
parent5a00b6c2438460b870a451f14593fc40d3c7edf6 (diff)
platform/x86: ideapad-laptop: handle ACPI event 1
On Ideapad laptops, ACPI event 1 is currently not handled. Many models log "ideapad_laptop: Unknown event: 1" every 20 seconds or so while running on battery power. Some convertible laptops receive this event when switching in and out of tablet mode. This adds and additional case for event 1 in ideapad_acpi_notify to call ideapad_input_report(priv, vpc_bit), so that the event is reported to userspace and we avoid unnecessary logging. Fixes bug #107481 (https://bugzilla.kernel.org/show_bug.cgi?id=107481) Fixes bug #65751 (https://bugzilla.kernel.org/show_bug.cgi?id=65751) Signed-off-by: Zach Ploskey <zach@ploskey.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Diffstat (limited to 'sound/soc/codecs/wm0010.c')