 cddd459140
			
		
	
	cddd459140
	
	
	
		
			
			Add patches for linux-5.4. The patches are from NXP LSDK-20.04 release which was tagged LSDK-20.04-V5.4. https://source.codeaurora.org/external/qoriq/qoriq-components/linux/ For boards LS1021A-IOT, and Traverse-LS1043 which are not involved in LSDK, port the dts patches from 4.14. The patches are sorted into the following categories: 301-arch-xxxx 302-dts-xxxx 303-core-xxxx 701-net-xxxx 801-audio-xxxx 802-can-xxxx 803-clock-xxxx 804-crypto-xxxx 805-display-xxxx 806-dma-xxxx 807-gpio-xxxx 808-i2c-xxxx 809-jailhouse-xxxx 810-keys-xxxx 811-kvm-xxxx 812-pcie-xxxx 813-pm-xxxx 814-qe-xxxx 815-sata-xxxx 816-sdhc-xxxx 817-spi-xxxx 818-thermal-xxxx 819-uart-xxxx 820-usb-xxxx 821-vfio-xxxx Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
		
			
				
	
	
		
			95 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From bec2af878c58bbd12f9009948d4fc58ad9c7c1d3 Mon Sep 17 00:00:00 2001
 | |
| From: Ioana Radulescu <ruxandra.radulescu@nxp.com>
 | |
| Date: Fri, 5 May 2017 18:45:50 +0300
 | |
| Subject: [PATCH] dpaa2-eth: Add Tx shaping API
 | |
| 
 | |
| DPNIs can be configured to accept a maximum Tx rate and
 | |
| burst size. Add the MC API for controlling these parameters.
 | |
| 
 | |
| Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
 | |
| ---
 | |
|  drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h |  8 +++++++
 | |
|  drivers/net/ethernet/freescale/dpaa2/dpni.c     | 29 +++++++++++++++++++++++++
 | |
|  drivers/net/ethernet/freescale/dpaa2/dpni.h     | 15 +++++++++++++
 | |
|  3 files changed, 52 insertions(+)
 | |
| 
 | |
| --- a/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
 | |
| +++ b/drivers/net/ethernet/freescale/dpaa2/dpni-cmd.h
 | |
| @@ -315,6 +315,14 @@ struct dpni_rsp_get_link_state {
 | |
|  	__le64 options;
 | |
|  };
 | |
|  
 | |
| +struct dpni_cmd_set_tx_shaping {
 | |
| +	/* cmd word 0 */
 | |
| +	__le16 max_burst_size;
 | |
| +	__le16 pad[3];
 | |
| +	/* cmd word 1 */
 | |
| +	__le32 rate_limit;
 | |
| +};
 | |
| +
 | |
|  struct dpni_cmd_set_max_frame_length {
 | |
|  	__le16 max_frame_length;
 | |
|  };
 | |
| --- a/drivers/net/ethernet/freescale/dpaa2/dpni.c
 | |
| +++ b/drivers/net/ethernet/freescale/dpaa2/dpni.c
 | |
| @@ -926,6 +926,35 @@ int dpni_get_link_state(struct fsl_mc_io
 | |
|  }
 | |
|  
 | |
|  /**
 | |
| + * dpni_set_tx_shaping() - Set the transmit shaping
 | |
| + * @mc_io:	Pointer to MC portal's I/O object
 | |
| + * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 | |
| + * @token:	Token of DPNI object
 | |
| + * @tx_shaper:	Tx shaping configuration
 | |
| + *
 | |
| + * Return:	'0' on Success; Error code otherwise.
 | |
| + */
 | |
| +int dpni_set_tx_shaping(struct fsl_mc_io *mc_io,
 | |
| +			u32 cmd_flags,
 | |
| +			u16 token,
 | |
| +			const struct dpni_tx_shaping_cfg *tx_shaper)
 | |
| +{
 | |
| +	struct fsl_mc_command cmd = { 0 };
 | |
| +	struct dpni_cmd_set_tx_shaping *cmd_params;
 | |
| +
 | |
| +	/* prepare command */
 | |
| +	cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_TX_SHAPING,
 | |
| +					  cmd_flags,
 | |
| +					  token);
 | |
| +	cmd_params = (struct dpni_cmd_set_tx_shaping *)cmd.params;
 | |
| +	cmd_params->max_burst_size = cpu_to_le16(tx_shaper->max_burst_size);
 | |
| +	cmd_params->rate_limit = cpu_to_le32(tx_shaper->rate_limit);
 | |
| +
 | |
| +	/* send command to mc*/
 | |
| +	return mc_send_command(mc_io, &cmd);
 | |
| +}
 | |
| +
 | |
| +/**
 | |
|   * dpni_set_max_frame_length() - Set the maximum received frame length.
 | |
|   * @mc_io:	Pointer to MC portal's I/O object
 | |
|   * @cmd_flags:	Command flags; one or more of 'MC_CMD_FLAG_'
 | |
| --- a/drivers/net/ethernet/freescale/dpaa2/dpni.h
 | |
| +++ b/drivers/net/ethernet/freescale/dpaa2/dpni.h
 | |
| @@ -555,6 +555,21 @@ int dpni_get_link_state(struct fsl_mc_io
 | |
|  			u16			token,
 | |
|  			struct dpni_link_state	*state);
 | |
|  
 | |
| +/**
 | |
| + * struct dpni_tx_shaping - Structure representing DPNI tx shaping configuration
 | |
| + * @rate_limit: rate in Mbps
 | |
| + * @max_burst_size: burst size in bytes (up to 64KB)
 | |
| + */
 | |
| +struct dpni_tx_shaping_cfg {
 | |
| +	u32	rate_limit;
 | |
| +	u16	max_burst_size;
 | |
| +};
 | |
| +
 | |
| +int dpni_set_tx_shaping(struct fsl_mc_io			*mc_io,
 | |
| +			u32					cmd_flags,
 | |
| +			u16					token,
 | |
| +			const struct dpni_tx_shaping_cfg	*tx_shaper);
 | |
| +
 | |
|  int dpni_set_max_frame_length(struct fsl_mc_io	*mc_io,
 | |
|  			      u32		cmd_flags,
 | |
|  			      u16		token,
 |