[PATCH v2 2/2] net/ncsi: Query channel parameters during configuration
Samuel Mendoza-Jonas
sam at mendozajonas.com
Wed Nov 8 11:35:33 AEDT 2017
Send a Get-Parameters command during configuration to ensure the remote
channel configuration reflects what we expect.
Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
net/ncsi/internal.h | 1 +
net/ncsi/ncsi-manage.c | 4 ++++
net/ncsi/ncsi-rsp.c | 23 +++++++++++++++++++++++
3 files changed, 28 insertions(+)
diff --git a/net/ncsi/internal.h b/net/ncsi/internal.h
index d30f7bd741d0..d2ccc9a6ced1 100644
--- a/net/ncsi/internal.h
+++ b/net/ncsi/internal.h
@@ -248,6 +248,7 @@ enum {
ncsi_dev_state_config_ec,
ncsi_dev_state_config_ae,
ncsi_dev_state_config_gls,
+ ncsi_dev_state_config_gp,
ncsi_dev_state_config_done,
ncsi_dev_state_suspend_select = 0x0401,
ncsi_dev_state_suspend_gls,
diff --git a/net/ncsi/ncsi-manage.c b/net/ncsi/ncsi-manage.c
index 97b76f26bde7..faab04625ccb 100644
--- a/net/ncsi/ncsi-manage.c
+++ b/net/ncsi/ncsi-manage.c
@@ -807,6 +807,7 @@ static void ncsi_configure_channel(struct ncsi_dev_priv *ndp)
case ncsi_dev_state_config_ec:
case ncsi_dev_state_config_ae:
case ncsi_dev_state_config_gls:
+ case ncsi_dev_state_config_gp:
ndp->pending_req_num = 1;
nca.package = np->id;
@@ -884,6 +885,9 @@ static void ncsi_configure_channel(struct ncsi_dev_priv *ndp)
nd->state = ncsi_dev_state_config_gls;
} else if (nd->state == ncsi_dev_state_config_gls) {
nca.type = NCSI_PKT_CMD_GLS;
+ nd->state = ncsi_dev_state_config_gp;
+ } else if (nd->state == ncsi_dev_state_config_gp) {
+ nca.type = NCSI_PKT_CMD_GP;
nd->state = ncsi_dev_state_config_done;
}
diff --git a/net/ncsi/ncsi-rsp.c b/net/ncsi/ncsi-rsp.c
index 58186c4102f0..a7289c2d3870 100644
--- a/net/ncsi/ncsi-rsp.c
+++ b/net/ncsi/ncsi-rsp.c
@@ -724,6 +724,17 @@ static int ncsi_rsp_handler_gp(struct ncsi_request *nr)
if (!nc)
return -ENODEV;
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev,
+ "NCSI: Channel %u Parameters:\n", nc->id);
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev, "NCSI: Channel %s\n",
+ ntohl(rsp->valid_modes) & 0x2 ? "enabled" : "disabled");
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev, "NCSI: BPF %s\n",
+ ntohl(rsp->valid_modes) & 0x1 ? "enabled" : "disabled");
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev, "NCSI: TX %s\n",
+ ntohl(rsp->valid_modes) & 0x4 ? "enabled" : "disabled");
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev, "NCSI: MPF %s\n",
+ ntohl(rsp->valid_modes) & 0x8 ? "enabled" : "disabled");
+
/* Modes with explicit enabled indications */
if (ntohl(rsp->valid_modes) & 0x1) { /* BC filter mode */
nc->modes[NCSI_MODE_BC].enable = 1;
@@ -746,6 +757,18 @@ static int ncsi_rsp_handler_gp(struct ncsi_request *nr)
nc->modes[NCSI_MODE_AEN].enable = 1;
nc->modes[NCSI_MODE_AEN].data[0] = ntohl(rsp->aen_mode);
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev, "NCSI: link settings %08x\n",
+ ntohl(rsp->link_mode));
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev,
+ "NCSI: MAC address count %08x\n",
+ rsp->mac_cnt);
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev, "NCSI: MAC address 1 %s\n",
+ rsp->mac_enable & 0x1 ? "enabled" : "disabled");
+ netdev_printk(KERN_DEBUG, ndp->ndev.dev,
+ "NCSI: MAC address 1 %02x:%02x:%02x:%02x:%02x:%02x\n",
+ rsp->mac[0], rsp->mac[1], rsp->mac[2],
+ rsp->mac[3], rsp->mac[4], rsp->mac[5]);
+
/* MAC addresses filter table */
pdata = (unsigned char *)rsp + 48;
enable = rsp->mac_enable;
--
2.14.3
More information about the openbmc
mailing list