Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
74ae52f
Configure nVHE KVM and add kernel build workflow
KaustikMK Dec 28, 2025
bed3cf5
Merge pull request #1 from KaustikMK/codex/ensure-kvm-is-on-nvhe-and-…
KaustikMK Dec 28, 2025
be48c34
Add stub paths for missing vendor links
KaustikMK Dec 28, 2025
70a84ad
Add missing oplus_cpu sched stubs
KaustikMK Dec 28, 2025
3855f54
Add missing vibrator Kconfig stubs
KaustikMK Dec 28, 2025
a6cdca3
Add st_asm330lhhx stub Kconfig
KaustikMK Dec 28, 2025
d5700b1
Relax sched_tune header dependencies
KaustikMK Dec 28, 2025
f954fde
Include core headers in sched_tune stubs
KaustikMK Dec 28, 2025
cb0a4ce
Merge pull request #4 from KaustikMK/codex/add-dummy-paths-and-kconfi…
KaustikMK Dec 28, 2025
52c264c
sched: fix oplus include paths
KaustikMK Dec 28, 2025
287f3fa
Merge pull request #5 from KaustikMK/codex/fix-build-errors-and-insta…
KaustikMK Dec 28, 2025
6ba3f24
Enable workflow triggers
KaustikMK Dec 29, 2025
ad5b3e1
Merge pull request #10 from KaustikMK/codex/fix-github-actions-and-re…
KaustikMK Dec 29, 2025
53eea22
Fix build warnings in scheduler trace
KaustikMK Dec 29, 2025
960d850
Merge pull request #14 from KaustikMK/codex/fix-build-errors-in-githu…
KaustikMK Dec 29, 2025
fbd72d8
arm64: seed defconfig for new arch options
KaustikMK Dec 29, 2025
a20beeb
Merge pull request #15 from KaustikMK/codex/test-and-fix-github-actio…
KaustikMK Dec 29, 2025
63ecef4
Set arm64 cross-compile default
KaustikMK Dec 29, 2025
78c1768
Merge pull request #16 from KaustikMK/codex/fix-build-errors-in-githu…
KaustikMK Dec 29, 2025
6c989fb
Fix QCOM driver warnings
KaustikMK Dec 29, 2025
8bc08b6
Merge pull request #18 from KaustikMK/codex/fix-build-errors-and-mana…
KaustikMK Dec 29, 2025
3225c65
interconnect: qcom: enable QOS for SC8180X
KaustikMK Dec 29, 2025
d68c9bb
Merge pull request #19 from KaustikMK/codex/fix-undefined-reference-e…
KaustikMK Dec 29, 2025
c13bb78
Add stubs for optional Qualcomm and Oplus hooks
KaustikMK Dec 29, 2025
a3f1e7c
Merge pull request #20 from KaustikMK/codex/fix-undefined-references-…
KaustikMK Dec 29, 2025
b6e0866
Add DTBS build and update artifact upload
KaustikMK Dec 30, 2025
d3a918e
Fix indentation in build-kernel.yml
KaustikMK Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/build-kernel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Build kernel Image.gz

on:
workflow_dispatch:
push:
pull_request:

jobs:
build-arm64:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
bc \
bison \
flex \
gcc-aarch64-linux-gnu \
libelf-dev \
libssl-dev \
make

- name: Configure (defconfig)
run: make ARCH=arm64 defconfig

- name: Build Image.gz
run: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j"$(nproc)" Image.gz

- name: Make DTBS
run: make dtbs

- name: Append DTBS
run: cat arch/arm64/boot/Image.gz arch/arm64/boot/dts/**/*.dtb > arch/arm64/boot/Image.gz-dtb

