shift-axolotl: switch to mainline kernel package (MR 2738)

This MR removes the downstream kernel package linux-shift-axolotl
and uses linux-postmarketos-qcom-sdm845 instead, as it has
recently added support for the SHIFT6mq (axolotl).

Change-Id: I79427820686eb813cb21f57d6bddc0d2f7984b6a
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
This commit is contained in:
Alexander Martinz 2021-11-24 18:35:56 +01:00 committed by Alexey Min
parent 7c91000470
commit bfa61f6b7d
No known key found for this signature in database
GPG key ID: 0B19D2A65870B448
6 changed files with 8 additions and 5831 deletions

View file

@ -3,14 +3,14 @@
pkgname=device-shift-axolotl pkgname=device-shift-axolotl
pkgdesc="SHIFT6mq" pkgdesc="SHIFT6mq"
pkgver=0.1 pkgver=0.2
pkgrel=0 pkgrel=0
url="https://postmarketos.org" url="https://postmarketos.org"
license="MIT" license="MIT"
arch="aarch64" arch="aarch64"
options="!check !archcheck" options="!check !archcheck"
depends=" depends="
linux-shift-axolotl linux-postmarketos-qcom-sdm845
mkbootimg mkbootimg
postmarketos-base postmarketos-base
postmarketos-update-kernel postmarketos-update-kernel
@ -29,5 +29,5 @@ package() {
} }
sha512sums=" sha512sums="
7312a14ef9c99e2452e1161bf0bca03857714eb367aa32d50de5c665ade3dd9e3e488a129b1946ca14f83c56f067f867b7c584497b62800490789982ddebe894 deviceinfo f6815e23c10e58cfc30e24982b7cef50e0f7f208756226e68de5c37808bce7c1144450005b01401fa49c2887e4c1843e78e170c9f3a53477dea6b3def315068b deviceinfo
" "

View file

@ -19,10 +19,9 @@ deviceinfo_screen_height="2160"
# Bootloader related # Bootloader related
deviceinfo_flash_method="fastboot" deviceinfo_flash_method="fastboot"
deviceinfo_kernel_cmdline="console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0xA84000 androidboot.console=ttyMSM0 printk.devkmsg=on androidboot.hardware=qcom androidboot.configfs=true loop.max_part=7 msm_rtb.filter=0x237 ehci-hcd.park=3 service_locator.enable=1 androidboot.memcg=1 cgroup.memory=nokmem androidboot.usbcontroller=a600000.dwc3 swiotlb=2048 androidboot.boot_devices=soc/1d84000.ufshc firmware_class.path=/vendor/firmware_mnt/image" deviceinfo_kernel_cmdline="PMOS_NO_OUTPUT_REDIRECT console=ttyMSM0,115200n8"
deviceinfo_generate_bootimg="true" deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="false" deviceinfo_bootimg_qcdt="false"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false" deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_offset_base="0x00000000" deviceinfo_flash_offset_base="0x00000000"
deviceinfo_flash_offset_kernel="0x00008000" deviceinfo_flash_offset_kernel="0x00008000"
@ -33,7 +32,10 @@ deviceinfo_flash_pagesize="4096"
deviceinfo_flash_sparse="true" deviceinfo_flash_sparse="true"
# Kernel # Kernel
deviceinfo_append_dtb="false" deviceinfo_append_dtb="true"
deviceinfo_dtb="qcom/sdm845-shift-axolotl"
# Required for devices using UFS as storage (instead of e.g. eMMC) # Required for devices using UFS as storage (instead of e.g. eMMC)
deviceinfo_rootfs_image_sector_size="4096" deviceinfo_rootfs_image_sector_size="4096"
deviceinfo_modules_initfs="focaltech_fts gpi i2c_qcom_geni qcom_smb2 qcom_spmi_fg qcom_spmi_haptics"

View file

