macbook12-spi-driver icon indicating copy to clipboard operation
macbook12-spi-driver copied to clipboard

MacBook8,1 (Early 2015) and Fedora

Open TheChatty opened this issue 6 years ago • 47 comments

Recent Fedora (28, 29 & 30) running kernel 4.18 or newer fail to load applespi. Here's the output from 4.20.0-1.fc30.x86_64 after compiling and loading the module:

# dmesg
[  604.776896] applespi: loading out-of-tree module taints kernel.
[  604.776940] applespi: module verification failed: signature and/or required key missing - tainting kernel
[  604.829319] input: Apple SPI Keyboard as /devices/pci0000:00/0000:00:15.4/pxa2xx-spi.0/spi_master/spi0/spi-APP000D:00/input/input14
[  604.829879] input: Apple SPI Touchpad as /devices/pci0000:00/0000:00:15.4/pxa2xx-spi.0/spi_master/spi0/spi-APP000D:00/input/input15
[  604.830130] applespi: spi-device probe done: spi-APP000D:00
[  605.039209] applespi spi-APP000D:00: SPI transfer timed out
[  605.039351] applespi: Error writing to device: -110
[  605.247211] applespi spi-APP000D:00: SPI transfer timed out
[  605.247346] applespi: Error reading from device: -110
[  605.455247] applespi spi-APP000D:00: SPI transfer timed out
[  605.455388] applespi: Error reading from device: -110
[  605.627374] irq 21: nobody cared (try booting with the "irqpoll" option)
[  605.627379] CPU: 3 PID: 4721 Comm: dracut Tainted: G           OE     4.20.0-1.fc30.x86_64 #1
[  605.627380] Hardware name: Apple Inc. MacBook8,1/Mac-BE0E8AC46FE800CC, BIOS 177.0.0.0.0 09/17/2018
[  605.627381] Call Trace:
[  605.627384]  <IRQ>
[  605.627393]  dump_stack+0x5c/0x80
[  605.627397]  __report_bad_irq+0x37/0xae
[  605.627401]  note_interrupt.cold.9+0xa/0x69
[  605.627403]  handle_irq_event_percpu+0x6a/0x80
[  605.627406]  handle_irq_event+0x27/0x44
[  605.627409]  handle_fasteoi_irq+0x7f/0x120
[  605.627413]  handle_irq+0xbf/0x100
[  605.627417]  do_IRQ+0x49/0xd0
[  605.627421]  common_interrupt+0xf/0xf
[  605.627422]  </IRQ>
[  605.627427] RIP: 0010:copy_page_range+0x774/0xec0
[  605.627429] Code: 48 8d 94 24 f4 00 00 00 48 0f 45 c1 48 8b 00 a9 00 00 08 00 48 8d 84 24 e8 00 00 00 48 0f 44 d0 83 02 01 48 8b 3c 24 4c 89 e6 <48> 89 ea 48 89 d9 e8 c1 65 e2 ff 66 90 41 83 c5 08 45 31 c0 e9 ca
[  605.627431] RSP: 0018:ffffae8202dd7c90 EFLAGS: 00000206 ORIG_RAX: ffffffffffffffdb
[  605.627433] RAX: ffffdaa4870328c0 RBX: 80000001c0ca3845 RCX: ffffdaa4870328c0
[  605.627435] RDX: ffffae8202dd7d7c RSI: 00005616a9a10000 RDI: ffff91d87004ea40
[  605.627436] RBP: ffff91d81e241080 R08: 8000000000000845 R09: ffff91d7e1fc3320
[  605.627437] R10: 000000000000010c R11: 0000000000027340 R12: 00005616a9a10000
[  605.627439] R13: 0000000000000008 R14: ffff91d7e1fc3320 R15: ffff91d81e241058
[  605.627445]  ? anon_vma_chain_link+0x39/0x70
[  605.627449]  copy_process.part.35+0x17b4/0x1eb0
[  605.627454]  _do_fork+0xe2/0x390
[  605.627457]  ? __set_current_blocked+0x3d/0x60
[  605.627460]  ? sigprocmask+0x72/0xa0
[  605.627464]  do_syscall_64+0x5b/0x160
[  605.627467]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[  605.627469] RIP: 0033:0x7fb83af47942
[  605.627471] Code: db 0f 85 01 01 00 00 64 4c 8b 0c 25 10 00 00 00 45 31 c0 4d 8d 91 d0 02 00 00 31 d2 31 f6 bf 11 00 20 01 b8 38 00 00 00 0f 05 <48> 3d 00 f0 ff ff 0f 87 a2 00 00 00 41 89 c4 85 c0 0f 85 af 00 00
[  605.627473] RSP: 002b:00007ffdc726e100 EFLAGS: 00000246 ORIG_RAX: 0000000000000038
[  605.627475] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fb83af47942
[  605.627476] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011
[  605.627477] RBP: 0000000000000001 R08: 0000000000000000 R09: 00007fb83ae7c740
[  605.627479] R10: 00007fb83ae7ca10 R11: 0000000000000246 R12: 00007ffdc726e140
[  605.627480] R13: 00007ffdc726e1c0 R14: 00005616a99d5918 R15: 0000000000000000
[  605.627482] handlers:
[  605.627487] [<000000004f62a4ba>] ssp_int [spi_pxa2xx_platform]
[  605.627489] Disabling IRQ #21
[  644.007948] applespi spi-APP000D:00: SPI transfer timed out
[  644.008093] applespi: Error reading from device: -110
[  644.319955] applespi spi-APP000D:00: SPI transfer timed out
[  644.320100] applespi: Error reading from device: -110
[  644.631962] applespi spi-APP000D:00: SPI transfer timed out
[  644.632107] applespi: Error reading from device: -110

# lspci -nnk | grep -i spi
00:15.4 Serial bus controller [0c80]: Intel Corporation Wildcat Point-LP Serial IO GSPI Controller #1 [8086:9ce6] (rev 03)
        Subsystem: Intel Corporation Wildcat Point-LP Serial IO GSPI Controller #1 [8086:9ce6]
        Kernel driver in use: pxa2xx_spi_pci
        Kernel modules: spi_pxa2xx_pci

Btw, I had it working once. And when booting with irqpoll mouse and keyboard are working.

TheChatty avatar Dec 28 '18 20:12 TheChatty

This sounds like the known issue with the interrupt (21 on your system) on MB8,1 and needing irqpoll. Can you search for other mentions of interrupt 21 in your dmesg (these would occur during boot) - e.g. on my system (a MBP13,3, so somewhat different) I see a couple messages like

[...] dw-apb-uart.1: ttyS4 at MMIO 0x8272a000 (irq = 21, base_baud = 115200) is a 16550A

And what does the following show?

grep 21: /proc/interrupts

Lastly, we noted in the README, have you tried booting with all three needed drivers (applespi, spi_pxa2xx_platform, and spi_pxa2xx_pci) loaded as part of initramfs? For Fedora, use something like this:

cat <<EOF | sudo tee /etc/dracut.conf.d/keyboard.conf
# load all drivers needed for the keyboard
add_drivers+="applespi spi_pxa2xx_pci spi_pxa2xx_platform"
EOF

and rerun dracut and reboot.

roadrunner2 avatar Dec 29 '18 09:12 roadrunner2

Booting with irqpoll I get (keyboard and mouse working):

# dmesg|grep "= 21"
[    2.853188] 0000:00:15.5: ttyS4 at MMIO 0xc1819000 (irq = 21, base_baud = 2764800) is a 16550A
# grep 21: /proc/interrupts
 21:          0          0          0        586  IR-IO-APIC  21-fasteoi   pxa2xx-spi.0

Booting without irqpoll but with modules as part of initramfs (keyboard and mouse not working):

[    2.730828] applespi: loading out-of-tree module taints kernel.
[    2.730897] applespi: module verification failed: signature and/or required key missing - tainting kernel
[    2.740017] audit: type=1130 audit(1546088138.151:9): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=kernel msg='unit=plymouth-start comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[    2.749036] 0000:00:15.5: ttyS4 at MMIO 0xc1819000 (irq = 21, base_baud = 2764800) is a 16550A
[    2.749702] serial serial0-0: controller busy
[    2.749704] serial serial0-0: failure adding ACPI serdev device. status -16
[    2.749707] serial serial0: tty port ttyS4 registered

Every key down and up event triggers:

[ 1995.596692] applespi spi-APP000D:00: SPI transfer timed out
[ 1995.596835] applespi: Error reading from device: -110

TheChatty avatar Dec 29 '18 12:12 TheChatty

Btw., does using irqfixup instead of irqpoll also "fix" the issue? That would appear to be a lighter weight hack.

As to what exactly the problem is with the (not) registering of the interrupt handler, maybe @andy-shev has some ideas?

roadrunner2 avatar Dec 29 '18 23:12 roadrunner2

irqfixup does indeed already circumvent the issue. In any case (e.g. keyboard working) the keyboard is not lit up - is that expected?

