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

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

Merge "msm: ipa2: Add change to fix ipa padding"

parents 14919b3d b68bb0aa
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -87,6 +87,28 @@ config IPA3
	  Kernel and user-space processes can call the IPA driver
	  to configure IPA core.

config IPA
	tristate "IPA support"
	depends on SPS && NET
	help
          This driver supports the Internet Packet Accelerator (IPA3) core.
          IPA is a programmable protocol processor HW block.
          It is designed to support generic HW processing of UL/DL IP packets
          for various use cases independent of radio technology.
          The driver support client connection and configuration
          for the IPA core.
          Kernel and user-space processes can call the IPA driver
          to configure IPA core.

config RMNET_IPA
	tristate "IPA RMNET WWAN Network Device"
	depends on IPA && QCOM_QMI_HELPERS
	help
	  This WWAN Network Driver implements network stack class device.
	  It supports Embedded data transfer from A7 to Q6. Configures IPA HW
	  for RmNet Data Driver and also exchange of QMI messages between
	  A7 and Q6 IPA-driver.

config IPA_DEBUG
	bool "IPA DEBUG for non-perf build"
	depends on IPA3
@@ -117,7 +139,7 @@ config RMNET_IPA3

config ECM_IPA
	tristate "STD ECM LAN Driver support"
	depends on IPA3
	depends on IPA || IPA3
	help
	  Enables LAN between applications processor and a tethered
	  host using the STD ECM protocol.
@@ -126,7 +148,7 @@ config ECM_IPA

config RNDIS_IPA
	tristate "RNDIS_IPA Network Interface Driver support"
	depends on IPA3
	depends on IPA || IPA3
	help
	  Enables LAN between applications processor and a tethered
	  host using the RNDIS protocol.
+5 −1
Original line number Diff line number Diff line
@@ -335,7 +335,7 @@ u8 *ipa_pad_to_32(u8 *dest)
		return dest;
	}

	i = (long)dest & 0x7;
	i = (long)dest & 0x3;

	if (i)
		for (j = 0; j < (4 - i); j++)
@@ -3187,6 +3187,10 @@ static int ipa_generic_plat_drv_probe(struct platform_device *pdev_p)

	/* call probe based on IPA HW version */
	switch (ipa_api_hw_type) {
	case IPA_HW_v2_6L:
		result = ipa_plat_drv_probe(pdev_p, ipa_api_ctrl,
			ipa_plat_drv_match);
		break;
	case IPA_HW_v3_0:
	case IPA_HW_v3_1:
	case IPA_HW_v3_5:
+20 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
 */

#include <linux/ipa_mhi.h>
@@ -12,6 +12,12 @@
#define _IPA_API_H_

struct ipa_api_controller {

	int (*ipa_connect)(const struct ipa_connect_params *in,
		struct ipa_sps_params *sps, u32 *clnt_hdl);

	int (*ipa_disconnect)(u32 clnt_hdl);

	int (*ipa_reset_endpoint)(u32 clnt_hdl);

	int (*ipa_clear_endpoint_delay)(u32 clnt_hdl);
@@ -484,6 +490,19 @@ struct ipa_api_controller {
	int (*ipa_get_prot_id)(enum ipa_client_type client);
};

#ifdef CONFIG_IPA
int ipa_plat_drv_probe(struct platform_device *pdev_p,
	struct ipa_api_controller *api_ctrl,
	const struct of_device_id *pdrv_match);
#else
static inline int ipa_plat_drv_probe(struct platform_device *pdev_p,
	struct ipa_api_controller *api_ctrl,
	const struct of_device_id *pdrv_match)
{
	return -ENODEV;
}
#endif /* (CONFIG_IPA) */

#ifdef CONFIG_IPA3
int ipa3_plat_drv_probe(struct platform_device *pdev_p,
	struct ipa_api_controller *api_ctrl,
+1 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
 */

#include <linux/ipa_mhi.h>
+130 −122

File changed.

Preview size limit exceeded, changes collapsed.

Loading