Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: ISC */
0002 /*
0003  * Copyright (C) 2018 Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
0004  */
0005 
0006 #ifndef __MT76x2U_H
0007 #define __MT76x2U_H
0008 
0009 #include <linux/device.h>
0010 
0011 #include "mt76x2.h"
0012 #include "mcu.h"
0013 
0014 #define MT7612U_EEPROM_SIZE     512
0015 
0016 #define MT_USB_AGGR_SIZE_LIMIT      21 /* 1024B unit */
0017 #define MT_USB_AGGR_TIMEOUT     0x80 /* 33ns unit */
0018 
0019 extern const struct ieee80211_ops mt76x2u_ops;
0020 
0021 int mt76x2u_register_device(struct mt76x02_dev *dev);
0022 int mt76x2u_init_hardware(struct mt76x02_dev *dev);
0023 void mt76x2u_cleanup(struct mt76x02_dev *dev);
0024 void mt76x2u_stop_hw(struct mt76x02_dev *dev);
0025 
0026 int mt76x2u_mac_reset(struct mt76x02_dev *dev);
0027 int mt76x2u_mac_stop(struct mt76x02_dev *dev);
0028 
0029 int mt76x2u_phy_set_channel(struct mt76x02_dev *dev,
0030                 struct cfg80211_chan_def *chandef);
0031 void mt76x2u_phy_calibrate(struct work_struct *work);
0032 
0033 void mt76x2u_mcu_complete_urb(struct urb *urb);
0034 int mt76x2u_mcu_init(struct mt76x02_dev *dev);
0035 int mt76x2u_mcu_fw_init(struct mt76x02_dev *dev);
0036 
0037 int mt76x2u_alloc_queues(struct mt76x02_dev *dev);
0038 void mt76x2u_queues_deinit(struct mt76x02_dev *dev);
0039 void mt76x2u_stop_queues(struct mt76x02_dev *dev);
0040 int mt76x2u_skb_dma_info(struct sk_buff *skb, enum dma_msg_port port,
0041              u32 flags);
0042 
0043 #endif /* __MT76x2U_H */