TheChatty avatar Dec 29 '18 23:12 TheChatty

In any case (e.g. keyboard working) the keyboard is not lit up - is that expected?

No, it isn't, though I'm not 100% sure if anybody else has tested it on MB8,1. Does manually setting the brightness also not work?

echo 150 | sudo tee /sys/class/leds/spi::kbd_backlight/brightness

But I guess the caps-lock led works?

roadrunner2 avatar Dec 30 '18 00:12 roadrunner2

That manual brightness is working! And caps-lock as well (led is lit up, keyboard produces upper case letter and vice versa).

But when going to standby (e.g. systemctl suspend) keyboard and mouse are not working anymore. I grabbed the following dmesg:

[  146.831440] PM: suspend entry (deep)
[  146.831443] PM: Syncing filesystems ... done.
[  147.089468] Freezing user space processes ... (elapsed 0.003 seconds) done.
[  147.093108] OOM killer disabled.
[  147.093112] Freezing remaining freezable tasks ... (elapsed 0.000 seconds) done.
[  147.094086] printk: Suspending console(s) (use no_console_suspend to debug)
[  147.094705] applespi: spi-device suspend done.
[  147.096596] ------------[ cut here ]------------
[  147.096599] reqid not found
[  147.096687] WARNING: CPU: 3 PID: 46 at drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c:77 brcmf_pno_remove_request+0xac/0xd0 [brcmfmac]
[  147.096689] Modules linked in: fuse bnep nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ip6table_nat nf_nat_ipv6 ip6table_mangle ip6table_raw devlink ip6table_security iptable_nat nf_nat_ipv4 nf_nat iptable_mangle iptable_raw iptable_security nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nfnetlink ebtable_filter ebtables ip6table_filter ip6_tables sunrpc vfat fat brcmfmac intel_rapl x86_pkg_temp_thermal brcmutil intel_powerclamp coretemp kvm_intel cfg80211 joydev snd_hda_codec_cirrus snd_hda_codec_generic snd_hda_codec_hdmi hci_uart snd_hda_intel mmc_core btqca crct10dif_pclmul btrtl crc32_pclmul btbcm snd_hda_codec iTCO_wdt iTCO_vendor_support btintel snd_hda_core snd_hwdep ghash_clmulni_intel intel_cstate snd_seq bluetooth intel_uncore snd_seq_device applesmc snd_pcm input_polldev intel_rapl_perf sbs snd_timer ecdh_generic acpi_als rfkill kfifo_buf sbshc industrialio mei_me snd soundcore mei i2c_i801
[  147.096799]  spi_pxa2xx_pci intel_pch_thermal apple_bl lpc_ich pcc_cpufreq binfmt_misc btrfs libcrc32c xor zstd_decompress zstd_compress xxhash raid6_pq i915 kvmgt mdev vfio kvm uas usb_storage r8152 mii irqbypass i2c_algo_bit drm_kms_helper nvme crc32c_intel drm nvme_core 8250_lpss applespi(OE) video spi_pxa2xx_platform
[  147.096853] CPU: 3 PID: 46 Comm: kworker/u8:1 Tainted: G           OE     4.20.0-1.fc30.x86_64 #1
[  147.096856] Hardware name: Apple Inc. MacBook8,1/Mac-BE0E8AC46FE800CC, BIOS 177.0.0.0.0 09/17/2018
[  147.096868] Workqueue: events_unbound async_run_entry_fn
[  147.096895] RIP: 0010:brcmf_pno_remove_request+0xac/0xd0 [brcmfmac]
[  147.096900] Code: 08 48 89 74 d3 08 48 63 d0 39 ca 7e e9 31 db 4c 89 e7 e8 37 70 e8 d9 89 d8 5b 5d 41 5c c3 48 c7 c7 06 3a ad c0 e8 ce b4 5f d9 <0f> 0b bb fe ff ff ff 4c 89 e7 e8 15 70 e8 d9 89 d8 5b 5d 41 5c c3
[  147.096904] RSP: 0018:ffffab4140e0fd18 EFLAGS: 00010286
[  147.096909] RAX: 0000000000000000 RBX: ffff88bb201c5900 RCX: 0000000000000006
[  147.096913] RDX: 0000000000000007 RSI: 0000000000000096 RDI: ffff88bb26b968c0
[  147.096916] RBP: 0000000000000000 R08: 0000000000000004 R09: 00000000000207c0
[  147.096920] R10: 0000003867fd0840 R11: 000000000002d13c R12: ffff88bb201c5988
[  147.096923] R13: ffff88bb0d678300 R14: ffff88bb253a6000 R15: ffffffff9b143407
[  147.096929] FS:  0000000000000000(0000) GS:ffff88bb26b80000(0000) knlGS:0000000000000000
[  147.096933] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  147.096936] CR2: 000056498b0c5078 CR3: 000000025020a004 CR4: 00000000003606e0
[  147.096940] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  147.096943] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  147.096945] Call Trace:
[  147.096977]  brcmf_pno_stop_sched_scan+0x22/0x50 [brcmfmac]
[  147.097000]  brcmf_cfg80211_sched_scan_stop+0x28/0x60 [brcmfmac]
[  147.097022]  brcmf_cfg80211_suspend+0x303/0x340 [brcmfmac]
[  147.097081]  wiphy_suspend+0x8f/0x270 [cfg80211]
[  147.097129]  ? addresses_show+0xa0/0xa0 [cfg80211]
[  147.097137]  dpm_run_callback+0x59/0x150
[  147.097144]  __device_suspend+0x108/0x470
[  147.097151]  ? __switch_to+0x8c/0x4a0
[  147.097156]  async_suspend+0x1a/0x90
[  147.097163]  async_run_entry_fn+0x39/0x160
[  147.097171]  process_one_work+0x1a1/0x3a0
[  147.097177]  worker_thread+0x30/0x380
[  147.097183]  ? pwq_unbound_release_workfn+0xd0/0xd0
[  147.097189]  kthread+0x112/0x130
[  147.097196]  ? kthread_create_on_node+0x60/0x60
[  147.097204]  ret_from_fork+0x35/0x40
[  147.097211] ---[ end trace 9cb107899b67ba06 ]---
[  148.103789] brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
[  148.103793] brcmfmac: brcmf_cfg80211_reg_notifier: Country code iovar returned err = -5
[  148.104497] PM: suspend devices took 1.010 seconds
[  148.117969] ACPI: EC: interrupt blocked
[  148.163902] ACPI: Preparing to enter system sleep state S3
[  148.319145] ACPI: EC: event blocked
[  148.319146] ACPI: EC: EC stopped
[  148.319148] PM: Saving platform NVS memory
[  148.319156] Disabling non-boot CPUs ...
[  148.326880] smpboot: CPU 1 is now offline
[  148.342506] smpboot: CPU 2 is now offline
[  148.351436] smpboot: CPU 3 is now offline
[  148.359582] ACPI: Low-level resume complete
[  148.359682] ACPI: EC: EC started
[  148.359684] PM: Restoring platform NVS memory
[  148.360198] Enabling non-boot CPUs ...
[  148.360300] x86: Booting SMP configuration:
[  148.360304] smpboot: Booting Node 0 Processor 1 APIC 0x2
[  148.415077] hrtimer: interrupt took 3172719 ns
[  148.897931]  cache: parent cpu1 should not be sleeping
[  149.443442] CPU1 is up
[  149.443492] smpboot: Booting Node 0 Processor 2 APIC 0x1
[  149.444128]  cache: parent cpu2 should not be sleeping
[  149.449284] CPU2 is up
[  149.449307] smpboot: Booting Node 0 Processor 3 APIC 0x3
[  149.667090]  cache: parent cpu3 should not be sleeping
[  150.260302] CPU3 is up
[  150.266531] ACPI: Waking up from system sleep state S3
[  150.267699] ACPI: EC: interrupt unblocked
[  150.297532] ACPI: EC: event unblocked
[  150.298666] nvme nvme0: detected Apple NVMe controller, set queue depth=2 to work around controller resets
[  150.303468] nvme nvme0: IO queues not created
[  150.306885] ACPI: button: The lid device is not compliant to SW_LID.
[  150.307171] applespi: spi-device resume done.
[  150.446359] PM: resume devices took 0.149 seconds
[  150.446571] OOM killer enabled.
[  150.446575] Restarting tasks ... done.
[  150.511844] video LNXVIDEO:00: Restoring backlight state
[  150.512115] PM: suspend exit
[  150.514809] applespi spi-APP000D:00: SPI transfer timed out
[  150.514823] applespi: Error reading from device: -110
[  150.722800] applespi spi-APP000D:00: SPI transfer timed out
[  150.722813] applespi: Error writing to device: -110
[  150.930953] applespi spi-APP000D:00: SPI transfer timed out
[  150.930971] applespi: Error reading from device: -110
[  151.073474] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1u1: link is not ready
[  151.080305] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1u1: link is not ready
[  151.081797] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[  151.082183] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[  151.138792] applespi spi-APP000D:00: SPI transfer timed out
[  151.138805] applespi: Error writing to device: -110
[  151.346811] applespi spi-APP000D:00: SPI transfer timed out
[  151.346822] applespi: Error reading from device: -110
[  151.554846] applespi spi-APP000D:00: SPI transfer timed out
[  151.554869] applespi: Error reading from device: -110
[  151.607767] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[  151.647958] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[  151.763814] applespi spi-APP000D:00: SPI transfer timed out
[  151.763835] applespi: Error reading from device: -110
[  151.970822] applespi spi-APP000D:00: SPI transfer timed out
[  151.970842] applespi: Error reading from device: -110
[  152.178836] applespi spi-APP000D:00: SPI transfer timed out
[  152.178855] applespi: Error reading from device: -110
[  152.386831] applespi spi-APP000D:00: SPI transfer timed out
[  152.386840] applespi: Error reading from device: -110
[  152.594968] applespi spi-APP000D:00: SPI transfer timed out
[  152.594989] applespi: Error reading from device: -110
[  152.802827] applespi spi-APP000D:00: SPI transfer timed out
[  152.802848] applespi: Error reading from device: -110
[  153.011908] applespi spi-APP000D:00: SPI transfer timed out
[  153.011930] applespi: Error reading from device: -110
[  153.218975] applespi spi-APP000D:00: SPI transfer timed out
[  153.218997] applespi: Error reading from device: -110
[  153.426995] applespi spi-APP000D:00: SPI transfer timed out
[  153.427019] applespi: Error reading from device: -110
[  153.634981] applespi spi-APP000D:00: SPI transfer timed out
[  153.635004] applespi: Error reading from device: -110
[  153.842978] applespi spi-APP000D:00: SPI transfer timed out
[  153.843001] applespi: Error reading from device: -110
[  154.050900] applespi spi-APP000D:00: SPI transfer timed out
[  154.050917] applespi: Error reading from device: -110
[  154.258967] applespi spi-APP000D:00: SPI transfer timed out
[  154.258985] applespi: Error reading from device: -110
[  154.466967] applespi spi-APP000D:00: SPI transfer timed out
[  154.466984] applespi: Error reading from device: -110
[  154.674993] applespi spi-APP000D:00: SPI transfer timed out
[  154.675016] applespi: Error reading from device: -110
[  154.882995] applespi spi-APP000D:00: SPI transfer timed out
[  154.883018] applespi: Error reading from device: -110
[  155.090918] applespi spi-APP000D:00: SPI transfer timed out
[  155.090934] applespi: Error reading from device: -110
[  155.298995] applespi spi-APP000D:00: SPI transfer timed out
[  155.299012] applespi: Error reading from device: -110
[  155.507013] applespi spi-APP000D:00: SPI transfer timed out
[  155.507036] applespi: Error reading from device: -110
[  155.574329] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[  155.715005] applespi spi-APP000D:00: SPI transfer timed out
[  155.715022] applespi: Error reading from device: -110
[  155.923015] applespi spi-APP000D:00: SPI transfer timed out
[  155.923038] applespi: Error reading from device: -110
[  156.130952] applespi spi-APP000D:00: SPI transfer timed out
[  156.130972] applespi: Error reading from device: -110
[  156.339043] applespi spi-APP000D:00: SPI transfer timed out
[  156.339067] applespi: Error reading from device: -110
[  156.546926] applespi spi-APP000D:00: SPI transfer timed out
[  156.546948] applespi: Error reading from device: -110
[  156.754977] applespi spi-APP000D:00: SPI transfer timed out
[  156.755000] applespi: Error reading from device: -110
[  156.962989] applespi spi-APP000D:00: SPI transfer timed out
[  156.963012] applespi: Error reading from device: -110
[  157.170919] applespi spi-APP000D:00: SPI transfer timed out
[  157.170946] applespi: Error reading from device: -110
[  157.379007] applespi spi-APP000D:00: SPI transfer timed out
[  157.379031] applespi: Error reading from device: -110
[  157.587034] applespi spi-APP000D:00: SPI transfer timed out
[  157.587058] applespi: Error reading from device: -110
[  157.795041] applespi spi-APP000D:00: SPI transfer timed out
[  157.795064] applespi: Error reading from device: -110
[  158.003043] applespi spi-APP000D:00: SPI transfer timed out
[  158.003066] applespi: Error reading from device: -110
[  158.211045] applespi spi-APP000D:00: SPI transfer timed out
[  158.211068] applespi: Error reading from device: -110
[  158.419046] applespi spi-APP000D:00: SPI transfer timed out
[  158.419068] applespi: Error reading from device: -110
[  158.627007] applespi spi-APP000D:00: SPI transfer timed out
[  158.627029] applespi: Error reading from device: -110
[  158.835052] applespi spi-APP000D:00: SPI transfer timed out
[  158.835076] applespi: Error reading from device: -110
[  159.043051] applespi spi-APP000D:00: SPI transfer timed out
[  159.043071] applespi: Error reading from device: -110
[  159.251066] applespi spi-APP000D:00: SPI transfer timed out
[  159.251088] applespi: Error reading from device: -110
[  159.458990] applespi spi-APP000D:00: SPI transfer timed out
[  159.459013] applespi: Error reading from device: -110
[  159.667066] applespi spi-APP000D:00: SPI transfer timed out
[  159.667088] applespi: Error reading from device: -110
[  159.875067] applespi spi-APP000D:00: SPI transfer timed out
[  159.875089] applespi: Error reading from device: -110
[  160.083073] applespi spi-APP000D:00: SPI transfer timed out
[  160.083095] applespi: Error reading from device: -110
[  160.291075] applespi spi-APP000D:00: SPI transfer timed out
[  160.291098] applespi: Error reading from device: -110
[  160.499078] applespi spi-APP000D:00: SPI transfer timed out
[  160.499100] applespi: Error reading from device: -110
[  160.707020] applespi spi-APP000D:00: SPI transfer timed out
[  160.707042] applespi: Error reading from device: -110
[  160.915084] applespi spi-APP000D:00: SPI transfer timed out
[  160.915107] applespi: Error reading from device: -110
[  161.123066] applespi spi-APP000D:00: SPI transfer timed out
[  161.123084] applespi: Error reading from device: -110
[  161.331094] applespi spi-APP000D:00: SPI transfer timed out
[  161.331117] applespi: Error reading from device: -110
[  161.539097] applespi spi-APP000D:00: SPI transfer timed out
[  161.539119] applespi: Error reading from device: -110
[  161.747045] applespi spi-APP000D:00: SPI transfer timed out
[  161.747067] applespi: Error reading from device: -110
[  161.955098] applespi spi-APP000D:00: SPI transfer timed out
[  161.955121] applespi: Error reading from device: -110
[  162.163110] applespi spi-APP000D:00: SPI transfer timed out
[  162.163133] applespi: Error reading from device: -110
[  162.371113] applespi spi-APP000D:00: SPI transfer timed out
[  162.371136] applespi: Error reading from device: -110
[  162.578994] applespi spi-APP000D:00: SPI transfer timed out
[  162.579021] applespi: Error reading from device: -110
[  162.751572] IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready
[  162.786981] applespi spi-APP000D:00: SPI transfer timed out
[  162.786994] applespi: Error reading from device: -110
[  162.995022] applespi spi-APP000D:00: SPI transfer timed out
[  162.995045] applespi: Error reading from device: -110
[  163.203091] applespi spi-APP000D:00: SPI transfer timed out
[  163.203113] applespi: Error reading from device: -110
[  163.411028] applespi spi-APP000D:00: SPI transfer timed out
[  163.411050] applespi: Error reading from device: -110
[  163.619127] applespi spi-APP000D:00: SPI transfer timed out
[  163.619150] applespi: Error reading from device: -110
[  163.827129] applespi spi-APP000D:00: SPI transfer timed out
[  163.827152] applespi: Error reading from device: -110
[  164.035132] applespi spi-APP000D:00: SPI transfer timed out
[  164.035154] applespi: Error reading from device: -110
[  164.243138] applespi spi-APP000D:00: SPI transfer timed out
[  164.243158] applespi: Error reading from device: -110
[  164.451150] applespi spi-APP000D:00: SPI transfer timed out
[  164.451173] applespi: Error reading from device: -110
[  164.659145] applespi spi-APP000D:00: SPI transfer timed out
[  164.659168] applespi: Error reading from device: -110
[  164.867143] applespi spi-APP000D:00: SPI transfer timed out
[  164.867166] applespi: Error reading from device: -110
[  165.075151] applespi spi-APP000D:00: SPI transfer timed out
[  165.075174] applespi: Error reading from device: -110
[  165.283172] applespi spi-APP000D:00: SPI transfer timed out
[  165.283196] applespi: Error reading from device: -110
[  165.491159] applespi spi-APP000D:00: SPI transfer timed out
[  165.491183] applespi: Error reading from device: -110
[  165.699158] applespi spi-APP000D:00: SPI transfer timed out
[  165.699181] applespi: Error reading from device: -110
[  165.907164] applespi spi-APP000D:00: SPI transfer timed out
[  165.907187] applespi: Error reading from device: -110
[  166.115157] applespi spi-APP000D:00: SPI transfer timed out
[  166.115174] applespi: Error reading from device: -110
[  166.323169] applespi spi-APP000D:00: SPI transfer timed out
[  166.323192] applespi: Error reading from device: -110
[  166.531170] applespi spi-APP000D:00: SPI transfer timed out
[  166.531193] applespi: Error reading from device: -110
[  166.739172] applespi spi-APP000D:00: SPI transfer timed out
[  166.739195] applespi: Error reading from device: -110
[  166.947173] applespi spi-APP000D:00: SPI transfer timed out
[  166.947195] applespi: Error reading from device: -110
[  167.155179] applespi spi-APP000D:00: SPI transfer timed out
[  167.155201] applespi: Error reading from device: -110
[  167.363194] applespi spi-APP000D:00: SPI transfer timed out
[  167.363217] applespi: Error reading from device: -110
[  167.571185] applespi spi-APP000D:00: SPI transfer timed out
[  167.571208] applespi: Error reading from device: -110
[  167.779187] applespi spi-APP000D:00: SPI transfer timed out
[  167.779210] applespi: Error reading from device: -110
[  167.986221] applespi spi-APP000D:00: SPI transfer timed out
[  167.986244] applespi: Error reading from device: -110
[  168.179910] applespi spi-APP000D:00: SPI transfer timed out
[  168.179932] applespi: Error reading from device: -110
[  168.378851] applespi spi-APP000D:00: SPI transfer timed out
[  168.378874] applespi: Error reading from device: -110
[  168.566834] applespi spi-APP000D:00: SPI transfer timed out
[  168.566863] applespi: Error reading from device: -110
[  168.761236] applespi spi-APP000D:00: SPI transfer timed out
[  168.761256] applespi: Error reading from device: -110
[  168.952173] applespi spi-APP000D:00: SPI transfer timed out
[  168.952196] applespi: Error reading from device: -110
[  169.143600] applespi spi-APP000D:00: SPI transfer timed out
[  169.143631] applespi: Error reading from device: -110
[  169.343849] applespi spi-APP000D:00: SPI transfer timed out
[  169.343872] applespi: Error reading from device: -110
[  169.545986] applespi spi-APP000D:00: SPI transfer timed out
[  169.546008] applespi: Error reading from device: -110
[  169.734487] applespi spi-APP000D:00: SPI transfer timed out
[  169.734509] applespi: Error reading from device: -110
[  169.928690] applespi spi-APP000D:00: SPI transfer timed out
[  169.928719] applespi: Error reading from device: -110
[  170.122616] applespi spi-APP000D:00: SPI transfer timed out
[  170.122638] applespi: Error reading from device: -110
[  170.320991] applespi spi-APP000D:00: SPI transfer timed out
[  170.321013] applespi: Error reading from device: -110
[  170.511767] applespi spi-APP000D:00: SPI transfer timed out
[  170.511792] applespi: Error reading from device: -110
[  170.705378] applespi spi-APP000D:00: SPI transfer timed out
[  170.705401] applespi: Error reading from device: -110
[  170.893873] applespi spi-APP000D:00: SPI transfer timed out
[  170.893886] applespi: Error reading from device: -110
[  171.085198] applespi spi-APP000D:00: SPI transfer timed out
[  171.085215] applespi: Error reading from device: -110
[  171.286265] applespi spi-APP000D:00: SPI transfer timed out
[  171.286288] applespi: Error reading from device: -110
[  171.479319] applespi spi-APP000D:00: SPI transfer timed out
[  171.479342] applespi: Error reading from device: -110
[  171.668425] applespi spi-APP000D:00: SPI transfer timed out
[  171.668447] applespi: Error reading from device: -110
[  171.872354] applespi spi-APP000D:00: SPI transfer timed out
[  171.872376] applespi: Error reading from device: -110
[  172.071435] applespi spi-APP000D:00: SPI transfer timed out
[  172.071457] applespi: Error reading from device: -110
[  172.264889] applespi spi-APP000D:00: SPI transfer timed out
[  172.264912] applespi: Error reading from device: -110
[  172.462482] applespi spi-APP000D:00: SPI transfer timed out
[  172.462505] applespi: Error reading from device: -110
[  172.650614] applespi spi-APP000D:00: SPI transfer timed out
[  172.650636] applespi: Error reading from device: -110
[  172.853596] applespi spi-APP000D:00: SPI transfer timed out
[  172.853618] applespi: Error reading from device: -110
[  173.046016] applespi spi-APP000D:00: SPI transfer timed out
[  173.046042] applespi: Error reading from device: -110
[  173.243010] applespi spi-APP000D:00: SPI transfer timed out
[  173.243033] applespi: Error reading from device: -110
[  173.434436] applespi spi-APP000D:00: SPI transfer timed out
[  173.434459] applespi: Error reading from device: -110
[  173.628576] applespi spi-APP000D:00: SPI transfer timed out
[  173.628598] applespi: Error reading from device: -110
[  173.820176] applespi spi-APP000D:00: SPI transfer timed out
[  173.820198] applespi: Error reading from device: -110
[  174.020965] applespi spi-APP000D:00: SPI transfer timed out
[  174.020988] applespi: Error reading from device: -110
[  174.220401] applespi spi-APP000D:00: SPI transfer timed out
[  174.220423] applespi: Error reading from device: -110
[  174.417188] applespi spi-APP000D:00: SPI transfer timed out
[  174.417214] applespi: Error reading from device: -110
[  174.610430] applespi spi-APP000D:00: SPI transfer timed out
[  174.610452] applespi: Error reading from device: -110
[  174.811265] applespi spi-APP000D:00: SPI transfer timed out
[  174.811287] applespi: Error reading from device: -110
[  175.000382] applespi spi-APP000D:00: SPI transfer timed out
[  175.000405] applespi: Error reading from device: -110
[  175.194395] applespi spi-APP000D:00: SPI transfer timed out
[  175.194422] applespi: Error reading from device: -110
[  175.385533] applespi spi-APP000D:00: SPI transfer timed out
[  175.385574] applespi: Error reading from device: -110
[  175.580126] applespi spi-APP000D:00: SPI transfer timed out
[  175.580153] applespi: Error reading from device: -110
[  175.769662] applespi spi-APP000D:00: SPI transfer timed out
[  175.769685] applespi: Error reading from device: -110
[  175.961363] applespi spi-APP000D:00: SPI transfer timed out
[  175.961387] applespi: Error reading from device: -110
[  176.154571] applespi spi-APP000D:00: SPI transfer timed out
[  176.154595] applespi: Error reading from device: -110
[  176.343344] applespi spi-APP000D:00: SPI transfer timed out
[  176.343356] applespi: Error reading from device: -110
[  176.543536] applespi spi-APP000D:00: SPI transfer timed out
[  176.543558] applespi: Error reading from device: -110
[  176.746614] applespi spi-APP000D:00: SPI transfer timed out
[  176.746637] applespi: Error reading from device: -110
[  176.954532] applespi spi-APP000D:00: SPI transfer timed out
[  176.954554] applespi: Error reading from device: -110
[  177.162531] applespi spi-APP000D:00: SPI transfer timed out
[  177.162552] applespi: Error reading from device: -110
[  177.370538] applespi spi-APP000D:00: SPI transfer timed out
[  177.370559] applespi: Error reading from device: -110
[  177.578650] applespi spi-APP000D:00: SPI transfer timed out
[  177.578676] applespi: Error reading from device: -110
[  177.787515] applespi spi-APP000D:00: SPI transfer timed out
[  177.787528] applespi: Error reading from device: -110
[  177.994633] applespi spi-APP000D:00: SPI transfer timed out
[  177.994651] applespi: Error reading from device: -110
[  178.202647] applespi spi-APP000D:00: SPI transfer timed out
[  178.202667] applespi: Error reading from device: -110
[  178.410677] applespi spi-APP000D:00: SPI transfer timed out
[  178.410704] applespi: Error reading from device: -110
[  178.618671] applespi spi-APP000D:00: SPI transfer timed out
[  178.618694] applespi: Error reading from device: -110
[  178.826681] applespi spi-APP000D:00: SPI transfer timed out
[  178.826704] applespi: Error reading from device: -110
[  179.034686] applespi spi-APP000D:00: SPI transfer timed out
[  179.034709] applespi: Error reading from device: -110
[  179.242689] applespi spi-APP000D:00: SPI transfer timed out
[  179.242711] applespi: Error reading from device: -110
[  179.450697] applespi spi-APP000D:00: SPI transfer timed out
[  179.450720] applespi: Error reading from device: -110
[  179.658703] applespi spi-APP000D:00: SPI transfer timed out
[  179.658726] applespi: Error reading from device: -110
[  179.866716] applespi spi-APP000D:00: SPI transfer timed out
[  179.866739] applespi: Error reading from device: -110

