Loading drivers/net/sfc/efx.c +1 −10 Original line number Diff line number Diff line Loading @@ -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 * Needed so all function pointers are valid and do not have to be tested Loading Loading @@ -1908,14 +1908,6 @@ static struct efx_phy_operations efx_dummy_phy_operations = { .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 Loading Loading @@ -1944,7 +1936,6 @@ static int efx_init_struct(struct efx_nic *efx, struct efx_nic_type *type, efx->state = STATE_INIT; efx->reset_pending = RESET_TYPE_NONE; strlcpy(efx->name, pci_name(pci_dev), sizeof(efx->name)); efx->board_info = efx_dummy_board_info; efx->net_dev = net_dev; efx->rx_checksum_enabled = true; Loading drivers/net/sfc/falcon.h +29 −1 Original line number Diff line number Diff line Loading @@ -30,19 +30,47 @@ static inline int falcon_rev(struct efx_nic *efx) 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 * @pci_dev2: The secondary PCI device if present * @i2c_data: Operations and state for I2C bit-bashing algorithm * @board: Board state and functions */ struct falcon_nic_data { struct pci_dev *pci_dev2; struct i2c_algo_bit_data i2c_data; struct falcon_board board; }; 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; Loading drivers/net/sfc/falcon_boards.c +9 −0 Original line number Diff line number Diff line Loading @@ -721,12 +721,21 @@ static struct falcon_board_data board_data[] = { 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) { struct falcon_board *board = falcon_board(efx); struct falcon_board_data *data = NULL; int i; *board = falcon_dummy_board; board->type = FALCON_BOARD_TYPE(revision_info); board->major = FALCON_BOARD_MAJOR(revision_info); board->minor = FALCON_BOARD_MINOR(revision_info); Loading drivers/net/sfc/net_driver.h +0 −27 Original line number Diff line number Diff line Loading @@ -394,31 +394,6 @@ enum efx_led_mode { 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) \ member ## _names[val] Loading Loading @@ -665,7 +640,6 @@ union efx_multicast_hash { * @irq_rx_adaptive: Adaptive IRQ moderation enabled for RX event queues * @irq_rx_moderation: IRQ moderation time for RX event queues * @i2c_adap: I2C adapter * @board_info: Board-level information * @state: Device state flag. Serialised by the rtnl_lock. * @reset_pending: Pending reset method (normally RESET_TYPE_NONE) * @tx_queue: TX DMA queues Loading Loading @@ -752,7 +726,6 @@ struct efx_nic { unsigned int irq_rx_moderation; struct i2c_adapter i2c_adap; struct falcon_board board_info; enum nic_state state; enum reset_type reset_pending; Loading Loading
drivers/net/sfc/efx.c +1 −10 Original line number Diff line number Diff line Loading @@ -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 * Needed so all function pointers are valid and do not have to be tested Loading Loading @@ -1908,14 +1908,6 @@ static struct efx_phy_operations efx_dummy_phy_operations = { .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 Loading Loading @@ -1944,7 +1936,6 @@ static int efx_init_struct(struct efx_nic *efx, struct efx_nic_type *type, efx->state = STATE_INIT; efx->reset_pending = RESET_TYPE_NONE; strlcpy(efx->name, pci_name(pci_dev), sizeof(efx->name)); efx->board_info = efx_dummy_board_info; efx->net_dev = net_dev; efx->rx_checksum_enabled = true; Loading
drivers/net/sfc/falcon.h +29 −1 Original line number Diff line number Diff line Loading @@ -30,19 +30,47 @@ static inline int falcon_rev(struct efx_nic *efx) 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 * @pci_dev2: The secondary PCI device if present * @i2c_data: Operations and state for I2C bit-bashing algorithm * @board: Board state and functions */ struct falcon_nic_data { struct pci_dev *pci_dev2; struct i2c_algo_bit_data i2c_data; struct falcon_board board; }; 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; Loading
drivers/net/sfc/falcon_boards.c +9 −0 Original line number Diff line number Diff line Loading @@ -721,12 +721,21 @@ static struct falcon_board_data board_data[] = { 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) { struct falcon_board *board = falcon_board(efx); struct falcon_board_data *data = NULL; int i; *board = falcon_dummy_board; board->type = FALCON_BOARD_TYPE(revision_info); board->major = FALCON_BOARD_MAJOR(revision_info); board->minor = FALCON_BOARD_MINOR(revision_info); Loading
drivers/net/sfc/net_driver.h +0 −27 Original line number Diff line number Diff line Loading @@ -394,31 +394,6 @@ enum efx_led_mode { 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) \ member ## _names[val] Loading Loading @@ -665,7 +640,6 @@ union efx_multicast_hash { * @irq_rx_adaptive: Adaptive IRQ moderation enabled for RX event queues * @irq_rx_moderation: IRQ moderation time for RX event queues * @i2c_adap: I2C adapter * @board_info: Board-level information * @state: Device state flag. Serialised by the rtnl_lock. * @reset_pending: Pending reset method (normally RESET_TYPE_NONE) * @tx_queue: TX DMA queues Loading Loading @@ -752,7 +726,6 @@ struct efx_nic { unsigned int irq_rx_moderation; struct i2c_adapter i2c_adap; struct falcon_board board_info; enum nic_state state; enum reset_type reset_pending; Loading