diff --git a/drivers/qtn/topaz/switch_emac.c b/drivers/qtn/topaz/switch_emac.c
index a1cd80b..bc5eb12 100644
--- a/drivers/qtn/topaz/switch_emac.c
+++ b/drivers/qtn/topaz/switch_emac.c
@@ -368,11 +368,44 @@
 	return tqe_tx(&ctl, skb2);
 }
 
+/*
+ * Google added code to attempt set the hardware MAC address for
+ * quantenna devices.
+ */
+static int topaz_set_hardware_mac(struct net_device *dev, void *p)
+{
+	int ret;
+	struct sockaddr *addr = p;
+	struct emac_common *privc = netdev_priv(dev);
+	uint32_t reg;
+
+	/* verify the dev is down */
+	ret = eth_prepare_mac_addr_change(dev, addr);
+	if (ret < 0)
+		return ret;
+
+	memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
+
+	/* set the hardware mac address based on code from emac_lib_init_mac */
+	reg = emac_rd(privc, EMAC_MAC_ADDR_CTRL);
+	emac_wr(privc, EMAC_MAC_ADDR_CTRL, reg & ~(MacAddr1Enable));
+	emac_wr(privc, EMAC_MAC_ADDR1_HIGH, *(u16 *)&dev->dev_addr[0]);
+	emac_wr(privc, EMAC_MAC_ADDR1_MED, *(u16 *)&dev->dev_addr[2]);
+	emac_wr(privc, EMAC_MAC_ADDR1_LOW, *(u16 *)&dev->dev_addr[4]);
+	emac_wr(privc, EMAC_MAC_ADDR_CTRL, reg | MacAddr1Enable);
+
+	emac_wr(privc, EMAC_MAC_FLOW_SA_HIGH, *(u16 *)&dev->dev_addr[0]);
+	emac_wr(privc, EMAC_MAC_FLOW_SA_MED, *(u16 *)&dev->dev_addr[2]);
+	emac_wr(privc, EMAC_MAC_FLOW_SA_LOW, *(u16 *)&dev->dev_addr[4]);
+
+	return 0;
+}
+
 static const struct net_device_ops topaz_emac_ndo = {
 	.ndo_open = topaz_emac_ndo_open,
 	.ndo_stop = topaz_emac_ndo_stop,
 	.ndo_start_xmit = topaz_emac_ndo_start_xmit,
-	.ndo_set_mac_address = eth_mac_addr,
+	.ndo_set_mac_address = topaz_set_hardware_mac,
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,7,0)
 	.ndo_set_rx_mode = emac_lib_set_rx_mode,
 #else