And when I try to wake the system the first time by the power key, the screen lights up. On a second time it crashes.

TheChatty avatar Dec 30 '18 09:12 TheChatty

Regarding the keyboard brightness working manually: if you unload and reload the applespi module, or just load it later, then the keyboard brightness keys will stop working (in Gnome, at least), due to a bug in upowerd (see https://bugs.freedesktop.org/show_bug.cgi?id=101244). One way to work around this is to restart upowerd after (re)loading the module:

systemctl restart upower

Regarding the keyboard and touchpad unresponsive after resume, see #49.

roadrunner2 avatar Dec 30 '18 09:12 roadrunner2

After suspend I am unable to remove the module. rmmod applespi just hangs. As is the case with any other new module loading etc. The system is right before a crash.

TheChatty avatar Dec 30 '18 12:12 TheChatty

I applied roadrunner2's patch and enabled debugging and got the following output while suspending:

[ 2426.487735] PM: suspend entry (deep)
[ 2426.487858] PM: Syncing filesystems ... done.
[ 2426.872552] Freezing user space processes ... (elapsed 0.005 seconds) done.
[ 2426.877826] OOM killer disabled.
[ 2426.877832] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
[ 2426.880793] printk: Suspending console(s) (use no_console_suspend to debug)
[ 2426.885840] applespi: spi-device suspend done.
[ 2426.888873] ------------[ cut here ]------------
[ 2426.889065] reqid not found
[ 2426.889106] WARNING: CPU: 0 PID: 5657 at drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c:77 brcmf_pno_remove_request+0xae/0xd0 [brcmfmac]
[ 2426.889108] Modules linked in: applespi(OE) fuse bnep nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ip6table_nat nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat_ipv4 nf_nat iptable_mangle iptable_raw iptable_security devlink nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ip_set nfnetlink ebtable_filter ebtables ip6table_filter ip6_tables sunrpc vfat fat brcmfmac intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp brcmutil kvm_intel joydev iTCO_wdt hci_uart iTCO_vendor_support btqca cfg80211 btrtl btbcm btintel snd_hda_codec_cirrus snd_hda_codec_generic bluetooth ledtrig_audio snd_hda_codec_hdmi crct10dif_pclmul snd_hda_intel crc32_pclmul ghash_clmulni_intel applesmc input_polldev intel_cstate snd_hda_codec intel_uncore mmc_core intel_rapl_perf sbs snd_hda_core ecdh_generic sbshc snd_hwdep rfkill acpi_als kfifo_buf snd_seq industrialio snd_seq_device snd_pcm spi_pxa2xx_platform snd_timer
[ 2426.889166]  mei_me snd spi_pxa2xx_pci intel_pch_thermal pcc_cpufreq soundcore mei i2c_i801 lpc_ich apple_bl binfmt_misc btrfs libcrc32c xor zstd_decompress zstd_compress xxhash raid6_pq i915 kvmgt mdev vfio kvm crc32c_intel nvme nvme_core irqbypass i2c_algo_bit drm_kms_helper drm 8250_lpss video uas usb_storage r8152 mii [last unloaded: applespi]
[ 2426.889201] CPU: 0 PID: 5657 Comm: kworker/u8:0 Tainted: G           OE     4.21.0-0.rc0.git1.1.fc30.x86_64 #1
[ 2426.889203] Hardware name: Apple Inc. MacBook8,1/Mac-BE0E8AC46FE800CC, BIOS 177.0.0.0.0 09/17/2018
[ 2426.889209] Workqueue: events_unbound async_run_entry_fn
[ 2426.889220] RIP: 0010:brcmf_pno_remove_request+0xae/0xd0 [brcmfmac]
[ 2426.889223] Code: 08 48 89 74 d3 08 48 63 d0 39 ca 7e e9 31 db 4c 89 e7 e8 a5 3b e7 da 89 d8 5b 5d 41 5c c3 48 c7 c7 01 4e c1 c0 e8 e6 51 4c da <0f> 0b bb fe ff ff ff 4c 89 e7 e8 83 3b e7 da 89 d8 5b 5d 41 5c c3
[ 2426.889226] RSP: 0018:ffffaa8508d97cd0 EFLAGS: 00010286
[ 2426.889230] RAX: 0000000000000000 RBX: ffff9a24217fec00 RCX: 0000000000000006
[ 2426.889232] RDX: 0000000000000007 RSI: ffff9a241e238dd0 RDI: ffff9a24265d6c20
[ 2426.889235] RBP: 0000000000000000 R08: 0000000000000002 R09: 0000000000000000
[ 2426.889237] R10: 0000000000000000 R11: 0000000000000000 R12: ffff9a24217fec88
[ 2426.889240] R13: ffff9a240d240640 R14: ffff9a240e53f000 R15: ffffffff9c38a5d7
[ 2426.889244] FS:  0000000000000000(0000) GS:ffff9a2426400000(0000) knlGS:0000000000000000
[ 2426.889246] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2426.889249] CR2: 00005653676dc106 CR3: 0000000184612003 CR4: 00000000003606f0
[ 2426.889252] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 2426.889255] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 2426.889257] Call Trace:
[ 2426.889271]  brcmf_pno_stop_sched_scan+0x22/0x50 [brcmfmac]
[ 2426.889282]  brcmf_cfg80211_sched_scan_stop+0x28/0x60 [brcmfmac]
[ 2426.889291]  brcmf_cfg80211_suspend+0x303/0x340 [brcmfmac]
[ 2426.889318]  wiphy_suspend+0xb0/0x460 [cfg80211]
[ 2426.889337]  ? wiphy_resume+0x220/0x220 [cfg80211]
[ 2426.889344]  dpm_run_callback+0x70/0x240
[ 2426.889352]  __device_suspend+0x10a/0x570
[ 2426.889361]  async_suspend+0x1a/0x90
[ 2426.889367]  async_run_entry_fn+0x39/0x160
[ 2426.889374]  process_one_work+0x27d/0x600
[ 2426.889389]  worker_thread+0x3c/0x390
[ 2426.889397]  ? process_one_work+0x600/0x600
[ 2426.889401]  kthread+0x120/0x140
[ 2426.889406]  ? kthread_create_on_node+0x60/0x60
[ 2426.889414]  ret_from_fork+0x3a/0x50
[ 2426.889432] irq event stamp: 38642
[ 2426.889438] hardirqs last  enabled at (38641): [<ffffffff9b13e377>] vprintk_emit+0x307/0x320
[ 2426.889442] hardirqs last disabled at (38642): [<ffffffff9b0037e8>] trace_hardirqs_off_thunk+0x1a/0x1c
[ 2426.889446] softirqs last  enabled at (38614): [<ffffffff9be00365>] __do_softirq+0x365/0x47c
[ 2426.889450] softirqs last disabled at (38601): [<ffffffff9b0c60e9>] irq_exit+0x119/0x120
[ 2426.889453] ---[ end trace ac626f1b7c1e216d ]---
[ 2427.898811] PM: suspend devices took 1.018 seconds
[ 2427.900914] brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
[ 2427.901005] brcmfmac: brcmf_cfg80211_reg_notifier: Country code iovar returned err = -5
[ 2427.923082] ACPI: EC: interrupt blocked
[ 2427.967170] ACPI: Preparing to enter system sleep state S3
[ 2428.121170] ACPI: EC: event blocked
[ 2428.121197] ACPI: EC: EC stopped
[ 2428.121202] PM: Saving platform NVS memory
[ 2428.121416] Disabling non-boot CPUs ...
[ 2428.141558] NOHZ: local_softirq_pending 02
[ 2428.141589] NOHZ: local_softirq_pending 02
[ 2428.144210] smpboot: CPU 1 is now offline
[ 2428.167940] smpboot: CPU 2 is now offline
[ 2428.186382] smpboot: CPU 3 is now offline
[ 2428.232317] ACPI: Low-level resume complete
[ 2428.232480] ACPI: EC: EC started
[ 2428.232488] PM: Restoring platform NVS memory
[ 2428.236425] Enabling non-boot CPUs ...
[ 2428.239298] x86: Booting SMP configuration:
[ 2428.239405] smpboot: Booting Node 0 Processor 1 APIC 0x2
[ 2428.272289] hrtimer: interrupt took 12289685 ns
[ 2430.288827]  cache: parent cpu1 should not be sleeping
[ 2432.776635] CPU1 is up
[ 2432.777957] smpboot: Booting Node 0 Processor 2 APIC 0x1
[ 2432.779201]  cache: parent cpu2 should not be sleeping
[ 2432.802112] CPU2 is up
[ 2432.802184] smpboot: Booting Node 0 Processor 3 APIC 0x3
[ 2433.460317]  cache: parent cpu3 should not be sleeping
[ 2435.091636] CPU3 is up
[ 2435.123359] ACPI: Waking up from system sleep state S3
[ 2435.126141] ACPI: EC: interrupt unblocked
[ 2435.162836] ACPI: EC: event unblocked
[ 2435.170501] nvme nvme0: detected Apple NVMe controller, set queue depth=2 to work around controller resets
[ 2435.173131] ACPI: button: The lid device is not compliant to SW_LID.
[ 2435.176145] nvme nvme0: IO queues not created
[ 2435.323247] applespi: spi-device resume done.
[ 2435.352192] PM: resume devices took 0.192 seconds
[ 2435.352820] OOM killer enabled.
[ 2435.352828] Restarting tasks ... done.
[ 2435.409816] video LNXVIDEO:00: Restoring backlight state
[ 2435.410860] PM: suspend exit
[ 2435.523761] applespi spi-APP000D:00: SPI transfer timed out
[ 2435.523796] applespi: Error reading from device: -110
[ 2435.523932] spi_master spi0: failed to transfer one message from queue
[ 2435.732714] applespi spi-APP000D:00: SPI transfer timed out
[ 2435.732764] applespi: --- Touchpad Initialization ------------------------
[ 2435.732769] applespi: write  40 02 00 00 00 00 0c 00 52 02 00 01 02 00 02 00 02 01 6b d1 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732772] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732776] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732779] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732783] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732786] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732789] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 2435.732793] applespi: write  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23 ab
[ 2435.732796] applespi: status 00 00 00 00
[ 2435.732799] applespi: Error writing to device: -110
[ 2435.732808] spi_master spi0: failed to transfer one message from queue
[ 2435.939937] applespi spi-APP000D:00: SPI transfer timed out
[ 2435.939988] applespi: Error reading from device: -110
[ 2435.940158] spi_master spi0: failed to transfer one message from queue
[ 2436.052552] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1u1: link is not ready
[ 2436.060449] IPv6: ADDRCONF(NETDEV_UP): enp0s20u1u1: link is not ready
[ 2436.064011] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[ 2436.083485] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[ 2436.148744] applespi spi-APP000D:00: SPI transfer timed out
[ 2436.148783] applespi: Error reading from device: -110
[ 2436.148909] spi_master spi0: failed to transfer one message from queue
[ 2436.355902] applespi spi-APP000D:00: SPI transfer timed out
[ 2436.355951] applespi: Error reading from device: -110
[ 2436.356113] spi_master spi0: failed to transfer one message from queue
[ 2436.563904] applespi spi-APP000D:00: SPI transfer timed out
[ 2436.563961] applespi: Error reading from device: -110
[ 2436.564144] spi_master spi0: failed to transfer one message from queue
[ 2436.604655] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[ 2436.684240] IPv6: ADDRCONF(NETDEV_UP): wlp1s0: link is not ready
[ 2436.771754] applespi spi-APP000D:00: SPI transfer timed out
[ 2436.771790] applespi: Error reading from device: -110
[ 2436.771920] spi_master spi0: failed to transfer one message from queue
[ 2436.979759] applespi spi-APP000D:00: SPI transfer timed out
[ 2436.979797] applespi: Error reading from device: -110
[ 2436.979943] spi_master spi0: failed to transfer one message from queue
[ 2437.187718] applespi spi-APP000D:00: SPI transfer timed out
[ 2437.187745] applespi: Error reading from device: -110
[ 2437.187759] spi_master spi0: failed to transfer one message from queue
[ 2437.395758] applespi spi-APP000D:00: SPI transfer timed out
[ 2437.395893] applespi: Error reading from device: -110
[ 2437.396163] spi_master spi0: failed to transfer one message from queue
[ 2437.603860] applespi spi-APP000D:00: SPI transfer timed out

