Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b9491166
Commit
b9491166
authored
Aug 31, 2023
by
Benjamin Tissoires
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for-6.6/roccat' into for-linus
Constify class struct by Ivan Orlov and Greg Kroah-Hartman
parents
18a09934
21168bdb
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
117 additions
and
98 deletions
+117
-98
drivers/hid/hid-roccat-arvo.c
drivers/hid/hid-roccat-arvo.c
+11
-9
drivers/hid/hid-roccat-isku.c
drivers/hid/hid-roccat-isku.c
+12
-9
drivers/hid/hid-roccat-kone.c
drivers/hid/hid-roccat-kone.c
+13
-11
drivers/hid/hid-roccat-koneplus.c
drivers/hid/hid-roccat-koneplus.c
+12
-10
drivers/hid/hid-roccat-konepure.c
drivers/hid/hid-roccat-konepure.c
+12
-10
drivers/hid/hid-roccat-kovaplus.c
drivers/hid/hid-roccat-kovaplus.c
+12
-10
drivers/hid/hid-roccat-pyra.c
drivers/hid/hid-roccat-pyra.c
+12
-10
drivers/hid/hid-roccat-ryos.c
drivers/hid/hid-roccat-ryos.c
+11
-9
drivers/hid/hid-roccat-savu.c
drivers/hid/hid-roccat-savu.c
+11
-9
drivers/hid/hid-roccat.c
drivers/hid/hid-roccat.c
+1
-1
drivers/hid/hidraw.c
drivers/hid/hidraw.c
+9
-9
include/linux/hid-roccat.h
include/linux/hid-roccat.h
+1
-1
No files found.
drivers/hid/hid-roccat-arvo.c
View file @
b9491166
...
...
@@ -23,8 +23,6 @@
#include "hid-roccat-common.h"
#include "hid-roccat-arvo.h"
static
struct
class
*
arvo_class
;
static
ssize_t
arvo_sysfs_show_mode_key
(
struct
device
*
dev
,
struct
device_attribute
*
attr
,
char
*
buf
)
{
...
...
@@ -268,6 +266,11 @@ static const struct attribute_group *arvo_groups[] = {
NULL
,
};
static
const
struct
class
arvo_class
=
{
.
name
=
"arvo"
,
.
dev_groups
=
arvo_groups
,
};
static
int
arvo_init_arvo_device_struct
(
struct
usb_device
*
usb_dev
,
struct
arvo_device
*
arvo
)
{
...
...
@@ -309,7 +312,7 @@ static int arvo_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
arvo_class
,
hdev
,
retval
=
roccat_connect
(
&
arvo_class
,
hdev
,
sizeof
(
struct
arvo_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
...
...
@@ -433,21 +436,20 @@ static int __init arvo_init(void)
{
int
retval
;
arvo_class
=
class_create
(
"arvo"
);
if
(
IS_ERR
(
arvo_class
))
return
PTR_ERR
(
arvo_class
);
arvo_class
->
dev_groups
=
arvo_groups
;
retval
=
class_register
(
&
arvo_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
arvo_driver
);
if
(
retval
)
class_
destroy
(
arvo_class
);
class_
unregister
(
&
arvo_class
);
return
retval
;
}
static
void
__exit
arvo_exit
(
void
)
{
hid_unregister_driver
(
&
arvo_driver
);
class_
destroy
(
arvo_class
);
class_
unregister
(
&
arvo_class
);
}
module_init
(
arvo_init
);
...
...
drivers/hid/hid-roccat-isku.c
View file @
b9491166
...
...
@@ -23,8 +23,6 @@
#include "hid-roccat-common.h"
#include "hid-roccat-isku.h"
static
struct
class
*
isku_class
;
static
void
isku_profile_activated
(
struct
isku_device
*
isku
,
uint
new_profile
)
{
isku
->
actual_profile
=
new_profile
;
...
...
@@ -248,6 +246,11 @@ static const struct attribute_group *isku_groups[] = {
NULL
,
};
static
const
struct
class
isku_class
=
{
.
name
=
"isku"
,
.
dev_groups
=
isku_groups
,
};
static
int
isku_init_isku_device_struct
(
struct
usb_device
*
usb_dev
,
struct
isku_device
*
isku
)
{
...
...
@@ -289,7 +292,7 @@ static int isku_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
isku_class
,
hdev
,
retval
=
roccat_connect
(
&
isku_class
,
hdev
,
sizeof
(
struct
isku_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
...
...
@@ -435,21 +438,21 @@ static struct hid_driver isku_driver = {
static
int
__init
isku_init
(
void
)
{
int
retval
;
isku_class
=
class_create
(
"isku"
);
if
(
IS_ERR
(
isku_class
))
return
PTR_ERR
(
isku_class
);
isku_class
->
dev_groups
=
isku_groups
;
retval
=
class_register
(
&
isku_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
isku_driver
);
if
(
retval
)
class_
destroy
(
isku_class
);
class_
unregister
(
&
isku_class
);
return
retval
;
}
static
void
__exit
isku_exit
(
void
)
{
hid_unregister_driver
(
&
isku_driver
);
class_
destroy
(
isku_class
);
class_
unregister
(
&
isku_class
);
}
module_init
(
isku_init
);
...
...
drivers/hid/hid-roccat-kone.c
View file @
b9491166
...
...
@@ -89,9 +89,6 @@ static int kone_send(struct usb_device *usb_dev, uint usb_command,
return
((
len
<
0
)
?
len
:
((
len
!=
size
)
?
-
EIO
:
0
));
}
/* kone_class is used for creating sysfs attributes via roccat char device */
static
struct
class
*
kone_class
;
static
void
kone_set_settings_checksum
(
struct
kone_settings
*
settings
)
{
uint16_t
checksum
=
0
;
...
...
@@ -657,6 +654,12 @@ static const struct attribute_group *kone_groups[] = {
NULL
,
};
/* kone_class is used for creating sysfs attributes via roccat char device */
static
const
struct
class
kone_class
=
{
.
name
=
"kone"
,
.
dev_groups
=
kone_groups
,
};
static
int
kone_init_kone_device_struct
(
struct
usb_device
*
usb_dev
,
struct
kone_device
*
kone
)
{
...
...
@@ -712,8 +715,8 @@ static int kone_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
kone_class
,
hdev
,
sizeof
(
struct
kone_roccat_report
));
retval
=
roccat_connect
(
&
kone_class
,
hdev
,
sizeof
(
struct
kone_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
/* be tolerant about not getting chrdev */
...
...
@@ -890,21 +893,20 @@ static int __init kone_init(void)
int
retval
;
/* class name has to be same as driver name */
kone_class
=
class_create
(
"kone"
);
if
(
IS_ERR
(
kone_class
))
return
PTR_ERR
(
kone_class
);
kone_class
->
dev_groups
=
kone_groups
;
retval
=
class_register
(
&
kone_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
kone_driver
);
if
(
retval
)
class_
destroy
(
kone_class
);
class_
unregister
(
&
kone_class
);
return
retval
;
}
static
void
__exit
kone_exit
(
void
)
{
hid_unregister_driver
(
&
kone_driver
);
class_
destroy
(
kone_class
);
class_
unregister
(
&
kone_class
);
}
module_init
(
kone_init
);
...
...
drivers/hid/hid-roccat-koneplus.c
View file @
b9491166
...
...
@@ -26,8 +26,6 @@
static
uint
profile_numbers
[
5
]
=
{
0
,
1
,
2
,
3
,
4
};
static
struct
class
*
koneplus_class
;
static
void
koneplus_profile_activated
(
struct
koneplus_device
*
koneplus
,
uint
new_profile
)
{
...
...
@@ -356,6 +354,11 @@ static const struct attribute_group *koneplus_groups[] = {
NULL
,
};
static
const
struct
class
koneplus_class
=
{
.
name
=
"koneplus"
,
.
dev_groups
=
koneplus_groups
,
};
static
int
koneplus_init_koneplus_device_struct
(
struct
usb_device
*
usb_dev
,
struct
koneplus_device
*
koneplus
)
{
...
...
@@ -394,8 +397,8 @@ static int koneplus_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
koneplus_class
,
hdev
,
sizeof
(
struct
koneplus_roccat_report
));
retval
=
roccat_connect
(
&
koneplus_class
,
hdev
,
sizeof
(
struct
koneplus_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
}
else
{
...
...
@@ -549,21 +552,20 @@ static int __init koneplus_init(void)
int
retval
;
/* class name has to be same as driver name */
koneplus_class
=
class_create
(
"koneplus"
);
if
(
IS_ERR
(
koneplus_class
))
return
PTR_ERR
(
koneplus_class
);
koneplus_class
->
dev_groups
=
koneplus_groups
;
retval
=
class_register
(
&
koneplus_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
koneplus_driver
);
if
(
retval
)
class_
destroy
(
koneplus_class
);
class_
unregister
(
&
koneplus_class
);
return
retval
;
}
static
void
__exit
koneplus_exit
(
void
)
{
hid_unregister_driver
(
&
koneplus_driver
);
class_
destroy
(
koneplus_class
);
class_
unregister
(
&
koneplus_class
);
}
module_init
(
koneplus_init
);
...
...
drivers/hid/hid-roccat-konepure.c
View file @
b9491166
...
...
@@ -36,8 +36,6 @@ struct konepure_mouse_report_button {
uint8_t
unknown
[
2
];
}
__packed
;
static
struct
class
*
konepure_class
;
ROCCAT_COMMON2_BIN_ATTRIBUTE_W
(
control
,
0x04
,
0x03
);
ROCCAT_COMMON2_BIN_ATTRIBUTE_RW
(
actual_profile
,
0x05
,
0x03
);
ROCCAT_COMMON2_BIN_ATTRIBUTE_RW
(
profile_settings
,
0x06
,
0x1f
);
...
...
@@ -72,6 +70,11 @@ static const struct attribute_group *konepure_groups[] = {
NULL
,
};
static
const
struct
class
konepure_class
=
{
.
name
=
"konepure"
,
.
dev_groups
=
konepure_groups
,
};
static
int
konepure_init_specials
(
struct
hid_device
*
hdev
)
{
struct
usb_interface
*
intf
=
to_usb_interface
(
hdev
->
dev
.
parent
);
...
...
@@ -98,8 +101,8 @@ static int konepure_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
konepure_class
,
hdev
,
sizeof
(
struct
konepure_mouse_report_button
));
retval
=
roccat_connect
(
&
konepure_class
,
hdev
,
sizeof
(
struct
konepure_mouse_report_button
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
}
else
{
...
...
@@ -207,21 +210,20 @@ static int __init konepure_init(void)
{
int
retval
;
konepure_class
=
class_create
(
"konepure"
);
if
(
IS_ERR
(
konepure_class
))
return
PTR_ERR
(
konepure_class
);
konepure_class
->
dev_groups
=
konepure_groups
;
retval
=
class_register
(
&
konepure_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
konepure_driver
);
if
(
retval
)
class_
destroy
(
konepure_class
);
class_
unregister
(
&
konepure_class
);
return
retval
;
}
static
void
__exit
konepure_exit
(
void
)
{
hid_unregister_driver
(
&
konepure_driver
);
class_
destroy
(
konepure_class
);
class_
unregister
(
&
konepure_class
);
}
module_init
(
konepure_init
);
...
...
drivers/hid/hid-roccat-kovaplus.c
View file @
b9491166
...
...
@@ -24,8 +24,6 @@
static
uint
profile_numbers
[
5
]
=
{
0
,
1
,
2
,
3
,
4
};
static
struct
class
*
kovaplus_class
;
static
uint
kovaplus_convert_event_cpi
(
uint
value
)
{
return
(
value
==
7
?
4
:
(
value
==
4
?
3
:
value
));
...
...
@@ -409,6 +407,11 @@ static const struct attribute_group *kovaplus_groups[] = {
NULL
,
};
static
const
struct
class
kovaplus_class
=
{
.
name
=
"kovaplus"
,
.
dev_groups
=
kovaplus_groups
,
};
static
int
kovaplus_init_kovaplus_device_struct
(
struct
usb_device
*
usb_dev
,
struct
kovaplus_device
*
kovaplus
)
{
...
...
@@ -463,8 +466,8 @@ static int kovaplus_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
kovaplus_class
,
hdev
,
sizeof
(
struct
kovaplus_roccat_report
));
retval
=
roccat_connect
(
&
kovaplus_class
,
hdev
,
sizeof
(
struct
kovaplus_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
}
else
{
...
...
@@ -638,21 +641,20 @@ static int __init kovaplus_init(void)
{
int
retval
;
kovaplus_class
=
class_create
(
"kovaplus"
);
if
(
IS_ERR
(
kovaplus_class
))
return
PTR_ERR
(
kovaplus_class
);
kovaplus_class
->
dev_groups
=
kovaplus_groups
;
retval
=
class_register
(
&
kovaplus_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
kovaplus_driver
);
if
(
retval
)
class_
destroy
(
kovaplus_class
);
class_
unregister
(
&
kovaplus_class
);
return
retval
;
}
static
void
__exit
kovaplus_exit
(
void
)
{
hid_unregister_driver
(
&
kovaplus_driver
);
class_
destroy
(
kovaplus_class
);
class_
unregister
(
&
kovaplus_class
);
}
module_init
(
kovaplus_init
);
...
...
drivers/hid/hid-roccat-pyra.c
View file @
b9491166
...
...
@@ -26,9 +26,6 @@
static
uint
profile_numbers
[
5
]
=
{
0
,
1
,
2
,
3
,
4
};
/* pyra_class is used for creating sysfs attributes via roccat char device */
static
struct
class
*
pyra_class
;
static
void
profile_activated
(
struct
pyra_device
*
pyra
,
unsigned
int
new_profile
)
{
...
...
@@ -366,6 +363,12 @@ static const struct attribute_group *pyra_groups[] = {
NULL
,
};
/* pyra_class is used for creating sysfs attributes via roccat char device */
static
const
struct
class
pyra_class
=
{
.
name
=
"pyra"
,
.
dev_groups
=
pyra_groups
,
};
static
int
pyra_init_pyra_device_struct
(
struct
usb_device
*
usb_dev
,
struct
pyra_device
*
pyra
)
{
...
...
@@ -413,7 +416,7 @@ static int pyra_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
pyra_class
,
hdev
,
retval
=
roccat_connect
(
&
pyra_class
,
hdev
,
sizeof
(
struct
pyra_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
...
...
@@ -585,21 +588,20 @@ static int __init pyra_init(void)
int
retval
;
/* class name has to be same as driver name */
pyra_class
=
class_create
(
"pyra"
);
if
(
IS_ERR
(
pyra_class
))
return
PTR_ERR
(
pyra_class
);
pyra_class
->
dev_groups
=
pyra_groups
;
retval
=
class_register
(
&
pyra_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
pyra_driver
);
if
(
retval
)
class_
destroy
(
pyra_class
);
class_
unregister
(
&
pyra_class
);
return
retval
;
}
static
void
__exit
pyra_exit
(
void
)
{
hid_unregister_driver
(
&
pyra_driver
);
class_
destroy
(
pyra_class
);
class_
unregister
(
&
pyra_class
);
}
module_init
(
pyra_init
);
...
...
drivers/hid/hid-roccat-ryos.c
View file @
b9491166
...
...
@@ -28,8 +28,6 @@ struct ryos_report_special {
uint8_t
data
[
4
];
}
__packed
;
static
struct
class
*
ryos_class
;
ROCCAT_COMMON2_BIN_ATTRIBUTE_W
(
control
,
0x04
,
0x03
);
ROCCAT_COMMON2_BIN_ATTRIBUTE_RW
(
profile
,
0x05
,
0x03
);
ROCCAT_COMMON2_BIN_ATTRIBUTE_RW
(
keys_primary
,
0x06
,
0x7d
);
...
...
@@ -80,6 +78,11 @@ static const struct attribute_group *ryos_groups[] = {
NULL
,
};
static
const
struct
class
ryos_class
=
{
.
name
=
"ryos"
,
.
dev_groups
=
ryos_groups
,
};
static
int
ryos_init_specials
(
struct
hid_device
*
hdev
)
{
struct
usb_interface
*
intf
=
to_usb_interface
(
hdev
->
dev
.
parent
);
...
...
@@ -106,7 +109,7 @@ static int ryos_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
ryos_class
,
hdev
,
retval
=
roccat_connect
(
&
ryos_class
,
hdev
,
sizeof
(
struct
ryos_report_special
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
...
...
@@ -216,21 +219,20 @@ static int __init ryos_init(void)
{
int
retval
;
ryos_class
=
class_create
(
"ryos"
);
if
(
IS_ERR
(
ryos_class
))
return
PTR_ERR
(
ryos_class
);
ryos_class
->
dev_groups
=
ryos_groups
;
retval
=
class_register
(
&
ryos_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
ryos_driver
);
if
(
retval
)
class_
destroy
(
ryos_class
);
class_
unregister
(
&
ryos_class
);
return
retval
;
}
static
void
__exit
ryos_exit
(
void
)
{
hid_unregister_driver
(
&
ryos_driver
);
class_
destroy
(
ryos_class
);
class_
unregister
(
&
ryos_class
);
}
module_init
(
ryos_init
);
...
...
drivers/hid/hid-roccat-savu.c
View file @
b9491166
...
...
@@ -22,8 +22,6 @@
#include "hid-roccat-common.h"
#include "hid-roccat-savu.h"
static
struct
class
*
savu_class
;
ROCCAT_COMMON2_BIN_ATTRIBUTE_W
(
control
,
0x4
,
0x03
);
ROCCAT_COMMON2_BIN_ATTRIBUTE_RW
(
profile
,
0x5
,
0x03
);
ROCCAT_COMMON2_BIN_ATTRIBUTE_RW
(
general
,
0x6
,
0x10
);
...
...
@@ -52,6 +50,11 @@ static const struct attribute_group *savu_groups[] = {
NULL
,
};
static
const
struct
class
savu_class
=
{
.
name
=
"savu"
,
.
dev_groups
=
savu_groups
,
};
static
int
savu_init_specials
(
struct
hid_device
*
hdev
)
{
struct
usb_interface
*
intf
=
to_usb_interface
(
hdev
->
dev
.
parent
);
...
...
@@ -78,7 +81,7 @@ static int savu_init_specials(struct hid_device *hdev)
goto
exit_free
;
}
retval
=
roccat_connect
(
savu_class
,
hdev
,
retval
=
roccat_connect
(
&
savu_class
,
hdev
,
sizeof
(
struct
savu_roccat_report
));
if
(
retval
<
0
)
{
hid_err
(
hdev
,
"couldn't init char dev
\n
"
);
...
...
@@ -204,21 +207,20 @@ static int __init savu_init(void)
{
int
retval
;
savu_class
=
class_create
(
"savu"
);
if
(
IS_ERR
(
savu_class
))
return
PTR_ERR
(
savu_class
);
savu_class
->
dev_groups
=
savu_groups
;
retval
=
class_register
(
&
savu_class
);
if
(
retval
)
return
retval
;
retval
=
hid_register_driver
(
&
savu_driver
);
if
(
retval
)
class_
destroy
(
savu_class
);
class_
unregister
(
&
savu_class
);
return
retval
;
}
static
void
__exit
savu_exit
(
void
)
{
hid_unregister_driver
(
&
savu_driver
);
class_
destroy
(
savu_class
);
class_
unregister
(
&
savu_class
);
}
module_init
(
savu_init
);
...
...
drivers/hid/hid-roccat.c
View file @
b9491166
...
...
@@ -295,7 +295,7 @@ EXPORT_SYMBOL_GPL(roccat_report_event);
* Return value is minor device number in Range [0, ROCCAT_MAX_DEVICES] on
* success, a negative error code on failure.
*/
int
roccat_connect
(
struct
class
*
klass
,
struct
hid_device
*
hid
,
int
report_size
)
int
roccat_connect
(
const
struct
class
*
klass
,
struct
hid_device
*
hid
,
int
report_size
)
{
unsigned
int
minor
;
struct
roccat_device
*
device
;
...
...
drivers/hid/hidraw.c
View file @
b9491166
...
...
@@ -32,7 +32,9 @@
static
int
hidraw_major
;
static
struct
cdev
hidraw_cdev
;
static
struct
class
*
hidraw_class
;
static
const
struct
class
hidraw_class
=
{
.
name
=
"hidraw"
,
};
static
struct
hidraw
*
hidraw_table
[
HIDRAW_MAX_DEVICES
];
static
DECLARE_RWSEM
(
minors_rwsem
);
...
...
@@ -329,7 +331,7 @@ static void drop_ref(struct hidraw *hidraw, int exists_bit)
hid_hw_close
(
hidraw
->
hid
);
wake_up_interruptible
(
&
hidraw
->
wait
);
}
device_destroy
(
hidraw_class
,
device_destroy
(
&
hidraw_class
,
MKDEV
(
hidraw_major
,
hidraw
->
minor
));
}
else
{
--
hidraw
->
open
;
...
...
@@ -569,7 +571,7 @@ int hidraw_connect(struct hid_device *hid)
goto
out
;
}
dev
->
dev
=
device_create
(
hidraw_class
,
&
hid
->
dev
,
MKDEV
(
hidraw_major
,
minor
),
dev
->
dev
=
device_create
(
&
hidraw_class
,
&
hid
->
dev
,
MKDEV
(
hidraw_major
,
minor
),
NULL
,
"%s%d"
,
"hidraw"
,
minor
);
if
(
IS_ERR
(
dev
->
dev
))
{
...
...
@@ -623,11 +625,9 @@ int __init hidraw_init(void)
hidraw_major
=
MAJOR
(
dev_id
);
hidraw_class
=
class_create
(
"hidraw"
);
if
(
IS_ERR
(
hidraw_class
))
{
result
=
PTR_ERR
(
hidraw_class
);
result
=
class_register
(
&
hidraw_class
);
if
(
result
)
goto
error_cdev
;
}
cdev_init
(
&
hidraw_cdev
,
&
hidraw_ops
);
result
=
cdev_add
(
&
hidraw_cdev
,
dev_id
,
HIDRAW_MAX_DEVICES
);
...
...
@@ -639,7 +639,7 @@ int __init hidraw_init(void)
return
result
;
error_class:
class_
destroy
(
hidraw_class
);
class_
unregister
(
&
hidraw_class
);
error_cdev:
unregister_chrdev_region
(
dev_id
,
HIDRAW_MAX_DEVICES
);
goto
out
;
...
...
@@ -650,7 +650,7 @@ void hidraw_exit(void)
dev_t
dev_id
=
MKDEV
(
hidraw_major
,
0
);
cdev_del
(
&
hidraw_cdev
);
class_
destroy
(
hidraw_class
);
class_
unregister
(
&
hidraw_class
);
unregister_chrdev_region
(
dev_id
,
HIDRAW_MAX_DEVICES
);
}
include/linux/hid-roccat.h
View file @
b9491166
...
...
@@ -16,7 +16,7 @@
#ifdef __KERNEL__
int
roccat_connect
(
struct
class
*
klass
,
struct
hid_device
*
hid
,
int
roccat_connect
(
const
struct
class
*
klass
,
struct
hid_device
*
hid
,
int
report_size
);
void
roccat_disconnect
(
int
minor
);
int
roccat_report_event
(
int
minor
,
u8
const
*
data
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment