Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

ARM: dts: qcom: apq8026-samsung-milletwifi: Add touchscreen buttons #10

Conversation

Susurrus
Copy link

No description provided.

@z3ntu
Copy link
Member

z3ntu commented Jan 27, 2024

Signed-off-by please in the commit message, and add some comment - or indicate if it should be squashed into some other commit next time I rebase.

@Susurrus
Copy link
Author

Sorry about that. Didn't realize that's how this should work. I think I annotated this correctly now.

Also, 432ab73 is a hack, does that also need an annotation? Probably should open an issue here to track it as there's some other context around it I have in my notes too.

@Susurrus
Copy link
Author

Note that matisse-wifi uses APPSELECT, so I'm confused which one should be used here. Is there any documentation I can reference here?

@z3ntu
Copy link
Member

z3ntu commented Jan 30, 2024

I'd check what's more commonly used on phones in mainline. Not sure there's docs for input like this, in a similar area there is some docs for the "function" for leds so notification led is defined rather well

@Susurrus
Copy link
Author

MENU is way more common. However, I found https://gitlab.com/postmarketOS/pmaports/-/commit/c655f5cc9c4110d4ff118327c52c5c1d4841eeb5 which is weird, that the DTS should have APPSELECT but then pmOS should remap it?

I'm wondering if I should open a general pmOS issue on this or maybe ask in the GNOME Discourse if they have any opinion. WDYT?

@z3ntu
Copy link
Member

z3ntu commented Jan 31, 2024

You could for sure ask in the postmarketOS mainline channel what other people think. My devices don't have these touchkeys (well, apart from OnePlus One I believe but there the touchscreen driver doesn't support the keys yet) so I cannot tell you much there myself.

@Susurrus
Copy link
Author

Susurrus commented Feb 1, 2024

Since I'm using what's most common right now, it's probably fine for the initial bringup work. Any objections from you to merging this as-is?

@@ -304,6 +304,7 @@
touchscreen-size-y = <1280>;
avdd-supply = <&reg_tsp_3p3v>;
vdd-supply = <&reg_tsp_1p8v>;
linux,keycodes = <KEY_MENU KEY_BACK>;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on your messages on Matrix I think you said it should be KEY_APPSELECT for this device, no?

@Susurrus Susurrus changed the title ARM: dts: qcom: apq8026-samsung-milletwifi: Add touchscreen buttons [DRAFT]ARM: dts: qcom: apq8026-samsung-milletwifi: Add touchscreen buttons Feb 12, 2024
@Susurrus
Copy link
Author

Correct, but I want to test it again before resubmitting.

@z3ntu z3ntu marked this pull request as draft February 12, 2024 12:51
@z3ntu z3ntu changed the title [DRAFT]ARM: dts: qcom: apq8026-samsung-milletwifi: Add touchscreen buttons ARM: dts: qcom: apq8026-samsung-milletwifi: Add touchscreen buttons Feb 12, 2024
Add missing touchscreen buttons to 2a9cec7

Signed-off-by: Bryant Mairs <bryant@mai.rs>
@Susurrus Susurrus marked this pull request as ready for review March 2, 2024 17:49
@Susurrus
Copy link
Author

Susurrus commented Mar 2, 2024

Tested and working. Included in my latest round of upstreaming patches.

@z3ntu
Copy link
Member

z3ntu commented Mar 3, 2024

Tested and working. Included in my latest round of upstreaming patches.

Are you sure? Your v3 on the mailing lists uses this line?

linux,keycodes = <KEY_APPSELECT KEY_BACK>;

https://lore.kernel.org/linux-arm-msm/20240219214643.197116-3-bryant@mai.rs/

@Susurrus Susurrus force-pushed the qcom-msm8226-6.7.y branch from 66b7ea8 to f08aea1 Compare April 14, 2024 06:47
@Susurrus
Copy link
Author

Whoops, looks like I didn't force-push the changes but had them locally.

However, now that you have a 6.8 branch, should I instead merge this there?

@z3ntu
Copy link
Member

