i40e: enable mc magic pkt wakeup during power down
authorJoshua Hay <joshua.a.hay@intel.com>
Mon, 12 Dec 2016 23:44:08 +0000 (15:44 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sun, 19 Feb 2017 04:35:35 +0000 (20:35 -0800)
commit1d68005db4e72082f3e537d6c0cf831a71a7e2ee
treed684ebc52aa2ed3994c5d30420262678f2ba73f1
parenta410c821c0cf50bc0b73a91435852cd04b2c7acd
i40e: enable mc magic pkt wakeup during power down

This patch adds a call to the mac_address_write admin q function during
power down to update the PRTPM_SAH/SAL registers with the MC_MAG_EN bit
thus enabling multicast magic packet wakeup.

A FW workaround is needed to write the multicast magic wake up enable
bit in the PRTPM_SAH register. The FW expects the mac address write
admin q cmd to be called first with one of the WRITE_TYPE_LAA flags
and then with the multicast relevant flags.

*Note: This solution only works for X722 devices currently. A PFR will
clear the previously mentioned bit by default, but X722 has support for a
WOL_PRESERVE_ON_PFR flag which prevents the bit from being cleared. Once
other devices support this flag, this solution should work as well.

Change-ID: I51bd5b8535bd9051c2676e27c999c1657f786827
Signed-off-by: Joshua Hay <joshua.a.hay@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e.h
drivers/net/ethernet/intel/i40e/i40e_adminq_cmd.h
drivers/net/ethernet/intel/i40e/i40e_main.c