patches/driver/bes2600/*-danctnix + arch/arm64/scs-...: rebased on danctnix baseline (#29 redo)
PR #33's per-series mirrors were generated against the bes2600-dkms cleanups branch (rooted at fe73571) without rebasing onto the v7.0-danctnix1 kernel baseline. Result: per-commit diffs carried stale baseline context (e.g. from_timer rather than the new timer_container_of API), so the cumulative no longer applied cleanly to ohm's actual base. pkgrel=6 build #1 failed with 'Hunk #3 FAILED' in Patch D's sta.c. Fix: in marfrit/bes2600-dkms, create danctnix-sync branch (fe73571 + drop-in replace bes2600/ with v7.0-danctnix1's drivers/staging/bes2600/), rebase cleanups onto it as cleanups-rebased-on-danctnix, manually resolve the resulting conflicts keeping each commit's intent + the new baseline context, rebase Patch H accordingly. Format-patch and re-route to the same series-dir names as PR #33. Conflict resolution notes: - 'remove userspace /dev/bes2600 character device interface' commit: the chardev wrapper was removed but two utility funcs that danctnix's bes2600_btuart.c depends on (bes2600_chrdev_is_bus_error, bes2600_chrdev_switch_subsys_glb) were re-added with EXPORT_SYMBOL_GPL. bes2600_switch_bt re-added as static (file-local, called only from bes2600_chrdev_switch_subsys_glb). - Patch D (atomicize ba_lock): re-resolved bes2600_ba_timer's timer_container_of() vs from_timer() to keep the new API. - SCS Makefile @@ hunk counts corrected from -9,6 +9,10 to -9,6 +9,11 (the original was actually wrong; build-via-fuzz was masking it). Cumulative b2sum: ka-promote ohm now emits eb179c03f35a4dbaec2e40036f0033ef04985bb6b14ab22419d68e5caaa5874f... (279 554 bytes, 32 patches resolved). pkgrel=6 built from this manifest + installed on ohm 2026-05-19 ~23:39. Functional verification: bes2600 + bes2600_btuart both load, Pattern A 0 over fresh boot, wlan0 associates to newton. srcversion 1A919EED0E6DC2478559B17 differs from pkgrel=5's BEB625FA... — the reconstruction is functionally equivalent (5 GHz working, no firmware/driver race conditions) but NOT byte-equivalent (the chardev utility re-add chose different formatting than the original danctnix code). Byte-equivalence is not a goal; per-series traceability and working hardware are. Closes (proper this time): #29. Refs: #28, #30, #33 (the half-working attempt), #31, #32.
This commit is contained in:
+15
-15
@@ -1,4 +1,4 @@
|
||||
From 44b296647be9246c6802a86c082c6507669810b0 Mon Sep 17 00:00:00 2001
|
||||
From 8fd20308ed53678c863a0ef52fb2c754e3adc63c Mon Sep 17 00:00:00 2001
|
||||
From: Markus Fritsche <fritsche.markus@gmail.com>
|
||||
Date: Fri, 8 May 2026 00:17:46 +0200
|
||||
Subject: [PATCH 27/29] =?UTF-8?q?bes2600:=20Patch=20D=20=E2=80=94=20atomic?=
|
||||
@@ -58,10 +58,10 @@ Bestechnic addition rather than the upstream tree.
|
||||
5 files changed, 85 insertions(+), 56 deletions(-)
|
||||
|
||||
diff --git a/drivers/staging/bes2600/bes2600.h b/drivers/staging/bes2600/bes2600.h
|
||||
index ec41141..31a411b 100644
|
||||
index 84059c7..32bce5e 100644
|
||||
--- a/drivers/staging/bes2600/bes2600.h
|
||||
+++ b/drivers/staging/bes2600/bes2600.h
|
||||
@@ -356,15 +356,23 @@ struct bes2600_common {
|
||||
@@ -353,15 +353,23 @@ struct bes2600_common {
|
||||
* Keeping in common structure for the time being. Will be moved to VIFF
|
||||
* after the mechanism is clear */
|
||||
u8 ba_tid_mask;
|
||||
@@ -95,7 +95,7 @@ index ec41141..31a411b 100644
|
||||
bool is_go_thru_go_neg;
|
||||
u8 conf_listen_interval;
|
||||
diff --git a/drivers/staging/bes2600/debug.c b/drivers/staging/bes2600/debug.c
|
||||
index 0d68392..2d144ac 100644
|
||||
index 47e27be..0ab79c0 100644
|
||||
--- a/drivers/staging/bes2600/debug.c
|
||||
+++ b/drivers/staging/bes2600/debug.c
|
||||
@@ -110,17 +110,20 @@ static int bes2600_status_show_common(struct seq_file *seq, void *v)
|
||||
@@ -125,10 +125,10 @@ index 0d68392..2d144ac 100644
|
||||
seq_puts(seq, "BES2600 Wireless LAN driver status\n");
|
||||
seq_printf(seq, "Hardware: %d.%d\n",
|
||||
diff --git a/drivers/staging/bes2600/main.c b/drivers/staging/bes2600/main.c
|
||||
index 90a8ff8..be375f5 100644
|
||||
index 71dc4ae..8fc37b4 100644
|
||||
--- a/drivers/staging/bes2600/main.c
|
||||
+++ b/drivers/staging/bes2600/main.c
|
||||
@@ -490,7 +490,7 @@ static struct ieee80211_hw *bes2600_init_common(size_t hw_priv_data_len)
|
||||
@@ -501,7 +501,7 @@ static struct ieee80211_hw *bes2600_init_common(size_t hw_priv_data_len)
|
||||
INIT_LIST_HEAD(&hw_priv->event_queue);
|
||||
INIT_WORK(&hw_priv->event_handler, bes2600_event_handler);
|
||||
INIT_WORK(&hw_priv->ba_work, bes2600_ba_work);
|
||||
@@ -138,10 +138,10 @@ index 90a8ff8..be375f5 100644
|
||||
|
||||
if (unlikely(bes2600_queue_stats_init(&hw_priv->tx_queue_stats,
|
||||
diff --git a/drivers/staging/bes2600/sta.c b/drivers/staging/bes2600/sta.c
|
||||
index 81f88ed..d94dd2e 100644
|
||||
index 70b12f9..8af8150 100644
|
||||
--- a/drivers/staging/bes2600/sta.c
|
||||
+++ b/drivers/staging/bes2600/sta.c
|
||||
@@ -2342,14 +2342,19 @@ void bes2600_join_work(struct work_struct *work)
|
||||
@@ -2362,14 +2362,19 @@ void bes2600_join_work(struct work_struct *work)
|
||||
//WARN_ON(wsm_reset(hw_priv, &reset, priv->if_id));
|
||||
WARN_ON(wsm_set_block_ack_policy(hw_priv,
|
||||
0, hw_priv->ba_tid_mask, priv->if_id));
|
||||
@@ -168,7 +168,7 @@ index 81f88ed..d94dd2e 100644
|
||||
|
||||
mgmt_policy.protectedMgmtEnable = 0;
|
||||
mgmt_policy.unprotectedMgmtFramesAllowed = 1;
|
||||
@@ -2629,10 +2634,11 @@ void bes2600_ba_work(struct work_struct *work)
|
||||
@@ -2649,10 +2654,11 @@ void bes2600_ba_work(struct work_struct *work)
|
||||
return;*/
|
||||
|
||||
bes_devel("BA work****\n");
|
||||
@@ -183,12 +183,12 @@ index 81f88ed..d94dd2e 100644
|
||||
|
||||
wsm_lock_tx(hw_priv);
|
||||
|
||||
@@ -2645,37 +2651,49 @@ void bes2600_ba_work(struct work_struct *work)
|
||||
@@ -2665,37 +2671,49 @@ void bes2600_ba_work(struct work_struct *work)
|
||||
void bes2600_ba_timer(struct timer_list *t)
|
||||
{
|
||||
bool ba_ena;
|
||||
+ int cnt, acc, cnt_rx, acc_rx;
|
||||
struct bes2600_common *hw_priv = from_timer(hw_priv, t, ba_timer);
|
||||
struct bes2600_common *hw_priv = timer_container_of(hw_priv, t, ba_timer);
|
||||
|
||||
- spin_lock_bh(&hw_priv->ba_lock);
|
||||
- bes2600_debug_ba(hw_priv, hw_priv->ba_cnt, hw_priv->ba_acc,
|
||||
@@ -251,7 +251,7 @@ index 81f88ed..d94dd2e 100644
|
||||
hw_priv->ba_hist = 0;
|
||||
#if 0
|
||||
bes_devel("[STA] %s block ACK:\n",
|
||||
@@ -2685,9 +2703,6 @@ void bes2600_ba_timer(struct timer_list *t)
|
||||
@@ -2705,9 +2723,6 @@ void bes2600_ba_timer(struct timer_list *t)
|
||||
}
|
||||
} else if (hw_priv->ba_hist)
|
||||
--hw_priv->ba_hist;
|
||||
@@ -262,10 +262,10 @@ index 81f88ed..d94dd2e 100644
|
||||
|
||||
int bes2600_vif_setup(struct bes2600_vif *priv)
|
||||
diff --git a/drivers/staging/bes2600/txrx.c b/drivers/staging/bes2600/txrx.c
|
||||
index 346312c..82ef6fa 100644
|
||||
index 3aef009..536b198 100644
|
||||
--- a/drivers/staging/bes2600/txrx.c
|
||||
+++ b/drivers/staging/bes2600/txrx.c
|
||||
@@ -995,14 +995,18 @@ bes2600_tx_h_ba_stat(struct bes2600_vif *priv,
|
||||
@@ -996,14 +996,18 @@ bes2600_tx_h_ba_stat(struct bes2600_vif *priv,
|
||||
if (!ieee80211_is_data(t->hdr->frame_control))
|
||||
return;
|
||||
|
||||
@@ -289,7 +289,7 @@ index 346312c..82ef6fa 100644
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -1629,14 +1633,13 @@ bes2600_rx_h_ba_stat(struct bes2600_vif *priv,
|
||||
@@ -1651,14 +1655,13 @@ bes2600_rx_h_ba_stat(struct bes2600_vif *priv,
|
||||
if (!priv->setbssparams_done)
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user