z3ntu commented Apr 14, 2024

Pushed b73ea5a to the 6.8 branch now, that should resolve this PR :)

@z3ntu z3ntu closed this Apr 14, 2024
z3ntu pushed a commit that referenced this pull request Apr 27, 2024
[ Upstream commit c957280 ]

From commit a304e1b ("[PATCH] Debug shared irqs"), there is a test
to make sure the shared irq handler should be able to handle the unexpected
event after deregistration. For this case, let's apply MT76_REMOVED flag to
indicate the device was removed and do not run into the resource access
anymore.

BUG: KASAN: use-after-free in mt7921_irq_handler+0xd8/0x100 [mt7921e]
Read of size 8 at addr ffff88824a7d3b78 by task rmmod/11115
CPU: 28 PID: 11115 Comm: rmmod Tainted: G        W    L    5.17.0 #10
Hardware name: Micro-Star International Co., Ltd. MS-7D73/MPG B650I
EDGE WIFI (MS-7D73), BIOS 1.81 01/05/2024
Call Trace:
 <TASK>
 dump_stack_lvl+0x6f/0xa0
 print_address_description.constprop.0+0x1f/0x190
 ? mt7921_irq_handler+0xd8/0x100 [mt7921e]
 ? mt7921_irq_handler+0xd8/0x100 [mt7921e]
 kasan_report.cold+0x7f/0x11b
 ? mt7921_irq_handler+0xd8/0x100 [mt7921e]
 mt7921_irq_handler+0xd8/0x100 [mt7921e]
 free_irq+0x627/0xaa0
 devm_free_irq+0x94/0xd0
 ? devm_request_any_context_irq+0x160/0x160
 ? kobject_put+0x18d/0x4a0
 mt7921_pci_remove+0x153/0x190 [mt7921e]
 pci_device_remove+0xa2/0x1d0
 __device_release_driver+0x346/0x6e0
 driver_detach+0x1ef/0x2c0
 bus_remove_driver+0xe7/0x2d0
 ? __check_object_size+0x57/0x310
 pci_unregister_driver+0x26/0x250
 __do_sys_delete_module+0x307/0x510
 ? free_module+0x6a0/0x6a0
 ? fpregs_assert_state_consistent+0x4b/0xb0
 ? rcu_read_lock_sched_held+0x10/0x70
 ? syscall_enter_from_user_mode+0x20/0x70
 ? trace_hardirqs_on+0x1c/0x130
 do_syscall_64+0x5c/0x80
 ? trace_hardirqs_on_prepare+0x72/0x160
 ? do_syscall_64+0x68/0x80
 ? trace_hardirqs_on_prepare+0x72/0x160
 entry_SYSCALL_64_after_hwframe+0x44/0xae

Reported-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Closes: https://lore.kernel.org/linux-wireless/CABXGCsOdvVwdLmSsC8TZ1jF0UOg_F_W3wqLECWX620PUkvNk=A@mail.gmail.com/
Fixes: 9270270 ("wifi: mt76: mt7921: fix PCI DMA hang after reboot")
Tested-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Signed-off-by: Deren Wu <deren.wu@mediatek.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Sasha Levin <sashal@kernel.org>
z3ntu pushed a commit that referenced this pull request Apr 27, 2024
[ Upstream commit fd5860a ]

The loop inside nfs_netfs_issue_read() currently does not disable
interrupts while iterating through pages in the xarray to submit
for NFS read.  This is not safe though since after taking xa_lock,
another page in the mapping could be processed for writeback inside
an interrupt, and deadlock can occur.  The fix is simple and clean
if we use xa_for_each_range(), which handles the iteration with RCU
while reducing code complexity.

The problem is easily reproduced with the following test:
 mount -o vers=3,fsc 127.0.0.1:/export /mnt/nfs
 dd if=/dev/zero of=/mnt/nfs/file1.bin bs=4096 count=1
 echo 3 > /proc/sys/vm/drop_caches
 dd if=/mnt/nfs/file1.bin of=/dev/null
 umount /mnt/nfs

