On 9/16/19 8:34 PM, Dan Murphy wrote: > Jacek > > On 9/15/19 11:20 AM, Jacek Anaszewski wrote: >> >>> + >>> +static int led_multicolor_init_color(struct led_classdev_mc_data *data, >>> + struct led_classdev_mc *mcled_cdev, >>> + int color_id, int color_index) >>> +{ >>> + struct led_classdev *led_cdev = mcled_cdev->led_cdev; >>> + struct led_classdev_mc_priv *mc_priv; >>> + int ret; >>> + >>> + mc_priv = devm_kzalloc(led_cdev->dev, sizeof(*mc_priv), >>> GFP_KERNEL); >>> + if (!mc_priv) >>> + return -ENOMEM; >>> + >>> + mc_priv->led_color_id = color_id; >>> + mc_priv->mcled_cdev = mcled_cdev; >>> + >>> + data->led_kobj = kobject_create_and_add(led_colors[color_id], >>> + data->color_kobj); >> No change here since previous version? What prevents you from following >> what has been done for drivers/usb/core/ledtrig-usbport.c? >> >> Use sysfs_create_group() for creating color dir >> and sysfs_add_file_to_group() for adding files to it. > > We have nested directories here. colors is a directory and then the LED > color is a directory. > > So I am not sure how to create a group under another group without the > colors directory kobj. > > Wondering if you know of any examples? Hmm, that indeed seems not to be allowed. kobject_create_and_add() seems to be the only solution to achieve nested directories. Nonetheless we will have to first justify the need for that to Greg. -- Best regards, Jacek Anaszewski