- name: Upload Image.gz-dtb
uses: actions/upload-artifact@v4
with:
name: Image.gz-dtb
path: arch/arm64/boot/Image.gz-dtb
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
# Normal rules (sorted alphabetically)
#
.*
!.github/
!.github/**
*.a
*.asn1.[ch]
*.bin
Expand Down
1 change: 0 additions & 1 deletion Documentation/devicetree/bindings~HEAD

This file was deleted.

1 change: 1 addition & 0 deletions Documentation/devicetree/bindings~HEAD/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy bindings placeholder
7 changes: 7 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,13 @@ include $(srctree)/scripts/subarch.include
# Default value for CROSS_COMPILE is not to prefix executables
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
ARCH ?= $(SUBARCH)
ifeq ($(ARCH),arm64)
ifneq ($(SUBARCH),arm64)
ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE := aarch64-linux-gnu-
endif
endif
endif

# Architecture as present in compile.h
UTS_MACHINE := $(ARCH)
Expand Down
1 change: 0 additions & 1 deletion arch/arm64/boot/dts/vendor

This file was deleted.

1 change: 1 addition & 0 deletions arch/arm64/boot/dts/vendor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy DTC include placeholder
5 changes: 5 additions & 0 deletions arch/arm64/configs/defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ CONFIG_ARCH_VISCONTI=y
CONFIG_ARCH_XGENE=y
CONFIG_ARCH_ZYNQMP=y
CONFIG_ARM64_VA_BITS_48=y
CONFIG_ARM64_PTR_AUTH=y
CONFIG_ARM64_PTR_AUTH_KERNEL=y
CONFIG_ARM64_TLB_RANGE=y
CONFIG_ARM64_MTE=y
CONFIG_SHADOW_CALL_STACK=n
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_NUMA=y
Expand Down
3 changes: 1 addition & 2 deletions arch/arm64/configs/gki_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ CONFIG_ARM64_PMEM=y
CONFIG_RANDOMIZE_BASE=y
# CONFIG_RANDOMIZE_MODULE_REGION_FULL is not set
CONFIG_UNWIND_PATCH_PAC_INTO_SCS=y
CONFIG_CMDLINE="console=ttynull stack_depot_disable=on cgroup_disable=pressure kasan.page_alloc.sample=10 kasan.stacktrace=off kvm-arm.mode=protected bootconfig ioremap_guard"
CONFIG_CMDLINE="console=ttynull stack_depot_disable=on cgroup_disable=pressure kasan.page_alloc.sample=10 kasan.stacktrace=off kvm-arm.mode=nvhe bootconfig ioremap_guard"
CONFIG_CMDLINE_EXTEND=y
# CONFIG_DMI is not set
CONFIG_HIBERNATION=y
Expand All @@ -92,7 +92,6 @@ CONFIG_ARM_SCPI_CPUFREQ=y
CONFIG_ARM_SCMI_CPUFREQ=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_PKVM_MODULE_PATH="/lib/modules/"
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
CONFIG_SHADOW_CALL_STACK=y
Expand Down
1 change: 0 additions & 1 deletion drivers/android/oplus_binder

This file was deleted.

1 change: 1 addition & 0 deletions drivers/android/oplus_binder/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Makefile placeholder
1 change: 0 additions & 1 deletion drivers/base/kernelFwUpdate

This file was deleted.

1 change: 1 addition & 0 deletions drivers/base/kernelFwUpdate/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Kconfig placeholder
1 change: 1 addition & 0 deletions drivers/base/kernelFwUpdate/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Makefile placeholder
1 change: 0 additions & 1 deletion drivers/base/touchpanel_notify

This file was deleted.

1 change: 1 addition & 0 deletions drivers/base/touchpanel_notify/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Kconfig placeholder
1 change: 1 addition & 0 deletions drivers/base/touchpanel_notify/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Makefile placeholder
5 changes: 4 additions & 1 deletion drivers/clk/qcom/apcs-msm8916.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,10 @@
#include "clk-regmap.h"
#include "clk-regmap-mux-div.h"

static const u32 gpll0_a53cc_map[] = { 4, 5 };
static const struct parent_map gpll0_a53cc_map[] = {
{ 0, 4 },
{ 1, 5 },
};

static const struct clk_parent_data pdata[] = {
{ .fw_name = "aux", .name = "gpll0_vote", },
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/qcom/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ int qcom_clk_crm_init(struct device *dev, struct clk_crm *crm)
if (crm->name) {
crm->dev = crm_get_device(crm->name);
if (IS_ERR(crm->dev)) {
pr_err("%s Failed to get crm dev=%s, ret=%d\n",
pr_err("%s Failed to get crm dev=%s, ret=%ld\n",
__func__, crm->name, PTR_ERR(crm->dev));
return PTR_ERR(crm->dev);
}
Expand Down
19 changes: 1 addition & 18 deletions drivers/clk/qcom/gcc-sc8180x.c
Original file line number Diff line number Diff line change
Expand Up @@ -208,23 +208,6 @@ static struct clk_alpha_pll gpll9 = {
},
};

static struct clk_alpha_pll gpll9 = {
.offset = 0x1c000,
.regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_TRION],
.clkr = {
.enable_reg = 0x52000,
.enable_mask = BIT(9),
.hw.init = &(const struct clk_init_data) {
.name = "gpll9",
.parent_data = &(const struct clk_parent_data) {
.fw_name = "bi_tcxo",
},
.num_parents = 1,
.ops = &clk_alpha_pll_fixed_trion_ops,
},
},
};

static const struct parent_map gcc_parent_map_0[] = {
{ P_BI_TCXO, 0 },
{ P_GPLL0_OUT_MAIN, 1 },
Expand Down Expand Up @@ -356,7 +339,7 @@ static const struct freq_tbl ftbl_gcc_cpuss_ahb_clk_src[] = {
{ }
};

static struct clk_rcg2 gcc_cpuss_ahb_clk_src = {
static struct clk_rcg2 gcc_cpuss_ahb_clk_src __maybe_unused = {
.cmd_rcgr = 0x48014,
.mnd_width = 0,
.hid_width = 5,
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/qcom/trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ DEFINE_EVENT(clk_measure_support, clk_measure,
/* This part must be outside protection */

