From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3917533F37A for ; Fri, 27 Feb 2026 04:13:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772165604; cv=none; b=RG7hCNgJIUo3j9AcNkzwSL0YNw5K/XHRDtIpt6pd5Casmp4ECfjix3vOLGqKcBfYvzxtXiGRfTDCLjHXDWxupPOto+8M/xuN+mNExes7Q81nenE9dewGW9YXsAfJ9bPW8X+RZ7z7rJW3XyfQq14RDfpShODDrt1DgcDnC/PGR70= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772165604; c=relaxed/simple; bh=dIMzBdG9guVNVeykWA+XSvLHadW/qUWAAao79xxOJm8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Xa7CLc4ZIpPxdmNJpPCqiJFnKbKEQMcKExsWIaoccDO2OhS3Bf9GuxCUQ5WnE4BE6oI+8w4HsZhkEZ70O3pY35Lyg6ZcsOv1FEjGqLspYCrICKu1R1C3QFF3whynOC5AnqW6NeHCHI9X9+Vraa4vRPbZQZuXDlmo7CrzVYYPdKI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=morsemicro.com; spf=pass smtp.mailfrom=morsemicro.com; dkim=pass (2048-bit key) header.d=morsemicro-com.20230601.gappssmtp.com header.i=@morsemicro-com.20230601.gappssmtp.com header.b=2+fXrjfR; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=morsemicro.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=morsemicro.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=morsemicro-com.20230601.gappssmtp.com header.i=@morsemicro-com.20230601.gappssmtp.com header.b="2+fXrjfR" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2adec255754so10560705ad.3 for ; Thu, 26 Feb 2026 20:13:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=morsemicro-com.20230601.gappssmtp.com; s=20230601; t=1772165601; x=1772770401; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rT1jTRNPU1iGn5GPaWA0zPdi4nqppHZOXHEf82I6a+E=; b=2+fXrjfRsKenJsfkKTwKhjjyhZoCnYONr+AcqgTBy13C5oGL5c4ClP1Cv9sw/n0Yj6 esnnq5JPM12deoQ10mSlcUHQIbEG+bdyEWmFeBR+FIM7ZoXyH9iU8B2PM9lSjUImgiG3 IIB2OPTeqBLSVu1lKvjrh+I+3Z4w5zfchweEJyxVLv4cLo9sXXcEwQu8owNdlHATKtIV OsY2Gc5DyfRGgh7fNiTZSTVJYlEx2m51EDjIdgeNxVI2H6g3wSMZ3MTLrGUUvzXv9naD da8Ky2u42eYpcWbuC9Cu9Ri26Ba3HXr2LxHv/kPEbMGYqaqPrYx+TeUo5z3QLoBABA6W cs+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772165601; x=1772770401; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=rT1jTRNPU1iGn5GPaWA0zPdi4nqppHZOXHEf82I6a+E=; b=CiqGEh4841uXcicR+epPixIxbYfhtuqeghVu0cZPXBrOeowtTwZux3AcZmkPiIZTiL Nh4FF1v/lB8xisuLUZQi6UN5exFe9UPJuUm+1/Q/SmG2ff7/MHMMmIx5d1xf7P7hTOIw kW+onwkHi1kgJu5d+AqokzVCMhAyzo4KtIOS5mbLDX0MGjlozPShUsrloN5OMEdAnILg aKfSGST0TyW/RS89qdpEP21w5PXHArBMLu0LMoMSiHjMVuEcgXTHh+EHpskaOsGV1tmD EGpooakAntZUfdfa72W/uZDGWlJzst581MZQFrG7El92Yb2bt5sne1wfSNsnzs81qcfK wNzA== X-Forwarded-Encrypted: i=1; AJvYcCW1HsOqHqZiWIvjP25N+vrKXIowt0lTZhzokrTZKg8/WLrF3l4EL1uSWv5evpo44wdUwnjEi6u0vg0HZ9o=@vger.kernel.org X-Gm-Message-State: AOJu0YzJ0UUi7rDjQ1Ywhf9tCRwvbdHqEGso5v6kdYIeDQsWTB75KE0J doMEcKelfSCAPPs2FAoiEUFwAzi0xcQg4cPFykFuDob8DYbyYA9VZMtNxURprLES63xp2yWQBVQ OEGSL X-Gm-Gg: ATEYQzxCQSDY8K63bP1EEGL8Eu+gZDpK/hiH8XhT9P3BTQBIeIyGke46J0KufW5v6xT toFHVMMHVe/YqqPz/XQRwgorxSXaYro3GI99OPPmn36424qyYxLBnThIAeu70hDFlIfwZFB+zai gJm7qJnDKT16Wn6JVj1LLp1F5FTyAR5m1+QykcB7+6zzl9kSTsvFbRtYQC41BSeqxGrsY7zrO2p Ofk51tLa3HxY9261l4gFAjGuuGscD21NS+aNeqnb+aDt8gk6IN99s+fqC8K92r/ApMuKiKeYP2w I1BKVJRu18Pbi0JNN9v8mstnYAjr4WFWpZZ8deI3y8hf/c/a/mL+qD1RXr3PiasBjBFy87mdt9C tnadDv1yqp3voX+3q4mMFB2JBrqr4aNORZxyDSeMCE/3ZCPXqmJ263uXhAk8dMJOSPXW3MpxmHp jRac3ubX20bkVBhijkBy/+SX1TaPyrNxYQarC3yVtI+5tCBxVdddyQSYRHXdrLM1ieG38SgunN9 t5T9KBz2PlHa5IyuWWCVz1vD/Dz8K4= X-Received: by 2002:a17:902:f0d4:b0:2ad:bdf6:6405 with SMTP id d9443c01a7336-2ae2e496beamr10496275ad.32.1772165601656; Thu, 26 Feb 2026 20:13:21 -0800 (PST) Received: from mma-H9MHD44.lan (60-242-93-14.static.tpgi.com.au. [60.242.93.14]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2adfb6ba5eesm41682865ad.68.2026.02.26.20.13.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Feb 2026 20:13:21 -0800 (PST) From: Lachlan Hodges To: johannes@sipsolutions.net, Lachlan Hodges , Dan Callaghan , Arien Judge Cc: ayman.grais@morsemicro.com, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH wireless-next 15/35] wifi: mm81x: add mac.h Date: Fri, 27 Feb 2026 15:10:25 +1100 Message-ID: <20260227041108.66508-16-lachlan.hodges@morsemicro.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260227041108.66508-1-lachlan.hodges@morsemicro.com> References: <20260227041108.66508-1-lachlan.hodges@morsemicro.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit (Patches split per file for review, see cover letter for more information) Signed-off-by: Lachlan Hodges --- drivers/net/wireless/morsemicro/mm81x/mac.h | 69 +++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 drivers/net/wireless/morsemicro/mm81x/mac.h diff --git a/drivers/net/wireless/morsemicro/mm81x/mac.h b/drivers/net/wireless/morsemicro/mm81x/mac.h new file mode 100644 index 000000000000..6e27ddf900b3 --- /dev/null +++ b/drivers/net/wireless/morsemicro/mm81x/mac.h @@ -0,0 +1,69 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright (c) 2017-2026 Morse Micro + */ + +#ifndef _MM81X_MAC_H_ +#define _MM81X_MAC_H_ + +#include "core.h" +#include "command.h" + +struct mm81x_queue_params { + u8 uapsd; + u8 aci; + u8 aifs; + u16 cw_min; + u16 cw_max; + u32 txop; +}; + +static inline bool mm81x_mac_is_sta_vif_associated(struct ieee80211_vif *vif) +{ + return vif->cfg.assoc; +} + +static inline u32 mm81x_vif_generate_cssid(struct ieee80211_vif *vif) +{ + return mm81x_generate_cssid(vif->cfg.ssid, vif->cfg.ssid_len); +} + +static inline u16 mm81x_mac_sta_aid(struct ieee80211_vif *vif) +{ + return vif->cfg.aid; +} + +static inline __le32 mac2leuint32(const unsigned char *addr) +{ + return cpu_to_le32(((u32)(addr[2]) << 24) | ((u32)(addr[3]) << 16) | + ((u32)(addr[4]) << 8) | ((u32)(addr[5]))); +} + +static inline struct ieee80211_vif * +mm81x_rcu_dereference_vif_id(struct mm81x *mm, u8 vif_id, bool rcu) +{ + if (WARN_ON(vif_id >= ARRAY_SIZE(mm->vifs))) + return NULL; + + if (rcu) + return rcu_dereference(mm->vifs[vif_id]); + + return rcu_dereference_protected(mm->vifs[vif_id], + lockdep_is_held(&mm->lock)); +} + +int mm81x_tx_h_get_attempts(struct mm81x *mm, + struct mm81x_skb_tx_status *tx_sts); +struct mm81x *mm81x_mac_create(size_t priv_size, struct device *dev); +int mm81x_mac_register(struct mm81x *mm); +void mm81x_mac_destroy(struct mm81x *mm); +void mm81x_mac_unregister(struct mm81x *mm); +int mm81x_mac_event_recv(struct mm81x *mm, struct sk_buff *skb); +void mm81x_mac_rx_skb(struct mm81x *mm, struct sk_buff *skb, + struct mm81x_skb_rx_status *hdr_rx_status); +void mm81x_mac_beacon_irq_handle(struct mm81x *mm, u32 status); + +u8 *mm81x_hw_scan_h_insert_tlvs(struct mm81x_hw_scan_params *params, u8 *buf); +size_t mm81x_hw_scan_h_get_cmd_size(struct mm81x_hw_scan_params *params); +void mm81x_tx_h_check_aggr(struct ieee80211_sta *pubsta, struct sk_buff *skb); +#endif /* !_MM81X_MAC_H_ */ -- 2.43.0