sfc: Move struct falcon_board into struct falcon_nic_data
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
5c16a96c4f
commit
3759433db2
@@ -1878,7 +1878,7 @@ static struct pci_device_id efx_pci_table[] __devinitdata = {
|
|||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
* Dummy PHY/MAC/Board operations
|
* Dummy PHY/MAC operations
|
||||||
*
|
*
|
||||||
* Can be used for some unimplemented operations
|
* Can be used for some unimplemented operations
|
||||||
* Needed so all function pointers are valid and do not have to be tested
|
* Needed so all function pointers are valid and do not have to be tested
|
||||||
@@ -1908,14 +1908,6 @@ static struct efx_phy_operations efx_dummy_phy_operations = {
|
|||||||
.clear_interrupt = efx_port_dummy_op_void,
|
.clear_interrupt = efx_port_dummy_op_void,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct falcon_board efx_dummy_board_info = {
|
|
||||||
.init = efx_port_dummy_op_int,
|
|
||||||
.init_phy = efx_port_dummy_op_void,
|
|
||||||
.set_id_led = efx_port_dummy_op_set_id_led,
|
|
||||||
.monitor = efx_port_dummy_op_int,
|
|
||||||
.fini = efx_port_dummy_op_void,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
*
|
*
|
||||||
* Data housekeeping
|
* Data housekeeping
|
||||||
@@ -1944,7 +1936,6 @@ static int efx_init_struct(struct efx_nic *efx, struct efx_nic_type *type,
|
|||||||
efx->state = STATE_INIT;
|
efx->state = STATE_INIT;
|
||||||
efx->reset_pending = RESET_TYPE_NONE;
|
efx->reset_pending = RESET_TYPE_NONE;
|
||||||
strlcpy(efx->name, pci_name(pci_dev), sizeof(efx->name));
|
strlcpy(efx->name, pci_name(pci_dev), sizeof(efx->name));
|
||||||
efx->board_info = efx_dummy_board_info;
|
|
||||||
|
|
||||||
efx->net_dev = net_dev;
|
efx->net_dev = net_dev;
|
||||||
efx->rx_checksum_enabled = true;
|
efx->rx_checksum_enabled = true;
|
||||||
|
@@ -30,19 +30,47 @@ static inline int falcon_rev(struct efx_nic *efx)
|
|||||||
return efx->pci_dev->revision;
|
return efx->pci_dev->revision;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct falcon_board - board information
|
||||||
|
* @type: Board model type
|
||||||
|
* @major: Major rev. ('A', 'B' ...)
|
||||||
|
* @minor: Minor rev. (0, 1, ...)
|
||||||
|
* @init: Allocate resources and initialise peripheral hardware
|
||||||
|
* @init_phy: Do board-specific PHY initialisation
|
||||||
|
* @set_id_led: Set state of identifying LED or revert to automatic function
|
||||||
|
* @monitor: Board-specific health check function
|
||||||
|
* @fini: Shut down hardware and free resources
|
||||||
|
* @hwmon_client: I2C client for hardware monitor
|
||||||
|
* @ioexp_client: I2C client for power/port control
|
||||||
|
*/
|
||||||
|
struct falcon_board {
|
||||||
|
int type;
|
||||||
|
int major;
|
||||||
|
int minor;
|
||||||
|
int (*init) (struct efx_nic *nic);
|
||||||
|
void (*init_phy) (struct efx_nic *efx);
|
||||||
|
void (*set_id_led) (struct efx_nic *efx, enum efx_led_mode mode);
|
||||||
|
int (*monitor) (struct efx_nic *nic);
|
||||||
|
void (*fini) (struct efx_nic *nic);
|
||||||
|
struct i2c_client *hwmon_client, *ioexp_client;
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* struct falcon_nic_data - Falcon NIC state
|
* struct falcon_nic_data - Falcon NIC state
|
||||||
* @pci_dev2: The secondary PCI device if present
|
* @pci_dev2: The secondary PCI device if present
|
||||||
* @i2c_data: Operations and state for I2C bit-bashing algorithm
|
* @i2c_data: Operations and state for I2C bit-bashing algorithm
|
||||||
|
* @board: Board state and functions
|
||||||
*/
|
*/
|
||||||
struct falcon_nic_data {
|
struct falcon_nic_data {
|
||||||
struct pci_dev *pci_dev2;
|
struct pci_dev *pci_dev2;
|
||||||
struct i2c_algo_bit_data i2c_data;
|
struct i2c_algo_bit_data i2c_data;
|
||||||
|
struct falcon_board board;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct falcon_board *falcon_board(struct efx_nic *efx)
|
static inline struct falcon_board *falcon_board(struct efx_nic *efx)
|
||||||
{
|
{
|
||||||
return &efx->board_info;
|
struct falcon_nic_data *data = efx->nic_data;
|
||||||
|
return &data->board;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern struct efx_nic_type falcon_a_nic_type;
|
extern struct efx_nic_type falcon_a_nic_type;
|
||||||
|
@@ -721,12 +721,21 @@ static struct falcon_board_data board_data[] = {
|
|||||||
sfn4112f_init },
|
sfn4112f_init },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct falcon_board falcon_dummy_board = {
|
||||||
|
.init = efx_port_dummy_op_int,
|
||||||
|
.init_phy = efx_port_dummy_op_void,
|
||||||
|
.set_id_led = efx_port_dummy_op_set_id_led,
|
||||||
|
.monitor = efx_port_dummy_op_int,
|
||||||
|
.fini = efx_port_dummy_op_void,
|
||||||
|
};
|
||||||
|
|
||||||
void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
|
void falcon_probe_board(struct efx_nic *efx, u16 revision_info)
|
||||||
{
|
{
|
||||||
struct falcon_board *board = falcon_board(efx);
|
struct falcon_board *board = falcon_board(efx);
|
||||||
struct falcon_board_data *data = NULL;
|
struct falcon_board_data *data = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
*board = falcon_dummy_board;
|
||||||
board->type = FALCON_BOARD_TYPE(revision_info);
|
board->type = FALCON_BOARD_TYPE(revision_info);
|
||||||
board->major = FALCON_BOARD_MAJOR(revision_info);
|
board->major = FALCON_BOARD_MAJOR(revision_info);
|
||||||
board->minor = FALCON_BOARD_MINOR(revision_info);
|
board->minor = FALCON_BOARD_MINOR(revision_info);
|
||||||
|
@@ -394,31 +394,6 @@ enum efx_led_mode {
|
|||||||
EFX_LED_DEFAULT = 2
|
EFX_LED_DEFAULT = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* struct falcon_board - board information
|
|
||||||
* @type: Board model type
|
|
||||||
* @major: Major rev. ('A', 'B' ...)
|
|
||||||
* @minor: Minor rev. (0, 1, ...)
|
|
||||||
* @init: Allocate resources and initialise peripheral hardware
|
|
||||||
* @init_phy: Do board-specific PHY initialisation
|
|
||||||
* @set_id_led: Set state of identifying LED or revert to automatic function
|
|
||||||
* @monitor: Board-specific health check function
|
|
||||||
* @fini: Shut down hardware and free resources
|
|
||||||
* @hwmon_client: I2C client for hardware monitor
|
|
||||||
* @ioexp_client: I2C client for power/port control
|
|
||||||
*/
|
|
||||||
struct falcon_board {
|
|
||||||
int type;
|
|
||||||
int major;
|
|
||||||
int minor;
|
|
||||||
int (*init) (struct efx_nic *nic);
|
|
||||||
void (*init_phy) (struct efx_nic *efx);
|
|
||||||
void (*set_id_led) (struct efx_nic *efx, enum efx_led_mode mode);
|
|
||||||
int (*monitor) (struct efx_nic *nic);
|
|
||||||
void (*fini) (struct efx_nic *nic);
|
|
||||||
struct i2c_client *hwmon_client, *ioexp_client;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define STRING_TABLE_LOOKUP(val, member) \
|
#define STRING_TABLE_LOOKUP(val, member) \
|
||||||
member ## _names[val]
|
member ## _names[val]
|
||||||
|
|
||||||
@@ -665,7 +640,6 @@ union efx_multicast_hash {
|
|||||||
* @irq_rx_adaptive: Adaptive IRQ moderation enabled for RX event queues
|
* @irq_rx_adaptive: Adaptive IRQ moderation enabled for RX event queues
|
||||||
* @irq_rx_moderation: IRQ moderation time for RX event queues
|
* @irq_rx_moderation: IRQ moderation time for RX event queues
|
||||||
* @i2c_adap: I2C adapter
|
* @i2c_adap: I2C adapter
|
||||||
* @board_info: Board-level information
|
|
||||||
* @state: Device state flag. Serialised by the rtnl_lock.
|
* @state: Device state flag. Serialised by the rtnl_lock.
|
||||||
* @reset_pending: Pending reset method (normally RESET_TYPE_NONE)
|
* @reset_pending: Pending reset method (normally RESET_TYPE_NONE)
|
||||||
* @tx_queue: TX DMA queues
|
* @tx_queue: TX DMA queues
|
||||||
@@ -752,7 +726,6 @@ struct efx_nic {
|
|||||||
unsigned int irq_rx_moderation;
|
unsigned int irq_rx_moderation;
|
||||||
|
|
||||||
struct i2c_adapter i2c_adap;
|
struct i2c_adapter i2c_adap;
|
||||||
struct falcon_board board_info;
|
|
||||||
|
|
||||||
enum nic_state state;
|
enum nic_state state;
|
||||||
enum reset_type reset_pending;
|
enum reset_type reset_pending;
|
||||||
|
Reference in New Issue
Block a user