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

Commit b8d5c5dd authored by Hemant Kumar's avatar Hemant Kumar
Browse files

usb: gadget: Initialize QTI control driver from rmnet function



QTI control driver is initialized as part of module_init. This
creates misc device upon boot up. Move the driver initialization
sequence to rmnet function driver initialization so that new QTI
control driver can create same misc device in its new function
driver initialization.

Change-Id: I627f4af0c9b3550c5e05b7e9d3f7873b37c069e0
Signed-off-by: default avatarHemant Kumar <hemantk@codeaurora.org>
parent b245a027
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -864,6 +864,12 @@ static char qdss_xport_names[MAX_XPORT_STR_LEN];
/*qdss debug interface setting 0: disable   1:enable */
static bool qdss_debug_intf;

static int rmnet_function_init(struct android_usb_function *f,
		struct usb_composite_dev *cdev)
{
	return rmnet_init();
}

static void rmnet_function_cleanup(struct android_usb_function *f)
{
	frmnet_cleanup();
@@ -979,6 +985,7 @@ static struct device_attribute *rmnet_function_attributes[] = {

static struct android_usb_function rmnet_function = {
	.name		= "rmnet",
	.init		= rmnet_function_init,
	.cleanup	= rmnet_function_cleanup,
	.bind_config	= rmnet_function_bind_config,
	.unbind_config	= rmnet_function_unbind_config,
+7 −0
Original line number Diff line number Diff line
@@ -1352,10 +1352,17 @@ static void frmnet_unbind_config(void)
		}
}

static int rmnet_init(void)
{
	return gqti_ctrl_init();
}

static void frmnet_cleanup(void)
{
	int i;

	gqti_ctrl_cleanup();

	for (i = 0; i < nr_rmnet_ports; i++)
		kfree(rmnet_ports[i].port);

+2 −4
Original line number Diff line number Diff line
@@ -760,7 +760,7 @@ static const struct file_operations dpl_qti_ctrl_fops = {
	.poll = qti_ctrl_poll,
};

static int __init gqti_ctrl_init(void)
int gqti_ctrl_init(void)
{
	int ret, i, sz = QTI_CTRL_NAME_LEN;
	struct qti_ctrl_port *port = NULL;
@@ -823,9 +823,8 @@ fail_init:
	}
	return ret;
}
module_init(gqti_ctrl_init);

static void __exit gqti_ctrl_cleanup(void)
void gqti_ctrl_cleanup(void)
{
	int i;

@@ -836,4 +835,3 @@ static void __exit gqti_ctrl_cleanup(void)
	}
	qti_ctrl_debugfs_exit();
}
module_exit(gqti_ctrl_cleanup);
+2 −0
Original line number Diff line number Diff line
@@ -123,6 +123,8 @@ void ghsic_data_disconnect(void *, int);
int ghsic_data_setup(unsigned int, enum gadget_type);
void ghsic_data_set_port_name(const char *, const char *);

int gqti_ctrl_init(void);
void gqti_ctrl_cleanup(void);
int gqti_ctrl_connect(void *gr, u8 port_num, unsigned intf,
		enum transport_type dxport, enum gadget_type gtype);
void gqti_ctrl_disconnect(void *gr, u8 port_num);