TheChatty avatar Dec 30 '18 17:12 TheChatty

After suspend I am unable to remove the module. rmmod applespi just hangs.

I think I see the problem (missed clearing some flags on a read error) and pushed a fix for it. Not sure exactly what code you're running, but grab the latest from #70 and it should fix the module remove hang.

Btw, I presume you're running into the #49 issue despite having booted with irqfixup (or irqoll)?

roadrunner2 avatar Dec 31 '18 04:12 roadrunner2

Now I am running exactly this code.

Without irqpoll/irqfixup modprobe applespi I never get up to the point where the corrupted packet (see below) is received (after keyboard is set up as device). Instead the modprobe is done early:

[    5.733388] applespi: loading out-of-tree module taints kernel.
[    5.738059] applespi: module verification failed: signature and/or required key missing - tainting kernel
[   12.929544] pxa2xx-spi pxa2xx-spi.0: Looking for DMA channel "tx" at index 0...
[   12.929808] pxa2xx-spi pxa2xx-spi.0: Looking for DMA channel "rx" at index 1...
[   12.994736] input: Apple SPI Keyboard as /devices/pci0000:00/0000:00:15.4/pxa2xx-spi.0/spi_master/spi0/spi-APP000D:00/input/input6
[   13.015081] applespi: spi-device probe done: spi-APP000D:00
[   13.205965] applespi spi-APP000D:00: SPI transfer timed out
[   13.206595] applespi: Error writing to device: -110
[   13.206627] spi_master spi0: failed to transfer one message from queue
[   13.414008] applespi spi-APP000D:00: SPI transfer timed out
[   13.414211] applespi: Error reading from device: -110
[   13.414249] spi_master spi0: failed to transfer one message from queue
[   13.622027] applespi spi-APP000D:00: SPI transfer timed out
[   13.622249] applespi: Error writing to device: -110
[   13.622271] spi_master spi0: failed to transfer one message from queue
[   13.722367] [<000000001ca0335e>] ssp_int [spi_pxa2xx_platform]
[   13.903206] audit: type=1130 audit(1546238246.151:65): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-backlight@leds:spi::kbd_backlight comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

