linux/drivers/net/ethernet/realtek/r8169_firmware.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/* r8169_firmware.h: RealTek 8169/8168/8101 ethernet driver.
   3 *
   4 * Copyright (c) 2002 ShuChen <shuchen@realtek.com.tw>
   5 * Copyright (c) 2003 - 2007 Francois Romieu <romieu@fr.zoreil.com>
   6 * Copyright (c) a lot of people too. Please respect their work.
   7 *
   8 * See MAINTAINERS file for support contact information.
   9 */
  10
  11#include <linux/device.h>
  12#include <linux/firmware.h>
  13
  14struct rtl8169_private;
  15typedef void (*rtl_fw_write_t)(struct rtl8169_private *tp, int reg, int val);
  16typedef int (*rtl_fw_read_t)(struct rtl8169_private *tp, int reg);
  17
  18#define RTL_VER_SIZE            32
  19
  20struct rtl_fw {
  21        rtl_fw_write_t phy_write;
  22        rtl_fw_read_t phy_read;
  23        rtl_fw_write_t mac_mcu_write;
  24        rtl_fw_read_t mac_mcu_read;
  25        const struct firmware *fw;
  26        const char *fw_name;
  27        struct device *dev;
  28
  29        char version[RTL_VER_SIZE];
  30
  31        struct rtl_fw_phy_action {
  32                __le32 *code;
  33                size_t size;
  34        } phy_action;
  35};
  36
  37int rtl_fw_request_firmware(struct rtl_fw *rtl_fw);
  38void rtl_fw_release_firmware(struct rtl_fw *rtl_fw);
  39void rtl_fw_write_firmware(struct rtl8169_private *tp, struct rtl_fw *rtl_fw);
  40