Loading drivers/extcon/extcon.c +39 −22 Original line number Diff line number Diff line Loading @@ -1187,6 +1187,42 @@ static int extcon_alloc_muex(struct extcon_dev *edev) return 0; } /** * extcon_alloc_groups() - alloc the groups for extcon device * @edev: extcon device * * Returns 0 if success or error number if fail. */ static int extcon_alloc_groups(struct extcon_dev *edev) { int index; if (!edev) return -EINVAL; if (!edev->max_supported) return 0; edev->extcon_dev_type.groups = kcalloc(edev->max_supported + 2, sizeof(struct attribute_group *), GFP_KERNEL); if (!edev->extcon_dev_type.groups) return -ENOMEM; edev->extcon_dev_type.name = dev_name(&edev->dev); edev->extcon_dev_type.release = dummy_sysfs_dev_release; for (index = 0; index < edev->max_supported; index++) edev->extcon_dev_type.groups[index] = &edev->cables[index].attr_g; if (edev->mutually_exclusive) edev->extcon_dev_type.groups[index] = &edev->attr_g_muex; edev->dev.type = &edev->extcon_dev_type; return 0; } /** * extcon_dev_register() - Register an new extcon device * @edev: the extcon device to be registered Loading Loading @@ -1242,28 +1278,9 @@ int extcon_dev_register(struct extcon_dev *edev) if (ret < 0) goto err_alloc_muex; if (edev->max_supported) { edev->extcon_dev_type.groups = kcalloc(edev->max_supported + 2, sizeof(struct attribute_group *), GFP_KERNEL); if (!edev->extcon_dev_type.groups) { ret = -ENOMEM; ret = extcon_alloc_groups(edev); if (ret < 0) goto err_alloc_groups; } edev->extcon_dev_type.name = dev_name(&edev->dev); edev->extcon_dev_type.release = dummy_sysfs_dev_release; for (index = 0; index < edev->max_supported; index++) edev->extcon_dev_type.groups[index] = &edev->cables[index].attr_g; if (edev->mutually_exclusive) edev->extcon_dev_type.groups[index] = &edev->attr_g_muex; edev->dev.type = &edev->extcon_dev_type; } spin_lock_init(&edev->lock); if (edev->max_supported) { Loading Loading
drivers/extcon/extcon.c +39 −22 Original line number Diff line number Diff line Loading @@ -1187,6 +1187,42 @@ static int extcon_alloc_muex(struct extcon_dev *edev) return 0; } /** * extcon_alloc_groups() - alloc the groups for extcon device * @edev: extcon device * * Returns 0 if success or error number if fail. */ static int extcon_alloc_groups(struct extcon_dev *edev) { int index; if (!edev) return -EINVAL; if (!edev->max_supported) return 0; edev->extcon_dev_type.groups = kcalloc(edev->max_supported + 2, sizeof(struct attribute_group *), GFP_KERNEL); if (!edev->extcon_dev_type.groups) return -ENOMEM; edev->extcon_dev_type.name = dev_name(&edev->dev); edev->extcon_dev_type.release = dummy_sysfs_dev_release; for (index = 0; index < edev->max_supported; index++) edev->extcon_dev_type.groups[index] = &edev->cables[index].attr_g; if (edev->mutually_exclusive) edev->extcon_dev_type.groups[index] = &edev->attr_g_muex; edev->dev.type = &edev->extcon_dev_type; return 0; } /** * extcon_dev_register() - Register an new extcon device * @edev: the extcon device to be registered Loading Loading @@ -1242,28 +1278,9 @@ int extcon_dev_register(struct extcon_dev *edev) if (ret < 0) goto err_alloc_muex; if (edev->max_supported) { edev->extcon_dev_type.groups = kcalloc(edev->max_supported + 2, sizeof(struct attribute_group *), GFP_KERNEL); if (!edev->extcon_dev_type.groups) { ret = -ENOMEM; ret = extcon_alloc_groups(edev); if (ret < 0) goto err_alloc_groups; } edev->extcon_dev_type.name = dev_name(&edev->dev); edev->extcon_dev_type.release = dummy_sysfs_dev_release; for (index = 0; index < edev->max_supported; index++) edev->extcon_dev_type.groups[index] = &edev->cables[index].attr_g; if (edev->mutually_exclusive) edev->extcon_dev_type.groups[index] = &edev->attr_g_muex; edev->dev.type = &edev->extcon_dev_type; } spin_lock_init(&edev->lock); if (edev->max_supported) { Loading