With either of irqpoll/irqfixup modprobe succeeds (no better than when integrated into initramfs except for 7 seconds earlier loading with still seting up inputs 7 seconds later). Still keyboard is not lit up automatically.

[    5.743182] applespi: loading out-of-tree module taints kernel.
[    5.753454] applespi: module verification failed: signature and/or required key missing - tainting kernel
[   12.734667] pxa2xx-spi pxa2xx-spi.0: Looking for DMA channel "tx" at index 0...
[   12.734945] pxa2xx-spi pxa2xx-spi.0: Looking for DMA channel "rx" at index 1...
[   12.796193] input: Apple SPI Keyboard as /devices/pci0000:00/0000:00:15.4/pxa2xx-spi.0/spi_master/spi0/spi-APP000D:00/input/input6
[   12.814562] applespi spi-APP000D:00: Received corrupted packet (crc mismatch)
[   12.817702] input: Apple SPI Touchpad as /devices/pci0000:00/0000:00:15.4/pxa2xx-spi.0/spi_master/spi0/spi-APP000D:00/input/input7
[   12.822974] applespi: modeswitch done.
[   12.837590] applespi: spi-device probe done: spi-APP000D:00
[   13.781225] audit: type=1130 audit(1546238664.046:66): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=systemd-backlight@leds:spi::kbd_backlight comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

