8dd79199f8
The bes2600 driver is a fork of the upstream cw1200 driver
(drivers/net/wireless/st/cw1200/, ST-Ericsson, Dmitry Tarnyagin
2010-2011). The fork's file headers have three GPL-compliance issues:
1. NO SPDX-License-Identifier on any of 48 source files (cw1200
mainline has them on all 25). kernel.org-mandated since 2017.
2. Original "Copyright (c) 2010, ST-Ericsson" lines stripped from
all files inherited from cw1200, replaced with
"Copyright (c) 2010, Bestechnic" — factually impossible
(Bestechnic did not author the 2010 work) and a GPL-2.0 §1
attribution-preservation violation.
3. The "GPL version 2 as published by the Free Software Foundation"
boilerplate paragraph is redundant alongside SPDX and is the
legacy form modern kernel sources have replaced.
This patch corrects all three for the 48 .c/.h files in bes2600/:
- Adds `// SPDX-License-Identifier: GPL-2.0-only` (or `/* ... */`
for headers) as line 1 of every file.
- Restores `Copyright (c) 2010, ST-Ericsson` + `Author: Dmitry
Tarnyagin <dmitry.tarnyagin@lockless.no>` as the FIRST copyright
chain entry on all 22 files derived from cw1200 (bh.{c,h},
debug.{c,h}, fwio.{c,h}, hwio.{c,h}, main.c, pm.{c,h},
queue.{c,h}, scan.{c,h}, sta.{c,h}, txrx.{c,h}, wsm.{c,h}).
- Keeps `Copyright (c) 2022, Bestechnic (Beijing) Co., Ltd.` as
the SECOND chain entry where Bestechnic genuinely contributed.
- Notes "Derived from cw1200_sdio.c" + ST-Ericsson copyright on
bes2600_sdio.c (heavy derivation, not a literal rename).
- Notes "Replaces hwbus.h from cw1200/" + ST-Ericsson copyright
on sbus.h.
- Preserves the prism54/islsm authorship chain on main.c and
bes2600.h (Michael Wu 2006 + Jean-Baptiste Note 2004-2006).
- Drops the GPL-2.0 boilerplate paragraph in favour of SPDX.
No code changes — only file-header comment blocks. Module build is
unaffected (verified by header-only diff scope).
This is a prerequisite for any kernel.org submission attempt. The
existing MODULE_LICENSE("GPL") + MODULE_AUTHOR(Tarnyagin@stericsson.com)
declarations were already present and are unchanged here; the
mismatch between MODULE_AUTHOR and the (since-corrected) per-file
copyrights is now resolved.
192 lines
3.9 KiB
C
192 lines
3.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Debugging interface for BES2600 mac80211 driver
|
|
*
|
|
* Copyright (c) 2010, ST-Ericsson
|
|
* Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
|
|
*
|
|
* Copyright (c) 2022, Bestechnic (Beijing) Co., Ltd.
|
|
*
|
|
*/
|
|
|
|
#ifndef BES2600_DEBUG_H_INCLUDED
|
|
#define BES2600_DEBUG_H_INCLUDED
|
|
|
|
#include "itp.h"
|
|
|
|
struct cw200_common;
|
|
|
|
struct bes2600_debug_common {
|
|
struct dentry *debugfs_phy;
|
|
int tx_cache_miss;
|
|
int tx_burst;
|
|
int rx_burst;
|
|
int ba_cnt;
|
|
int ba_acc;
|
|
int ba_cnt_rx;
|
|
int ba_acc_rx;
|
|
#ifdef CONFIG_BES2600_ITP
|
|
struct bes2600_itp itp;
|
|
#endif /* CONFIG_BES2600_ITP */
|
|
};
|
|
|
|
struct bes2600_debug_priv {
|
|
struct dentry *debugfs_phy;
|
|
int tx;
|
|
int tx_agg;
|
|
int rx;
|
|
int rx_agg;
|
|
int tx_multi;
|
|
int tx_multi_frames;
|
|
int tx_align;
|
|
int tx_ttl;
|
|
};
|
|
|
|
#ifdef CONFIG_BES2600_DEBUGFS
|
|
int bes2600_debug_init_common(struct bes2600_common *hw_priv);
|
|
int bes2600_debug_init_priv(struct bes2600_common *hw_priv,
|
|
struct bes2600_vif *priv);
|
|
void bes2600_debug_release_common(struct bes2600_common *hw_priv);
|
|
void bes2600_debug_release_priv(struct bes2600_vif *priv);
|
|
|
|
static inline void bes2600_debug_txed(struct bes2600_vif *priv)
|
|
{
|
|
++priv->debug->tx;
|
|
}
|
|
|
|
static inline void bes2600_debug_txed_agg(struct bes2600_vif *priv)
|
|
{
|
|
++priv->debug->tx_agg;
|
|
}
|
|
|
|
static inline void bes2600_debug_txed_multi(struct bes2600_vif *priv,
|
|
int count)
|
|
{
|
|
++priv->debug->tx_multi;
|
|
priv->debug->tx_multi_frames += count;
|
|
}
|
|
|
|
static inline void bes2600_debug_rxed(struct bes2600_vif *priv)
|
|
{
|
|
++priv->debug->rx;
|
|
}
|
|
|
|
static inline void bes2600_debug_rxed_agg(struct bes2600_vif *priv)
|
|
{
|
|
++priv->debug->rx_agg;
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_cache_miss(struct bes2600_common *common)
|
|
{
|
|
++common->debug->tx_cache_miss;
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_align(struct bes2600_vif *priv)
|
|
{
|
|
++priv->debug->tx_align;
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_ttl(struct bes2600_vif *priv)
|
|
{
|
|
++priv->debug->tx_ttl;
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_burst(struct bes2600_common *hw_priv)
|
|
{
|
|
++hw_priv->debug->tx_burst;
|
|
}
|
|
|
|
static inline void bes2600_debug_rx_burst(struct bes2600_common *hw_priv)
|
|
{
|
|
++hw_priv->debug->rx_burst;
|
|
}
|
|
|
|
static inline void bes2600_debug_ba(struct bes2600_common *hw_priv,
|
|
int ba_cnt, int ba_acc, int ba_cnt_rx,
|
|
int ba_acc_rx)
|
|
{
|
|
hw_priv->debug->ba_cnt = ba_cnt;
|
|
hw_priv->debug->ba_acc = ba_acc;
|
|
hw_priv->debug->ba_cnt_rx = ba_cnt_rx;
|
|
hw_priv->debug->ba_acc_rx = ba_acc_rx;
|
|
}
|
|
|
|
int bes2600_print_fw_version(struct bes2600_common *hw_priv, u8* buf, size_t len);
|
|
|
|
#else /* CONFIG_BES2600_DEBUGFS */
|
|
|
|
static inline int bes2600_debug_init_common(struct bes2600_common *hw_priv)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline int bes2600_debug_init_priv(struct bes2600_common *hw_priv,
|
|
struct bes2600_vif *priv)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void bes2600_debug_release_common(struct bes2600_common *hw_priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_release_priv(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_txed(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_txed_agg(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_txed_multi(struct bes2600_vif *priv,
|
|
int count)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_rxed(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_rxed_agg(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_cache_miss(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_align(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_ttl(struct bes2600_vif *priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_tx_burst(struct bes2600_common *hw_priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_rx_burst(struct bes2600_common *hw_priv)
|
|
{
|
|
}
|
|
|
|
static inline void bes2600_debug_ba(struct bes2600_common *hw_priv,
|
|
int ba_cnt, int ba_acc, int ba_cnt_rx,
|
|
int ba_acc_rx)
|
|
{
|
|
}
|
|
|
|
static inline int bes2600_print_fw_version(struct bes2600_common *hw_priv, u8* buf, size_t len)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
#endif /* CONFIG_BES2600_DEBUGFS */
|
|
|
|
#endif /* BES2600_DEBUG_H_INCLUDED */
|