Skip to content

Commit

Permalink
enic: Add new fw devcmd to set mac address of an interface
Browse files Browse the repository at this point in the history
This patch adds a new devcmd CMD_SET_MAC_ADDR to set the mac address of an
interface.

Signed-off-by: Roopa Prabhu <roprabhu@cisco.com>
Signed-off-by: Christian Benvenuti <benve@cisco.com>
Signed-off-by: Sujith Sankar <ssujith@cisco.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Roopa Prabhu authored and David S. Miller committed Feb 20, 2012
1 parent b13423e commit d6c81bc
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/net/ethernet/cisco/enic/enic.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

#define DRV_NAME "enic"
#define DRV_DESCRIPTION "Cisco VIC Ethernet NIC Driver"
#define DRV_VERSION "2.1.1.35"
#define DRV_VERSION "2.1.1.36"
#define DRV_COPYRIGHT "Copyright 2008-2011 Cisco Systems, Inc"

#define ENIC_BARS_MAX 6
Expand Down
12 changes: 12 additions & 0 deletions drivers/net/ethernet/cisco/enic/vnic_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1023,3 +1023,15 @@ int vnic_dev_deinit_done(struct vnic_dev *vdev, int *status)
{
return vnic_dev_cmd_status(vdev, CMD_DEINIT, status);
}

int vnic_dev_set_mac_addr(struct vnic_dev *vdev, u8 *mac_addr)
{
u64 a0, a1;
int wait = 1000;
int i;

for (i = 0; i < ETH_ALEN; i++)
((u8 *)&a0)[i] = mac_addr[i];

return vnic_dev_cmd(vdev, CMD_SET_MAC_ADDR, &a0, &a1, wait);
}
1 change: 1 addition & 0 deletions drivers/net/ethernet/cisco/enic/vnic_dev.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,5 +131,6 @@ int vnic_dev_init_prov2(struct vnic_dev *vdev, u8 *buf, u32 len);
int vnic_dev_enable2(struct vnic_dev *vdev, int active);
int vnic_dev_enable2_done(struct vnic_dev *vdev, int *status);
int vnic_dev_deinit_done(struct vnic_dev *vdev, int *status);
int vnic_dev_set_mac_addr(struct vnic_dev *vdev, u8 *mac_addr);

#endif /* _VNIC_DEV_H_ */
9 changes: 9 additions & 0 deletions drivers/net/ethernet/cisco/enic/vnic_devcmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,15 @@ enum vnic_devcmd_cmd {
* (u32)a2 = maximum timer value in usec
*/
CMD_INTR_COAL_CONVERT = _CMDC(_CMD_DIR_READ, _CMD_VTYPE_ALL, 50),

/*
* cmd_set_mac_addr
* set mac address
* in:
* (u48)a0 = mac addr
*
*/
CMD_SET_MAC_ADDR = _CMDC(_CMD_DIR_WRITE, _CMD_VTYPE_ENET, 55),
};

/* CMD_ENABLE2 flags */
Expand Down

0 comments on commit d6c81bc

Please sign in to comment.