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

Commit 5de862d7 authored by Andrzej Pietrasiewicz's avatar Andrzej Pietrasiewicz Committed by Felipe Balbi
Browse files

usb: gadget: f_mass_storage: create fsg_common_run_thread for use in fsg_common_init



fsg_common_init is a lengthy function. Factor a portion of it out.

Signed-off-by: default avatarAndrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarMichal Nazarewicz <mina86@mina86.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent 23682e3c
Loading
Loading
Loading
Loading
+21 −11
Original line number Original line Diff line number Diff line
@@ -2996,6 +2996,24 @@ void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
		 i);
		 i);
}
}


int fsg_common_run_thread(struct fsg_common *common)
{
	common->state = FSG_STATE_IDLE;
	/* Tell the thread to start working */
	common->thread_task =
		kthread_create(fsg_main_thread, common, "file-storage");
	if (IS_ERR(common->thread_task)) {
		common->state = FSG_STATE_TERMINATED;
		return PTR_ERR(common->thread_task);
	}

	DBG(common, "I/O thread pid: %d\n", task_pid_nr(common->thread_task));

	wake_up_process(common->thread_task);

	return 0;
}

struct fsg_common *fsg_common_init(struct fsg_common *common,
struct fsg_common *fsg_common_init(struct fsg_common *common,
				   struct usb_composite_dev *cdev,
				   struct usb_composite_dev *cdev,
				   struct fsg_config *cfg)
				   struct fsg_config *cfg)
@@ -3032,21 +3050,13 @@ struct fsg_common *fsg_common_init(struct fsg_common *common,


	fsg_common_set_inquiry_string(common, cfg->vendor_name,
	fsg_common_set_inquiry_string(common, cfg->vendor_name,
				      cfg->product_name);
				      cfg->product_name);
	/* Tell the thread to start working */
	common->thread_task =
		kthread_create(fsg_main_thread, common, "file-storage");
	if (IS_ERR(common->thread_task)) {
		rc = PTR_ERR(common->thread_task);
		goto error_release;
	}


	/* Information */
	/* Information */
	INFO(common, FSG_DRIVER_DESC ", version: " FSG_DRIVER_VERSION "\n");
	INFO(common, FSG_DRIVER_DESC ", version: " FSG_DRIVER_VERSION "\n");
	INFO(common, "Number of LUNs=%d\n", common->nluns);

	DBG(common, "I/O thread pid: %d\n", task_pid_nr(common->thread_task));


	wake_up_process(common->thread_task);
	rc = fsg_common_run_thread(common);
	if (rc)
		goto error_release;


	return common;
	return common;


+2 −0
Original line number Original line Diff line number Diff line
@@ -126,6 +126,8 @@ int fsg_common_create_luns(struct fsg_common *common, struct fsg_config *cfg);
void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
				   const char *pn);
				   const char *pn);


int fsg_common_run_thread(struct fsg_common *common);

void fsg_config_from_params(struct fsg_config *cfg,
void fsg_config_from_params(struct fsg_config *cfg,
			    const struct fsg_module_parameters *params,
			    const struct fsg_module_parameters *params,
			    unsigned int fsg_num_buffers);
			    unsigned int fsg_num_buffers);