#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#define TRACE_INCLUDE_PATH ../../drivers/clk/qcom

#undef TRACE_INCLUDE_FILE
#define TRACE_INCLUDE_FILE trace
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/qcom/vdd-level-sm8150.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ static int vdd_corner[] = {
[VDD_HIGH_L1] = RPMH_REGULATOR_LEVEL_TURBO_L1,
};

static int vdd_dual_corner[] = {
static const int vdd_dual_corner[] __maybe_unused = {
0, 0,
RPMH_REGULATOR_LEVEL_MIN_SVS, RPMH_REGULATOR_LEVEL_MIN_SVS,
RPMH_REGULATOR_LEVEL_LOW_SVS_D1, RPMH_REGULATOR_LEVEL_LOW_SVS_D1,
Expand Down
2 changes: 1 addition & 1 deletion drivers/clk/qcom/vdd-level.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ enum vdd_levels {
VDD_NUM,
};

static int vdd_corner[] = {
static int vdd_corner[] __maybe_unused = {
[VDD_NONE] = 0,
[VDD_MIN] = RPMH_REGULATOR_LEVEL_MIN_SVS,
[VDD_LOWER_D1] = RPMH_REGULATOR_LEVEL_LOW_SVS_D1,
Expand Down
1 change: 0 additions & 1 deletion drivers/dma-buf/heaps/mm_boost_pool

This file was deleted.

1 change: 1 addition & 0 deletions drivers/dma-buf/heaps/mm_boost_pool/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Makefile placeholder
31 changes: 31 additions & 0 deletions drivers/dma-buf/heaps/mm_boost_pool/oplus_boost_pool.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/mm_types.h>
#include "oplus_boost_pool.h"

struct dynamic_boost_pool *dynamic_boost_pool_create_pack(void)
{
return NULL;
}

void dynamic_boost_pool_alloc_pack(struct dynamic_boost_pool *pool,
unsigned long *size_remaining,
unsigned int *max_order,
struct list_head *pages,
int *page_count)
{
(void)pool;
(void)size_remaining;
(void)max_order;
(void)pages;
(void)page_count;
}

int dynamic_boost_pool_free(struct dynamic_boost_pool *pool, struct page *page, int index)
{
(void)pool;
(void)page;
(void)index;
return -EINVAL;
}
20 changes: 20 additions & 0 deletions drivers/dma-buf/heaps/mm_boost_pool/oplus_boost_pool.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _OPLUS_BOOST_POOL_H
#define _OPLUS_BOOST_POOL_H

#include <linux/list.h>
#include <linux/mm_types.h>

struct dynamic_boost_pool {
unsigned int dummy;
};

struct dynamic_boost_pool *dynamic_boost_pool_create_pack(void);
void dynamic_boost_pool_alloc_pack(struct dynamic_boost_pool *pool,
unsigned long *size_remaining,
unsigned int *max_order,
struct list_head *pages,
int *page_count);
int dynamic_boost_pool_free(struct dynamic_boost_pool *pool, struct page *page, int index);

#endif /* _OPLUS_BOOST_POOL_H */
2 changes: 1 addition & 1 deletion drivers/dma/qcom/bam_dma_trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,6 @@ TRACE_EVENT(bam_dma_info,

/* This part must be outside protection */
#undef TRACE_INCLUDE_PATH
#define TRACE_INCLUDE_PATH .
#define TRACE_INCLUDE_PATH ../../drivers/dma/qcom
#define TRACE_INCLUDE_FILE bam_dma_trace
#include <trace/define_trace.h>
8 changes: 4 additions & 4 deletions drivers/firmware/qcom_scm-smc.c
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ static void __scm_smc_do_quirk(const struct arm_smccc_args *smc,

static void fill_wq_resume_args(struct arm_smccc_args *resume, u32 smc_call_ctx)
{
memset(resume->args, 0, ARRAY_SIZE(resume->args));
memset(resume->args, 0, sizeof(resume->args));

resume->args[0] = ARM_SMCCC_CALL_VAL(ARM_SMCCC_STD_CALL,
ARM_SMCCC_SMC_64, ARM_SMCCC_OWNER_SIP,
Expand All @@ -72,7 +72,7 @@ static void fill_wq_resume_args(struct arm_smccc_args *resume, u32 smc_call_ctx)

static void fill_wq_wake_ack_args(struct arm_smccc_args *wake_ack, u32 smc_call_ctx)
{
memset(wake_ack->args, 0, ARRAY_SIZE(wake_ack->args));
memset(wake_ack->args, 0, sizeof(wake_ack->args));

wake_ack->args[0] = ARM_SMCCC_CALL_VAL(ARM_SMCCC_STD_CALL,
ARM_SMCCC_SMC_64, ARM_SMCCC_OWNER_SIP,
Expand All @@ -85,7 +85,7 @@ static void fill_wq_wake_ack_args(struct arm_smccc_args *wake_ack, u32 smc_call_

static void fill_get_wq_ctx_args(struct arm_smccc_args *get_wq_ctx)
{
memset(get_wq_ctx->args, 0, ARRAY_SIZE(get_wq_ctx->args));
memset(get_wq_ctx->args, 0, sizeof(get_wq_ctx->args));

get_wq_ctx->args[0] = ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL,
ARM_SMCCC_SMC_64, ARM_SMCCC_OWNER_SIP,
Expand Down Expand Up @@ -135,7 +135,7 @@ static int scm_smc_do_quirk(struct device *dev, struct arm_smccc_args *smc,
qscm = dev_get_drvdata(dev);
wq = qcom_scm_lookup_wq(qscm, wq_ctx);
if (IS_ERR_OR_NULL(wq)) {
pr_err("Did not find waitqueue for wq_ctx %d: %d\n",
pr_err("Did not find waitqueue for wq_ctx %u: %ld\n",
wq_ctx, PTR_ERR(wq));
return PTR_ERR(wq);
}
Expand Down
11 changes: 7 additions & 4 deletions drivers/firmware/qcom_scm.c
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ static int qcom_scm_call_noretry(struct device *dev,
return scm_smc_call(dev, desc, res, QCOM_SCM_CALL_NORETRY);
case SMC_CONVENTION_LEGACY:
BUG_ON(1); /* No current implementation */
return -EINVAL;
default:
pr_err("Unknown current SCM calling convention.\n");
return -EINVAL;
Expand Down Expand Up @@ -2929,8 +2930,10 @@ static int qcom_scm_query_wq_queue_info(struct qcom_scm *scm)
scm->waitq.irq = res.result[1] & 0xFFFF;
scm->waitq.wq_feature = QCOM_SCM_MULTI_SMC_WHITE_LIST_ALLOW;

pr_info("WQ Info, feature: %d call_ctx_cnt: %d irq: %d\n",
scm->waitq.wq_feature, scm->waitq.call_ctx_cnt, scm->waitq.irq);
pr_info("WQ Info, feature: %llu call_ctx_cnt: %llu irq: %llu\n",
(unsigned long long)scm->waitq.wq_feature,
(unsigned long long)scm->waitq.call_ctx_cnt,
(unsigned long long)scm->waitq.irq);

return ret;
}
Expand Down Expand Up @@ -3018,7 +3021,7 @@ static void scm_irq_work(struct work_struct *work)

wq_to_wake = qcom_scm_lookup_wq(scm, wq_ctx);
if (IS_ERR_OR_NULL(wq_to_wake)) {
pr_err("No waitqueue found for wq_ctx %d: %d\n",
pr_err("No waitqueue found for wq_ctx %u: %ld\n",
wq_ctx, PTR_ERR(wq_to_wake));
return;
}
Expand Down Expand Up @@ -3121,7 +3124,7 @@ int scm_mem_protection_init_do(void)
pid_offset = offsetof(struct task_struct, pid);
task_name_offset = offsetof(struct task_struct, comm);

pr_debug("offset of pid is %zu, offset of comm is %zu\n",
pr_debug("offset of pid is %u, offset of comm is %u\n",
pid_offset, task_name_offset);
desc.args[0] = pid_offset,
desc.args[1] = task_name_offset,
Expand Down
12 changes: 6 additions & 6 deletions drivers/firmware/qtee_shmbridge.c
Original file line number Diff line number Diff line change
Expand Up @@ -306,8 +306,8 @@ int32_t qtee_shmbridge_register(
mutex_lock(&bridge_list_head.lock);
ret = qtee_shmbridge_query_locked(paddr);
if (ret) {
pr_debug("%s: found 0%x already exist with shmbridge\n",
__func__, paddr);
pr_debug("%s: found 0x%llx already exist with shmbridge\n",
__func__, (unsigned long long)paddr);
goto bridge_exist;
}

Expand Down Expand Up @@ -406,7 +406,7 @@ int32_t qtee_shmbridge_allocate_shm(size_t size, struct qtee_shm *shm)
}

if (size > default_bridge.size) {
pr_err("requestd size %zu is larger than bridge size %d\n",
pr_err("requestd size %zu is larger than bridge size %zu\n",
size, default_bridge.size);
ret = -EINVAL;
goto exit;
Expand Down Expand Up @@ -496,7 +496,7 @@ static int qtee_shmbridge_init(struct platform_device *pdev)
else
default_bridge.size = custom_bridge_size * MIN_BRIDGE_SIZE;

pr_err("qtee shmbridge registered default bridge with size %d bytes\n",
pr_err("qtee shmbridge registered default bridge with size %zu bytes\n",
default_bridge.size);

default_bridge.vaddr = (void *)__get_free_pages(GFP_KERNEL|__GFP_COMP,
Expand Down Expand Up @@ -562,8 +562,8 @@ static int qtee_shmbridge_init(struct platform_device *pdev)
goto exit_deregister_default_bridge;
}

pr_debug("qtee shmbridge registered default bridge with size %d bytes\n",
default_bridge.size);
pr_debug("qtee shmbridge registered default bridge with size %zu bytes\n",
default_bridge.size);

mem_protection_enabled = scm_mem_protection_init_do();
pr_err("MEM protection %s, %d\n",
Expand Down
1 change: 1 addition & 0 deletions drivers/iio/stm/imu/st_asm330lhhx/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Kconfig placeholder
1 change: 1 addition & 0 deletions drivers/iio/stm/imu/st_asm330lhhx/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Dummy Makefile placeholder
Loading