static int i5100_setup_debugfs(struct mem_ctl_info *mci) { struct i5100_priv *priv = mci->pvt_info; if (!i5100_debugfs) return -ENODEV; priv->debugfs = debugfs_create_dir(mci->bus->name, i5100_debugfs); if (!priv->debugfs) return -ENOMEM; debugfs_create_x8("inject_channel", S_IRUGO | S_IWUSR, priv->debugfs, &priv->inject_channel); debugfs_create_x8("inject_hlinesel", S_IRUGO | S_IWUSR, priv->debugfs, &priv->inject_hlinesel); debugfs_create_x8("inject_deviceptr1", S_IRUGO | S_IWUSR, priv->debugfs, &priv->inject_deviceptr1); debugfs_create_x8("inject_deviceptr2", S_IRUGO | S_IWUSR, priv->debugfs, &priv->inject_deviceptr2); debugfs_create_x16("inject_eccmask1", S_IRUGO | S_IWUSR, priv->debugfs, &priv->inject_eccmask1); debugfs_create_x16("inject_eccmask2", S_IRUGO | S_IWUSR, priv->debugfs, &priv->inject_eccmask2); debugfs_create_file("inject_enable", S_IWUSR, priv->debugfs, &mci->dev, &i5100_inject_enable_fops); return 0; }
static inline void debugfs_init(struct ser_device *ser, struct tty_struct *tty) { ser->debugfs_tty_dir = debugfs_create_dir(tty->name, debugfsdir); if (!IS_ERR(ser->debugfs_tty_dir)) { debugfs_create_blob("last_tx_msg", S_IRUSR, ser->debugfs_tty_dir, &ser->tx_blob); debugfs_create_blob("last_rx_msg", S_IRUSR, ser->debugfs_tty_dir, &ser->rx_blob); debugfs_create_x32("ser_state", S_IRUSR, ser->debugfs_tty_dir, (u32 *)&ser->state); debugfs_create_x8("tty_status", S_IRUSR, ser->debugfs_tty_dir, &ser->tty_status); } ser->tx_blob.data = ser->tx_data; ser->tx_blob.size = 0; ser->rx_blob.data = ser->rx_data; ser->rx_blob.size = 0; }
static void __init vdd_debugfs_init(struct omap_vdd_info *vdd) { char *name; name = kzalloc(VOLTAGE_DIR_SIZE, GFP_KERNEL); if (!name) { pr_warning("%s: Unable to allocate memory for debugfs" " directory name for vdd_%s", __func__, vdd->voltdm.name); return; } strcpy(name, "vdd_"); strcat(name, vdd->voltdm.name); vdd->debug_dir = debugfs_create_dir(name, voltage_dir); kfree(name); if (IS_ERR(vdd->debug_dir)) { pr_warning("%s: Unable to create debugfs directory for" " vdd_%s\n", __func__, vdd->voltdm.name); vdd->debug_dir = NULL; return; } (void) debugfs_create_x16("vp_errorgain", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vpconfig_errorgain)); (void) debugfs_create_x16("vp_smpswaittimemin", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vstepmin_smpswaittimemin)); (void) debugfs_create_x8("vp_stepmin", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vstepmin_stepmin)); (void) debugfs_create_x16("vp_smpswaittimemax", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vstepmax_smpswaittimemax)); (void) debugfs_create_x8("vp_stepmax", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vstepmax_stepmax)); (void) debugfs_create_x8("vp_vddmax", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vlimitto_vddmax)); (void) debugfs_create_x8("vp_vddmin", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vlimitto_vddmin)); (void) debugfs_create_x16("vp_timeout", S_IRUGO, vdd->debug_dir, &(vdd->vp_rt_data.vlimitto_timeout)); (void) debugfs_create_file("curr_vp_volt", S_IRUGO, vdd->debug_dir, (void *) vdd, &vp_volt_debug_fops); (void) debugfs_create_file("curr_nominal_volt", S_IRUGO, vdd->debug_dir, (void *) vdd, &nom_volt_debug_fops); }
static int dtl_init(void) { struct dentry *event_mask_file, *buf_entries_file; int rc, i; if (!firmware_has_feature(FW_FEATURE_SPLPAR)) return -ENODEV; /* set up common debugfs structure */ rc = -ENOMEM; dtl_dir = debugfs_create_dir("dtl", powerpc_debugfs_root); if (!dtl_dir) { printk(KERN_WARNING "%s: can't create dtl root dir\n", __func__); goto err; } event_mask_file = debugfs_create_x8("dtl_event_mask", 0600, dtl_dir, &dtl_event_mask); buf_entries_file = debugfs_create_u32("dtl_buf_entries", 0400, dtl_dir, &dtl_buf_entries); if (!event_mask_file || !buf_entries_file) { printk(KERN_WARNING "%s: can't create dtl files\n", __func__); goto err_remove_dir; } /* set up the per-cpu log structures */ for_each_possible_cpu(i) { struct dtl *dtl = &per_cpu(cpu_dtl, i); spin_lock_init(&dtl->lock); dtl->cpu = i; rc = dtl_setup_file(dtl); if (rc) goto err_remove_dir; } return 0; err_remove_dir: debugfs_remove_recursive(dtl_dir); err: return rc; }