Commit db550615 authored by Igor Russkikh's avatar Igor Russkikh Committed by David S. Miller
Browse files

net: aquantia: Eliminate aq_nic structure abstraction



aq_nic_s was hidden in aq_nic_internal.h, that made it difficult to access
nic fields and structures from other modules.
This change moves aq_nic_s struct into aq_nic.h and thus makes it available
to other driver modules, mainly pci module and hw related module.

Signed-off-by: default avatarIgor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5b97b0d1
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@
#include <linux/pci.h>

#include "ver.h"
#include "aq_nic.h"
#include "aq_cfg.h"
#include "aq_utils.h"

+8 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
#define AQ_HW_H

#include "aq_common.h"
#include "aq_rss.h"
#include "hw_atl/hw_atl_utils.h"

/* NIC H/W capabilities */
@@ -87,6 +88,13 @@ struct aq_stats_s {

#define AQ_HW_FLAG_ERRORS      (AQ_HW_FLAG_ERR_HW | AQ_HW_FLAG_ERR_UNPLUG)

#define AQ_NIC_FLAGS_IS_NOT_READY (AQ_NIC_FLAG_STOPPING | \
			AQ_NIC_FLAG_RESETTING | AQ_NIC_FLAG_CLOSING | \
			AQ_NIC_FLAG_ERR_UNPLUG | AQ_NIC_FLAG_ERR_HW)

#define AQ_NIC_FLAGS_IS_NOT_TX_READY (AQ_NIC_FLAGS_IS_NOT_READY | \
					AQ_NIC_LINK_DOWN)

struct aq_hw_s {
	atomic_t flags;
	struct aq_nic_cfg_s *aq_nic_cfg;
+0 −1
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@

#include "aq_main.h"
#include "aq_nic.h"
#include "aq_nic_internal.h"
#include "aq_pci_func.h"
#include "aq_ethtool.h"

+0 −6
Original line number Diff line number Diff line
@@ -14,7 +14,6 @@
#include "aq_vec.h"
#include "aq_hw.h"
#include "aq_pci_func.h"
#include "aq_nic_internal.h"
#include "aq_main.h"

#include <linux/moduleparam.h>
@@ -357,11 +356,6 @@ void aq_nic_set_tx_ring(struct aq_nic_s *self, unsigned int idx,
	self->aq_ring_tx[idx] = ring;
}

struct device *aq_nic_get_dev(struct aq_nic_s *self)
{
	return self->ndev->dev.parent;
}

struct net_device *aq_nic_get_ndev(struct aq_nic_s *self)
{
	return self->ndev;
+33 −1
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@
struct aq_ring_s;
struct aq_pci_func_s;
struct aq_hw_ops;
struct aq_fw_s;
struct aq_vec_s;

#define AQ_NIC_FC_OFF    0U
#define AQ_NIC_FC_TX     1U
@@ -45,7 +47,6 @@ struct aq_nic_cfg_s {
	u16 tx_itr;
	u32 num_rss_queues;
	u32 mtu;
	u32 ucp_0x364;
	u32 flow_control;
	u32 link_speed_msk;
	u32 vlan_id;
@@ -70,6 +71,37 @@ struct aq_nic_cfg_s {
#define AQ_NIC_TCVEC2RING(_NIC_, _TC_, _VEC_) \
	((_TC_) * AQ_CFG_TCS_MAX + (_VEC_))

struct aq_nic_s {
	atomic_t flags;
	struct aq_vec_s *aq_vec[AQ_CFG_VECS_MAX];
	struct aq_ring_s *aq_ring_tx[AQ_CFG_VECS_MAX * AQ_CFG_TCS_MAX];
	struct aq_hw_s *aq_hw;
	struct net_device *ndev;
	struct aq_pci_func_s *aq_pci_func;
	unsigned int aq_vecs;
	unsigned int packet_filter;
	unsigned int power_state;
	u8 port;
	struct aq_hw_ops aq_hw_ops;
	struct aq_hw_caps_s aq_hw_caps;
	struct aq_nic_cfg_s aq_nic_cfg;
	struct timer_list service_timer;
	struct timer_list polling_timer;
	struct aq_hw_link_status_s link_status;
	struct {
		u32 count;
		u8 ar[AQ_CFG_MULTICAST_ADDRESS_MAX][ETH_ALEN];
	} mc_list;

	struct pci_dev *pdev;
	unsigned int msix_entry_mask;
};

static inline struct device *aq_nic_get_dev(struct aq_nic_s *self)
{
	return self->ndev->dev.parent;
}

struct aq_nic_s *aq_nic_alloc_cold(struct pci_dev *pdev,
				   struct aq_pci_func_s *aq_pci_func,
				   unsigned int port,
Loading