static void __exit diagchar_exit(void) { printk(KERN_INFO "diagchar exiting ..\n"); diagmem_exit(driver); diagfwd_exit(); diagchar_cleanup(); printk(KERN_INFO "done diagchar exit\n"); }
static void __exit diagchar_exit(void) { printk(KERN_INFO "diagchar exiting ..\n"); /* On Driver exit, send special pool type to ensure no memory leaks */ diagmem_exit(driver, POOL_TYPE_ALL); diagfwd_exit(); diagchar_cleanup(); printk(KERN_INFO "done diagchar exit\n"); }
static void __exit diagchar_exit(void) { DIAG_INFO("diagchar exiting ..\n"); /* On Driver exit, send special pool type to ensure no memory leaks */ diagmem_exit(driver, POOL_TYPE_ALL); diagfwd_exit(); #if defined(CONFIG_ARCH_MSM8X60_LTE) diagfwd_sdio_exit(); #endif diagchar_cleanup(); DIAG_INFO("done diagchar exit\n"); }
static void __exit diagchar_exit(void) { printk(KERN_INFO "diagchar exiting ..\n"); /* On Driver exit, send special pool type to ensure no memory leaks */ diagmem_exit(driver, POOL_TYPE_ALL); diagfwd_exit(); if (chk_config_get_id() == AO8960_TOOLS_ID) diagfwd_cntl_exit(); diag_sdio_fn(EXIT); diagchar_cleanup(); printk(KERN_INFO "done diagchar exit\n"); }
static void diagchar_exit(void) { printk(KERN_INFO "diagchar exiting ..\n"); /* On Driver exit, send special pool type to ensure no memory leaks */ diagmem_exit(driver, POOL_TYPE_ALL); diagfwd_exit(); diagfwd_cntl_exit(); diag_sdio_fn(EXIT); diag_bridge_fn(EXIT); diag_debugfs_cleanup(); diagchar_cleanup(); printk(KERN_INFO "done diagchar exit\n"); }
static void __exit diagchar_exit(void) { printk(KERN_INFO "diagchar exiting ..\n"); /* On Driver exit, send special pool type to ensure no memory leaks */ diagmem_exit(driver, POOL_TYPE_ALL); diagfwd_exit(); #ifdef CONFIG_DIAG_SDIO_PIPE if (machine_is_msm8x60_charm_surf() || machine_is_msm8x60_charm_ffa()) diagfwd_sdio_exit(); #endif diagchar_cleanup(); printk(KERN_INFO "done diagchar exit\n"); }
static void __exit diagchar_exit(void) { printk(KERN_INFO "diagchar exiting ..\n"); /* On Driver exit, send special pool type to ensure no memory leaks */ diagmem_exit(driver, POOL_TYPE_ALL); diagfwd_exit(); #ifdef CONFIG_HUAWEI_FEATURE_PHUDIAG phudiag_exit(); #endif diagfwd_cntl_exit(); diag_sdio_fn(EXIT); diagchar_cleanup(); printk(KERN_INFO "done diagchar exit\n"); }
static int __init diagchar_init(void) { dev_t dev; int error; pr_debug("diagfwd initializing ..\n"); driver = kzalloc(sizeof(struct diagchar_dev) + 5, GFP_KERNEL); if (driver) { driver->used = 0; timer_in_progress = 0; driver->debug_flag = 1; setup_timer(&drain_timer, drain_timer_func, 1234); driver->itemsize = itemsize; driver->poolsize = poolsize; driver->itemsize_hdlc = itemsize_hdlc; driver->poolsize_hdlc = poolsize_hdlc; driver->itemsize_write_struct = itemsize_write_struct; driver->poolsize_write_struct = poolsize_write_struct; driver->num_clients = max_clients; driver->logging_mode = USB_MODE; driver->mask_check = 0; mutex_init(&driver->diagchar_mutex); init_waitqueue_head(&driver->wait_q); #ifdef CONFIG_HUAWEI_FEATURE_PHUDIAG printk(KERN_INFO "Entering phudiag ..\n"); phudiag_init(); printk(KERN_INFO "diagchar initialized!\n"); #endif INIT_WORK(&(driver->diag_drain_work), diag_drain_work_fn); INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn); INIT_WORK(&(driver->diag_read_smd_cntl_work), diag_read_smd_cntl_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_work), diag_read_smd_qdsp_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_cntl_work), diag_read_smd_qdsp_cntl_work_fn); INIT_WORK(&(driver->diag_read_smd_wcnss_work), diag_read_smd_wcnss_work_fn); INIT_WORK(&(driver->diag_read_smd_wcnss_cntl_work), diag_read_smd_wcnss_cntl_work_fn); diagfwd_init(); diagfwd_cntl_init(); diag_sdio_fn(INIT); diag_hsic_fn(INIT); pr_debug("diagchar initializing ..\n"); driver->num = 1; driver->name = ((void *)driver) + sizeof(struct diagchar_dev); strlcpy(driver->name, "diag", 4); /* Get major number from kernel and initialize */ error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, driver->name); if (!error) { driver->major = MAJOR(dev); driver->minor_start = MINOR(dev); } else { printk(KERN_INFO "Major number not allocated\n"); goto fail; } driver->cdev = cdev_alloc(); error = diagchar_setup_cdev(dev); if (error) goto fail; } else { printk(KERN_INFO "kzalloc failed\n"); goto fail; } pr_info("diagchar initialized now"); return 0; fail: diagchar_cleanup(); diagfwd_exit(); diagfwd_cntl_exit(); diag_sdio_fn(EXIT); diag_hsic_fn(EXIT); return -1; }
static int __init diagchar_init(void) { dev_t dev; int error; printk(KERN_INFO "diagfwd initializing ..\n"); driver = kzalloc(sizeof(struct diagchar_dev) + 5, GFP_KERNEL); if (driver) { driver->used = 0; timer_in_progress = 0; driver->debug_flag = 1; driver->display_alert = 1; setup_timer(&drain_timer, drain_timer_func, 1234); driver->itemsize = itemsize; driver->poolsize = poolsize; driver->itemsize_hdlc = itemsize_hdlc; driver->poolsize_hdlc = poolsize_hdlc; driver->itemsize_usb_struct = itemsize_usb_struct; driver->poolsize_usb_struct = poolsize_usb_struct; driver->num_clients = max_clients; driver->logging_mode = USB_MODE; mutex_init(&driver->diagchar_mutex); init_waitqueue_head(&driver->wait_q); diagfwd_init(); INIT_WORK(&(driver->diag_drain_work), diag_drain_work_fn); INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_work), diag_read_smd_qdsp_work_fn); printk(KERN_INFO "diagchar initializing ..\n"); driver->num = 1; driver->name = ((void *)driver) + sizeof(struct diagchar_dev); strlcpy(driver->name, "diag", 4); /* Get major number from kernel and initialize */ error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, driver->name); if (!error) { driver->major = MAJOR(dev); driver->minor_start = MINOR(dev); } else { printk(KERN_INFO "Major number not allocated\n"); goto fail; } driver->cdev = cdev_alloc(); error = diagchar_setup_cdev(dev); if (error) goto fail; } else { printk(KERN_INFO "kzalloc failed\n"); goto fail; } printk(KERN_INFO "diagchar initialized\n"); /* LGE_CHANGES_S [[email protected]] 2009-12-29, [VS740] kernel diag service */ #if defined (CONFIG_LGE_DIAGTEST) platform_driver_register(&lg_diag_cmd_driver); lgfw_diag_kernel_service_init((int)driver); #endif /* LGE_CHANGES_E [[email protected]] 2009-12-29, [VS740] */ return 0; fail: diagchar_cleanup(); diagfwd_exit(); return -1; }
static int __init diagchar_init(void) { dev_t dev; int error; #ifdef CONFIG_FIH_FXX diag_char_debug_mask = *(uint32_t*)DIAGCHAR_DEBUG_MASK_OFFSET; fih_printk(diag_char_debug_mask, FIH_DEBUG_ZONE_G0, KERN_INFO "diagchar initializing ..\n"); #else printk(KERN_INFO "diagfwd initializing ..\n"); #endif driver = kzalloc(sizeof(struct diagchar_dev) + 5, GFP_KERNEL); if (driver) { driver->used = 0; timer_in_progress = 0; driver->debug_flag = 1; setup_timer(&drain_timer, drain_timer_func, 1234); driver->itemsize = itemsize; driver->poolsize = poolsize; driver->itemsize_hdlc = itemsize_hdlc; driver->poolsize_hdlc = poolsize_hdlc; driver->itemsize_usb_struct = itemsize_usb_struct; driver->poolsize_usb_struct = poolsize_usb_struct; driver->num_clients = max_clients; driver->logging_mode = USB_MODE; mutex_init(&driver->diagchar_mutex); init_waitqueue_head(&driver->wait_q); fih_printk(diag_char_debug_mask, FIH_DEBUG_ZONE_G0, KERN_INFO "diagfwd initializing ..\n"); diagfwd_init(); INIT_WORK(&(driver->diag_drain_work), diag_drain_work_fn); INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_work), diag_read_smd_qdsp_work_fn); #ifdef CONFIG_FIH_FXX fih_printk(diag_char_debug_mask, FIH_DEBUG_ZONE_G0, KERN_INFO "diagfwd initializing ..\n"); #else printk(KERN_INFO "diagchar initializing ..\n"); #endif driver->num = 1; driver->name = ((void *)driver) + sizeof(struct diagchar_dev); strlcpy(driver->name, "diag", 4); /* Get major number from kernel and initialize */ error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, driver->name); if (!error) { driver->major = MAJOR(dev); driver->minor_start = MINOR(dev); } else { printk(KERN_INFO "Major number not allocated\n"); goto fail; } driver->cdev = cdev_alloc(); error = diagchar_setup_cdev(dev); if (error) goto fail; } else { printk(KERN_INFO "kzalloc failed\n"); goto fail; } printk(KERN_INFO "diagchar initialized\n"); return 0; fail: diagchar_cleanup(); diagfwd_exit(); return -1; }
static int __init diagchar_init(void) { dev_t dev; int error; DIAG_INFO("%s:%s(parent:%s): tgid=%d\n", __func__, current->comm, current->parent->comm, current->tgid); driver = kzalloc(sizeof(struct diagchar_dev) + 5, GFP_KERNEL); if (driver) { driver->enable_sd_log = (void *)0; driver->used = 0; timer_in_progress = 0; driver->debug_flag = 1; setup_timer(&drain_timer, drain_timer_func, 1234); driver->itemsize = itemsize; driver->poolsize = poolsize; driver->itemsize_hdlc = itemsize_hdlc; driver->poolsize_hdlc = poolsize_hdlc; driver->itemsize_write_struct = itemsize_write_struct; driver->poolsize_write_struct = poolsize_write_struct; driver->num_clients = max_clients; driver->logging_mode = USB_MODE; mutex_init(&driver->diagchar_mutex); init_waitqueue_head(&driver->wait_q); wake_lock_init(&driver->wake_lock, WAKE_LOCK_SUSPEND, "diagchar"); INIT_WORK(&(driver->diag_drain_work), diag_drain_work_fn); INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_work), diag_read_smd_qdsp_work_fn); DIAG_INFO("diagchar initializing ..\n"); #if defined(CONFIG_MACH_MECHA) INIT_WORK(&(driver->diag_read_smd_mdm_work), sdio_diag_read_data); driver->in_busy_mdm_1 = 0; driver->in_busy_mdm_2 = 0; #endif #if defined(CONFIG_MACH_MECHA) || defined(CONFIG_ARCH_MSM8X60_LTE) driver->num_mdmclients = 1; init_waitqueue_head(&driver->mdmwait_q); spin_lock_init(&driver->diagchar_lock); mutex_init(&driver->diagcharmdm_mutex); driver->num = 2; #else driver->num = 1; #endif mdm_diag = diagfwd_init(); driver->name = ((void *)driver) + sizeof(struct diagchar_dev); strlcpy(driver->name, "diag", 4); /* Get major number from kernel and initialize */ error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, driver->name); if (!error) { driver->major = MAJOR(dev); driver->minor_start = MINOR(dev); } else { DIAG_ERR("Major number not allocated\n"); goto fail; } driver->cdev = cdev_alloc(); #if defined(CONFIG_MACH_MECHA) || defined(CONFIG_ARCH_MSM8X60_LTE) driver->cdev_mdm = cdev_alloc(); #endif error = diagchar_setup_cdev(dev); if (error) goto fail; } else { DIAG_ERR("kzalloc failed\n"); goto fail; } DIAG_INFO("diagchar initialized\n"); return 0; fail: diagchar_cleanup(); diagfwd_exit(); return -1; }
static int __init diagchar_init(void) { dev_t dev; int error; DIAG_INFO("diagfwd initializing ..\n"); driver = kzalloc(sizeof(struct diagchar_dev) + 5, GFP_KERNEL); if (driver) { driver->used = 0; timer_in_progress = 0; driver->debug_flag = 1; setup_timer(&drain_timer, drain_timer_func, 1234); driver->itemsize = itemsize; driver->poolsize = poolsize; driver->itemsize_hdlc = itemsize_hdlc; driver->poolsize_hdlc = poolsize_hdlc; driver->itemsize_write_struct = itemsize_write_struct; driver->poolsize_write_struct = poolsize_write_struct; driver->num_clients = max_clients; driver->logging_mode = USB_MODE; mutex_init(&driver->diagchar_mutex); init_waitqueue_head(&driver->wait_q); wake_lock_init(&driver->wake_lock, WAKE_LOCK_SUSPEND, "diagchar"); INIT_WORK(&(driver->diag_drain_work), diag_drain_work_fn); INIT_WORK(&(driver->diag_read_smd_work), diag_read_smd_work_fn); INIT_WORK(&(driver->diag_read_smd_cntl_work), diag_read_smd_cntl_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_work), diag_read_smd_qdsp_work_fn); INIT_WORK(&(driver->diag_read_smd_qdsp_cntl_work), diag_read_smd_qdsp_cntl_work_fn); INIT_WORK(&(driver->diag_read_smd_wcnss_work), diag_read_smd_wcnss_work_fn); INIT_WORK(&(driver->diag_read_smd_wcnss_cntl_work), diag_read_smd_wcnss_cntl_work_fn); #if defined(CONFIG_MACH_MECHA) INIT_WORK(&(driver->diag_read_smd_mdm_work), sdio_diag_read_data); driver->in_busy_mdm_1 = 0; driver->in_busy_mdm_2 = 0; #endif #ifdef CONFIG_DIAG_SDIO_PIPE driver->num_mdmclients = 1; init_waitqueue_head(&driver->mdmwait_q); spin_lock_init(&driver->diagchar_lock); mutex_init(&driver->diagcharmdm_mutex); driver->num = 2; #else driver->num = 1; #endif diagfwd_init(); if (chk_config_get_id() == AO8960_TOOLS_ID) { diagfwd_cntl_init(); DIAGFWD_INFO("CNTL channel was enabled in the platform\n"); } else DIAGFWD_INFO("CNTL channel was not enabled in the platform\n"); diag_sdio_fn(INIT); pr_debug("diagchar initializing ..\n"); driver->name = ((void *)driver) + sizeof(struct diagchar_dev); strlcpy(driver->name, "diag", 4); /* Get major number from kernel and initialize */ error = alloc_chrdev_region(&dev, driver->minor_start, driver->num, driver->name); if (!error) { driver->major = MAJOR(dev); driver->minor_start = MINOR(dev); } else { printk(KERN_INFO "Major number not allocated\n"); goto fail; } driver->cdev = cdev_alloc(); #ifdef CONFIG_DIAG_SDIO_PIPE driver->cdev_mdm = cdev_alloc(); #endif error = diagchar_setup_cdev(dev); if (error) goto fail; } else { printk(KERN_INFO "kzalloc failed\n"); goto fail; } DIAG_INFO("diagchar initialized\n"); return 0; fail: diagchar_cleanup(); diagfwd_exit(); diagfwd_cntl_exit(); diag_sdio_fn(EXIT); return -1; }