Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f35c05e1 authored by Utkarsh Saxena's avatar Utkarsh Saxena Committed by Gerrit - the friendly Code Review server
Browse files

ks8851: Change to hardware reset issue



Change for enabling timestamping from ethtool and
delay intorduced to properly set the gpio pin after
hard reset of the driver from io expander.

Change-Id: Iee5e5f839d72c7ba446805711b52d2da6a952566
Signed-off-by: default avatarUtkarsh Saxena <usaxena@codeaurora.org>
parent b806e9b3
Loading
Loading
Loading
Loading
+15 −7
Original line number Diff line number Diff line
@@ -825,13 +825,14 @@ static void ks8851_wrpkts3(struct ks8851_net *ks)
			dev->stats.tx_bytes += txb->len;
			dev->stats.tx_packets++;
			txb->tstamp = ktime_get();
			/* create clone for us to return on the Tx path */
			if (skb_shinfo(txb)->tx_flags & SKBTX_SW_TSTAMP &&
			    !(skb_shinfo(txb)->tx_flags & SKBTX_IN_PROGRESS)) {
				clone = skb_clone_sk(txb);
			if (clone) {
				memset(&hwtstamps, 0,
				       sizeof(struct skb_shared_hwtstamps));
				skb_complete_tx_timestamp(clone, &hwtstamps);
				if (clone)
					skb_complete_tx_timestamp(clone,
								  &hwtstamps);
			}

			dev_kfree_skb(txb);
		}
	}
@@ -1360,6 +1361,7 @@ static const struct ethtool_ops ks8851_ethtool_ops = {
	.get_eeprom_len	= ks8851_get_eeprom_len,
	.get_eeprom	= ks8851_get_eeprom,
	.set_eeprom	= ks8851_set_eeprom,
	.get_ts_info	= ethtool_op_get_ts_info,
};

/* MII interface controls */
@@ -1572,7 +1574,13 @@ static int ks8851_probe(struct spi_device *spi)
	if (gpio_is_valid(gpio)) {
		pr_debug("eth: spi reset GPIO set to 1\n");
		usleep_range(10000, 11000);
		gpio_direction_output(gpio, 0x1);
		ret = gpio_direction_output(gpio, 0x1);
		/**
		*To sustain the normal proble behavior after hard reset
		*delay needed to be introduced (depends on device conf)
		*/
		msleep(2000);
		pr_debug("ks8851:return value for reset is %d\n", ret);
	} else {
		pr_debug("[%s:]eth: spi reset GPIO is invalid\n", __func__);
	}