Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4541819pxf; Tue, 30 Mar 2021 10:12:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwdsDs031vGqijR2F0uYI4woDIWJvvdcDbqM1ksrHM48cI4HF94ZflHXW6SJP8X/RmjxwDw X-Received: by 2002:a17:907:3e92:: with SMTP id hs18mr33803315ejc.396.1617124360524; Tue, 30 Mar 2021 10:12:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617124360; cv=none; d=google.com; s=arc-20160816; b=dMwUkVjY72JwwCa9ZPZeG3uG2RNkD7vlQ8RPmN8MWbI+0MZzNNn+88rDe7dzw122nU l6EwdJE7sFkGhPaUZ6VzTcQtpj2CnlavHXWtNrD5Ta2j3f+8fYVaj5eeJNe4HFoQWsS0 DoDXTLGoLhRtHIJn5S5xgUEPuuZPhisaNJ1PBYeB+5hLdlOjrOvf1E6pgwSdHl/Uga7J LTJUsSWU1SICBEEZ8syLsZFHRbMmBXKnOehLJTweR57bhskxxb0EGyIPhZ3k3jcoLaRC qkXJNU5sHCXXnLAFKnVY7fIDU9Ipm8TWxFpSkeQpt8DDRAd4H7rm7Ow+eBamgvdCkTIR a51Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=ZS6sThfqjshdRC3W4218xxZ9WPfdlcU3PbIZ0teUGGM=; b=lwKB7U5nb15uqwS2PGdnzZ3W5fsR0qXUxm0hKmdwK1TaG0XGKFPKvzMUIemxjCIMJI hmtZzaqRNCJJ5m0tG663+xX/UVfETT/rpImPfg+jzbJxX6q3QxSCJEC5ZVbzm5zBUmNn nXbwk2JPaTl52fFThIao8szzy4i/yk3Y+28D617ZTx+09ssNmFbEWmAbMQMmy42mjMUt RjGo2h/J5eSvLXPKES//QgLGdHe6iiDs7hI7ZcQGadMKGMUHnl6qeDbN1YPYSCL1IfcU OOl8ozLLByi6gOMdGz3Rh16VuIl0kUqSxcZ2VxD8bK72npfbBjzDNh8ilGHLE9s8msHH z6aQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=mQOaLv+9; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cz26si9277786edb.251.2021.03.30.10.11.55; Tue, 30 Mar 2021 10:12:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=mQOaLv+9; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232518AbhC3RKD (ORCPT + 99 others); Tue, 30 Mar 2021 13:10:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52402 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232404AbhC3RJd (ORCPT ); Tue, 30 Mar 2021 13:09:33 -0400 Received: from mail-pj1-x1029.google.com (mail-pj1-x1029.google.com [IPv6:2607:f8b0:4864:20::1029]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDA54C061574 for ; Tue, 30 Mar 2021 10:09:32 -0700 (PDT) Received: by mail-pj1-x1029.google.com with SMTP id t18so8084449pjs.3 for ; Tue, 30 Mar 2021 10:09:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ZS6sThfqjshdRC3W4218xxZ9WPfdlcU3PbIZ0teUGGM=; b=mQOaLv+9F5+g70Jb42sXzpCiQveylupneUNCKOeytQpL3/iWsM/EfoiId+q5QneyHJ fIod0PntWeWpBCqqHGUD9926cU68v8hU621iXET7UU57JtE2bxpZQhiHvAOIzpE7/HQh L9ygnLx6t5j7SkoUGDl6U/t5EVdrYZ5Z4m11c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=ZS6sThfqjshdRC3W4218xxZ9WPfdlcU3PbIZ0teUGGM=; b=ta5uNgm3qdVdkbKOGi65JMlzfRc+sDbr4hQPKX4Hkc0/6GvfAmvsVIrHhkcumQ2j1k FXbtoI/IJ+aEnMAaNSWkeoEyKDtIZxWKNYOrVmT8moYMQ0qgUaSIW9dV00DV+Vc2eVAA MxKuxRYWiPFC5CzZrXlEbl3Up0/gyQ7kr7tA/AdPWE/7fnEESqDz+reI7c2Kw3zGI505 nUQK3nz6LDaxQOkwNvvhhAeAOgI0zhZSBWY1Ws/NnPn5gqwTFbzvnniQ3MYvUMcGZMlF 5TQ1p2v2bk6CJo2Zp+/YkeyZ6y6+KXu4xaxv81BQCgw+RamvHVjIAXzfK2fIameBVi4z 4RPQ== X-Gm-Message-State: AOAM532ME20X7FEAjINVDPBA0nOigxZ+DLBmtw2YLtmvY6RwnXfjeo3R A191Xxi00EpmhbiYra83XOuNyU53qp0t8w== X-Received: by 2002:a17:90b:360d:: with SMTP id ml13mr5222217pjb.161.1617124171965; Tue, 30 Mar 2021 10:09:31 -0700 (PDT) Received: from sonnysasaka-chrome.mtv.corp.google.com ([2620:15c:202:201:7587:91c9:c28b:2af5]) by smtp.gmail.com with ESMTPSA id m9sm11534006pgt.65.2021.03.30.10.09.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 30 Mar 2021 10:09:31 -0700 (PDT) From: Sonny Sasaka To: linux-bluetooth@vger.kernel.org Cc: Sonny Sasaka Subject: [PATCH BlueZ] profiles/battery: Always update initial battery value Date: Tue, 30 Mar 2021 10:09:24 -0700 Message-Id: <20210330170924.16983-1-sonnysasaka@chromium.org> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Due to cache in gatt db, bluetoothd fails to update publish the battery value after reconnection when the battery value does not change compared to before reconnection. For initial battery value, we should update the value to D-Bus regardless of the cache value. --- profiles/battery/battery.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/profiles/battery/battery.c b/profiles/battery/battery.c index 81f849d57..0f8d6ef18 100644 --- a/profiles/battery/battery.c +++ b/profiles/battery/battery.c @@ -88,12 +88,13 @@ static void batt_reset(struct batt *batt) } static void parse_battery_level(struct batt *batt, - const uint8_t *value) + const uint8_t *value, + bool force_update) { uint8_t percentage; percentage = value[0]; - if (batt->percentage != percentage) { + if (force_update || batt->percentage != percentage) { batt->percentage = percentage; DBG("Battery Level updated: %d%%", percentage); if (!batt->battery) { @@ -110,7 +111,7 @@ static void batt_io_value_cb(uint16_t value_handle, const uint8_t *value, struct batt *batt = user_data; if (value_handle == batt->batt_level_io_handle) { - parse_battery_level(batt, value); + parse_battery_level(batt, value, false /* force_update */); } else { g_assert_not_reached(); } @@ -134,7 +135,7 @@ static void batt_io_ccc_written_cb(uint16_t att_ecode, void *user_data) return; } - parse_battery_level(batt, batt->initial_value); + parse_battery_level(batt, batt->initial_value, true /* force_update */); g_free (batt->initial_value); batt->initial_value = NULL; -- 2.29.2