diff --git a/PKGBUILD/linux/0001-drm-panel-orientation-quirks.patch b/PKGBUILD/linux/0001-drm-panel-orientation-quirks.patch index 4343c00..1be118b 100644 --- a/PKGBUILD/linux/0001-drm-panel-orientation-quirks.patch +++ b/PKGBUILD/linux/0001-drm-panel-orientation-quirks.patch @@ -1,55 +1,22 @@ -diff -rupN linux-6.12.10.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux-6.12.10/drivers/gpu/drm/drm_panel_orientation_quirks.c ---- linux-6.12.10.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2025-01-17 12:41:00.000000000 +0000 -+++ linux-6.12.10/drivers/gpu/drm/drm_panel_orientation_quirks.c 2025-01-23 22:57:06.335725677 +0000 -@@ -93,6 +93,12 @@ static const struct drm_dmi_panel_orient - .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, - }; - -+static const struct drm_dmi_panel_orientation_data lcd640x960_leftside_up = { -+ .width = 640, -+ .height = 960, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, -+}; -+ - static const struct drm_dmi_panel_orientation_data lcd720x1280_rightside_up = { - .width = 720, - .height = 1280, -@@ -129,6 +135,12 @@ static const struct drm_dmi_panel_orient - .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, - }; - -+static const struct drm_dmi_panel_orientation_data lcd1200x1920_leftside_up = { -+ .width = 1200, -+ .height = 1920, -+ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, -+}; -+ - static const struct drm_dmi_panel_orientation_data lcd1280x1920_rightside_up = { - .width = 1280, - .height = 1920, -@@ -166,6 +178,12 @@ static const struct dmi_system_id orient +diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c +index 88aa57c15..95d1ab597 100644 +--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c ++++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c +@@ -178,6 +178,12 @@ static const struct dmi_system_id orientation_data[] = { DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Win600"), }, .driver_data = (void *)&lcd720x1280_rightside_up, -+ }, { /* AOKZOE A1 Pro */ ++ }, { /* AOKZOE A1 Pro */ + .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AOKZOE"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AOKZOE A1 Pro"), -+ }, ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AOKZOE"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AOKZOE A1 Pro"), ++ }, + .driver_data = (void *)&lcd1200x1920_leftside_up, }, { /* Asus T100HA */ .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), -@@ -184,16 +202,16 @@ static const struct dmi_system_id orient - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"), - }, - .driver_data = (void *)&lcd800x1280_rightside_up, -- }, { /* AYA NEO AYANEO 2 */ -+ }, { /* AYA NEO AYANEO 2 and 2S */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), -- DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"), +@@ -202,10 +208,16 @@ static const struct dmi_system_id orientation_data[] = { + DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"), }, .driver_data = (void *)&lcd1200x1920_rightside_up, - }, { /* AYA NEO 2021 */ @@ -58,64 +25,12 @@ diff -rupN linux-6.12.10.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c lin DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYADEVICE"), - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"), + DMI_MATCH(DMI_PRODUCT_NAME, "AYA NEO"), - }, - .driver_data = (void *)&lcd800x1280_rightside_up, - }, { /* AYA NEO AIR */ -@@ -202,6 +220,18 @@ static const struct dmi_system_id orient - DMI_MATCH(DMI_PRODUCT_NAME, "AIR"), - }, - .driver_data = (void *)&lcd1080x1920_leftside_up, -+ }, { /* AYA NEO Flip DS Bottom Screen */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "FLIP DS"), -+ }, -+ .driver_data = (void *)&lcd640x960_leftside_up, -+ }, { /* AYA NEO Flip KB/DS Top Screen */ ++ }, ++ .driver_data = (void *)&lcd800x1280_rightside_up, ++ }, { /* AYA NEO 2021 series (alternate vendor id) */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "FLIP"), -+ }, -+ .driver_data = (void *)&lcd1080x1920_leftside_up, - }, { /* AYA NEO Founder */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYA NEO"), -@@ -226,6 +256,12 @@ static const struct dmi_system_id orient - DMI_MATCH(DMI_BOARD_NAME, "KUN"), - }, - .driver_data = (void *)&lcd1600x2560_rightside_up, -+ }, { /* AYA NEO SLIDE */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), -+ DMI_MATCH(DMI_PRODUCT_NAME, "SLIDE"), -+ }, -+ .driver_data = (void *)&lcd1080x1920_leftside_up, - }, { /* AYN Loki Max */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ayn"), -@@ -238,6 +274,12 @@ static const struct dmi_system_id orient - DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Loki Zero"), - }, - .driver_data = (void *)&lcd1080x1920_leftside_up, -+ }, { /* ONEXPLAYER Mini */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"), -+ }, -+ .driver_data = (void *)&lcd1200x1920_leftside_up, - }, { /* Chuwi HiBook (CWI514) */ - .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"), -@@ -315,6 +357,12 @@ static const struct dmi_system_id orient - DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "NEO 2021"), }, - .driver_data = (void *)&gpd_win2, -+ }, { /* GPD Win 2 (With correct DMI info) */ -+ .matches = { -+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), -+ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "WIN2") -+ }, -+ .driver_data = (void *)&lcd720x1280_rightside_up, - }, { /* GPD Win 3 */ - .matches = { - DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), + .driver_data = (void *)&lcd800x1280_rightside_up, + }, { /* AYA NEO AIR */ diff --git a/PKGBUILD/linux/9000-upstreamed-drm-panel-orientation-quirks.patch b/PKGBUILD/linux/9000-upstreamed-drm-panel-orientation-quirks.patch new file mode 100644 index 0000000..c4b0d1a --- /dev/null +++ b/PKGBUILD/linux/9000-upstreamed-drm-panel-orientation-quirks.patch @@ -0,0 +1,101 @@ +diff --git a/drivers/gpu/drm/drm_panel_orientation_quirks.c b/drivers/gpu/drm/drm_panel_orientation_quirks.c +index 4a73821b8..88aa57c15 100644 +--- a/drivers/gpu/drm/drm_panel_orientation_quirks.c ++++ b/drivers/gpu/drm/drm_panel_orientation_quirks.c +@@ -93,6 +93,12 @@ static const struct drm_dmi_panel_orientation_data onegx1_pro = { + .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, + }; + ++static const struct drm_dmi_panel_orientation_data lcd640x960_leftside_up = { ++ .width = 640, ++ .height = 960, ++ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, ++}; ++ + static const struct drm_dmi_panel_orientation_data lcd720x1280_rightside_up = { + .width = 720, + .height = 1280, +@@ -123,6 +129,12 @@ static const struct drm_dmi_panel_orientation_data lcd1080x1920_rightside_up = { + .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, + }; + ++static const struct drm_dmi_panel_orientation_data lcd1200x1920_leftside_up = { ++ .width = 1200, ++ .height = 1920, ++ .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, ++}; ++ + static const struct drm_dmi_panel_orientation_data lcd1200x1920_rightside_up = { + .width = 1200, + .height = 1920, +@@ -184,10 +196,10 @@ static const struct dmi_system_id orientation_data[] = { + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "T103HAF"), + }, + .driver_data = (void *)&lcd800x1280_rightside_up, +- }, { /* AYA NEO AYANEO 2 */ ++ }, { /* AYA NEO AYANEO 2/2S */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), +- DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"), + }, + .driver_data = (void *)&lcd1200x1920_rightside_up, + }, { /* AYA NEO 2021 */ +@@ -202,6 +214,18 @@ static const struct dmi_system_id orientation_data[] = { + DMI_MATCH(DMI_PRODUCT_NAME, "AIR"), + }, + .driver_data = (void *)&lcd1080x1920_leftside_up, ++ }, { /* AYA NEO Flip DS Bottom Screen */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "FLIP DS"), ++ }, ++ .driver_data = (void *)&lcd640x960_leftside_up, ++ }, { /* AYA NEO Flip KB/DS Top Screen */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "FLIP"), ++ }, ++ .driver_data = (void *)&lcd1080x1920_leftside_up, + }, { /* AYA NEO Founder */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYA NEO"), +@@ -226,6 +250,12 @@ static const struct dmi_system_id orientation_data[] = { + DMI_MATCH(DMI_BOARD_NAME, "KUN"), + }, + .driver_data = (void *)&lcd1600x2560_rightside_up, ++ }, { /* AYA NEO SLIDE */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "SLIDE"), ++ }, ++ .driver_data = (void *)&lcd1080x1920_leftside_up, + }, { /* AYN Loki Max */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ayn"), +@@ -315,6 +345,12 @@ static const struct dmi_system_id orientation_data[] = { + DMI_EXACT_MATCH(DMI_BOARD_NAME, "Default string"), + }, + .driver_data = (void *)&gpd_win2, ++ }, { /* GPD Win 2 (correct DMI strings) */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "WIN2") ++ }, ++ .driver_data = (void *)&lcd720x1280_rightside_up, + }, { /* GPD Win 3 */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "GPD"), +@@ -443,6 +479,12 @@ static const struct dmi_system_id orientation_data[] = { + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"), + }, + .driver_data = (void *)&lcd1600x2560_leftside_up, ++ }, { /* OneXPlayer Mini (Intel) */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"), ++ }, ++ .driver_data = (void *)&lcd1200x1920_leftside_up, + }, { /* OrangePi Neo */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "OrangePi"), diff --git a/PKGBUILD/linux/PKGBUILD b/PKGBUILD/linux/PKGBUILD index 15fe420..03d9d42 100644 --- a/PKGBUILD/linux/PKGBUILD +++ b/PKGBUILD/linux/PKGBUILD @@ -7,7 +7,7 @@ pkgbase=linux pkgver=6.13.5 -pkgrel=2 +pkgrel=3 pkgdesc="Linux Stable" arch=(x86_64) url="https://kernel.org/" @@ -74,6 +74,7 @@ source=( 0081-revert-some-vrr-always-on-hack.patch 0099-add-external-device-drivers.patch 0100-ayaneo-platform.patch + 9000-upstreamed-drm-panel-orientation-quirks.patch ) validpgpkeys=( 'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds @@ -82,7 +83,7 @@ validpgpkeys=( ) sha256sums=('SKIP' 'cf7eb7732cfb8707ba78994a68949cee0e925e11c14d9cbea0dc7484eab17ec5' # config - 'e40db9de280c70d83832cdd0768348de170005cdd3ba233b498db5f81dd24fa1' # 0001-drm-panel-orientation-quirks.patch + 'a06bbe8968fe179bc3c71fe8bd333e926dceefe5bbfef55d8107bba2f50c18fc' # 0001-drm-panel-orientation-quirks.patch '71d093c5c95d7bd594dd8dcd804eabe2f6b95398c519ded42b7d8994f384e4d8' # 0002-drm-amdgpu-always-allocate-cleared-VRAM-for-GEM-allo.patch '02f5eaede065b7d68ccf469c9f54eab3ce3f0d852624a3430d83bcd6e2bd7dbb' # 0006-Ayaneo-geek-headset-patch.patch '3805f3b8b39d9d49586fb5d2a445a9ee54cf00cd1cdedd226e727420196cc568' # 0007-ayaneo-2-headphone-fix.patch @@ -110,6 +111,7 @@ sha256sums=('SKIP' '9abba3bd4c5540d5453abb2cd77edeb55b7bc36650f3dc2f71ae3901466b0756' # 0081-revert-some-vrr-always-on-hack.patch '3b1dabc168e4884c6586720538014d6ef8955a0b783d6436dd4937af6622ee42' # 0099-add-external-device-drivers.patch '67cbe650db915155351c33f5c135e21fff70f914be947817a11838861e2fa736' # 0100-ayaneo-platform.patch + '55f1601311cef3d82d191949f5ff2b632ce7ebd16e99736b4c2fade3ad838cf5' # 9000-upstreamed-drm-panel-orientation-quirks.patch ) export KBUILD_BUILD_HOST=$(hostnamectl hostname)