return err;
 }
 
+static u32 aq_get_msg_level(struct net_device *ndev)
+{
+       struct aq_nic_s *aq_nic = netdev_priv(ndev);
+
+       return aq_nic->msg_enable;
+}
+
+static void aq_set_msg_level(struct net_device *ndev, u32 data)
+{
+       struct aq_nic_s *aq_nic = netdev_priv(ndev);
+
+       aq_nic->msg_enable = data;
+}
+
 const struct ethtool_ops aq_ethtool_ops = {
        .get_link            = aq_ethtool_get_link,
        .get_regs_len        = aq_ethtool_get_regs_len,
        .set_rxfh            = aq_ethtool_set_rss,
        .get_rxnfc           = aq_ethtool_get_rxnfc,
        .set_rxnfc           = aq_ethtool_set_rxnfc,
+       .get_msglevel        = aq_get_msg_level,
+       .set_msglevel        = aq_set_msg_level,
        .get_sset_count      = aq_ethtool_get_sset_count,
        .get_ethtool_stats   = aq_ethtool_stats,
        .get_link_ksettings  = aq_ethtool_get_link_ksettings,
 
                return err;
 
        if (self->link_status.mbps != self->aq_hw->aq_link_status.mbps) {
-               pr_info("%s: link change old %d new %d\n",
-                       AQ_CFG_DRV_NAME, self->link_status.mbps,
-                       self->aq_hw->aq_link_status.mbps);
+               netdev_info(self->ndev, "%s: link change old %d new %d\n",
+                           AQ_CFG_DRV_NAME, self->link_status.mbps,
+                           self->aq_hw->aq_link_status.mbps);
                aq_nic_update_interrupt_moderation_settings(self);
 
                if (self->aq_ptp) {
        self->ndev->priv_flags = aq_hw_caps->hw_priv_flags;
        self->ndev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
 
+       self->msg_enable = NETIF_MSG_DRV | NETIF_MSG_LINK;
        self->ndev->mtu = aq_nic_cfg->mtu - ETH_HLEN;
        self->ndev->max_mtu = aq_hw_caps->mtu - ETH_FCS_LEN - ETH_HLEN;