From patchwork Mon Nov 15 20:32:52 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Achatz X-Patchwork-Id: 326322 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id oAFKXhWg020998 for ; Mon, 15 Nov 2010 20:33:44 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758245Ab0KOUcz (ORCPT ); Mon, 15 Nov 2010 15:32:55 -0500 Received: from mail-in-05.arcor-online.net ([151.189.21.45]:40651 "EHLO mail-in-05.arcor-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758244Ab0KOUcz (ORCPT ); Mon, 15 Nov 2010 15:32:55 -0500 Received: from mail-in-10-z2.arcor-online.net (mail-in-10-z2.arcor-online.net [151.189.8.27]) by mx.arcor.de (Postfix) with ESMTP id 7F3E3E3E81; Mon, 15 Nov 2010 21:32:53 +0100 (CET) Received: from mail-in-02.arcor-online.net (mail-in-02.arcor-online.net [151.189.21.42]) by mail-in-10-z2.arcor-online.net (Postfix) with ESMTP id 5BBF92FA; Mon, 15 Nov 2010 21:32:53 +0100 (CET) Received: from [192.168.0.7] (dslb-088-067-009-161.pools.arcor-ip.net [88.67.9.161]) (Authenticated sender: screamingfist@arcor.de) by mail-in-02.arcor-online.net (Postfix) with ESMTPSA id A24243049D; Mon, 15 Nov 2010 21:32:52 +0100 (CET) X-DKIM: Sendmail DKIM Filter v2.8.2 mail-in-02.arcor-online.net A24243049D Subject: [PATCH 2/3] HID: roccat: using new sysfs_create_bin_group() in koneplus driver From: Stefan Achatz Reply-To: erazor_de@users.sourceforge.net To: Jiri Kosina , Greg Kroah-Hartman , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Date: Mon, 15 Nov 2010 21:32:52 +0100 Message-ID: <1289853172.2188.46.camel@neuromancer> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 (2.30.3-1.fc13) Sender: linux-input-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.3 (demeter1.kernel.org [140.211.167.41]); Mon, 15 Nov 2010 20:33:45 +0000 (UTC) diff --git a/drivers/hid/hid-roccat-koneplus.c b/drivers/hid/hid-roccat-koneplus.c index 7327e1a..0953777 100644 --- a/drivers/hid/hid-roccat-koneplus.c +++ b/drivers/hid/hid-roccat-koneplus.c @@ -612,6 +612,30 @@ static struct bin_attribute koneplus_macro_attr = { .write = koneplus_sysfs_write_macro }; +static struct attribute *koneplus_bin_attributes[] = { + &koneplus_sensor_attr.attr, + &koneplus_tcu_attr.attr, + &koneplus_tcu_image_attr.attr, + &koneplus_profile_settings_attr.attr, + &koneplus_profile1_settings_attr.attr, + &koneplus_profile2_settings_attr.attr, + &koneplus_profile3_settings_attr.attr, + &koneplus_profile4_settings_attr.attr, + &koneplus_profile5_settings_attr.attr, + &koneplus_profile_buttons_attr.attr, + &koneplus_profile1_buttons_attr.attr, + &koneplus_profile2_buttons_attr.attr, + &koneplus_profile3_buttons_attr.attr, + &koneplus_profile4_buttons_attr.attr, + &koneplus_profile5_buttons_attr.attr, + &koneplus_macro_attr.attr, + NULL +}; + +static struct attribute_group koneplus_bin_attribute_group = { + .attrs = koneplus_bin_attributes +}; + static int koneplus_create_sysfs_attributes(struct usb_interface *intf) { int retval; @@ -620,118 +644,13 @@ static int koneplus_create_sysfs_attributes(struct usb_interface *intf) if (retval) goto exit_1; - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile_settings_attr); + retval = sysfs_create_bin_group(&intf->dev.kobj, &koneplus_bin_attribute_group); if (retval) goto exit_2; - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile1_settings_attr); - if (retval) - goto exit_3; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile2_settings_attr); - if (retval) - goto exit_4; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile3_settings_attr); - if (retval) - goto exit_5; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile4_settings_attr); - if (retval) - goto exit_6; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile5_settings_attr); - if (retval) - goto exit_7; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile_buttons_attr); - if (retval) - goto exit_8; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile1_buttons_attr); - if (retval) - goto exit_9; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile2_buttons_attr); - if (retval) - goto exit_10; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile3_buttons_attr); - if (retval) - goto exit_11; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile4_buttons_attr); - if (retval) - goto exit_12; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_profile5_buttons_attr); - if (retval) - goto exit_13; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_macro_attr); - if (retval) - goto exit_14; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_tcu_image_attr); - if (retval) - goto exit_15; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_tcu_attr); - if (retval) - goto exit_16; - - retval = sysfs_create_bin_file(&intf->dev.kobj, - &koneplus_sensor_attr); - if (retval) - goto exit_17; return 0; -exit_17: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_tcu_attr); -exit_16: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_tcu_image_attr); -exit_15: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_macro_attr); -exit_14: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile5_buttons_attr); -exit_13: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile4_buttons_attr); -exit_12: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile3_buttons_attr); -exit_11: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile2_buttons_attr); -exit_10: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile1_buttons_attr); -exit_9: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile_buttons_attr); -exit_8: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile5_settings_attr); -exit_7: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile4_settings_attr); -exit_6: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile3_settings_attr); -exit_5: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile2_settings_attr); -exit_4: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile1_settings_attr); -exit_3: - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile_settings_attr); exit_2: sysfs_remove_group(&intf->dev.kobj, &koneplus_attribute_group); exit_1: @@ -740,22 +659,7 @@ exit_1: static void koneplus_remove_sysfs_attributes(struct usb_interface *intf) { - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_sensor_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_tcu_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_tcu_image_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_macro_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile5_buttons_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile4_buttons_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile3_buttons_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile2_buttons_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile1_buttons_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile_buttons_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile5_settings_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile4_settings_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile3_settings_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile2_settings_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile1_settings_attr); - sysfs_remove_bin_file(&intf->dev.kobj, &koneplus_profile_settings_attr); + sysfs_remove_bin_group(&intf->dev.kobj, &koneplus_bin_attribute_group); sysfs_remove_group(&intf->dev.kobj, &koneplus_attribute_group); }