From: Hans de Goede <hdegoede@redhat.com>
To: Yauhen Kharuzhy <jekhor@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>, Lee Jones <lee@kernel.org>,
linux-leds@vger.kernel.org
Subject: Re: [PATCH 0/5] leds: Add Intel Cherry Trail Whiskey Cove PMIC LED driver
Date: Sun, 16 Apr 2023 15:04:48 +0200 [thread overview]
Message-ID: <ab04d6ed-ee83-ea89-c668-f9958d9cc400@redhat.com> (raw)
In-Reply-To: <ZDsJ6oH1/15gpAr0@jeknote.loshitsa1.net>
Hi Yauhen,
On 4/15/23 22:32, Yauhen Kharuzhy wrote:
> On Thu, Apr 13, 2023 at 05:18:03PM +0200, Hans de Goede wrote:
>> Hi All,
>>
>> Here is a patch series to add support for the LED controller on
>> Intel Cherry Trail Whiskey Cove PMICs.
>>
>> This is based on the original patch for this from Yauhen Kharuzhy,
>> with additional work on top by me.
>>
>> This addresses the review remarks on the v2 posting from Yauhen:
>> - Since the PMIC is connected to the battery any changes we make to
>> the LED settings are permanent, even surviving reboot / poweroff.
>> Save LED1 register settings on probe() and if auto-/hw-control was
>> enabled on probe() restore the settings on remove() and shutdown().
>> - Add support for the pattern trigger to select breathing mode
>>
>> This makes the charging LED on devices with these PMICs properly
>> reflect the charging status (this relies on sw control on most
>> devices) and this also allows control of the LED behind the pen
>> (digitizer on) symbol on the keyboard half of the Lenovo Yoga Book
>> 1 models.
>>
>> Regards,
>>
>> Hans
>>
>>
>> Hans de Goede (4):
>> leds: cht-wcove: Add suspend/resume handling
>> leds: cht-wcove: Add support for breathing mode use hw_pattern sysfs
>> API
>> leds: cht-wcove: Set default trigger for charging LED
>> leds: cht-wcove: Use breathing when LED_INIT_DEFAULT_TRIGGER is set
>>
>> Yauhen Kharuzhy (1):
>> leds: Add Intel Cherry Trail Whiskey Cove PMIC LED driver
>>
>> Documentation/leds/index.rst | 1 +
>> Documentation/leds/leds-cht-wcove.rst | 29 ++
>> drivers/leds/Kconfig | 11 +
>> drivers/leds/Makefile | 1 +
>> drivers/leds/leds-cht-wcove.c | 466 ++++++++++++++++++++++++++
>> 5 files changed, 508 insertions(+)
>> create mode 100644 Documentation/leds/leds-cht-wcove.rst
>> create mode 100644 drivers/leds/leds-cht-wcove.c
>
> Hi Hans,
>
> Thanks for reviving this patch!
You're welcome.
> I haven't tested it on linux-next yet but on v6.2.11 (with few patches for
> Yoabook) I catched following trace. I will investigate it later but maybe you
> can take a look also?
Right, this is an unrelated pre-existing kernel bug when using
led_trigger_blink().
I already hit that myself and I have a fix for it, see this series:
https://lore.kernel.org/linux-leds/20230412215855.593541-1-hdegoede@redhat.com/
And for the blinking -> solid transition to work when the battery goes
from charging to full you also need:
https://lore.kernel.org/linux-pm/20230413100941.115529-1-hdegoede@redhat.com/
I guess I should have mentioned both in the cover-letter, sorry about that.
And related to this there are also these 2 power-supply patch series
which are also relevant for the yogabook:
https://lore.kernel.org/linux-pm/20230415160734.70475-1-hdegoede@redhat.com/
https://lore.kernel.org/linux-pm/20230415182341.86916-1-hdegoede@redhat.com/
Regards,
Hans
> [ 192.585809] bq25890-charger i2c-bq25892: S:CHG/PG/VSYS=2/1/0, F:CHG/BOOST/BAT/NTC=0/0/0/0
> [ 196.753095] bq25890-charger i2c-bq25892: Start to request input voltage increasing
> [ 196.770555] bq25890-charger i2c-bq25892: input voltage = 4000000 uV
> [ 200.473777] bq25890-charger i2c-bq25892: input voltage = 5900000 uV
> [ 204.187438] bq25890-charger i2c-bq25892: input voltage = 7900000 uV
> [ 207.864890] bq25890-charger i2c-bq25892: input voltage = 11000000 uV
> [ 211.573333] bq25890-charger i2c-bq25892: input voltage = 10900000 uV
> [ 215.222692] bq25890-charger i2c-bq25892: input voltage = 11000000 uV
> [ 218.937871] bq25890-charger i2c-bq25892: Hi-voltage charging requested, input voltage is 11000000 mV
> [ 242.786148] systemd-journald[270]: Data hash table of /var/log/journal/39241a358af746c292cb608baea5be4c/system.journal has a fill level at 75.0 (8533 of 11377 items, 6553600 file size, 768 bytes per hash table item), suggesting rotation.
> [ 242.786185] systemd-journald[270]: /var/log/journal/39241a358af746c292cb608baea5be4c/system.journal: Journal header limits reached or header out-of-date, rotating.
> [ 257.790169] ------------[ cut here ]------------
> [ 257.790223] Voluntary context switch within RCU read-side critical section!
> [ 257.790256] WARNING: CPU: 3 PID: 69 at kernel/rcu/tree_plugin.h:318 rcu_note_context_switch+0x4e3/0x6c0
> [ 257.790337] Modules linked in: rfcomm(E) snd_seq_dummy(E) snd_hrtimer(E) snd_seq(E) snd_seq_device(E) cmac(E) algif_hash(E) algif_skcipher(E) af_alg(E) bnep(E) uinput(E) binfmt_misc(E) intel_powerclamp(E) coretemp(E) kvm_intel(E) snd_soc_sst_cht_yogabook(E) snd_soc_ts3a227e(E) kvm(E) irqbypass(E) crct10dif_pclmul(E) ghash_clmulni_intel(E) snd_sof_acpi_intel_byt(E) snd_sof_acpi(E) sha512_ssse3(E) snd_sof_intel_atom(E) snd_sof(E) snd_sof_utils(E) snd_sof_xtensa_dsp(E) aesni_intel(E) snd_intel_sst_acpi(E) crypto_simd(E) snd_intel_sst_core(E) cryptd(E) gpio_keys(E) intel_rapl_msr(E) brcmfmac_wcc(E) intel_cstate(E) lenovo_yogabook_wmi(E) wmi_bmof(E) pcspkr(E) hci_uart(E) btqca(E) snd_soc_sst_atom_hifi2_platform(E) btbcm(E) snd_soc_rt5677(E) bq25890_charger(E) btintel(E) snd_soc_rt5677_spi(E) snd_soc_acpi_intel_match(E) joydev(E) leds_cht_wcove(E) extcon_intel_cht_wc(E) hid_multitouch(E) brcmfmac(E) snd_soc_acpi(E) snd_soc_rl6231(E) bluetooth(E) brcmutil(E) bq27xxx_battery_i2c(E) nls_ascii(E)
> [ 257.790879] bq27xxx_battery(E) nls_cp437(E) hid_sensor_accel_3d(E) hid_sensor_custom_intel_hinge(E) hid_sensor_als(E) spi_nor(E) snd_soc_core(E) iTCO_wdt(E) hid_sensor_trigger(E) vfat(E) snd_compress(E) cfg80211(E) mtd(E) iTCO_vendor_support(E) hid_sensor_iio_common(E) snd_hdmi_lpe_audio(E) fat(E) snd_intel_dspcfg(E) jitterentropy_rng(E) sx9310(E) snd_pcm(E) sx_common(E) tpm_crb(E) snd_timer(E) industrialio_triggered_buffer(E) goodix_ts(E) drbg(E) kfifo_buf(E) intel_hid(E) sparse_keymap(E) snd(E) rfkill_gpio(E) soundcore(E) tpm_tis(E) industrialio(E) ansi_cprng(E) tpm_tis_core(E) ecdh_generic(E) rfkill(E) ecc(E) tpm(E) processor_thermal_device_pci_legacy(E) processor_thermal_device(E) processor_thermal_rfim(E) rng_core(E) processor_thermal_mbox(E) processor_thermal_rapl(E) intel_rapl_common(E) int3400_thermal(E) int3406_thermal(E) int3403_thermal(E) soc_button_array(E) acpi_thermal_rel(E) int340x_thermal_zone(E) intel_int0002_vgpio(E) evdev(E) intel_soc_dts_iosf(E) acpi_pad(E)
> [ 257.791393] squashfs(E) loop(E) ramoops(E) reed_solomon(E) intel_pstore_pram(E) msr(E) parport_pc(E) ppdev(E) lp(E) parport(E) fuse(E) efi_pstore(E) configfs(E) efivarfs(E) ip_tables(E) x_tables(E) autofs4(E) ext4(E) crc32c_generic(E) crc16(E) mbcache(E) jbd2(E) hid_sensor_custom(E) hid_sensor_hub(E) intel_ishtp_hid(E) wacom(E) dwc3(E) usbhid(E) ulpi(E) hid_generic(E) udc_core(E) i915(E) xhci_pci(E) spi_intel_platform(E) i2c_algo_bit(E) spi_intel(E) mmc_block(E) xhci_hcd(E) drm_buddy(E) drm_display_helper(E) cec(E) ttm(E) usbcore(E) video(E) drm_kms_helper(E) intel_ish_ipc(E) crc32_pclmul(E) spi_pxa2xx_platform(E) crc32c_intel(E) i2c_cht_wc(E) i2c_hid_acpi(E) lpc_ich(E) dwc3_pci(E) usb_common(E) drm(E) intel_ishtp(E) thermal(E) i2c_hid(E) hid(E) wmi(E) sdhci_acpi(E) dw_dmac(E) sdhci(E) pwm_lpss_platform(E) pwm_lpss(E) dw_dmac_core(E) mmc_core(E) button(E)
> [ 257.792047] CPU: 3 PID: 69 Comm: kworker/3:2 Tainted: G E 6.2.11-yogabook1 #57
> [ 257.792084] Hardware name: LENOVO Lenovo YB1-X91L/INVALID, BIOS 04WT18WW 08/26/2016
> [ 257.792110] Workqueue: events power_supply_changed_work
> [ 257.792163] RIP: 0010:rcu_note_context_switch+0x4e3/0x6c0
> [ 257.792206] Code: 49 89 3e 49 83 bc 24 98 00 00 00 00 0f 85 6c fe ff ff e9 5e fe ff ff 48 c7 c7 f0 5e d0 be c6 05 e7 bb 45 01 01 e8 ed 66 f6 ff <0f> 0b e9 7c fb ff ff a9 ff ff ff 7f 0f 84 38 fc ff ff 65 48 8b 3c
> [ 257.792240] RSP: 0018:ffffb357003ef830 EFLAGS: 00010046
> [ 257.792275] RAX: 0000000000000000 RBX: ffff95dd3abae280 RCX: 0000000000000000
> [ 257.792302] RDX: 0000000000000003 RSI: ffffffffbed4bfb7 RDI: 00000000ffffffff
> [ 257.792327] RBP: 0000000000000000 R08: 0000000000000000 R09: ffffb357003ef6e0
> [ 257.792352] R10: 0000000000000003 R11: ffff95dd3fbfefe8 R12: 000000000002d400
> [ 257.792376] R13: ffff95dcca22cc40 R14: 0000000000000000 R15: ffff95dcca22cc40
> [ 257.792403] FS: 0000000000000000(0000) GS:ffff95dd3ab80000(0000) knlGS:0000000000000000
> [ 257.792431] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 257.792456] CR2: 000055cdc7a88670 CR3: 0000000155c0a000 CR4: 00000000001006e0
> [ 257.792485] Call Trace:
> [ 257.792511] <TASK>
> [ 257.792535] ? _raw_spin_lock_irqsave+0x23/0x50
> [ 257.792579] ? preempt_count_add+0x62/0xa0
> [ 257.792625] __schedule+0xac/0x9d0
> [ 257.792663] ? _raw_spin_unlock_irqrestore+0x23/0x40
> [ 257.792700] ? __mod_timer+0x28a/0x3c0
> [ 257.792743] schedule+0x5d/0xe0
> [ 257.792775] schedule_timeout+0x8a/0x160
> [ 257.792812] ? __bpf_trace_tick_stop+0x10/0x10
> [ 257.792849] msleep+0x29/0x40
> [ 257.792885] acpi_lpss_resume+0x6e/0x160
> [ 257.792924] ? acpi_lpss_resume+0x160/0x160
> [ 257.792958] acpi_lpss_runtime_resume+0xe/0x20
> [ 257.792993] __rpm_callback+0x44/0x170
> [ 257.793029] ? acpi_lpss_resume+0x160/0x160
> [ 257.793065] rpm_callback+0x59/0x70
> [ 257.793100] ? acpi_lpss_resume+0x160/0x160
> [ 257.793135] rpm_resume+0x5f8/0x850
> [ 257.793168] ? acpi_ut_update_ref_count.part.0+0x7a/0x8f0
> [ 257.793215] __pm_runtime_resume+0x3c/0x60
> [ 257.793251] i2c_dw_xfer+0x47/0x490
> [ 257.793291] __i2c_transfer+0x16e/0x6c0
> [ 257.793335] i2c_smbus_xfer_emulated+0x26f/0x9c0
> [ 257.793375] ? __switch_to+0x7e/0x420
> [ 257.793410] ? update_load_avg+0x80/0x790
> [ 257.793447] __i2c_smbus_xfer+0xab/0x410
> [ 257.793477] ? enqueue_entity+0x19a/0x4f0
> [ 257.793514] i2c_smbus_xfer+0x6a/0xe0
> [ 257.793547] i2c_smbus_read_byte_data+0x45/0x70
> [ 257.793578] ? _raw_spin_unlock_irqrestore+0x23/0x40
> [ 257.793615] ? try_to_wake_up+0x95/0x590
> [ 257.793653] cht_wc_byte_reg_read+0x2e/0x60
> [ 257.793701] _regmap_read+0x5a/0x110
> [ 257.793737] _regmap_update_bits+0xb4/0xf0
> [ 257.793775] regmap_update_bits_base+0x59/0x80
> [ 257.793816] cht_wc_leds_set_effect+0xcb/0x1b0 [leds_cht_wcove]
> [ 257.793875] led_blink_setup+0x25/0x100
> [ 257.793912] led_trigger_blink+0x45/0x70
> [ 257.793947] power_supply_update_leds+0x1d6/0x1e0
> [ 257.793991] power_supply_changed_work+0x6f/0xf0
> [ 257.794029] process_one_work+0x1c7/0x3c0
> [ 257.794065] worker_thread+0x4e/0x3a0
> [ 257.794095] ? _raw_spin_lock_irqsave+0x23/0x50
> [ 257.794133] ? rescuer_thread+0x3b0/0x3b0
> [ 257.794161] kthread+0xe9/0x110
> [ 257.794195] ? kthread_complete_and_exit+0x20/0x20
> [ 257.794233] ret_from_fork+0x1f/0x30
> [ 257.794280] </TASK>
> [ 257.794298] ---[ end trace 0000000000000000 ]---
> [ 257.854563] bq25890-charger i2c-bq25892: S:CHG/PG/VSYS=2/1/0, F:CHG/BOOST/BAT/NTC=0/0/0/0
>
next prev parent reply other threads:[~2023-04-16 13:05 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-13 15:18 [PATCH 0/5] leds: Add Intel Cherry Trail Whiskey Cove PMIC LED driver Hans de Goede
2023-04-13 15:18 ` [PATCH 1/5] " Hans de Goede
2023-04-14 12:44 ` Pavel Machek
2023-04-19 13:04 ` Hans de Goede
2023-04-20 12:17 ` Hans de Goede
2023-04-13 15:18 ` [PATCH 2/5] leds: cht-wcove: Add suspend/resume handling Hans de Goede
2023-04-14 12:46 ` Pavel Machek
2023-04-13 15:18 ` [PATCH 3/5] leds: cht-wcove: Add support for breathing mode use hw_pattern sysfs API Hans de Goede
2023-04-16 15:17 ` Jacek Anaszewski
2023-04-16 20:31 ` Hans de Goede
2023-04-17 20:00 ` Jacek Anaszewski
2023-04-19 13:05 ` Hans de Goede
2023-04-13 15:18 ` [PATCH 4/5] leds: cht-wcove: Set default trigger for charging LED Hans de Goede
2023-04-13 15:18 ` [PATCH 5/5] leds: cht-wcove: Use breathing when LED_INIT_DEFAULT_TRIGGER is set Hans de Goede
2023-04-15 20:32 ` [PATCH 0/5] leds: Add Intel Cherry Trail Whiskey Cove PMIC LED driver Yauhen Kharuzhy
2023-04-16 13:04 ` Hans de Goede [this message]
2023-04-25 13:37 ` Hans de Goede
2023-04-26 11:12 ` Yauhen Kharuzhy
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=ab04d6ed-ee83-ea89-c668-f9958d9cc400@redhat.com \
--to=hdegoede@redhat.com \
--cc=jekhor@gmail.com \
--cc=lee@kernel.org \
--cc=linux-leds@vger.kernel.org \
--cc=pavel@ucw.cz \
/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).