Commit e323b841 authored by Ming Yen Hsieh's avatar Ming Yen Hsieh Committed by Felix Fietkau
Browse files

wifi: mt76: mt7925: refactor CLC support check flow



Move the disable_clc module parameter to regd.c and introduce
mt7925_regd_clc_supported() to centralize CLC support checks.

Signed-off-by: default avatarMing Yen Hsieh <mingyen.hsieh@mediatek.com>
Link: https://patch.msgid.link/20251031090352.1400079-3-mingyen.hsieh@mediatek.com


Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
parent 87c39412
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -4,16 +4,13 @@
#include <linux/fs.h>
#include <linux/firmware.h>
#include "mt7925.h"
#include "regd.h"
#include "mcu.h"
#include "mac.h"

#define MT_STA_BFER			BIT(0)
#define MT_STA_BFEE			BIT(1)

static bool mt7925_disable_clc;
module_param_named(disable_clc, mt7925_disable_clc, bool, 0644);
MODULE_PARM_DESC(disable_clc, "disable CLC support");

int mt7925_mcu_parse_response(struct mt76_dev *mdev, int cmd,
			      struct sk_buff *skb, int seq)
{
@@ -688,8 +685,7 @@ static int mt7925_load_clc(struct mt792x_dev *dev, const char *fw_name)
	int ret, i, len, offset = 0;

	dev->phy.clc_chan_conf = 0xff;
	if (mt7925_disable_clc ||
	    mt76_is_usb(&dev->mt76))
	if (!mt7925_regd_clc_supported(dev))
		return 0;

	if (mt76_is_mmio(&dev->mt76)) {
@@ -3383,6 +3379,9 @@ int mt7925_mcu_set_clc(struct mt792x_dev *dev, u8 *alpha2,
	struct mt792x_phy *phy = (struct mt792x_phy *)&dev->phy;
	int i, ret;

	if (!ARRAY_SIZE(phy->clc))
		return -ESRCH;

	/* submit all clc config */
	for (i = 0; i < ARRAY_SIZE(phy->clc); i++) {
		if (i == MT792x_CLC_BE_CTRL)
+13 −0
Original line number Diff line number Diff line
@@ -5,6 +5,19 @@
#include "regd.h"
#include "mcu.h"

static bool mt7925_disable_clc;
module_param_named(disable_clc, mt7925_disable_clc, bool, 0644);
MODULE_PARM_DESC(disable_clc, "disable CLC support");

bool mt7925_regd_clc_supported(struct mt792x_dev *dev)
{
	if (mt7925_disable_clc ||
	    mt76_is_usb(&dev->mt76))
		return false;

	return true;
}

void mt7925_regd_be_ctrl(struct mt792x_dev *dev, u8 *alpha2)
{
	struct mt792x_phy *phy = &dev->phy;
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
void mt7925_regd_be_ctrl(struct mt792x_dev *dev, u8 *alpha2);
void mt7925_regd_update(struct mt792x_dev *dev);
void mt7925_regd_notifier(struct wiphy *wiphy, struct regulatory_request *req);
bool mt7925_regd_clc_supported(struct mt792x_dev *dev);

#endif