On the console with a lockdep-enabled kernel a message similar to
the following will be seen:

 ================================
 WARNING: inconsistent lock state
 6.7.0-lockdbg+ #10 Not tainted
 --------------------------------
 inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
 test5/1708 [HC0[0]:SC0[0]:HE1:SE1] takes:
 ffff888127baa598 (&xa->xa_lock#4){+.?.}-{3:3}, at:
nfs_netfs_issue_read+0x1b2/0x4b0 [nfs]
 {IN-SOFTIRQ-W} state was registered at:
   lock_acquire+0x144/0x380
   _raw_spin_lock_irqsave+0x4e/0xa0
   __folio_end_writeback+0x17e/0x5c0
   folio_end_writeback+0x93/0x1b0
   iomap_finish_ioend+0xeb/0x6a0
   blk_update_request+0x204/0x7f0
   blk_mq_end_request+0x30/0x1c0
   blk_complete_reqs+0x7e/0xa0
   __do_softirq+0x113/0x544
   __irq_exit_rcu+0xfe/0x120
   irq_exit_rcu+0xe/0x20
   sysvec_call_function_single+0x6f/0x90
   asm_sysvec_call_function_single+0x1a/0x20
   pv_native_safe_halt+0xf/0x20
   default_idle+0x9/0x20
   default_idle_call+0x67/0xa0
   do_idle+0x2b5/0x300
   cpu_startup_entry+0x34/0x40
   start_secondary+0x19d/0x1c0
   secondary_startup_64_no_verify+0x18f/0x19b
 irq event stamp: 176891
 hardirqs last  enabled at (176891): [<ffffffffa67a0be4>]
_raw_spin_unlock_irqrestore+0x44/0x60
 hardirqs last disabled at (176890): [<ffffffffa67a0899>]
_raw_spin_lock_irqsave+0x79/0xa0
 softirqs last  enabled at (176646): [<ffffffffa515d91e>]
__irq_exit_rcu+0xfe/0x120
 softirqs last disabled at (176633): [<ffffffffa515d91e>]
__irq_exit_rcu+0xfe/0x120

 other info that might help us debug this:
  Possible unsafe locking scenario:

        CPU0
        ----
   lock(&xa->xa_lock#4);
   <Interrupt>
     lock(&xa->xa_lock#4);

  *** DEADLOCK ***

 2 locks held by test5/1708:
  #0: ffff888127baa498 (&sb->s_type->i_mutex_key#22){++++}-{4:4}, at:
      nfs_start_io_read+0x28/0x90 [nfs]
  #1: ffff888127baa650 (mapping.invalidate_lock#3){.+.+}-{4:4}, at:
      page_cache_ra_unbounded+0xa4/0x280

 stack backtrace:
 CPU: 6 PID: 1708 Comm: test5 Kdump: loaded Not tainted 6.7.0-lockdbg+
 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-1.fc39
04/01/2014
 Call Trace:
  dump_stack_lvl+0x5b/0x90
  mark_lock+0xb3f/0xd20
  __lock_acquire+0x77b/0x3360
  _raw_spin_lock+0x34/0x80
  nfs_netfs_issue_read+0x1b2/0x4b0 [nfs]
  netfs_begin_read+0x77f/0x980 [netfs]
  nfs_netfs_readahead+0x45/0x60 [nfs]
  nfs_readahead+0x323/0x5a0 [nfs]
  read_pages+0xf3/0x5c0
  page_cache_ra_unbounded+0x1c8/0x280
  filemap_get_pages+0x38c/0xae0
  filemap_read+0x206/0x5e0
  nfs_file_read+0xb7/0x140 [nfs]
  vfs_read+0x2a9/0x460
  ksys_read+0xb7/0x140

Fixes: 000dbe0 ("NFS: Convert buffered read paths to use netfs when fscache is enabled")
Suggested-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: David Howells <dhowells@redhat.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
@Susurrus Susurrus deleted the qcom-msm8226-6.7.y branch June 26, 2024 17:55
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants