Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ Otherwise, the instructions to apply the update manually are below.
To determine if the currently running firmware matches the software, run, `ota-check-firmware`:
```
$ ota-check-firmware
Current firmware version is: 35.6.1
Current software version is: 35.6.1
Current firmware version is: 36.4.3-nix
Current software version is: 36.4.3
```

If these versions do not match, you can update your firmware using the UEFI Capsule update mechanism. The procedure to do so is below:
Expand Down
29 changes: 29 additions & 0 deletions kernel/0001-ipu-Depend-on-x86.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From 684f238159a15e58b935a9fc861744126f6833df Mon Sep 17 00:00:00 2001
From: Elliot Berman <eberman@anduril.com>
Date: Mon, 28 Apr 2025 15:28:58 -0700
Subject: [PATCH] ipu: Depend on x86

The ipu6 module makes use of the following x86-specific function:
clflush_cache_range(). Make the Kconfig reflect this so allmodconfig
works.

Signed-off-by: Elliot Berman <eberman@anduril.com>
---
drivers/media/pci/intel/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/media/pci/intel/Kconfig b/drivers/media/pci/intel/Kconfig
index ee4a77acb66f..5088f1e850c5 100644
--- a/drivers/media/pci/intel/Kconfig
+++ b/drivers/media/pci/intel/Kconfig
@@ -3,6 +3,7 @@ config VIDEO_INTEL_IPU6
depends on ACPI
depends on MEDIA_SUPPORT
depends on MEDIA_PCI_SUPPORT
+ depends on X86
select IOMMU_API
select IOMMU_IOVA
select X86_DEV_DMA_OPS if X86
--
2.49.0

29 changes: 29 additions & 0 deletions kernel/0001-nvidia-drm-Guard-nv_dev-in-nv_drm_suspend_resume.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
From d1fec76c4de1c778dc947720767cb9d1a2d8017a Mon Sep 17 00:00:00 2001
From: Elliot Berman <eberman@anduril.com>
Date: Fri, 25 Apr 2025 14:25:29 -0700
Subject: [PATCH] nvidia-drm: Guard nv_dev in nv_drm_suspend_resume

All that code should be in a separate function :shrug:

Signed-off-by: Elliot Berman <eberman@anduril.com>
---
kernel-open/nvidia-drm/nvidia-drm-drv.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/kernel-open/nvidia-drm/nvidia-drm-drv.c b/kernel-open/nvidia-drm/nvidia-drm-drv.c
index 61842e8..dd18e80 100644
--- a/kernel-open/nvidia-drm/nvidia-drm-drv.c
+++ b/kernel-open/nvidia-drm/nvidia-drm-drv.c
@@ -1861,7 +1861,9 @@ void nv_drm_suspend_resume(NvBool suspend)
{
static DEFINE_MUTEX(nv_drm_suspend_mutex);
static NvU32 nv_drm_suspend_count = 0;
+#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE)
struct nv_drm_device *nv_dev;
+#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */

mutex_lock(&nv_drm_suspend_mutex);

--
2.49.0

320 changes: 320 additions & 0 deletions kernel/0001-rtl8822ce-Fix-Werror-address.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,320 @@
From b357cda254885375bde6d67ea2738e3481906d93 Mon Sep 17 00:00:00 2001
From: Elliot Berman <eberman@anduril.com>
Date: Fri, 25 Apr 2025 08:21:53 -0700
Subject: [PATCH 1/2] rtl8822ce: Fix -Werror=address

For -Werror=address

Signed-off-by: Elliot Berman <eberman@anduril.com>
---
drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c | 3 +--
.../net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c | 6 +++---
.../realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c | 6 +++---
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c | 2 +-
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c | 2 +-
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c | 2 +-
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c | 4 ++--
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c | 6 +++---
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c | 2 +-
.../realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c | 2 +-
.../wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c | 4 ++--
.../wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c | 2 +-
.../realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c | 2 +-
.../wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c | 2 +-
.../wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c | 4 ++--
.../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c | 2 +-
16 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c
index d0966567..282d701d 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c
@@ -390,8 +390,7 @@ void rtw_mfree_stainfo(struct sta_info *psta);
void rtw_mfree_stainfo(struct sta_info *psta)
{

- if (&psta->lock != NULL)
- _rtw_spinlock_free(&psta->lock);
+ _rtw_spinlock_free(&psta->lock);

_rtw_free_sta_xmit_priv_lock(&psta->sta_xmitpriv);
_rtw_free_sta_recv_priv_lock(&psta->sta_recvpriv);
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c
index ebe51b4f..abb5552e 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c
@@ -867,7 +867,7 @@ void halrf_support_ability_debug(void *dm_void, char input[][16], u32 *_used,
u8 i;

for (i = 0; i < 5; i++)
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]);

if (dm_value[0] == 100) {
@@ -942,7 +942,7 @@ void halrf_support_band_shift_debug(void *dm_void, char input[][16], u32 *_used,

#if (RTL8192F_SUPPORT == 1)
for (i = 0; i < 7; i++)
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]);

if (!(rf->rf_supportability & HAL_2GBAND_SHIFT)) {
@@ -4658,7 +4658,7 @@ void halrf_dump_rfk_reg(void *dm_void, char input[][16], u32 *_used,

reg_1b00 = odm_get_bb_reg(dm, R_0x1b00, MASKDWORD);

- if (input[2])
+ if (input[2][0])
PHYDM_SSCANF(input[2], DCMD_DECIMAL, &var1[0]);

if ((strcmp(input[2], help) == 0))
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c
index 3f2d142b..822ba62e 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c
@@ -151,7 +151,7 @@ void halrf_debug_trace(void *dm_void, char input[][16], u32 *_used,
u8 i;

for (i = 0; i < 5; i++)
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &rf_var[i]);

if (rf_var[0] == 100) {
@@ -211,7 +211,7 @@ void halrf_dack_debug_cmd(void *dm_void, char input[][16])
u8 i;

for (i = 0; i < 7; i++)
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]);

if (dm_value[0] == 1)
@@ -329,7 +329,7 @@ void halrf_cmd_parser(void *dm_void, char input[][16], u32 *_used, char *output,
PDM_SNPF(out_len, used, output + used, out_len - used,
"IQK DEBUG!!!!!\n");
for (i = 0; i < 5; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 2], DCMD_HEX,
&rf_var[i]);
input_idx++;
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c
index 3c2cc583..efb5955e 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c
@@ -6440,7 +6440,7 @@ void phydm_antdiv_debug(void *dm_void, char input[][16], u32 *_used,
u8 i, input_idx = 0;

for (i = 0; i < 5; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]);
input_idx++;
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c
index 349f3574..3f3e3d0b 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c
@@ -433,7 +433,7 @@ void phydm_config_trx_path_v1(void *dm_void, char input[][16], u32 *_used,
return;

for (i = 0; i < 5; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 1], DCMD_HEX, &val[i]);
input_idx++;
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c
index 15a4b931..710ce2f6 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c
@@ -1904,7 +1904,7 @@ void phydm_dig_cckpd_coex_dbg(void *dm_void, char input[][16], u32 *_used,
u8 i = 0;

for (i = 0; i < 3; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]);
}

diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c
index dc88a20e..39ecf374 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c
@@ -2997,7 +2997,7 @@ void phydm_ifs_clm_dbg(void *dm_void, char input[][16], u32 *_used,
return;

for (i = 0; i < 5; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var1[i]);
}
@@ -3601,7 +3601,7 @@ void phydm_edcca_clm_dbg(void *dm_void, char input[][16], u32 *_used,
return;

for (i = 0; i < 4; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]);
}

diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c
index dde03231..1a2db507 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c
@@ -4193,7 +4193,7 @@ void phydm_enable_big_jump(void *dm_void, char input[][16], u32 *_used,
return;

for (i = 0; i < 5; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]);
input_idx++;
}
@@ -5190,7 +5190,7 @@ void phydm_spur_detect_dbg(void *dm_void, char input[][16], u32 *_used,
"{5: Adjust CSI weight threshold} {0:-,1:+} {th offset}\n");
} else {
for (i = 0; i < 10; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var1[i]);
}
@@ -5843,7 +5843,7 @@ s32 phydm_cmd(struct dm_struct *dm, char *input, u32 in_len, u8 flag,
{
char *token;
u32 argc = 0;
- char argv[MAX_ARGC][MAX_ARGV];
+ char argv[MAX_ARGC][MAX_ARGV] = {0};

do {
token = strsep(&input, ", ");
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c
index 3798f989..66f3f358 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c
@@ -969,7 +969,7 @@ void phydm_hwigi_dbg(void *dm_void, char input[][16], u32 *_used,
"Reset all hwigi : {5}\n");
} else {
for (i = 0; i < 7; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var1[i]);
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c
index 2ccbd1ae..c8ee0bc7 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c
@@ -653,7 +653,7 @@ void phydm_dtp_debug(void *dm_void, char input[][16], u32 *_used, char *output,
#endif
} else {
for (i = 0; i < 7; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var1[i]);
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c
index 204765ee..d5246724 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c
@@ -1480,7 +1480,7 @@ void phydm_auto_agc_tab_debug(void *dm_void, char input[][16], u32 *_used,
} else {
PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);
for (i = 1; i < 10; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var1[i]);
}
@@ -1565,7 +1565,7 @@ void phydm_lna_sat_debug(void *dm_void, char input[][16], u32 *_used,
PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]);

for (i = 1; i < 10; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var1[i]);
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c
index a6b347cf..6b5043d6 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c
@@ -519,7 +519,7 @@ void phydm_pathdiv_debug_8814a(void *dm_void, char input[][16], u32 *_used,
u8 i, input_idx = 0;

for (i = 0; i < 5; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]);
input_idx++;
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c
index 296f39c3..caa6a41d 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c
@@ -493,7 +493,7 @@ void phydm_pmac_tx_dbg(void *dm_void, char input[][16], u32 *_used,
"[pmac_tx] basic : {1} {rate_idx}(only 1M & 6M) {count}\n");
} else {
for (i = 1; i < 7; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL,
&var[i]);
}
diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c
index 56bc2411..c5d61e02 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c
@@ -149,7 +149,7 @@ void phydm_pow_train_debug(
"{0: Auto PT, 1:enable, 2: disable}\n");
} else {
for (i = 0; i < 10; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]);
}

diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c
index 8e805b3c..1678cc40 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c
@@ -319,7 +319,7 @@ void phydm_cumitek_smt_ant_debug(
} else if (dm_value[0] == 2) { /*@fix tx pattern*/

for (i = 1; i < 4; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]);
}

@@ -333,7 +333,7 @@ void phydm_cumitek_smt_ant_debug(
u8 table_path_b[8] = {0};

for (i = 1; i < 4; i++) {
- if (input[i + 1])
+ if (input[i + 1][0])
PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]);
}

diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c
index cd4001af..315db53f 100644
--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c
+++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c
@@ -316,7 +316,7 @@ void phydm_soml_debug(void *dm_void, char input[][16], u32 *_used,
return;

for (i = 0; i < 5; i++) {
- if (input[i + 1]) {
+ if (input[i + 1][0]) {
PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]);
input_idx++;
}
--
2.49.0

Loading