// SPDX-License-Identifier: GPL-2.0-or-later /* * Copyright (c) 2014-2015 Hisilicon Limited. */ #include <linux/io-64-nonatomic-hi-lo.h> #include <linux/of_mdio.h> #include "hns_dsaf_main.h" #include "hns_dsaf_mac.h" #include "hns_dsaf_xgmac.h" #include "hns_dsaf_reg.h" static const struct mac_stats_string g_xgmac_stats_string[] = …; /** *hns_xgmac_tx_enable - xgmac port tx enable *@drv: mac driver *@value: value of enable */ static void hns_xgmac_tx_enable(struct mac_driver *drv, u32 value) { … } /** *hns_xgmac_rx_enable - xgmac port rx enable *@drv: mac driver *@value: value of enable */ static void hns_xgmac_rx_enable(struct mac_driver *drv, u32 value) { … } /** * hns_xgmac_lf_rf_insert - insert lf rf control about xgmac * @mac_drv: mac driver * @mode: inserf rf or lf */ static void hns_xgmac_lf_rf_insert(struct mac_driver *mac_drv, u32 mode) { … } /** * hns_xgmac_lf_rf_control_init - initial the lf rf control register * @mac_drv: mac driver */ static void hns_xgmac_lf_rf_control_init(struct mac_driver *mac_drv) { … } /** *hns_xgmac_enable - enable xgmac port *@mac_drv: mac driver *@mode: mode of mac port */ static void hns_xgmac_enable(void *mac_drv, enum mac_commom_mode mode) { … } /** *hns_xgmac_disable - disable xgmac port *@mac_drv: mac driver *@mode: mode of mac port */ static void hns_xgmac_disable(void *mac_drv, enum mac_commom_mode mode) { … } /** *hns_xgmac_pma_fec_enable - xgmac PMA FEC enable *@drv: mac driver *@tx_value: tx value *@rx_value: rx value *return status */ static void hns_xgmac_pma_fec_enable(struct mac_driver *drv, u32 tx_value, u32 rx_value) { … } /* clr exc irq for xge*/ static void hns_xgmac_exc_irq_en(struct mac_driver *drv, u32 en) { … } /** *hns_xgmac_init - initialize XGE *@mac_drv: mac driver */ static void hns_xgmac_init(void *mac_drv) { … } /** *hns_xgmac_config_pad_and_crc - set xgmac pad and crc enable the same time *@mac_drv: mac driver *@newval:enable of pad and crc */ static void hns_xgmac_config_pad_and_crc(void *mac_drv, u8 newval) { … } /** *hns_xgmac_pausefrm_cfg - set pause param about xgmac *@mac_drv: mac driver *@rx_en: enable receive *@tx_en: enable transmit */ static void hns_xgmac_pausefrm_cfg(void *mac_drv, u32 rx_en, u32 tx_en) { … } static void hns_xgmac_set_pausefrm_mac_addr(void *mac_drv, const char *mac_addr) { … } /** *hns_xgmac_set_tx_auto_pause_frames - set tx pause param about xgmac *@mac_drv: mac driver *@enable:enable tx pause param */ static void hns_xgmac_set_tx_auto_pause_frames(void *mac_drv, u16 enable) { … } /** *hns_xgmac_config_max_frame_length - set xgmac max frame length *@mac_drv: mac driver *@newval:xgmac max frame length */ static void hns_xgmac_config_max_frame_length(void *mac_drv, u16 newval) { … } static void hns_xgmac_update_stats(void *mac_drv) { … } /** *hns_xgmac_free - free xgmac driver *@mac_drv: mac driver */ static void hns_xgmac_free(void *mac_drv) { … } /** *hns_xgmac_get_info - get xgmac information *@mac_drv: mac driver *@mac_info:mac information */ static void hns_xgmac_get_info(void *mac_drv, struct mac_info *mac_info) { … } /** *hns_xgmac_get_pausefrm_cfg - get xgmac pause param *@mac_drv: mac driver *@rx_en:xgmac rx pause enable *@tx_en:xgmac tx pause enable */ static void hns_xgmac_get_pausefrm_cfg(void *mac_drv, u32 *rx_en, u32 *tx_en) { … } /** *hns_xgmac_get_link_status - get xgmac link status *@mac_drv: mac driver *@link_stat: xgmac link stat */ static void hns_xgmac_get_link_status(void *mac_drv, u32 *link_stat) { … } /** *hns_xgmac_get_regs - dump xgmac regs *@mac_drv: mac driver *@data:data for value of regs */ static void hns_xgmac_get_regs(void *mac_drv, void *data) { … } /** *hns_xgmac_get_stats - get xgmac statistic *@mac_drv: mac driver *@data:data for value of stats regs */ static void hns_xgmac_get_stats(void *mac_drv, u64 *data) { … } /** *hns_xgmac_get_strings - get xgmac strings name *@stringset: type of values in data *@data:data for value of string name */ static void hns_xgmac_get_strings(u32 stringset, u8 *data) { … } /** *hns_xgmac_get_sset_count - get xgmac string set count *@stringset: type of values in data *return xgmac string set count */ static int hns_xgmac_get_sset_count(int stringset) { … } /** *hns_xgmac_get_regs_count - get xgmac regs count *return xgmac regs count */ static int hns_xgmac_get_regs_count(void) { … } void *hns_xgmac_config(struct hns_mac_cb *mac_cb, struct mac_params *mac_param) { … }