linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "José Expósito" <jose.exposito89@gmail.com>
To: Mia Kanashi <chad@redpilled.dev>
Cc: jikos@kernel.org, benjamin.tissoires@redhat.com,
	spbnick@gmail.com, pobrn@protonmail.com,
	linux-input@vger.kernel.org, linux-kernel@vger.kernel.org,
	Andreas Grosse <andig.mail@t-online.de>
Subject: Re: [PATCH v2] HID: uclogic: Add support for XP-PEN Deco LW
Date: Sat, 29 Oct 2022 16:55:11 +0200	[thread overview]
Message-ID: <20221029145511.GA7941@elementary> (raw)
In-Reply-To: <C7FD0EC0-899A-4D29-8363-D2FAD8E89BBD@redpilled.dev>

Hi!

On Sat, Oct 29, 2022 at 04:55:21PM +0300, Mia Kanashi wrote:
> >>[1] Actually it should be set to discharging until this gets merged:
> >>    https://lore.kernel.org/linux-input/20221028181849.23157-1-jose.exposito89@gmail.com/T/
> >
> >But i also currently applied this ^ patch, i will try testing without it and then report.
> 
> Tested without it, same issue.
> So yeah it seems that hid-input driver can set supply status to discharging before setting a battery capacity? 

Very good catch. I managed to reproduce it using the USB dongle. I
didn't notice it before because I was running upower after connecting
the device, which isn't fast enough. However, using watch as you
suggested makes the issue pretty noticeable.

The problem is that the battery is fetched when the USB dongle is
connected. However, the tablet might not be paired at that point.

To explain it with the actual code:


  if (dev->battery_status != HID_BATTERY_REPORTED &&
      !dev->battery_avoid_query) {
	value = hidinput_query_battery_capacity(dev);
                ^ Here the battery is fetched, but because the tabled
                  is not paired and this function returns garbage
	if (value < 0)
		return value;

	dev->battery_capacity = value;
	dev->battery_status = HID_BATTERY_QUERIED;
                            ^ Now the battery is set as queried
  }

  if (dev->battery_status == HID_BATTERY_UNKNOWN)
	val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
  else
	val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
                    ^ And therefore the battery is reported


Thankfully, there is already a flag (battery_avoid_query) used to solve
the same issue on stylus. The battery percentage is unknown until the
stylus is in proximity.

So I guess I could use the same flag to avoid this problem.

I'll add a fix in a second revision of this patch.

Thanks!!

  reply	other threads:[~2022-10-29 14:55 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-28  8:23 [PATCH v2] HID: uclogic: Add support for XP-PEN Deco LW José Expósito
2022-10-29  0:28 ` Mia Kanashi
2022-10-29  7:58   ` José Expósito
2022-10-29 12:13     ` Mia Kanashi
2022-10-29 13:55       ` Mia Kanashi
2022-10-29 14:55         ` José Expósito [this message]
2022-10-29 16:04           ` Mia Kanashi
2022-10-30 11:34           ` Bastien Nocera

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221029145511.GA7941@elementary \
    --to=jose.exposito89@gmail.com \
    --cc=andig.mail@t-online.de \
    --cc=benjamin.tissoires@redhat.com \
    --cc=chad@redpilled.dev \
    --cc=jikos@kernel.org \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pobrn@protonmail.com \
    --cc=spbnick@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).