Does the corrupted packet tell you something?

With a working keyboard going systemctl suspend and resume by pressing power key I get a non-working keboard and:

[  669.080432] PM: suspend entry (deep)
[  669.081255] PM: Syncing filesystems ... done.
[  669.531027] Freezing user space processes ... (elapsed 0.002 seconds) done.
[  669.533499] OOM killer disabled.
[  669.533526] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
[  669.535920] printk: Suspending console(s) (use no_console_suspend to debug)
[  669.539178] applespi: spi-device suspend done.
[  669.542893] ------------[ cut here ]------------
[  669.542987] reqid not found
[  669.543028] WARNING: CPU: 1 PID: 2326 at drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c:77 brcmf_pno_remove_request+0xae/0xd0 [brcmfmac]
[  669.543030] Modules linked in: joydev applespi(OE) bnep nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ebtable_nat ip6table_nat nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat_ipv4 nf_nat iptable_mangle iptable_raw iptable_security nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 devlink ip_set nfnetlink ebtable_filter ebtables ip6table_filter ip6_tables sunrpc vfat fat intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel hci_uart iTCO_wdt iTCO_vendor_support btqca btrtl btbcm btintel crct10dif_pclmul bluetooth crc32_pclmul applesmc brcmfmac input_polldev snd_hda_codec_cirrus snd_hda_codec_generic ledtrig_audio ghash_clmulni_intel snd_hda_codec_hdmi intel_cstate snd_hda_intel intel_uncore intel_rapl_perf snd_hda_codec ecdh_generic brcmutil sbs acpi_als cfg80211 kfifo_buf snd_hda_core snd_hwdep sbshc snd_seq spi_pxa2xx_platform snd_seq_device industrialio mmc_core snd_pcm rfkill snd_timer snd
[  669.543087]  i2c_i801 pcc_cpufreq mei_me soundcore spi_pxa2xx_pci intel_pch_thermal mei lpc_ich apple_bl binfmt_misc btrfs libcrc32c xor zstd_decompress zstd_compress xxhash raid6_pq i915 kvmgt mdev vfio kvm crc32c_intel irqbypass i2c_algo_bit drm_kms_helper nvme drm nvme_core 8250_lpss video uas usb_storage r8152 mii
[  669.543119] CPU: 1 PID: 2326 Comm: kworker/u8:0 Tainted: G           OE     4.21.0-0.rc0.git1.1.fc30.x86_64 #1
[  669.543122] Hardware name: Apple Inc. MacBook8,1/Mac-BE0E8AC46FE800CC, BIOS 177.0.0.0.0 09/17/2018
[  669.543128] Workqueue: events_unbound async_run_entry_fn
[  669.543139] RIP: 0010:brcmf_pno_remove_request+0xae/0xd0 [brcmfmac]
[  669.543143] Code: 08 48 89 74 d3 08 48 63 d0 39 ca 7e e9 31 db 4c 89 e7 e8 a5 fb d8 ce 89 d8 5b 5d 41 5c c3 48 c7 c7 01 8e cf c0 e8 e6 11 3e ce <0f> 0b bb fe ff ff ff 4c 89 e7 e8 83 fb d8 ce 89 d8 5b 5d 41 5c c3
[  669.543145] RSP: 0018:ffffad8ec803fcd0 EFLAGS: 00010286
[  669.543148] RAX: 0000000000000000 RBX: ffff8fec204c7000 RCX: 0000000000000006
[  669.543151] RDX: 0000000000000007 RSI: ffff8fec09698dd0 RDI: ffff8fec267d6c20
[  669.543153] RBP: 0000000000000000 R08: 0000000000000002 R09: 0000000000000000
[  669.543155] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8fec204c7088
[  669.543158] R13: ffff8fec0ce3c640 R14: ffff8fec0ccf8000 R15: ffffffff9038a5d7
[  669.543161] FS:  0000000000000000(0000) GS:ffff8fec26600000(0000) knlGS:0000000000000000
[  669.543164] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  669.543166] CR2: 0000559369cceec8 CR3: 0000000216612006 CR4: 00000000003606e0
[  669.543169] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  669.543171] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  669.543173] Call Trace:
[  669.543186]  brcmf_pno_stop_sched_scan+0x22/0x50 [brcmfmac]
[  669.543196]  brcmf_cfg80211_sched_scan_stop+0x28/0x60 [brcmfmac]
[  669.543206]  brcmf_cfg80211_suspend+0x303/0x340 [brcmfmac]
[  669.543236]  wiphy_suspend+0xb0/0x460 [cfg80211]
[  669.543256]  ? wiphy_resume+0x220/0x220 [cfg80211]
[  669.543263]  dpm_run_callback+0x70/0x240
[  669.543271]  __device_suspend+0x10a/0x570
[  669.543279]  async_suspend+0x1a/0x90
[  669.543285]  async_run_entry_fn+0x39/0x160
[  669.543292]  process_one_work+0x27d/0x600
[  669.543307]  worker_thread+0x3c/0x390
[  669.543315]  ? process_one_work+0x600/0x600
[  669.543319]  kthread+0x120/0x140
[  669.543324]  ? kthread_create_on_node+0x60/0x60
[  669.543332]  ret_from_fork+0x3a/0x50
[  669.543350] irq event stamp: 6136
[  669.543356] hardirqs last  enabled at (6135): [<ffffffff8f13e377>] vprintk_emit+0x307/0x320
[  669.543360] hardirqs last disabled at (6136): [<ffffffff8f0037e8>] trace_hardirqs_off_thunk+0x1a/0x1c
[  669.543365] softirqs last  enabled at (6098): [<ffffffff8f8a2ab1>] peernet2id+0x51/0x80
[  669.543369] softirqs last disabled at (6096): [<ffffffff8f8a2a92>] peernet2id+0x32/0x80
[  669.543372] ---[ end trace ae21641c73a90019 ]---
[  670.555933] PM: suspend devices took 1.019 seconds
[  670.559073] brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
[  670.559202] brcmfmac: brcmf_cfg80211_reg_notifier: Country code iovar returned err = -5
[  670.580797] ACPI: EC: interrupt blocked
[  670.626950] ACPI: Preparing to enter system sleep state S3
[  670.784908] ACPI: EC: event blocked
[  670.784932] ACPI: EC: EC stopped
[  670.784936] PM: Saving platform NVS memory
[  670.785055] Disabling non-boot CPUs ...
[  670.809757] smpboot: CPU 1 is now offline
[  670.832228] smpboot: CPU 2 is now offline
[  670.850014] smpboot: CPU 3 is now offline
[  670.893097] ACPI: Low-level resume complete
[  670.893259] ACPI: EC: EC started
[  670.893267] PM: Restoring platform NVS memory
[  670.898042] Enabling non-boot CPUs ...
[  670.899443] x86: Booting SMP configuration:
[  670.899603] smpboot: Booting Node 0 Processor 1 APIC 0x2
[  670.934082] hrtimer: interrupt took 12285264 ns
[  673.001218]  cache: parent cpu1 should not be sleeping
[  675.366771] CPU1 is up
[  675.367992] smpboot: Booting Node 0 Processor 2 APIC 0x1
[  675.370340]  cache: parent cpu2 should not be sleeping
[  675.392029] CPU2 is up
[  675.392102] smpboot: Booting Node 0 Processor 3 APIC 0x3
[  676.042622]  cache: parent cpu3 should not be sleeping
[  677.614914] CPU3 is up
[  677.645144] ACPI: Waking up from system sleep state S3
[  677.648622] ACPI: EC: interrupt unblocked
[  677.685864] ACPI: EC: event unblocked
[  677.692318] nvme nvme0: detected Apple NVMe controller, set queue depth=2 to work around controller resets
[  677.697906] nvme nvme0: IO queues not created
[  677.708581] ACPI: button: The lid device is not compliant to SW_LID.
[  678.120254] applespi: spi-device resume done.
[  678.127814] PM: resume devices took 0.444 seconds
[  678.158642] OOM killer enabled.
[  678.160627] Restarting tasks ... done.
[  678.247686] video LNXVIDEO:00: Restoring backlight state
[  678.250884] PM: suspend exit
[  678.322803] applespi spi-APP000D:00: SPI transfer timed out
[  678.328816] applespi: Error writing to device: -110
[  678.335790] spi_master spi0: failed to transfer one message from queue
[  678.546883] applespi spi-APP000D:00: SPI transfer timed out
[  678.552434] applespi: Error reading from device: -110
[  678.557994] spi_master spi0: failed to transfer one message from queue
[  678.762857] applespi spi-APP000D:00: SPI transfer timed out
[  678.767334] applespi: Error reading from device: -110
[  678.771668] spi_master spi0: failed to transfer one message from queue

