Patch #3 - Add a new ioctl to access SFP+ module diagnostic
data via the I2C routines in shared code.
This commit is contained in:
parent
35bbbdaa3b
commit
6a59dfbb86
@ -47,7 +47,7 @@ int ixgbe_display_debug_stats = 0;
|
||||
/*********************************************************************
|
||||
* Driver version
|
||||
*********************************************************************/
|
||||
char ixgbe_driver_version[] = "2.5.0 - 2";
|
||||
char ixgbe_driver_version[] = "2.5.0 - 3";
|
||||
|
||||
/*********************************************************************
|
||||
* PCI Device ID Table
|
||||
@ -919,6 +919,7 @@ static int
|
||||
ixgbe_ioctl(struct ifnet * ifp, u_long command, caddr_t data)
|
||||
{
|
||||
struct adapter *adapter = ifp->if_softc;
|
||||
struct ixgbe_hw *hw = &adapter->hw;
|
||||
struct ifreq *ifr = (struct ifreq *) data;
|
||||
#if defined(INET) || defined(INET6)
|
||||
struct ifaddr *ifa = (struct ifaddr *)data;
|
||||
@ -1024,7 +1025,22 @@ ixgbe_ioctl(struct ifnet * ifp, u_long command, caddr_t data)
|
||||
VLAN_CAPABILITIES(ifp);
|
||||
break;
|
||||
}
|
||||
|
||||
case SIOCGI2C:
|
||||
{
|
||||
struct ixgbe_i2c_req i2c;
|
||||
IOCTL_DEBUGOUT("ioctl: SIOCGI2C (Get I2C Data)");
|
||||
error = copyin(ifr->ifr_data, &i2c, sizeof(i2c));
|
||||
if (error)
|
||||
break;
|
||||
if ((i2c.dev_addr != 0xA0) || (i2c.dev_addr != 0xA2)){
|
||||
error = EINVAL;
|
||||
break;
|
||||
}
|
||||
hw->phy.ops.read_i2c_byte(hw, i2c.offset,
|
||||
i2c.dev_addr, i2c.data);
|
||||
error = copyout(&i2c, ifr->ifr_data, sizeof(i2c));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
IOCTL_DEBUGOUT1("ioctl: UNKNOWN (0x%X)\n", (int)command);
|
||||
error = ether_ioctl(ifp, command, data);
|
||||
|
@ -199,6 +199,9 @@
|
||||
#define IXGBE_BR_SIZE 4096
|
||||
#define IXGBE_QUEUE_MIN_FREE 32
|
||||
|
||||
/* IOCTL define to gather SFP+ Diagnostic data */
|
||||
#define SIOCGI2C SIOCGIFGENERIC
|
||||
|
||||
/* Offload bits in mbuf flag */
|
||||
#if __FreeBSD_version >= 800000
|
||||
#define CSUM_OFFLOAD (CSUM_IP|CSUM_TCP|CSUM_UDP|CSUM_SCTP)
|
||||
@ -241,6 +244,13 @@ typedef struct _ixgbe_vendor_info_t {
|
||||
unsigned int index;
|
||||
} ixgbe_vendor_info_t;
|
||||
|
||||
/* This is used to get SFP+ module data */
|
||||
struct ixgbe_i2c_req {
|
||||
u8 dev_addr;
|
||||
u8 offset;
|
||||
u8 len;
|
||||
u8 data[8];
|
||||
};
|
||||
|
||||
struct ixgbe_tx_buf {
|
||||
u32 eop_index;
|
||||
|
Loading…
Reference in New Issue
Block a user