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

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

Merge "usb: qti_gadget: Select LLCC TCM memory for USB RMNET IN buffers"

parents 31452fbe dddcd912
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -3010,6 +3010,15 @@ static void gsi_get_ether_addr(const char *str, u8 *dev_addr)
	random_ether_addr(dev_addr);
}

void rmnet_gsi_update_in_buffer_mem_type(struct usb_function *f, bool use_tcm)
{
	struct f_gsi *gsi = func_to_gsi(f);

	if (gsi && gsi->prot_id == IPA_USB_RMNET)
		gsi->rmnet_use_tcm_mem = use_tcm;
}
EXPORT_SYMBOL(rmnet_gsi_update_in_buffer_mem_type);

static int gsi_bind(struct usb_configuration *c, struct usb_function *f)
{
	struct usb_composite_dev *cdev = c->cdev;
+11 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
#include <linux/platform_device.h>
#include <linux/of.h>
#include <linux/kernel.h>
#include <linux/usb/dwc3-msm.h>

struct qti_usb_function {
	struct usb_function_instance *fi;
@@ -322,6 +323,16 @@ static int qti_usb_func_alloc(struct qti_usb_config *qcfg,
		memcpy(cdev->qw_sign, qw_sign, QW_SIGN_LEN);
	}

#if IS_ENABLED(CONFIG_USB_F_GSI)
	struct qti_usb_gadget *qg;

	if (!strcmp(instance_name, "rmnet")) {
		qg = container_of(cdev, struct qti_usb_gadget, cdev);
		rmnet_gsi_update_in_buffer_mem_type(f,
			of_property_read_bool(qg->cfg_node,
				"qcom,rmnet_in_use_tcm_mem"));
	}
#endif
	return 0;
}

+8 −0
Original line number Diff line number Diff line
@@ -164,4 +164,12 @@ static bool __maybe_unused usb_get_remote_wakeup_status(struct usb_gadget *gadge
{ return false; }
#endif

#if IS_ENABLED(CONFIG_USB_F_GSI)
void rmnet_gsi_update_in_buffer_mem_type(struct usb_function *f, bool use_tcm);
#else
static inline __maybe_unused void rmnet_gsi_update_in_buffer_mem_type(
		struct usb_function *f, bool use_tcm)
{ }
#endif

#endif /* __LINUX_USB_DWC3_MSM_H */