cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

usb.h (1759B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl>
      4 */
      5
      6#ifndef __MT7601U_USB_H
      7#define __MT7601U_USB_H
      8
      9#include "mt7601u.h"
     10
     11#define MT7601U_FIRMWARE	"mt7601u.bin"
     12
     13#define MT_VEND_REQ_MAX_RETRY	10
     14#define MT_VEND_REQ_TOUT_MS	300
     15
     16#define MT_VEND_DEV_MODE_RESET	1
     17
     18#define MT_VEND_BUF		sizeof(__le32)
     19
     20enum mt_vendor_req {
     21	MT_VEND_DEV_MODE = 1,
     22	MT_VEND_WRITE = 2,
     23	MT_VEND_MULTI_READ = 7,
     24	MT_VEND_WRITE_FCE = 0x42,
     25};
     26
     27enum mt_usb_ep_in {
     28	MT_EP_IN_PKT_RX,
     29	MT_EP_IN_CMD_RESP,
     30	__MT_EP_IN_MAX,
     31};
     32
     33enum mt_usb_ep_out {
     34	MT_EP_OUT_INBAND_CMD,
     35	MT_EP_OUT_AC_BK,
     36	MT_EP_OUT_AC_BE,
     37	MT_EP_OUT_AC_VI,
     38	MT_EP_OUT_AC_VO,
     39	MT_EP_OUT_HCCA,
     40	__MT_EP_OUT_MAX,
     41};
     42
     43static inline struct usb_device *mt7601u_to_usb_dev(struct mt7601u_dev *mt7601u)
     44{
     45	return interface_to_usbdev(to_usb_interface(mt7601u->dev));
     46}
     47
     48static inline bool mt7601u_urb_has_error(struct urb *urb)
     49{
     50	return urb->status &&
     51		urb->status != -ENOENT &&
     52		urb->status != -ECONNRESET &&
     53		urb->status != -ESHUTDOWN;
     54}
     55
     56bool mt7601u_usb_alloc_buf(struct mt7601u_dev *dev, size_t len,
     57			   struct mt7601u_dma_buf *buf);
     58void mt7601u_usb_free_buf(struct mt7601u_dev *dev, struct mt7601u_dma_buf *buf);
     59int mt7601u_usb_submit_buf(struct mt7601u_dev *dev, int dir, int ep_idx,
     60			   struct mt7601u_dma_buf *buf, gfp_t gfp,
     61			   usb_complete_t complete_fn, void *context);
     62void mt7601u_complete_urb(struct urb *urb);
     63
     64int mt7601u_vendor_request(struct mt7601u_dev *dev, const u8 req,
     65			   const u8 direction, const u16 val, const u16 offset,
     66			   void *buf, const size_t buflen);
     67void mt7601u_vendor_reset(struct mt7601u_dev *dev);
     68int mt7601u_vendor_single_wr(struct mt7601u_dev *dev, const u8 req,
     69			     const u16 offset, const u32 val);
     70
     71#endif