Staging: hv: hv_mouse: unwind the initialization process a bit
This unwinds the init call sequence a bit, as we don't need a callback pointer for a function that is already in this file. Cc: Hank Janssen <hjanssen@microsoft.com> Cc: K. Y. Srinivasan <kys@microsoft.com> Cc: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
@@ -62,11 +62,6 @@ struct mousevsc_drv_obj {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Interface
|
|
||||||
*/
|
|
||||||
int mouse_vsc_initialize(struct hv_driver *drv);
|
|
||||||
|
|
||||||
/* The maximum size of a synthetic input message. */
|
/* The maximum size of a synthetic input message. */
|
||||||
#define SYNTHHID_MAX_INPUT_REPORT_SIZE 16
|
#define SYNTHHID_MAX_INPUT_REPORT_SIZE 16
|
||||||
|
|
||||||
@@ -347,16 +342,7 @@ static inline struct mousevsc_dev *FinalReleaseInputDevice(struct hv_device *Dev
|
|||||||
return inputDevice;
|
return inputDevice;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
static int mouse_vsc_initialize(struct hv_driver *Driver)
|
||||||
*
|
|
||||||
* Name:
|
|
||||||
* MousevscInitialize()
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Main entry point
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
int mouse_vsc_initialize(struct hv_driver *Driver)
|
|
||||||
{
|
{
|
||||||
struct mousevsc_drv_obj *inputDriver =
|
struct mousevsc_drv_obj *inputDriver =
|
||||||
(struct mousevsc_drv_obj *)Driver;
|
(struct mousevsc_drv_obj *)Driver;
|
||||||
@@ -1054,39 +1040,6 @@ void mousevsc_reportdesc_callback(struct hv_device *dev, void *packet, u32 len)
|
|||||||
kfree(hid_dev);
|
kfree(hid_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Name: mousevsc_drv_init()
|
|
||||||
*
|
|
||||||
* Desc: Driver initialization.
|
|
||||||
*/
|
|
||||||
int mousevsc_drv_init(int (*pfn_drv_init)(struct hv_driver *pfn_drv_init))
|
|
||||||
{
|
|
||||||
int ret = 0;
|
|
||||||
struct mousevsc_drv_obj *input_drv_obj = &g_mousevsc_drv.drv_obj;
|
|
||||||
struct driver_context *drv_ctx = &g_mousevsc_drv.drv_ctx;
|
|
||||||
|
|
||||||
input_drv_obj->OnDeviceInfo = mousevsc_deviceinfo_callback;
|
|
||||||
input_drv_obj->OnInputReport = mousevsc_inputreport_callback;
|
|
||||||
input_drv_obj->OnReportDescriptor = mousevsc_reportdesc_callback;
|
|
||||||
|
|
||||||
/* Callback to client driver to complete the initialization */
|
|
||||||
pfn_drv_init(&input_drv_obj->Base);
|
|
||||||
|
|
||||||
drv_ctx->driver.name = input_drv_obj->Base.name;
|
|
||||||
memcpy(&drv_ctx->class_id, &input_drv_obj->Base.dev_type,
|
|
||||||
sizeof(struct hv_guid));
|
|
||||||
|
|
||||||
drv_ctx->probe = mousevsc_probe;
|
|
||||||
drv_ctx->remove = mousevsc_remove;
|
|
||||||
|
|
||||||
/* The driver belongs to vmbus */
|
|
||||||
vmbus_child_driver_register(drv_ctx);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int mousevsc_drv_exit_cb(struct device *dev, void *data)
|
int mousevsc_drv_exit_cb(struct device *dev, void *data)
|
||||||
{
|
{
|
||||||
struct device **curr = (struct device **)data;
|
struct device **curr = (struct device **)data;
|
||||||
@@ -1130,13 +1083,29 @@ void mousevsc_drv_exit(void)
|
|||||||
|
|
||||||
static int __init mousevsc_init(void)
|
static int __init mousevsc_init(void)
|
||||||
{
|
{
|
||||||
int ret;
|
struct mousevsc_drv_obj *input_drv_obj = &g_mousevsc_drv.drv_obj;
|
||||||
|
struct driver_context *drv_ctx = &g_mousevsc_drv.drv_ctx;
|
||||||
|
|
||||||
DPRINT_INFO(INPUTVSC_DRV, "Hyper-V Mouse driver initializing.");
|
DPRINT_INFO(INPUTVSC_DRV, "Hyper-V Mouse driver initializing.");
|
||||||
|
|
||||||
ret = mousevsc_drv_init(mouse_vsc_initialize);
|
input_drv_obj->OnDeviceInfo = mousevsc_deviceinfo_callback;
|
||||||
|
input_drv_obj->OnInputReport = mousevsc_inputreport_callback;
|
||||||
|
input_drv_obj->OnReportDescriptor = mousevsc_reportdesc_callback;
|
||||||
|
|
||||||
return ret;
|
/* Callback to client driver to complete the initialization */
|
||||||
|
mouse_vsc_initialize(&input_drv_obj->Base);
|
||||||
|
|
||||||
|
drv_ctx->driver.name = input_drv_obj->Base.name;
|
||||||
|
memcpy(&drv_ctx->class_id, &input_drv_obj->Base.dev_type,
|
||||||
|
sizeof(struct hv_guid));
|
||||||
|
|
||||||
|
drv_ctx->probe = mousevsc_probe;
|
||||||
|
drv_ctx->remove = mousevsc_remove;
|
||||||
|
|
||||||
|
/* The driver belongs to vmbus */
|
||||||
|
vmbus_child_driver_register(drv_ctx);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __exit mousevsc_exit(void)
|
static void __exit mousevsc_exit(void)
|
||||||
|
Reference in New Issue
Block a user