diff --git a/.github/workflows/BuildKernelPackage.yml b/.github/workflows/BuildKernelPackage.yml index 31a8cc6..488ba01 100644 --- a/.github/workflows/BuildKernelPackage.yml +++ b/.github/workflows/BuildKernelPackage.yml @@ -1,12 +1,12 @@ name: Build Kernel Package -on: [push] +on: [push, pull_request] jobs: build: runs-on: ubuntu-18.04 steps: - - name: Checkout repo + - name: Checkout Repo uses: actions/checkout@v2 - - name: Build in Docker + - name: Build In Docker run: | cat << EOF > entrypoint.sh cd /build @@ -24,19 +24,20 @@ jobs: - name: Print sha512sums run: sha512sum *.pkg.tar* - - name: Upload Arch package + - name: Upload Built Packages uses: actions/upload-artifact@v2 with: - name: mbp-16.1-linux-wifi-arch - path: ${{ github.workspace }}/mbp-16.1-linux-wifi-*-x86_64.pkg.tar.zst + name: built-packages + path: ${{ github.workspace }}/*.pkg.tar.zst - - name: create tag + - name: Create Tag id: create_tag run: | source PKGBUILD echo "::set-output name=tag::${pkgver}-${pkgrel}" echo $pkgver $pkgrel - name: Release + if: github.ref == 'refs/heads/main' uses: softprops/action-gh-release@v1 with: files: | @@ -45,8 +46,6 @@ jobs: draft: false body: | Install packages with `sudo pacman -U `, you can use urls or file paths. - You will need to be using `apple-bce-dkms-git` as `apple-bce-git` only works on `linux-mbp`. - You will need wifi firmware from MacOS, as described [here](https://wiki.t2linux.org/guides/wifi/#on-macos). env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 329c932..0ff204c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ *.pkg.tar.* src/ pkg/ +apple-bce/ +apple-ibridge/ diff --git a/1001-Put-apple-bce-and-apple-ibridge-in-drivers-staging.patch b/1001-Put-apple-bce-and-apple-ibridge-in-drivers-staging.patch new file mode 100644 index 0000000..9efc287 --- /dev/null +++ b/1001-Put-apple-bce-and-apple-ibridge-in-drivers-staging.patch @@ -0,0 +1,112 @@ +From 153b587ed53135eaf244144f6f8bdd5a0fe6b69e Mon Sep 17 00:00:00 2001 +From: Redecorating <69827514+Redecorating@users.noreply.github.com> +Date: Fri, 24 Dec 2021 18:12:25 +1100 +Subject: [PATCH 1/1] Put apple-bce and apple-ibridge in drivers/staging + +--- + drivers/staging/Kconfig | 4 ++++ + drivers/staging/Makefile | 2 ++ + drivers/staging/apple-bce/Kconfig | 18 ++++++++++++++++++ + drivers/staging/apple-bce/Makefile | 2 +- + drivers/staging/apple-ibridge/Kconfig | 15 +++++++++++++++ + drivers/staging/apple-ibridge/Makefile | 6 +++--- + 6 files changed, 43 insertions(+), 4 deletions(-) + create mode 100644 drivers/staging/apple-bce/Kconfig + create mode 100644 drivers/staging/apple-ibridge/Kconfig + +diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig +index e03627a..fc121d5 100644 +--- a/drivers/staging/Kconfig ++++ b/drivers/staging/Kconfig +@@ -102,4 +102,8 @@ source "drivers/staging/qlge/Kconfig" + + source "drivers/staging/wfx/Kconfig" + ++source "drivers/staging/apple-bce/Kconfig" ++ ++source "drivers/staging/apple-ibridge/Kconfig" ++ + endif # STAGING +diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile +index c7f8d8d..debad40 100644 +--- a/drivers/staging/Makefile ++++ b/drivers/staging/Makefile +@@ -41,3 +41,5 @@ obj-$(CONFIG_XIL_AXIS_FIFO) += axis-fifo/ + obj-$(CONFIG_FIELDBUS_DEV) += fieldbus/ + obj-$(CONFIG_QLGE) += qlge/ + obj-$(CONFIG_WFX) += wfx/ ++obj-$(CONFIG_APPLE_BCE) += apple-bce/ ++obj-$(CONFIG_APPLE_IBRIDGE) += apple-ibridge/ +diff --git a/drivers/staging/apple-bce/Kconfig b/drivers/staging/apple-bce/Kconfig +new file mode 100644 +index 0000000..bbfb89b +--- /dev/null ++++ b/drivers/staging/apple-bce/Kconfig +@@ -0,0 +1,18 @@ ++config APPLE_BCE ++ tristate "Apple BCE driver (VHCI and Audio support)" ++ default m ++ depends on X86 ++ select SOUND ++ select SND ++ select SND_PCM ++ select SND_JACK ++ help ++ VHCI and audio support on Apple MacBooks with the T2 Chip. ++ This driver is divided in three components: ++ - BCE (Buffer Copy Engine): which establishes a basic communication ++ channel with the T2 chip. This component is required by the other two: ++ - VHCI (Virtual Host Controller Interface): Access to keyboard, mouse ++ and other system devices depend on this virtual USB host controller ++ - Audio: a driver for the T2 audio interface. ++ ++ If "M" is selected, the module will be called apple-bce.' +diff --git a/drivers/staging/apple-bce/Makefile b/drivers/staging/apple-bce/Makefile +index a6a656f..8cfbd3f 100644 +--- a/drivers/staging/apple-bce/Makefile ++++ b/drivers/staging/apple-bce/Makefile +@@ -1,5 +1,5 @@ + modname := apple-bce +-obj-m += $(modname).o ++obj-$(CONFIG_APPLE_BCE) += $(modname).o + + apple-bce-objs := apple_bce.o mailbox.o queue.o queue_dma.o vhci/vhci.o vhci/queue.o vhci/transfer.o audio/audio.o audio/protocol.o audio/protocol_bce.o audio/pcm.o + +diff --git a/drivers/staging/apple-ibridge/Kconfig b/drivers/staging/apple-ibridge/Kconfig +new file mode 100644 +index 0000000..0716486 +--- /dev/null ++++ b/drivers/staging/apple-ibridge/Kconfig +@@ -0,0 +1,15 @@ ++config APPLE_IBRIDGE ++ tristate "Apple iBridge driver (Touchbar and ALS support)" ++ default m ++ depends on X86 ++ select HID ++ select IIO ++ select IIO_TRIGGERED_BUFFER ++ select IIO_BUFFER ++ select ACPI_ALS ++ help ++ Driver for the Touchbar and ALS (Ambient Light Sensor) on some ++ Apple computers. ++ ++ If "M" is selected, the modules will be called apple-ibridge, ++ apple-ib-tb and apple-ib-als. +diff --git a/drivers/staging/apple-ibridge/Makefile b/drivers/staging/apple-ibridge/Makefile +index ea40afe..ae129bd 100644 +--- a/drivers/staging/apple-ibridge/Makefile ++++ b/drivers/staging/apple-ibridge/Makefile +@@ -1,6 +1,6 @@ +-obj-m += apple-ibridge.o +-obj-m += apple-ib-tb.o +-obj-m += apple-ib-als.o ++obj-$(CONFIG_APPLE_IBRIDGE) += apple-ibridge.o ++obj-$(CONFIG_APPLE_IBRIDGE) += apple-ib-tb.o ++obj-$(CONFIG_APPLE_IBRIDGE) += apple-ib-als.o + + KVERSION := $(KERNELRELEASE) + ifeq ($(origin KERNELRELEASE), undefined) +-- +2.34.1 + diff --git a/intel-lpss.patch b/9003-mfd-intel-lpss-Fix-too-early-PM-enablement-in-the-AC.patch similarity index 68% rename from intel-lpss.patch rename to 9003-mfd-intel-lpss-Fix-too-early-PM-enablement-in-the-AC.patch index ff5e53e..92b383a 100644 --- a/intel-lpss.patch +++ b/9003-mfd-intel-lpss-Fix-too-early-PM-enablement-in-the-AC.patch @@ -1,3 +1,15 @@ +From: "Andy Shevchenko" +To: "Andy Shevchenko" , "Lee Jones" , +Cc: "Orlando Chamberlain" , "Aditya Garg" +Subject: [PATCH v2 1/1] mfd: intel-lpss: Fix too early PM enablement in the ACPI ->probe() +Date: Tue, 02 Nov 2021 06:00:08 +1100 + +The runtime PM callback may be called as soon as the runtime PM facility +is enabled and activated. It means that ->suspend() may be called before +we finish probing the device in the ACPI case. Hence, NULL pointer +dereference: + + intel-lpss INT34BA:00: IRQ index 0 not found BUG: kernel NULL pointer dereference, address: 0000000000000030 ... Workqueue: pm pm_runtime_work diff --git a/PKGBUILD b/PKGBUILD index 9f3050f..f5e94cb 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,12 +1,13 @@ -# Maintainer: James Lambert (jamlam) +# Maintainer: Redecorating +# Contributor: James Lambert (jamlam) # Contributor: Aun-Ali Zaidi # Contributor: Jan Alexander Steffens (heftig) -pkgbase=mbp-16.1-linux-wifi -pkgver=5.15.7 +pkgbase=linux-t2 +pkgver=5.15.11 _srcname=linux-${pkgver} -pkgrel=3 -pkgdesc='Linux for MBP 16.1 Wifi' +pkgrel=1 +pkgdesc='Linux kernel for T2 Macs' _srctag=v${pkgver%.*}-${pkgver##*.} url="https://git.archlinux.org/linux.git/log/?h=v$_srctag" arch=(x86_64) @@ -27,6 +28,11 @@ source=( 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch + # apple-bce, apple-ibridge + apple-bce::git+https://github.com/t2linux/apple-bce-drv#commit=f93c6566f98b3c95677de8010f7445fa19f75091 + apple-ibridge::git+https://github.com/t2linux/apple-ib-drv#commit=d8411ad1d87db8491e53887e36c3d37f445203eb + 1001-Put-apple-bce-and-apple-ibridge-in-drivers-staging.patch + # Hack for AMD DC eDP link rate bug 2001-drm-amd-display-Force-link_rate-as-LINK_RATE_RBR2-fo.patch @@ -49,13 +55,13 @@ source=( 4008-HID-apple-Add-support-for-MacBookAir9-1-keyboard-tra.patch 4009-HID-apple-Add-support-for-MacBookPro16-1-keyboard-tr.patch - # MBP Peripheral support - 6001-media-uvcvideo-Add-support-for-Apple-T2-attached-iSi.patch # UVC Camera support + # UVC Camera support + 6001-media-uvcvideo-Add-support-for-Apple-T2-attached-iSi.patch # Hack for i915 overscan issues 7001-drm-i915-fbdev-Discard-BIOS-framebuffers-exceeding-h.patch - # Broadcom WIFI/BT device support + # Broadcom WIFI device support 8001-brcmfmac-pcie-Declare-missing-firmware-files-in-pcie.patch 8002-brcmfmac-firmware-Support-having-multiple-alt-paths.patch 8003-brcmfmac-firmware-Handle-per-board-clm_blob-files.patch @@ -86,10 +92,12 @@ source=( 8028-brcmfmac-pcie-Read-the-console-on-init-and-shutdown.patch 8029-brcmfmac-pcie-Release-firmwares-in-the-brcmf_pcie_se.patch - + # Broadcom BT device support 9001-bluetooth-add-disable-read-tx-power-quirk.patch 9002-add-bluetooth-support-for-16,2.patch - intel-lpss.patch + 9003-mfd-intel-lpss-Fix-too-early-PM-enablement-in-the-AC.patch + + ) validpgpkeys=( @@ -109,6 +117,13 @@ prepare() { echo "-$pkgrel" > localversion.10-pkgrel echo "${pkgbase#linux}" > localversion.20-pkgname + for i in apple-bce apple-ibridge; do + echo "Copying $i in to drivers/staging..." + # no need to copy .git/ + mkdir drivers/staging/$i + cp -r $srcdir/$i/* drivers/staging/$i/ + done + local src for src in "${source[@]}"; do src="${src%%::*}" @@ -266,11 +281,14 @@ for _p in "${pkgname[@]}"; do }" done -sha256sums=('5d9050a839edc7480c5c8f7a284cd28bee6db07bec9e41c684f399192bbe5db1' +sha256sums=('c1178b7e7e12d91292e670191268e3fe9a3563faf899eef43e468577e973a1ce' 'SKIP' '324a9d46c2338806a0c3ce0880c8d5e85c2ef30d342af3dc96f87b54fae7a586' '6b4da532421cac5600d09c0c52742aa52d848af098f7853abe60c02e9d0a3752' '2184069ab00ef43d9674756e9b7a56d15188bc4494d34425f04ddc779c52acd8' + 'SKIP' + 'SKIP' + 'b7c987889d92a48d638d5258842b10f6c856e57f29ad23475aa507c7b4ad5710' '786dfc22e4c6ece883e7dedd0ba3f6c14018584df95450b2cb78f3da8b01f7cb' '7366a08383900a09f8e742b1e4f0a02e0839a385e68e70a89d1815c197df3300' '8d8401a99a9dfbc41aa2dc5b6a409a19860b1b918465e19de4a4ff18de075ea3' @@ -320,4 +338,4 @@ sha256sums=('5d9050a839edc7480c5c8f7a284cd28bee6db07bec9e41c684f399192bbe5db1' '5980bbc0702eafebcbbe80c53d39f985422247020b811e44c333fe047d1ab779' '31e414978a947bdb71f27ed364c4da73b81fcf1921250cb69ee1bcf2bbd25636' '5d36770f436b69e69633d060deb55a37b8b3871983068e95fb33d5a195f00574' - '22b2695afcc4103743e55ceeda4691a59ddce84a8f16d1d572159dd2ff7f8537') + '3bffb2bb84800453ba05676293de9b0b1619d0c19b6295e803f0d9c3a07be23a')