@ -1,75 +0,0 @@
From 8326dd8f8be2f088098c9d78f83d993fa509c3d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com>
Date: Thu, 1 Dec 2016 16:37:31 +0900
Subject: [PATCH 1/2] drm: Return -ENOTSUPP when called for KMS cap with a
non-KMS driver
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This is an attempt to make the previous fix a bit more robust going
forward.
v2:
* Only allow DRM_CAP_TIMESTAMP_MONOTONIC with UMS drivers (Daniel
Vetter, Alex Deucher)
* Different logic to keep DRM_CAP_TIMESTAMP_MONOTONIC separate from
the other caps (Daniel Vetter)
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20161201073731.5716-1-michel@daenzer.net
---
drivers/gpu/drm/drm_ioctl.c | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index c86f1ea85e81c..211569b2011c2 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -230,6 +230,17 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_
struct drm_crtc *crtc;
req->value = 0;
+
+ /* Only one cap makes sense with a UMS driver: */
+ if (req->capability == DRM_CAP_TIMESTAMP_MONOTONIC) {
+ req->value = drm_timestamp_monotonic;
+ return 0;
+ }
+
+ /* Other caps only work with KMS drivers */
+ if (!drm_core_check_feature(dev, DRIVER_MODESET))
+ return -ENOTSUPP;
+
switch (req->capability) {
case DRM_CAP_DUMB_BUFFER:
if (dev->driver->dumb_create)
@@ -248,19 +259,14 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_
req->value |= dev->driver->prime_fd_to_handle ? DRM_PRIME_CAP_IMPORT : 0;
req->value |= dev->driver->prime_handle_to_fd ? DRM_PRIME_CAP_EXPORT : 0;
break;
- case DRM_CAP_TIMESTAMP_MONOTONIC:
- req->value = drm_timestamp_monotonic;
- break;
case DRM_CAP_ASYNC_PAGE_FLIP:
req->value = dev->mode_config.async_page_flip;
break;
case DRM_CAP_PAGE_FLIP_TARGET:
- if (drm_core_check_feature(dev, DRIVER_MODESET)) {
- req->value = 1;
- drm_for_each_crtc(crtc, dev) {
- if (!crtc->funcs->page_flip_target)
- req->value = 0;
- }
+ req->value = 1;
+ drm_for_each_crtc(crtc, dev) {
+ if (!crtc->funcs->page_flip_target)
+ req->value = 0;
}
break;
case DRM_CAP_CURSOR_WIDTH:
--
2.33.1

View file

@ -1,85 +0,0 @@
From 2be2a0584e713bfd992c485ed6f724adfc91d211 Mon Sep 17 00:00:00 2001
From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Date: Tue, 4 Apr 2017 17:52:21 +0100
Subject: [PATCH 2/2] drm: Pass CRTC ID in userspace vblank events
With the atomic API, it is possible that a single commit affects
multiple crtcs. If the user requests an event with that commit, one
event will be sent for each CRTC, but it is not possible to distinguish
which crtc an event is for in user space. To solve this, the reserved
field in struct drm_vblank_event is repurposed to include the crtc_id
which the event is for.
The DRM_CAP_CRTC_IN_VBLANK_EVENT is added to allow userspace to query if
the crtc field will be set properly.
[daniels: Rebased, using Maarten's forward-port.]
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Signed-off-by: Daniel Stone <daniels@collabora.com>
Cc: Maarten Lankhorst <maarten.lankhorst@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170404165221.28240-2-daniels@collabora.com
---
drivers/gpu/drm/drm_ioctl.c | 3 +++
drivers/gpu/drm/drm_irq.c | 2 ++
include/uapi/drm/drm.h | 3 ++-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
index 211569b2011c2..6005bd4fa0436 100644
--- a/drivers/gpu/drm/drm_ioctl.c
+++ b/drivers/gpu/drm/drm_ioctl.c
@@ -284,6 +284,9 @@ static int drm_getcap(struct drm_device *dev, void *data, struct drm_file *file_
case DRM_CAP_ADDFB2_MODIFIERS:
req->value = dev->mode_config.allow_fb_modifiers;
break;
+ case DRM_CAP_CRTC_IN_VBLANK_EVENT:
+ req->value = 1;
+ break;
default:
return -EINVAL;
}
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 00c815a7c414f..28536aa0a8755 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -1048,6 +1048,7 @@ void drm_crtc_arm_vblank_event(struct drm_crtc *crtc,
e->pipe = pipe;
e->event.sequence = drm_vblank_count(dev, pipe);
+ e->event.crtc_id = crtc->base.id;
list_add_tail(&e->base.link, &dev->vblank_event_list);
}
EXPORT_SYMBOL(drm_crtc_arm_vblank_event);
@@ -1078,6 +1079,7 @@ void drm_crtc_send_vblank_event(struct drm_crtc *crtc,
now = get_drm_timestamp();
}
e->pipe = pipe;
+ e->event.crtc_id = crtc->base.id;
send_vblank_event(dev, e, seq, &now);
}
EXPORT_SYMBOL(drm_crtc_send_vblank_event);
diff --git a/include/uapi/drm/drm.h b/include/uapi/drm/drm.h
index b2c52843bc702..42d9f64ce416c 100644
--- a/include/uapi/drm/drm.h
+++ b/include/uapi/drm/drm.h
@@ -647,6 +647,7 @@ struct drm_gem_open {
#define DRM_CAP_CURSOR_HEIGHT 0x9
#define DRM_CAP_ADDFB2_MODIFIERS 0x10
#define DRM_CAP_PAGE_FLIP_TARGET 0x11
+#define DRM_CAP_CRTC_IN_VBLANK_EVENT 0x12
/** DRM_IOCTL_GET_CAP ioctl argument type */
struct drm_get_cap {
@@ -851,7 +852,7 @@ struct drm_event_vblank {
__u32 tv_sec;
__u32 tv_usec;
__u32 sequence;
- __u32 reserved;
+ __u32 crtc_id; /* 0 on older kernels that do not support this */
};
/* typedef area */
--
2.33.1

View file

@ -1,59 +0,0 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on: arch/arm64/configs/axolotl_userdebug_defconfig
pkgname=linux-shift-axolotl
pkgver=4.9.290
pkgrel=0
pkgdesc="SHIFT6mq kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="shift-axolotl"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="
bash
bc
bison
clang
devicepkg-dev
flex
openssl-dev
perl
"
# Source
_repository="android_kernel_shift_sdm845"
_commit="d781ca181693dd8d213be7bf31fc719459c32638"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://github.com/SHIFTPHONES/$_repository/archive/$_commit.tar.gz
$_config
0001-drm-Return-ENOTSUPP-when-called-for-KMS-cap-with-a-n.patch
0002-drm-Pass-CRTC-ID-in-userspace-vblank-events.patch
"
builddir="$srcdir/$_repository-$_commit"
_outdir="out"
prepare() {
default_prepare
. downstreamkernel_prepare
}
build() {
unset LDFLAGS
make O="$_outdir" ARCH="$_carch" CC="clang" HOSTCC="clang" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
}
package() {
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \
"$_flavor" "$_outdir"
}
sha512sums="
388d09ed0179c9869cd4313213b89b293348dd5ac2cd5e05e480cad14423c4a57f6077bdfc5bcfeda839701ce4939e58a13e6444e20baf9ea49a84f96a0b34d3 linux-shift-axolotl-d781ca181693dd8d213be7bf31fc719459c32638.tar.gz
e8f5f24a76270a815b1fcef3a4c5a4e29e16f1e644d9898843827fe415a992f93d07c7ee9e5e08bef5592ac549e942ce249f4dab1d62a6b1bdb348853dc11a98 config-shift-axolotl.aarch64
a9f923ab95880ee8f8b31002328d81c4beb8c48e1027b416e267ae35cd1487b244d776f97a543d2a9f7b2cb51873e8b93edb725cca664fe5eded7df48791d579 0001-drm-Return-ENOTSUPP-when-called-for-KMS-cap-with-a-n.patch
dfd96f4aea9a5b6bf4c2c414e0aa2ac3511c3b4691290d68ddc940a2ef4cf0b07e033986694124b9aa797a6742999c3ce7fcb000532d90ef5d182b7c75c4e85c 0002-drm-Pass-CRTC-ID-in-userspace-vblank-events.patch
"

File diff suppressed because it is too large Load diff