linux/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_main.c

// SPDX-License-Identifier: GPL-2.0-only OR BSD-3-Clause

/* Gigabit Ethernet driver for Mellanox BlueField SoC
 *
 * Copyright (C) 2020-2021 NVIDIA CORPORATION & AFFILIATES
 */

#include <linux/acpi.h>
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/etherdevice.h>
#include <linux/interrupt.h>
#include <linux/iopoll.h>
#include <linux/module.h>
#include <linux/phy.h>
#include <linux/platform_device.h>
#include <linux/rtnetlink.h>
#include <linux/skbuff.h>

#include "mlxbf_gige.h"
#include "mlxbf_gige_regs.h"

/* Allocate SKB whose payload pointer aligns with the Bluefield
 * hardware DMA limitation, i.e. DMA operation can't cross
 * a 4KB boundary.  A maximum packet size of 2KB is assumed in the
 * alignment formula.  The alignment logic overallocates an SKB,
 * and then adjusts the headroom so that the SKB data pointer is
 * naturally aligned to a 2KB boundary.
 */
struct sk_buff *mlxbf_gige_alloc_skb(struct mlxbf_gige *priv,
				     unsigned int map_len,
				     dma_addr_t *buf_dma,
				     enum dma_data_direction dir)
{}

static void mlxbf_gige_initial_mac(struct mlxbf_gige *priv)
{}

static void mlxbf_gige_cache_stats(struct mlxbf_gige *priv)
{}

static int mlxbf_gige_clean_port(struct mlxbf_gige *priv)
{}

static int mlxbf_gige_open(struct net_device *netdev)
{}

static int mlxbf_gige_stop(struct net_device *netdev)
{}

static int mlxbf_gige_eth_ioctl(struct net_device *netdev,
				struct ifreq *ifr, int cmd)
{}

static void mlxbf_gige_set_rx_mode(struct net_device *netdev)
{}

static void mlxbf_gige_get_stats64(struct net_device *netdev,
				   struct rtnl_link_stats64 *stats)
{}

static const struct net_device_ops mlxbf_gige_netdev_ops =;

static void mlxbf_gige_bf2_adjust_link(struct net_device *netdev)
{}

static void mlxbf_gige_bf3_adjust_link(struct net_device *netdev)
{}

static void mlxbf_gige_bf2_set_phy_link_mode(struct phy_device *phydev)
{}

static void mlxbf_gige_bf3_set_phy_link_mode(struct phy_device *phydev)
{}

static struct mlxbf_gige_link_cfg mlxbf_gige_link_cfgs[] =;

static int mlxbf_gige_probe(struct platform_device *pdev)
{}

static void mlxbf_gige_remove(struct platform_device *pdev)
{}

static void mlxbf_gige_shutdown(struct platform_device *pdev)
{}

static const struct acpi_device_id __maybe_unused mlxbf_gige_acpi_match[] =;
MODULE_DEVICE_TABLE(acpi, mlxbf_gige_acpi_match);

static struct platform_driver mlxbf_gige_driver =;

module_platform_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_AUTHOR();
MODULE_LICENSE();