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

Commit f7b303f9 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "data-kernel: EMAC: Resolve PPS ioctl call issue"

parents 8e90ce01 f4d187ec
Loading
Loading
Loading
Loading
+18 −10
Original line number Diff line number Diff line
@@ -5406,6 +5406,9 @@ static int DWC_ETH_QOS_handle_prv_ioctl(struct DWC_ETH_QOS_prv_data *pdata,
	struct hw_if_struct *hw_if = &pdata->hw_if;
	struct net_device *dev = pdata->dev;
	int ret = 0;
#ifdef CONFIG_PPS_OUTPUT
	struct ETH_PPS_Config eth_pps_cfg;
#endif

	DBGPR("-->DWC_ETH_QOS_handle_prv_ioctl\n");

@@ -5779,6 +5782,13 @@ static int DWC_ETH_QOS_handle_prv_ioctl(struct DWC_ETH_QOS_prv_data *pdata,

#ifdef CONFIG_PPS_OUTPUT
	case DWC_ETH_QOS_CONFIG_PTPCLK_CMD:

		if (copy_from_user(&eth_pps_cfg, req->ptr,
			sizeof(struct ETH_PPS_Config))) {
			return -EFAULT;
		}
		req->ptr = &eth_pps_cfg;

		if(pdata->hw_feat.pps_out_num == 0)
			ret = -EOPNOTSUPP;
		else
@@ -5786,6 +5796,13 @@ static int DWC_ETH_QOS_handle_prv_ioctl(struct DWC_ETH_QOS_prv_data *pdata,
		break;

	case DWC_ETH_QOS_CONFIG_PPSOUT_CMD:

		if (copy_from_user(&eth_pps_cfg, req->ptr,
			sizeof(struct ETH_PPS_Config))) {
			return -EFAULT;
		}
		req->ptr = &eth_pps_cfg;

		if(pdata->hw_feat.pps_out_num == 0)
			ret = -EOPNOTSUPP;
		else
@@ -6147,9 +6164,7 @@ static int DWC_ETH_QOS_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{
	struct DWC_ETH_QOS_prv_data *pdata = netdev_priv(dev);
	struct ifr_data_struct req;
#ifdef CONFIG_PPS_OUTPUT
	struct ETH_PPS_Config eth_pps_cfg;
#endif

	struct mii_ioctl_data *data = if_mii(ifr);
	unsigned int reg_val = 0;
	int ret = 0;
@@ -6191,13 +6206,6 @@ static int DWC_ETH_QOS_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
	   if (copy_from_user(&req, ifr->ifr_ifru.ifru_data,
			   sizeof(struct ifr_data_struct)))
			return -EFAULT;
#ifdef CONFIG_PPS_OUTPUT
		if (copy_from_user(&eth_pps_cfg, req.ptr,
			sizeof(struct ETH_PPS_Config))) {
			return -EFAULT;
		}
		req.ptr = &eth_pps_cfg;
#endif
		ret = DWC_ETH_QOS_handle_prv_ioctl(pdata, &req);
		req.command_error = ret;