Now I can successfully rmmod applespi. But reloading it resumes the (now steady automatic) timeout messages and of course the keyboard not working.

When I turn on keyboard light it is switched off during standby but remains dark after resume. Trying again to turn it on fails.

TheChatty avatar Dec 31 '18 06:12 TheChatty

So there are two distinct issues with the keyboard/touchpad on MB8,1:

  1. the system sometimes/often needs to be booted with irqfixup (this issue)
  2. the keyboard/touchpad is non-functional after resume (#49)

While they are both related to the interrupt for the spi bus, they are different because this issue here is about the handler not getting installed properly (or something removing it again), whereas the resume issue is about the interrupt not firing at all anymore.

So sticking to the boot/irqfixup issue only here. (i.e. let's keep discussions about suspend/resume on the relevant ticket #49).

With either of irqpoll/irqfixup modprobe succeeds (no better than when integrated into initramfs except for 7 seconds earlier loading with still seting up inputs 7 seconds later). Still keyboard is not lit up automatically.

The keyboard lighting up is controlled by two things: when the driver loads (usually early in boot, if it's in the initramfs) it looks for a stored value in an EFI variable - this variable is written with the current value on shutdown. I.e. the driver tries to preserve the setting across reboots (mainly so the keyboard lights up during early boot, e.g. when entering a disk encryption password). Second, the desktop environment will generally set the light level when it starts up. But as I said above, there's a race issue with upowerd.

So if the keyboard is not lighting up by itself, try these things:

  • ensure the keyboard light is on when you shut down (so the driver saves the value in the EFI variable)
  • restart upowerd after logging in (systemctl restart upower)

Does the corrupted packet tell you something?

Not much: it's quite rare to get a corrupted packet, but it does very occasionally happen. Ideally we'd reset things when that happens, but it's not currently known how to do that, and things seem to recover by themselves even without a reset. So I've mostly just ignored these.

Now, back to the core issue of the interrupt handler not registered properly: @andy-shev, do you have any ideas here? (to summarize: on MB8,1 only, unless booted with irqfixup spi tranfers will usually all fail with "applespi spi-APP000D:00: SPI transfer timed out", though there are cases where folks have reported that by loading the applespi (and related spi drivers) in initramfs the irqfixup is not necessary, but that isn't always the case - so this looks to be some race related to the registration of the interrupt handler for the spi device?).

roadrunner2 avatar Jan 13 '19 08:01 roadrunner2

@roadrunner2: I manually turned the keyboard light on in runlevel 3 (as only from there I am successfully able to reboot - otherwise some stop jobs from Fedora are hanging) and my keyboard successfully lit up automatically. But quite late: after modeswitch is done (@8s), module already loaded @2s according to dmesg. I had not to deal with upower. When display turns off and I press a key (wake up call), the keyboard light turns on as well. So this is all working fine. Only after a rmmod/modprobe cycle even restarting upower doesn't help to make it take care of the backlight again (just stays on even though the display going dark).

I see the corrupted packet once on every load of the module (thus also on a rmmod/modprobe cycle).

TheChatty avatar Jan 13 '19 23:01 TheChatty

@TheChatty Sorry for the slow reply. Regarding the keyboard light, if restarting upower doesn't fix the issue and after reloading the module, then I don't know what the issue is - in any case, since the driver exposes the backlight controls properly and you can manually change the brightness, it's not an issue with the driver, but some userspace issue. I'm sorry, but you'll have to debug that yourself.

Regarding the corrupted packet, while it doesn't appear to be a serious issue (shows up only once), it would be nice to understand what's going on. To that end I've pushed an update to the applespi driver on my branch which allows logging of the corrupted packet. If you can pull that, rebuild, and then (re)load with

sudo insmod applespi.ko debug=0x1000

and then send me the output of dmesg | grep applespi, that would be great.

Lastly, regarding the irqfixup issue, I've prepared a patch to print out some debug info about the irq allocation and handling (spi-debug.patch.txt). You'll need to rebuild and reinstall your kernel with this patch. Also, it will be somewhat noisy, so you'll need to grab the output from journalctl -k instead of dmesg as it will quickly overflow the ringbuffer. With this patch could you post the logs from each of the following:

  • booting without irqfixup
  • booting with irqfixup
  • suspend/resume (when booted with irqfixup) (not sure if it'll help debug that issue, but I figure once you've gone through the trouble of patching the kernel we might as well see the additional logs have to say)

roadrunner2 avatar Jan 26 '19 20:01 roadrunner2

I didn’t find /proc/interrupts for non-working case on most recent kernel + driver to advise something.

andy-shev avatar Jan 30 '19 00:01 andy-shev

@andy-shev But would adding irqfixup change anything wrt /proc/interrupts? In any case, for completeness sake, yes, it would probably be good to have the full /proc/interrupts after booting w/ and w/o irqfixup.

roadrunner2 avatar Feb 01 '19 07:02 roadrunner2

Apparently, user npx001 figured out how sort out the nvme 'IO queues not created' issue on the macbook8,1 https://github.com/Dunedan/mbp-2016-linux/issues/9#issuecomment-567945045

here's the patch the patch he suggested:

drivers/nvme/host/pci.c
@@ -3109,6 +3109,7 @@ static const struct pci_device_id nvme_i
 				NVME_QUIRK_IGNORE_DEV_SUBNQN, },
 	{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001),
+		.driver_data = NVME_QUIRK_SINGLE_VECTOR, },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2005),
 		.driver_data = NVME_QUIRK_SINGLE_VECTOR |

Does anyone have a macbook8,1 to test this out on? Let me know if you need any help creating/applying this patch.

leifliddy avatar Jan 22 '20 14:01 leifliddy

Forgive my ignorance, but what's the common name for macbook8,1? I have a MacBook Air (11-inch, Early 2015), and would be happy to help test the patch in any way I can if I have the right model. I would likely need a little help getting the patch created and applied though.

mtoohey31 avatar Jan 23 '20 16:01 mtoohey31

I have a MacBook Air (11-inch, Early 2015), and would be happy to help test the patch in any way I can if I have the right model.

Run lspci -nk -vv and look for 0x2001 ID there.

andy-shev avatar Jan 23 '20 20:01 andy-shev

I tried that command but nothing comes up in a search for 0x2001... I was doing it from an install usb though, do I need to have Fedora fully installed on a disk? macbook, and "ID" matching case also turn up no results.

mtoohey31 avatar Jan 23 '20 22:01 mtoohey31

To help illustrate this point, the nvme controller on the macbook9,1 has an id of 2003 ie

[root@mac ~]# lspci -nk
...
01:00.0 0180: 106b:2003 (rev 12)
	Subsystem: 106b:2003
	Kernel driver in use: nvme
	Kernel modules: nvme

I think only the macbook8,1 (12-inch 2015 which is not a macbook air) has an nvme controller with a 2001 device ID.

leifliddy avatar Jan 24 '20 08:01 leifliddy

My device (which is a 11 inch, early 2015 air) lists a device "04:00.0 0180: 106b:2001 (rev 01) (prog-if 02)" controller as the only device using the nvme driver.

mtoohey31 avatar Jan 24 '20 19:01 mtoohey31

Oh really!? In your dmesg log, do you see the nvme nvme0: IO queues not created error (when not using irqpoll/irqfixup)?

leifliddy avatar Jan 24 '20 20:01 leifliddy

I'm a bit of a Linux noob, so idk what irqpoll/irqfixup are, but I was trying to get Linux installed on this MacBook so I could learn it by using it, and it couldn't find the SSD on newer versions of the kernel. While troubleshooting I did find the "nvme nvme0: IO queues not created" error in the dmesg log. Linux is not currently installed on it because I couldn't fix the problem, but I have a load of ISOs for different versions of Fedora and a couple other distros downloaded, so let me know if there's any testing I can do to help. Again though, I'm somewhat experienced with computers imho but I'm completely new to Linux so I would probably need a little guidance.

mtoohey31 avatar Jan 24 '20 20:01 mtoohey31

@Ninja73737 Ok, no worries. This is going to be a bit painful though depending on your level of experience and what you have available to you. But, lets start by creating a live-usb stick w/ persistent storage. There's a million ways to do this....I'll present you with a method using Fedora, since that's the distro I'm familiar with. You'll need to have a system running Fedora (not on your macbook air obviously). install livecd-tools

dnf install livecd-tools

download a live cd image

wget https://download.fedoraproject.org/pub/fedora/linux/releases/31/Spins/x86_64/iso/Fedora-Cinnamon-Live-x86_64-31-1.9.iso

write image to usb stick w/ 4GB of persistent storage

livecd-iso-to-disk --format --reset-mbr --efi --overlay-size-mb 4095 Fedora-Cinnamon-Live-x86_64-31-1.9.iso /dev/sdd

**substitute /dev/sdd with device of your usb stick --hopefully you have one ; ) use dmesg or lsblk to find your usb stick device

