这篇教程C++ sysfs_remove_file函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sysfs_remove_file函数的典型用法代码示例。如果您正苦于以下问题:C++ sysfs_remove_file函数的具体用法?C++ sysfs_remove_file怎么用?C++ sysfs_remove_file使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sysfs_remove_file函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: cpufreq_allstats_freestatic void cpufreq_allstats_free(void){ int cpu; struct all_cpufreq_stats *all_stat; sysfs_remove_file(cpufreq_global_kobject, &_attr_all_time_in_state.attr); for_each_possible_cpu(cpu) { all_stat = per_cpu(all_cpufreq_stats, cpu); if (!all_stat) continue; kfree(all_stat->time_in_state); kfree(all_stat); per_cpu(all_cpufreq_stats, cpu) = NULL; } if (all_freq_table) { kfree(all_freq_table->freq_table); kfree(all_freq_table); all_freq_table = NULL; }}
开发者ID:chrisc93,项目名称:android_kernel_bullhead,代码行数:22,
示例2: synaptics_rmi4_prox_removestatic void synaptics_rmi4_prox_remove(struct synaptics_rmi4_data *rmi4_data){ unsigned char attr_count; if (!prox) goto exit; for (attr_count = 0; attr_count < ARRAY_SIZE(attrs); attr_count++) { sysfs_remove_file(&rmi4_data->input_dev->dev.kobj, &attrs[attr_count].attr); } input_unregister_device(prox->prox_dev); kfree(prox->finger_data); kfree(prox); prox = NULL;exit: complete(&prox_remove_complete); return;}
开发者ID:Fechinator,项目名称:FechdaKernel,代码行数:22,
示例3: cpufreq_allstats_freestatic void cpufreq_allstats_free(void){ int i; struct all_cpufreq_stats *all_stat; sysfs_remove_file(cpufreq_global_kobject, &_attr_all_time_in_state.attr); for (i = 0; i < total_cpus; i++) { all_stat = per_cpu(all_cpufreq_stats, i); if (!all_stat) continue; kfree(all_stat->time_in_state); kfree(all_stat); per_cpu(all_cpufreq_stats, i) = NULL; } if (all_freq_table) { kfree(all_freq_table->freq_table); kfree(all_freq_table); all_freq_table = NULL; }}
开发者ID:akshayk007,项目名称:android_kernel_sony_msm8x60,代码行数:22,
示例4: enhance_initstatic int __init enhance_init(void){ int retval; int attr_count = 0; enhance__kobj = kobject_create_and_add("lcd_enhance", kernel_kobj); if (!enhance__kobj) return -ENOMEM; /* Create the files associated with this kobject */ for (attr_count = 0; attr_count < ARRAY_SIZE(attrs); attr_count++) { if(!zte_enhance_val.en_colortmp && (attr_count == 1)) continue; retval = sysfs_create_file(enhance__kobj, &attrs[attr_count].attr); if (retval < 0) { pr_err("%s: Failed to create sysfs attributes/n", __func__); goto err_sys; } } pr_info("lcd: %s Done./n",__func__); return retval; err_sys: for (attr_count--; attr_count >= 0; attr_count--) { sysfs_remove_file(enhance__kobj, &attrs[attr_count].attr); } kobject_put(enhance__kobj); pr_info("lcd: %s init ERR./n",__func__); return retval;}
开发者ID:ztemt,项目名称:NX505J_5.1_kernel,代码行数:38,
示例5: edac_init_mce_injectstatic int __init edac_init_mce_inject(void){ struct sysdev_class *edac_class = NULL; int i, err = 0; edac_class = edac_get_sysfs_class(); if (!edac_class) return -EINVAL; mce_kobj = kobject_create_and_add("mce", &edac_class->kset.kobj); if (!mce_kobj) { printk(KERN_ERR "Error creating a mce kset./n"); err = -ENOMEM; goto err_mce_kobj; } for (i = 0; i < ARRAY_SIZE(sysfs_attrs); i++) { err = sysfs_create_file(mce_kobj, &sysfs_attrs[i]->attr); if (err) { printk(KERN_ERR "Error creating %s in sysfs./n", sysfs_attrs[i]->attr.name); goto err_sysfs_create; } } return 0;err_sysfs_create: while (--i >= 0) sysfs_remove_file(mce_kobj, &sysfs_attrs[i]->attr); kobject_del(mce_kobj);err_mce_kobj: edac_put_sysfs_class(); return err;}
开发者ID:CSCLOG,项目名称:beaglebone,代码行数:37,
示例6: sysfs_add_meshifint sysfs_add_meshif(struct net_device *dev){ struct kobject *batif_kobject = &dev->dev.kobj; struct bat_priv *bat_priv = netdev_priv(dev); struct bat_attribute **bat_attr; int err; bat_priv->mesh_obj = kobject_create_and_add(SYSFS_IF_MESH_SUBDIR, batif_kobject); if (!bat_priv->mesh_obj) { bat_err(dev, "Can't add sysfs directory: %s/%s/n", dev->name, SYSFS_IF_MESH_SUBDIR); goto out; } for (bat_attr = mesh_attrs; *bat_attr; ++bat_attr) { err = sysfs_create_file(bat_priv->mesh_obj, &((*bat_attr)->attr)); if (err) { bat_err(dev, "Can't add sysfs file: %s/%s/%s/n", dev->name, SYSFS_IF_MESH_SUBDIR, ((*bat_attr)->attr).name); goto rem_attr; } } return 0;rem_attr: for (bat_attr = mesh_attrs; *bat_attr; ++bat_attr) sysfs_remove_file(bat_priv->mesh_obj, &((*bat_attr)->attr)); kobject_put(bat_priv->mesh_obj); bat_priv->mesh_obj = NULL;out: return -ENOMEM;}
开发者ID:AbheekG,项目名称:XIA-for-Linux,代码行数:37,
示例7: bu21150_removestatic int bu21150_remove(struct spi_device *client){ struct bu21150_data *ts = spi_get_drvdata(client); int i; mutex_destroy(&ts->mutex_wake); if (ts->wake_up) device_init_wakeup(&client->dev, 0); for (i = 0; i < ARRAY_SIZE(bu21150_prop_attrs); i++) sysfs_remove_file(ts->bu21150_obj, &bu21150_prop_attrs[i].attr); kobject_put(ts->bu21150_obj); fb_unregister_client(&ts->fb_notif); misc_deregister(&g_bu21150_misc_device); bu21150_power_enable(ts, false); bu21150_regulator_config(ts, false); free_irq(client->irq, ts); mutex_destroy(&ts->mutex_frame); bu21150_pin_enable(ts, false); kfree(ts); return 0;}
开发者ID:silversderek,项目名称:msm8909_kernel_lenovo,代码行数:24,
示例8: edac_device_delete_block/* * edac_device_delete_block(edac_dev,block); */static void edac_device_delete_block(struct edac_device_ctl_info *edac_dev, struct edac_device_block *block){ struct edac_dev_sysfs_block_attribute *sysfs_attrib; int i; /* if this block has 'attributes' then we need to iterate over the list * and 'remove' the attributes on this block */ sysfs_attrib = block->block_attributes; if (sysfs_attrib && block->nr_attribs) { for (i = 0; i < block->nr_attribs; i++, sysfs_attrib++) { /* remove each block_attrib file */ sysfs_remove_file(&block->kobj, (struct attribute *) sysfs_attrib); } } /* unregister this block's kobject, SEE: * edac_device_ctrl_block_release() callback operation */ kobject_put(&block->kobj);}
开发者ID:ANFS,项目名称:ANFS-kernel,代码行数:27,
示例9: etb_sysfs_exitstatic void __devexit etb_sysfs_exit(void){ sysfs_remove_file(etb.kobj, &trigger_cntr_attr.attr); kobject_put(etb.kobj);}
开发者ID:Bigtime1267,项目名称:HTC-C525c,代码行数:5,
示例10: qdss_sysfs_exitstatic void qdss_sysfs_exit(void){ sysfs_remove_file(qdss.modulekobj, &max_clk_attr.attr);}
开发者ID:AndyOpie,项目名称:android_kernel_lge_msm7x27-3.0.x,代码行数:4,
示例11: met_emi_deletestatic void met_emi_delete(void){ sysfs_remove_file(kobj_emi, &rwtype_attr.attr); sysfs_remove_file(kobj_emi, &emi_clock_rate_attr.attr); kobj_emi = NULL;}
开发者ID:kim-ryuzaki,项目名称:android_mediatek_muse72,代码行数:6,
示例12: lpm_mode_exitstatic void __exit lpm_mode_exit(void){ sysfs_remove_file(mot_lpm_kobj, (const struct attribute *) &lpm_mode); kobject_del(mot_lpm_kobj);}
开发者ID:CheckYourScreen,项目名称:ThugLife_falcon,代码行数:5,
示例13: iommu_group_remove_filestatic void iommu_group_remove_file(struct iommu_group *group, struct iommu_group_attribute *attr){ sysfs_remove_file(&group->kobj, &attr->attr);}
开发者ID:ramlaxman,项目名称:linux,代码行数:5,
示例14: mdss_dsi_panel_init//.........这里部分代码省略......... __func__, __LINE__); ctrl_pdata->panel_data.panel_info.cont_splash_enabled = 0; } else { pr_info("%s:%d Continuous splash flag enabled./n", __func__, __LINE__); ctrl_pdata->panel_data.panel_info.cont_splash_enabled = 1; }#if defined(CONFIG_FB_MSM8x26_MDSS_CHECK_LCD_CONNECTION) pr_err("CONFIG_LCD_CONNECTION_CHECK is set kky/n"); if (get_samsung_lcd_attached() == 0) { printk("%s: aaaLCD not connected.... Disabling Continous Splash!/n",__func__);// ctrl_pdata->panel_data.panel_info.cont_splash_enabled = 0; }#endif ctrl_pdata->on = mdss_dsi_panel_on; ctrl_pdata->off = mdss_dsi_panel_off; ctrl_pdata->panel_reset = mdss_dsi_himax_panel_reset; ctrl_pdata->panel_data.set_backlight = mdss_dsi_panel_bl_ctrl;#if defined(CONFIG_LCD_CLASS_DEVICE) lcd_device = lcd_device_register("panel", &pdev->dev, NULL, &mdss_himax_disp_props); if (IS_ERR(lcd_device)) { rc = PTR_ERR(lcd_device); printk(KERN_ERR "lcd : failed to register device/n"); return rc; } sysfs_remove_file(&lcd_device->dev.kobj,&dev_attr_lcd_power.attr); rc = sysfs_create_file(&lcd_device->dev.kobj,&dev_attr_lcd_power.attr); if (rc) { pr_info("sysfs create fail-%s/n",dev_attr_lcd_power.attr.name); } rc = sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_lcd_type.attr); if (rc) { pr_info("sysfs create fail-%s/n", dev_attr_lcd_type.attr.name); } rc= sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_siop_enable.attr); if (rc) { pr_info("sysfs create fail-%s/n", dev_attr_siop_enable.attr.name); }#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) bd = backlight_device_register("panel", &lcd_device->dev, NULL, NULL, NULL); if (IS_ERR(bd)) { rc = PTR_ERR(bd); pr_info("backlight : failed to register device/n"); return rc; } rc= sysfs_create_file(&bd->dev.kobj, &dev_attr_auto_brightness.attr); if (rc) {
开发者ID:adis1313,项目名称:android_kernel_samsung_msm8974,代码行数:67,
示例15: pch_phub_probestatic int __devinit pch_phub_probe(struct pci_dev *pdev, const struct pci_device_id *id){ int retval; int ret; ssize_t rom_size; struct pch_phub_reg *chip; chip = kzalloc(sizeof(struct pch_phub_reg), GFP_KERNEL); if (chip == NULL) return -ENOMEM; ret = pci_enable_device(pdev); if (ret) { dev_err(&pdev->dev, "%s : pci_enable_device FAILED(ret=%d)", __func__, ret); goto err_pci_enable_dev; } dev_dbg(&pdev->dev, "%s : pci_enable_device returns %d/n", __func__, ret); ret = pci_request_regions(pdev, KBUILD_MODNAME); if (ret) { dev_err(&pdev->dev, "%s : pci_request_regions FAILED(ret=%d)", __func__, ret); goto err_req_regions; } dev_dbg(&pdev->dev, "%s : " "pci_request_regions returns %d/n", __func__, ret); chip->pch_phub_base_address = pci_iomap(pdev, 1, 0); if (chip->pch_phub_base_address == 0) { dev_err(&pdev->dev, "%s : pci_iomap FAILED", __func__); ret = -ENOMEM; goto err_pci_iomap; } dev_dbg(&pdev->dev, "%s : pci_iomap SUCCESS and value " "in pch_phub_base_address variable is %p/n", __func__, chip->pch_phub_base_address); chip->pch_phub_extrom_base_address = pci_map_rom(pdev, &rom_size); if (chip->pch_phub_extrom_base_address == 0) { dev_err(&pdev->dev, "%s : pci_map_rom FAILED", __func__); ret = -ENOMEM; goto err_pci_map; } dev_dbg(&pdev->dev, "%s : " "pci_map_rom SUCCESS and value in " "pch_phub_extrom_base_address variable is %p/n", __func__, chip->pch_phub_extrom_base_address); if (id->driver_data == 1) { retval = sysfs_create_file(&pdev->dev.kobj, &dev_attr_pch_mac.attr); if (retval) goto err_sysfs_create; retval = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr); if (retval) goto exit_bin_attr; pch_phub_read_modify_write_reg(chip, (unsigned int)CLKCFG_REG_OFFSET, CLKCFG_CAN_50MHZ, CLKCFG_CANCLK_MASK); /* quirk for CM-iTC board */ if (strstr(dmi_get_system_info(DMI_BOARD_NAME), "CM-iTC")) pch_phub_read_modify_write_reg(chip, (unsigned int)CLKCFG_REG_OFFSET, CLKCFG_UART_48MHZ | CLKCFG_BAUDDIV | CLKCFG_PLL2VCO | CLKCFG_UARTCLKSEL, CLKCFG_UART_MASK); /* set the prefech value */ iowrite32(0x000affaa, chip->pch_phub_base_address + 0x14); /* set the interrupt delay value */ iowrite32(0x25, chip->pch_phub_base_address + 0x44); } else if (id->driver_data == 2) { retval = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr); if (retval) goto err_sysfs_create; /* set the prefech value * Device2(USB OHCI #1/ USB EHCI #1/ USB Device):a * Device4(SDIO #0,1,2):f * Device6(SATA 2):f * Device8(USB OHCI #0/ USB EHCI #0):a */ iowrite32(0x000affa0, chip->pch_phub_base_address + 0x14); } pci_set_drvdata(pdev, chip); return 0;exit_bin_attr: sysfs_remove_file(&pdev->dev.kobj, &dev_attr_pch_mac.attr);err_sysfs_create://.........这里部分代码省略.........
开发者ID:mesosexy,项目名称:linux-2.6,代码行数:101,
示例16: taskmonitor_exitstatic void taskmonitor_exit(void){ sysfs_remove_file(kernel_kobj, &(hellosysfs_kattr.attr)); pr_info("rmmod: removed module hellosysfs/n");}
开发者ID:ilyasToumlilt,项目名称:M2_NMV,代码行数:6,
示例17: ge_counter_probe//.........这里部分代码省略......... dest->reset_on_read = src->reset_on_read; dest->use_timer = false; dest->interval_count_valid = false; dest->counter_attr.show = counter_show; dest->counter_attr.store = counter_store; sysfs_attr_init(&dest->counter_attr.attr); dest->counter_attr.attr.name = "counter"; dest->counter_attr.attr.mode = S_IRUGO | S_IWUSR; ret = sysfs_create_file(dest->subdir, &dest->counter_attr.attr); if (ret) goto err_dir; dest->elapsed_attr.show = elapsed_show; dest->elapsed_attr.store = elapsed_store; sysfs_attr_init(&dest->elapsed_attr.attr); dest->elapsed_attr.attr.name = "elapsed"; dest->elapsed_attr.attr.mode = S_IRUGO | S_IWUSR; ret = sysfs_create_file(dest->subdir, &dest->elapsed_attr.attr); if (ret) goto err_file1; dest->state_attr.show = state_show; sysfs_attr_init(&dest->state_attr.attr); dest->state_attr.attr.name = "state"; dest->state_attr.attr.mode = S_IRUGO; ret = sysfs_create_file(dest->subdir, &dest->state_attr.attr); if (ret) goto err_file2; dest->reset_on_read_attr.show = reset_on_read_show; dest->reset_on_read_attr.store = reset_on_read_store; sysfs_attr_init(&dest->reset_on_read_attr.attr); dest->reset_on_read_attr.attr.name = "reset_on_read"; dest->reset_on_read_attr.attr.mode = S_IRUGO | S_IWUSR; ret = sysfs_create_file(dest->subdir, &dest->reset_on_read_attr.attr); if (ret) goto err_file3; if (src->interval) { dest->interval_attr.show = interval_show; dest->interval_attr.store = interval_store; sysfs_attr_init(&dest->interval_attr.attr); dest->interval_attr.attr.name = "interval"; dest->interval_attr.attr.mode = S_IRUGO | S_IWUSR; ret = sysfs_create_file(dest->subdir, &dest->interval_attr.attr); if (ret) goto err_file4; dest->interval_count_attr.show = interval_count_show; sysfs_attr_init(&dest->interval_count_attr.attr); dest->interval_count_attr.attr.name = "interval_count"; dest->interval_count_attr.attr.mode = S_IRUGO; ret = sysfs_create_file(dest->subdir, &dest->interval_count_attr.attr); if (ret) goto err_file5; dest->use_timer = true; init_timer(&dest->timer); dest->timer.data = (unsigned long)dest; dest->timer.function = timeout; dest->jiffies = jiffies; dest->timer.expires = jiffies + dest->interval; add_timer(&dest->timer); } } platform_set_drvdata(pdev, data); return 0;err_file5: sysfs_remove_file(dest->subdir, &dest->interval_attr.attr);err_file4: sysfs_remove_file(dest->subdir, &dest->reset_on_read_attr.attr);err_file3: sysfs_remove_file(dest->subdir, &dest->state_attr.attr);err_file2: sysfs_remove_file(dest->subdir, &dest->elapsed_attr.attr);err_file1: sysfs_remove_file(dest->subdir, &dest->counter_attr.attr);err_dir: kobject_put(dest->subdir);err_irq: free_irq(irq, dest);err_gpio: gpio_free(dest->gpio);err: for (--i; i >= 0; i--) delete_counter(&data->vdata[i]); kobject_put(data->dir); kfree(data); return ret;}
开发者ID:SystemTera,项目名称:SystemTera.Server-V-3.14-Kernel,代码行数:101,
示例18: funnel_sysfs_exitstatic void __devexit funnel_sysfs_exit(void){ sysfs_remove_file(drvdata->kobj, &dev_attr_priority.attr); kobject_put(drvdata->kobj);}
开发者ID:404992361,项目名称:mi1_kernel,代码行数:5,
示例19: mipi_samsung_disp_probestatic int __devinit mipi_samsung_disp_probe(struct platform_device *pdev){ int ret, rc; struct platform_device *msm_fb_added_dev; struct lcd_device *lcd_device; struct backlight_device *bd = NULL; printk(KERN_INFO "[lcd] mipi_samsung_disp_probe start/n"); if (pdev->id == 0) { msd.mipi_samsung_disp_pdata = pdev->dev.platform_data; printk(KERN_INFO "[lcd] pdev->id =%d, pdev-name = %s/n", pdev->id, pdev->name); sec_debug_mdp_init(); printk(KERN_INFO "[lcd] mipi_samsung_disp_probe end since pdev-id is 0/n"); return 0; } printk(KERN_INFO "[lcd] msm_fb_add_device : %s/n", pdev->name); msm_fb_added_dev = msm_fb_add_device(pdev); mutex_init(&dsi_tx_mutex);#if defined(CONFIG_HAS_EARLYSUSPEND) || defined(CONFIG_LCD_CLASS_DEVICE) msd.msm_pdev = msm_fb_added_dev;#endif pm_gpio8 = PM8921_GPIO_PM_TO_SYS(PMIC_GPIO_ERR_FG); rc = gpio_request(pm_gpio8, "err_fg"); if (rc) { pr_err("request gpio err_fg failed, rc=%d/n", rc); return -ENODEV; } rc = pm8xxx_gpio_config(pm_gpio8, &gpio_get_param); if (rc) { pr_err("gpio_config mlcd_rst failed (3), rc=%d/n", rc); return -EINVAL; }#if defined(CONFIG_HAS_EARLYSUSPEND) msd.early_suspend.suspend = mipi_samsung_disp_early_suspend; msd.early_suspend.resume = mipi_samsung_disp_late_resume; msd.early_suspend.level = EARLY_SUSPEND_LEVEL_BLANK_SCREEN; register_early_suspend(&msd.early_suspend);#endif#if defined(CONFIG_LCD_CLASS_DEVICE) printk(KERN_INFO "[lcd] lcd_device_register for panel start/n"); lcd_device = lcd_device_register("panel", &pdev->dev, NULL, &mipi_samsung_disp_props); if (IS_ERR(lcd_device)) { ret = PTR_ERR(lcd_device); printk(KERN_ERR "lcd : failed to register device/n"); return ret; } sysfs_remove_file(&lcd_device->dev.kobj, &dev_attr_lcd_power.attr); ret = sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_lcd_power.attr); if (ret) { pr_info("sysfs create fail-%s/n", dev_attr_lcd_power.attr.name); } ret = sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_lcd_type.attr); if (ret) { pr_info("sysfs create fail-%s/n", dev_attr_lcd_type.attr.name); } ret = sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_window_type.attr); if (ret) { pr_info("sysfs create fail-%s/n", dev_attr_window_type.attr.name); } ret = sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_power_reduce.attr); if (ret) { pr_info("sysfs create fail-%s/n", dev_attr_power_reduce.attr.name); } ret = sysfs_create_file(&lcd_device->dev.kobj, &dev_attr_siop_enable.attr); if (ret) { pr_info("sysfs create fail-%s/n", dev_attr_siop_enable.attr.name);//.........这里部分代码省略.........
开发者ID:TheDragonkeeper,项目名称:Ubuntu-Touch-i9505,代码行数:101,
示例20: sysfs_remove_filesvoid sysfs_remove_files(struct kobject * kobj, const struct attribute **ptr){ int i; for (i = 0; ptr[i]; i++) sysfs_remove_file(kobj, ptr[i]);}
开发者ID:novic,项目名称:AniDroid-Hardened-Kernel,代码行数:6,
示例21: qpnp_haptic_probestatic int qpnp_haptic_probe(struct spmi_device *spmi){ struct qpnp_hap *hap; struct resource *hap_resource; int rc, i; hap = devm_kzalloc(&spmi->dev, sizeof(*hap), GFP_KERNEL); if (!hap) return -ENOMEM; hap->spmi = spmi; hap_resource = spmi_get_resource(spmi, 0, IORESOURCE_MEM, 0); if (!hap_resource) { dev_err(&spmi->dev, "Unable to get haptic base address/n"); return -EINVAL; } hap->base = hap_resource->start; dev_set_drvdata(&spmi->dev, hap); rc = qpnp_hap_parse_dt(hap); if (rc) { dev_err(&spmi->dev, "DT parsing failed/n"); return rc; } rc = qpnp_hap_config(hap); if (rc) { dev_err(&spmi->dev, "hap config failed/n"); return rc; } mutex_init(&hap->lock); mutex_init(&hap->wf_lock); INIT_WORK(&hap->work, qpnp_hap_worker); hrtimer_init(&hap->hap_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); hap->hap_timer.function = qpnp_hap_timer; hap->timed_dev.name = "vibrator"; hap->timed_dev.get_time = qpnp_hap_get_time; hap->timed_dev.enable = qpnp_hap_td_enable; rc = timed_output_dev_register(&hap->timed_dev); if (rc < 0) { dev_err(&spmi->dev, "timed_output registration failed/n"); goto timed_output_fail; } for (i = 0; i < ARRAY_SIZE(qpnp_hap_attrs); i++) { rc = sysfs_create_file(&hap->timed_dev.dev->kobj, &qpnp_hap_attrs[i].attr); if (rc < 0) { dev_err(&spmi->dev, "sysfs creation failed/n"); goto sysfs_fail; } } return 0;sysfs_fail: for (i--; i >= 0; i--) sysfs_remove_file(&hap->timed_dev.dev->kobj, &qpnp_hap_attrs[i].attr); timed_output_dev_unregister(&hap->timed_dev);timed_output_fail: cancel_work_sync(&hap->work); hrtimer_cancel(&hap->hap_timer); mutex_destroy(&hap->lock); mutex_destroy(&hap->wf_lock); return rc;}
开发者ID:auras76,项目名称:aur-kernel-XZxx,代码行数:74,
示例22: qpnp_wled_probestatic int qpnp_wled_probe(struct spmi_device *spmi){ struct qpnp_wled *wled; struct resource *wled_resource; int rc, i; wled = devm_kzalloc(&spmi->dev, sizeof(*wled), GFP_KERNEL); if (!wled) return -ENOMEM; wled->spmi = spmi; wled_resource = spmi_get_resource_byname(spmi, NULL, IORESOURCE_MEM, QPNP_WLED_SINK_BASE); if (!wled_resource) { dev_err(&spmi->dev, "Unable to get wled sink base address/n"); return -EINVAL; } wled->sink_base = wled_resource->start; wled_resource = spmi_get_resource_byname(spmi, NULL, IORESOURCE_MEM, QPNP_WLED_CTRL_BASE); if (!wled_resource) { dev_err(&spmi->dev, "Unable to get wled ctrl base address/n"); return -EINVAL; } wled->ctrl_base = wled_resource->start; wled_resource = spmi_get_resource_byname(spmi, NULL, IORESOURCE_MEM, QPNP_WLED_IBB_BASE); if (!wled_resource) { dev_err(&spmi->dev, "Unable to get IBB base address/n"); return -EINVAL; } wled->ibb_base = wled_resource->start; wled_resource = spmi_get_resource_byname(spmi, NULL, IORESOURCE_MEM, QPNP_WLED_LAB_BASE); if (!wled_resource) { dev_err(&spmi->dev, "Unable to get LAB base address/n"); return -EINVAL; } wled->lab_base = wled_resource->start; dev_set_drvdata(&spmi->dev, wled); rc = qpnp_wled_parse_dt(wled); if (rc) { dev_err(&spmi->dev, "DT parsing failed/n"); return rc; } rc = qpnp_wled_config(wled); if (rc) { dev_err(&spmi->dev, "wled config failed/n"); return rc; } mutex_init(&wled->lock); INIT_WORK(&wled->work, qpnp_wled_work); wled->ramp_ms = QPNP_WLED_RAMP_DLY_MS; wled->ramp_step = 1; wled->cdev.brightness_set = qpnp_wled_set; wled->cdev.brightness_get = qpnp_wled_get; if (wled->en_9b_dim_res) wled->cdev.max_brightness = WLED_MAX_LEVEL_511; else wled->cdev.max_brightness = WLED_MAX_LEVEL_4095; rc = led_classdev_register(&spmi->dev, &wled->cdev); if (rc) { dev_err(&spmi->dev, "wled registration failed(%d)/n", rc); goto wled_register_fail; } for (i = 0; i < ARRAY_SIZE(qpnp_wled_attrs); i++) { rc = sysfs_create_file(&wled->cdev.dev->kobj, &qpnp_wled_attrs[i].attr); if (rc < 0) { dev_err(&spmi->dev, "sysfs creation failed/n"); goto sysfs_fail; } } gwled = wled; return 0;sysfs_fail: for (i--; i >= 0; i--) sysfs_remove_file(&wled->cdev.dev->kobj, &qpnp_wled_attrs[i].attr); led_classdev_unregister(&wled->cdev);wled_register_fail://.........这里部分代码省略.........
开发者ID:qriozum,项目名称:M9,代码行数:101,
示例23: pch_phub_probe//.........这里部分代码省略......... ret = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr); if (ret) goto exit_bin_attr; pch_phub_read_modify_write_reg(chip, (unsigned int)CLKCFG_REG_OFFSET, CLKCFG_CAN_50MHZ, CLKCFG_CANCLK_MASK); /* quirk for CM-iTC board */ board_name = dmi_get_system_info(DMI_BOARD_NAME); if (board_name && strstr(board_name, "CM-iTC")) pch_phub_read_modify_write_reg(chip, (unsigned int)CLKCFG_REG_OFFSET, CLKCFG_UART_48MHZ | CLKCFG_BAUDDIV | CLKCFG_PLL2VCO | CLKCFG_UARTCLKSEL, CLKCFG_UART_MASK); /* set the prefech value */ iowrite32(0x000affaa, chip->pch_phub_base_address + 0x14); /* set the interrupt delay value */ iowrite32(0x25, chip->pch_phub_base_address + 0x44); chip->pch_opt_rom_start_address = PCH_PHUB_ROM_START_ADDR_EG20T; chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_EG20T; } else if (id->driver_data == 2) { /* ML7213 IOH */ ret = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr); if (ret) goto err_sysfs_create; /* set the prefech value * Device2(USB OHCI #1/ USB EHCI #1/ USB Device):a * Device4(SDIO #0,1,2):f * Device6(SATA 2):f * Device8(USB OHCI #0/ USB EHCI #0):a */ iowrite32(0x000affa0, chip->pch_phub_base_address + 0x14); chip->pch_opt_rom_start_address =/ PCH_PHUB_ROM_START_ADDR_ML7213; } else if (id->driver_data == 3) { /* ML7223 IOH Bus-m*/ /* set the prefech value * Device8(GbE) */ iowrite32(0x000a0000, chip->pch_phub_base_address + 0x14); /* set the interrupt delay value */ iowrite32(0x25, chip->pch_phub_base_address + 0x140); chip->pch_opt_rom_start_address =/ PCH_PHUB_ROM_START_ADDR_ML7223; chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_ML7223; } else if (id->driver_data == 4) { /* ML7223 IOH Bus-n*/ ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_pch_mac.attr); if (ret) goto err_sysfs_create; ret = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr); if (ret) goto exit_bin_attr; /* set the prefech value * Device2(USB OHCI #0,1,2,3/ USB EHCI #0):a * Device4(SDIO #0,1):f * Device6(SATA 2):f */ iowrite32(0x0000ffa0, chip->pch_phub_base_address + 0x14); chip->pch_opt_rom_start_address =/ PCH_PHUB_ROM_START_ADDR_ML7223; chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_ML7223; } else if (id->driver_data == 5) { /* ML7831 */ ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_pch_mac.attr); if (ret) goto err_sysfs_create; ret = sysfs_create_bin_file(&pdev->dev.kobj, &pch_bin_attr); if (ret) goto exit_bin_attr; /* set the prefech value */ iowrite32(0x000affaa, chip->pch_phub_base_address + 0x14); /* set the interrupt delay value */ iowrite32(0x25, chip->pch_phub_base_address + 0x44); chip->pch_opt_rom_start_address = PCH_PHUB_ROM_START_ADDR_EG20T; chip->pch_mac_start_address = PCH_PHUB_MAC_START_ADDR_EG20T; } chip->ioh_type = id->driver_data; pci_set_drvdata(pdev, chip); return 0;exit_bin_attr: sysfs_remove_file(&pdev->dev.kobj, &dev_attr_pch_mac.attr);err_sysfs_create: pci_iounmap(pdev, chip->pch_phub_base_address);err_pci_iomap: pci_release_regions(pdev);err_req_regions: pci_disable_device(pdev);err_pci_enable_dev: kfree(chip); dev_err(&pdev->dev, "%s returns %d/n", __func__, ret); return ret;}
开发者ID:mikuhatsune001,项目名称:linux2.6.32,代码行数:101,
示例24: driver_remove_file/** * driver_remove_file - remove sysfs file for driver. * @drv: driver. * @attr: driver attribute descriptor. */void driver_remove_file(struct device_driver *drv, struct driver_attribute *attr){ if (drv) sysfs_remove_file(&drv->p->kobj, &attr->attr);}
开发者ID:Aresthu,项目名称:ucore_plus,代码行数:11,
示例25: skl_nhlt_remove_sysfsvoid skl_nhlt_remove_sysfs(struct skl *skl){ struct device *dev = &skl->pci->dev; sysfs_remove_file(&dev->kobj, &dev_attr_platform_id.attr);}
开发者ID:val2k,项目名称:linux,代码行数:6,
注:本文中的sysfs_remove_file函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ sysfs_remove_group函数代码示例 C++ sysfs_put函数代码示例 |