If you're on a non-Fedora system, you should be might be able to run this script directly to write the image to the usb drive: https://github.com/livecd-tools/livecd-tools/blob/master/tools/livecd-iso-to-disk.sh

Let me know once you've made it this far. Everything else past this point is super easy.

leifliddy avatar Jan 25 '20 05:01 leifliddy

btw i do test nvme patch on macbookair7,1 ( early 2015 ) not macbook8,1 anyway it should work on any mac with device id: 0x106b:0x2001

npx001 avatar Jan 25 '20 08:01 npx001

Yes, you'll test the patch on your macbookair7,1 as it has an nvme controller with a vendor:device id of 0x106b:0x2001 (which is the exact same nvme controller on the macbook8,1). That's the only requirement. You've already confirmed that you're experiencing the 'nvme nvme0: IO queues not created' error. Which we now know (or at least suspect) affects any nvme controller with the vendor:device id of 106b:2001

leifliddy avatar Jan 25 '20 08:01 leifliddy

just tested on my macbookair7,1 with latest kernel ( 5.4.14 ) and I can confirm that it works

npx001 avatar Jan 25 '20 09:01 npx001

@leifliddy As far as I understood they can't install any Linux distribution. What I can recommend here is to build a simple image based on, for example, BuildRoot (*) with a patched kernel. Perhaps I can provide one next week, but not sure if I have time for it.

*) btw, I have a branch intel published on my GH repository of BuildRoot which allows easily creating disk image with external kernel.

andy-shev avatar Jan 25 '20 21:01 andy-shev

@andy-shev > As far as I understood they can't install any Linux distribution.

I understand. I was proposing that they create they install Linux (Fedora) to a usb stick via another system (or VM) running Linux (assuming that they have another Linux system available). Once created, they could then insert that usb stick into the macbook, boot from it, verify the 'nvme0: IO queues not created' error is present, then patch the nvme module, reboot, and then verify that the issue has been resolved. Again, I know there are several methods and approaches to accomplish the same thing. Perhaps your method may be easier, I'll take a look at your GH repo of BuildRoot....

leifliddy avatar Jan 26 '20 09:01 leifliddy