You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
HID: Add and use hid_<level>: dev_<level> equivalents
Neaten current uses of dev_<level> by adding and using hid specific hid_<level> macros. Convert existing uses of dev_<level> uses to hid_<level>. Convert hid-pidff printk uses to hid_<level>. Remove err_hid and use hid_err instead. Add missing newlines to logging messages where necessary. Coalesce format strings. Add and use pr_fmt(fmt) KBUILD_MODNAME ": " fmt Other miscellaneous changes: Add const struct hid_device * argument to hid-core functions extract() and implement() so hid_<level> can be used by them. Fix bad indentation in hid-core hid_input_field function that calls extract() function above. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
@@ -274,7 +274,7 @@ static int mmm_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
md = kzalloc(sizeof(struct mmm_data), GFP_KERNEL);
|
||||
if (!md) {
|
||||
dev_err(&hdev->dev, "cannot allocate 3M data\n");
|
||||
hid_err(hdev, "cannot allocate 3M data\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
hid_set_drvdata(hdev, md);
|
||||
|
||||
@@ -93,7 +93,7 @@ static int a4_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
a4 = kzalloc(sizeof(*a4), GFP_KERNEL);
|
||||
if (a4 == NULL) {
|
||||
dev_err(&hdev->dev, "can't alloc device descriptor\n");
|
||||
hid_err(hdev, "can't alloc device descriptor\n");
|
||||
ret = -ENOMEM;
|
||||
goto err_free;
|
||||
}
|
||||
@@ -104,13 +104,13 @@ static int a4_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
* any later version.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/device.h>
|
||||
#include <linux/hid.h>
|
||||
#include <linux/module.h>
|
||||
@@ -280,8 +282,8 @@ static __u8 *apple_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
|
||||
if ((asc->quirks & APPLE_RDESC_JIS) && *rsize >= 60 &&
|
||||
rdesc[53] == 0x65 && rdesc[59] == 0x65) {
|
||||
dev_info(&hdev->dev, "fixing up MacBook JIS keyboard report "
|
||||
"descriptor\n");
|
||||
hid_info(hdev,
|
||||
"fixing up MacBook JIS keyboard report descriptor\n");
|
||||
rdesc[53] = rdesc[59] = 0xe7;
|
||||
}
|
||||
return rdesc;
|
||||
@@ -351,7 +353,7 @@ static int apple_probe(struct hid_device *hdev,
|
||||
|
||||
asc = kzalloc(sizeof(*asc), GFP_KERNEL);
|
||||
if (asc == NULL) {
|
||||
dev_err(&hdev->dev, "can't alloc apple descriptor\n");
|
||||
hid_err(hdev, "can't alloc apple descriptor\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@@ -361,7 +363,7 @@ static int apple_probe(struct hid_device *hdev,
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
@@ -372,7 +374,7 @@ static int apple_probe(struct hid_device *hdev,
|
||||
|
||||
ret = hid_hw_start(hdev, connect_mask);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
@@ -512,7 +514,7 @@ static int __init apple_init(void)
|
||||
|
||||
ret = hid_register_driver(&apple_driver);
|
||||
if (ret)
|
||||
printk(KERN_ERR "can't register apple driver\n");
|
||||
pr_err("can't register apple driver\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -73,14 +73,14 @@ static int axff_init(struct hid_device *hid)
|
||||
int error;
|
||||
|
||||
if (list_empty(report_list)) {
|
||||
dev_err(&hid->dev, "no output reports found\n");
|
||||
hid_err(hid, "no output reports found\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
report = list_first_entry(report_list, struct hid_report, list);
|
||||
|
||||
if (report->maxfield < 4) {
|
||||
dev_err(&hid->dev, "no fields in the report: %d\n", report->maxfield);
|
||||
hid_err(hid, "no fields in the report: %d\n", report->maxfield);
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ static int axff_init(struct hid_device *hid)
|
||||
axff->report->field[3]->value[0] = 0x00;
|
||||
usbhid_submit_report(hid, axff->report, USB_DIR_OUT);
|
||||
|
||||
dev_info(&hid->dev, "Force Feedback for ACRUX game controllers by Sergei Kolzun<x0r@dv-life.ru>\n");
|
||||
hid_info(hid, "Force Feedback for ACRUX game controllers by Sergei Kolzun<x0r@dv-life.ru>\n");
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -114,17 +114,17 @@ static int ax_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
{
|
||||
int error;
|
||||
|
||||
dev_dbg(&hdev->dev, "ACRUX HID hardware probe...");
|
||||
dev_dbg(&hdev->dev, "ACRUX HID hardware probe...\n");
|
||||
|
||||
error = hid_parse(hdev);
|
||||
if (error) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
return error;
|
||||
}
|
||||
|
||||
error = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_FF);
|
||||
if (error) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
return error;
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ static int ax_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
* Do not fail device initialization completely as device
|
||||
* may still be partially operable, just warn.
|
||||
*/
|
||||
dev_warn(&hdev->dev,
|
||||
hid_warn(hdev,
|
||||
"Failed to enable force feedback support, error: %d\n",
|
||||
error);
|
||||
}
|
||||
|
||||
@@ -56,14 +56,14 @@ static int belkin_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT |
|
||||
((quirks & BELKIN_HIDDEV) ? HID_CONNECT_HIDDEV_FORCE : 0));
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@ static int cando_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
td = kmalloc(sizeof(struct cando_data), GFP_KERNEL);
|
||||
if (!td) {
|
||||
dev_err(&hdev->dev, "cannot allocate Cando Touch data\n");
|
||||
hid_err(hdev, "cannot allocate Cando Touch data\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
hid_set_drvdata(hdev, td);
|
||||
|
||||
@@ -30,8 +30,7 @@ static __u8 *ch_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
unsigned int *rsize)
|
||||
{
|
||||
if (*rsize >= 17 && rdesc[11] == 0x3c && rdesc[12] == 0x02) {
|
||||
dev_info(&hdev->dev, "fixing up Cherry Cymotion report "
|
||||
"descriptor\n");
|
||||
hid_info(hdev, "fixing up Cherry Cymotion report descriptor\n");
|
||||
rdesc[11] = rdesc[16] = 0xff;
|
||||
rdesc[12] = rdesc[17] = 0x03;
|
||||
}
|
||||
|
||||
+37
-27
@@ -14,6 +14,8 @@
|
||||
* any later version.
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/module.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/init.h>
|
||||
@@ -672,7 +674,8 @@ int hid_parse_report(struct hid_device *device, __u8 *start,
|
||||
|
||||
if (dispatch_type[item.type](parser, &item)) {
|
||||
dbg_hid("item %u %u %u %u parsing failed\n",
|
||||
item.format, (unsigned)item.size, (unsigned)item.type, (unsigned)item.tag);
|
||||
item.format, (unsigned)item.size,
|
||||
(unsigned)item.type, (unsigned)item.tag);
|
||||
goto err;
|
||||
}
|
||||
|
||||
@@ -737,13 +740,14 @@ static u32 s32ton(__s32 value, unsigned n)
|
||||
* Search linux-kernel and linux-usb-devel archives for "hid-core extract".
|
||||
*/
|
||||
|
||||
static __inline__ __u32 extract(__u8 *report, unsigned offset, unsigned n)
|
||||
static __inline__ __u32 extract(const struct hid_device *hid, __u8 *report,
|
||||
unsigned offset, unsigned n)
|
||||
{
|
||||
u64 x;
|
||||
|
||||
if (n > 32)
|
||||
printk(KERN_WARNING "HID: extract() called with n (%d) > 32! (%s)\n",
|
||||
n, current->comm);
|
||||
hid_warn(hid, "extract() called with n (%d) > 32! (%s)\n",
|
||||
n, current->comm);
|
||||
|
||||
report += offset >> 3; /* adjust byte index */
|
||||
offset &= 7; /* now only need bit offset into one byte */
|
||||
@@ -760,18 +764,19 @@ static __inline__ __u32 extract(__u8 *report, unsigned offset, unsigned n)
|
||||
* endianness of register values by considering a register
|
||||
* a "cached" copy of the little endiad bit stream.
|
||||
*/
|
||||
static __inline__ void implement(__u8 *report, unsigned offset, unsigned n, __u32 value)
|
||||
static __inline__ void implement(const struct hid_device *hid, __u8 *report,
|
||||
unsigned offset, unsigned n, __u32 value)
|
||||
{
|
||||
u64 x;
|
||||
u64 m = (1ULL << n) - 1;
|
||||
|
||||
if (n > 32)
|
||||
printk(KERN_WARNING "HID: implement() called with n (%d) > 32! (%s)\n",
|
||||
n, current->comm);
|
||||
hid_warn(hid, "%s() called with n (%d) > 32! (%s)\n",
|
||||
__func__, n, current->comm);
|
||||
|
||||
if (value > m)
|
||||
printk(KERN_WARNING "HID: implement() called with too large value %d! (%s)\n",
|
||||
value, current->comm);
|
||||
hid_warn(hid, "%s() called with too large value %d! (%s)\n",
|
||||
__func__, value, current->comm);
|
||||
WARN_ON(value > m);
|
||||
value &= m;
|
||||
|
||||
@@ -892,13 +897,16 @@ static void hid_input_field(struct hid_device *hid, struct hid_field *field,
|
||||
|
||||
for (n = 0; n < count; n++) {
|
||||
|
||||
value[n] = min < 0 ? snto32(extract(data, offset + n * size, size), size) :
|
||||
extract(data, offset + n * size, size);
|
||||
value[n] = min < 0 ?
|
||||
snto32(extract(hid, data, offset + n * size, size),
|
||||
size) :
|
||||
extract(hid, data, offset + n * size, size);
|
||||
|
||||
if (!(field->flags & HID_MAIN_ITEM_VARIABLE) /* Ignore report if ErrorRollOver */
|
||||
&& value[n] >= min && value[n] <= max
|
||||
&& field->usage[value[n] - min].hid == HID_UP_KEYBOARD + 1)
|
||||
goto exit;
|
||||
/* Ignore report if ErrorRollOver */
|
||||
if (!(field->flags & HID_MAIN_ITEM_VARIABLE) &&
|
||||
value[n] >= min && value[n] <= max &&
|
||||
field->usage[value[n] - min].hid == HID_UP_KEYBOARD + 1)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
for (n = 0; n < count; n++) {
|
||||
@@ -928,7 +936,8 @@ exit:
|
||||
* Output the field into the report.
|
||||
*/
|
||||
|
||||
static void hid_output_field(struct hid_field *field, __u8 *data)
|
||||
static void hid_output_field(const struct hid_device *hid,
|
||||
struct hid_field *field, __u8 *data)
|
||||
{
|
||||
unsigned count = field->report_count;
|
||||
unsigned offset = field->report_offset;
|
||||
@@ -937,9 +946,11 @@ static void hid_output_field(struct hid_field *field, __u8 *data)
|
||||
|
||||
for (n = 0; n < count; n++) {
|
||||
if (field->logical_minimum < 0) /* signed values */
|
||||
implement(data, offset + n * size, size, s32ton(field->value[n], size));
|
||||
implement(hid, data, offset + n * size, size,
|
||||
s32ton(field->value[n], size));
|
||||
else /* unsigned values */
|
||||
implement(data, offset + n * size, size, field->value[n]);
|
||||
implement(hid, data, offset + n * size, size,
|
||||
field->value[n]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -956,7 +967,7 @@ void hid_output_report(struct hid_report *report, __u8 *data)
|
||||
|
||||
memset(data, 0, ((report->size - 1) >> 3) + 1);
|
||||
for (n = 0; n < report->maxfield; n++)
|
||||
hid_output_field(report->field[n], data);
|
||||
hid_output_field(report->device, report->field[n], data);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(hid_output_report);
|
||||
|
||||
@@ -1169,8 +1180,7 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
|
||||
hdev->claimed |= HID_CLAIMED_HIDRAW;
|
||||
|
||||
if (!hdev->claimed) {
|
||||
dev_err(&hdev->dev, "claimed by neither input, hiddev nor "
|
||||
"hidraw\n");
|
||||
hid_err(hdev, "claimed by neither input, hiddev nor hidraw\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -1210,9 +1220,9 @@ int hid_connect(struct hid_device *hdev, unsigned int connect_mask)
|
||||
bus = "<UNKNOWN>";
|
||||
}
|
||||
|
||||
dev_info(&hdev->dev, "%s: %s HID v%x.%02x %s [%s] on %s\n",
|
||||
buf, bus, hdev->version >> 8, hdev->version & 0xff,
|
||||
type, hdev->name, hdev->phys);
|
||||
hid_info(hdev, "%s: %s HID v%x.%02x %s [%s] on %s\n",
|
||||
buf, bus, hdev->version >> 8, hdev->version & 0xff,
|
||||
type, hdev->name, hdev->phys);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -1956,12 +1966,12 @@ static int __init hid_init(void)
|
||||
int ret;
|
||||
|
||||
if (hid_debug)
|
||||
printk(KERN_WARNING "HID: hid_debug is now used solely for parser and driver debugging.\n"
|
||||
"HID: debugfs is now used for inspecting the device (report descriptor, reports)\n");
|
||||
pr_warn("hid_debug is now used solely for parser and driver debugging.\n"
|
||||
"debugfs is now used for inspecting the device (report descriptor, reports)\n");
|
||||
|
||||
ret = bus_register(&hid_bus_type);
|
||||
if (ret) {
|
||||
printk(KERN_ERR "HID: can't register hid bus\n");
|
||||
pr_err("can't register hid bus\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
@@ -107,13 +107,13 @@ static int cp_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
* Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
|
||||
*/
|
||||
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/sched.h>
|
||||
@@ -393,7 +395,7 @@ char *hid_resolv_usage(unsigned usage, struct seq_file *f) {
|
||||
|
||||
buf = resolv_usage_page(usage >> 16, f);
|
||||
if (IS_ERR(buf)) {
|
||||
printk(KERN_ERR "error allocating HID debug buffer\n");
|
||||
pr_err("error allocating HID debug buffer\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -96,18 +96,18 @@ static int drff_init(struct hid_device *hid)
|
||||
int error;
|
||||
|
||||
if (list_empty(report_list)) {
|
||||
dev_err(&hid->dev, "no output reports found\n");
|
||||
hid_err(hid, "no output reports found\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
report = list_first_entry(report_list, struct hid_report, list);
|
||||
if (report->maxfield < 1) {
|
||||
dev_err(&hid->dev, "no fields in the report\n");
|
||||
hid_err(hid, "no fields in the report\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (report->field[0]->report_count < 7) {
|
||||
dev_err(&hid->dev, "not enough values in the field\n");
|
||||
hid_err(hid, "not enough values in the field\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -133,8 +133,8 @@ static int drff_init(struct hid_device *hid)
|
||||
drff->report->field[0]->value[6] = 0x00;
|
||||
usbhid_submit_report(hid, drff->report, USB_DIR_OUT);
|
||||
|
||||
dev_info(&hid->dev, "Force Feedback for DragonRise Inc. game "
|
||||
"controllers by Richard Walmsley <richwalm@gmail.com>\n");
|
||||
hid_info(hid, "Force Feedback for DragonRise Inc. "
|
||||
"game controllers by Richard Walmsley <richwalm@gmail.com>\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -153,13 +153,13 @@ static int dr_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_FF);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
@@ -223,7 +223,7 @@ static int egalax_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
td = kmalloc(sizeof(struct egalax_data), GFP_KERNEL);
|
||||
if (!td) {
|
||||
dev_err(&hdev->dev, "cannot allocate eGalax data\n");
|
||||
hid_err(hdev, "cannot allocate eGalax data\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
hid_set_drvdata(hdev, td);
|
||||
|
||||
@@ -24,8 +24,7 @@ static __u8 *elecom_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
unsigned int *rsize)
|
||||
{
|
||||
if (*rsize >= 48 && rdesc[46] == 0x05 && rdesc[47] == 0x0c) {
|
||||
dev_info(&hdev->dev, "Fixing up Elecom BM084 "
|
||||
"report descriptor.\n");
|
||||
hid_info(hdev, "Fixing up Elecom BM084 report descriptor\n");
|
||||
rdesc[47] = 0x00;
|
||||
}
|
||||
return rdesc;
|
||||
|
||||
@@ -68,18 +68,18 @@ static int emsff_init(struct hid_device *hid)
|
||||
int error;
|
||||
|
||||
if (list_empty(report_list)) {
|
||||
dev_err(&hid->dev, "no output reports found\n");
|
||||
hid_err(hid, "no output reports found\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
report = list_first_entry(report_list, struct hid_report, list);
|
||||
if (report->maxfield < 1) {
|
||||
dev_err(&hid->dev, "no fields in the report\n");
|
||||
hid_err(hid, "no fields in the report\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (report->field[0]->report_count < 7) {
|
||||
dev_err(&hid->dev, "not enough values in the field\n");
|
||||
hid_err(hid, "not enough values in the field\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -105,8 +105,7 @@ static int emsff_init(struct hid_device *hid)
|
||||
emsff->report->field[0]->value[6] = 0x00;
|
||||
usbhid_submit_report(hid, emsff->report, USB_DIR_OUT);
|
||||
|
||||
dev_info(&hid->dev, "force feedback for EMS based devices by "
|
||||
"Ignaz Forster <ignaz.forster@gmx.de>\n");
|
||||
hid_info(hid, "force feedback for EMS based devices by Ignaz Forster <ignaz.forster@gmx.de>\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -117,13 +116,13 @@ static int ems_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_FF);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@ static int gaff_init(struct hid_device *hid)
|
||||
int error;
|
||||
|
||||
if (list_empty(report_list)) {
|
||||
dev_err(&hid->dev, "no output reports found\n");
|
||||
hid_err(hid, "no output reports found\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -95,12 +95,12 @@ static int gaff_init(struct hid_device *hid)
|
||||
|
||||
report = list_entry(report_ptr, struct hid_report, list);
|
||||
if (report->maxfield < 1) {
|
||||
dev_err(&hid->dev, "no fields in the report\n");
|
||||
hid_err(hid, "no fields in the report\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
if (report->field[0]->report_count < 6) {
|
||||
dev_err(&hid->dev, "not enough values in the field\n");
|
||||
hid_err(hid, "not enough values in the field\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -128,8 +128,7 @@ static int gaff_init(struct hid_device *hid)
|
||||
|
||||
usbhid_submit_report(hid, gaff->report, USB_DIR_OUT);
|
||||
|
||||
dev_info(&hid->dev, "Force Feedback for GreenAsia 0x12"
|
||||
" devices by Lukasz Lubojanski <lukasz@lubojanski.info>\n");
|
||||
hid_info(hid, "Force Feedback for GreenAsia 0x12 devices by Lukasz Lubojanski <lukasz@lubojanski.info>\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -148,13 +147,13 @@ static int ga_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT & ~HID_CONNECT_FF);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
||||
@@ -826,7 +826,7 @@ int hidinput_connect(struct hid_device *hid, unsigned int force)
|
||||
if (!hidinput || !input_dev) {
|
||||
kfree(hidinput);
|
||||
input_free_device(input_dev);
|
||||
err_hid("Out of memory during hid input probe");
|
||||
hid_err(hid, "Out of memory during hid input probe\n");
|
||||
goto out_unwind;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,8 +32,8 @@ static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
rdesc[65] == 0x29 && rdesc[66] == 0x0f &&
|
||||
rdesc[71] == 0x75 && rdesc[72] == 0x08 &&
|
||||
rdesc[73] == 0x95 && rdesc[74] == 0x01) {
|
||||
dev_info(&hdev->dev, "fixing up Kye/Genius Ergo Mouse report "
|
||||
"descriptor\n");
|
||||
hid_info(hdev,
|
||||
"fixing up Kye/Genius Ergo Mouse report descriptor\n");
|
||||
rdesc[62] = 0x09;
|
||||
rdesc[64] = 0x04;
|
||||
rdesc[66] = 0x07;
|
||||
|
||||
@@ -53,23 +53,22 @@ static __u8 *lg_report_fixup(struct hid_device *hdev, __u8 *rdesc,
|
||||
|
||||
if ((quirks & LG_RDESC) && *rsize >= 90 && rdesc[83] == 0x26 &&
|
||||
rdesc[84] == 0x8c && rdesc[85] == 0x02) {
|
||||
dev_info(&hdev->dev, "fixing up Logitech keyboard report "
|
||||
"descriptor\n");
|
||||
hid_info(hdev,
|
||||
"fixing up Logitech keyboard report descriptor\n");
|
||||
rdesc[84] = rdesc[89] = 0x4d;
|
||||
rdesc[85] = rdesc[90] = 0x10;
|
||||
}
|
||||
if ((quirks & LG_RDESC_REL_ABS) && *rsize >= 50 &&
|
||||
rdesc[32] == 0x81 && rdesc[33] == 0x06 &&
|
||||
rdesc[49] == 0x81 && rdesc[50] == 0x06) {
|
||||
dev_info(&hdev->dev, "fixing up rel/abs in Logitech "
|
||||
"report descriptor\n");
|
||||
hid_info(hdev,
|
||||
"fixing up rel/abs in Logitech report descriptor\n");
|
||||
rdesc[33] = rdesc[50] = 0x02;
|
||||
}
|
||||
if ((quirks & LG_FF4) && *rsize >= 101 &&
|
||||
rdesc[41] == 0x95 && rdesc[42] == 0x0B &&
|
||||
rdesc[47] == 0x05 && rdesc[48] == 0x09) {
|
||||
dev_info(&hdev->dev, "fixing up Logitech Speed Force Wireless "
|
||||
"button descriptor\n");
|
||||
hid_info(hdev, "fixing up Logitech Speed Force Wireless button descriptor\n");
|
||||
rdesc[41] = 0x05;
|
||||
rdesc[42] = 0x09;
|
||||
rdesc[47] = 0x95;
|
||||
@@ -288,7 +287,7 @@ static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_parse(hdev);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "parse failed\n");
|
||||
hid_err(hdev, "parse failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
@@ -297,7 +296,7 @@ static int lg_probe(struct hid_device *hdev, const struct hid_device_id *id)
|
||||
|
||||
ret = hid_hw_start(hdev, connect_mask);
|
||||
if (ret) {
|
||||
dev_err(&hdev->dev, "hw start failed\n");
|
||||
hid_err(hdev, "hw start failed\n");
|
||||
goto err_free;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,18 +72,18 @@ int lg2ff_init(struct hid_device *hid)
|
||||
int error;
|
||||
|
||||
if (list_empty(report_list)) {
|
||||
dev_err(&hid->dev, "no output report found\n");
|
||||
hid_err(hid, "no output report found\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
report = list_entry(report_list->next, struct hid_report, list);
|
||||
|
||||
if (report->maxfield < 1) {
|
||||
dev_err(&hid->dev, "output report is empty\n");
|
||||
hid_err(hid, "output report is empty\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
if (report->field[0]->report_count < 7) {
|
||||
dev_err(&hid->dev, "not enough values in the field\n");
|
||||
hid_err(hid, "not enough values in the field\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
@@ -110,8 +110,7 @@ int lg2ff_init(struct hid_device *hid)
|
||||
|
||||
usbhid_submit_report(hid, report, USB_DIR_OUT);
|
||||
|
||||
dev_info(&hid->dev, "Force feedback for Logitech RumblePad/Rumblepad 2 by "
|
||||
"Anssi Hannula <anssi.hannula@gmail.com>\n");
|
||||
hid_info(hid, "Force feedback for Logitech RumblePad/Rumblepad 2 by Anssi Hannula <anssi.hannula@gmail.com>\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -141,20 +141,20 @@ int lg3ff_init(struct hid_device *hid)
|
||||
|
||||
/* Find the report to use */
|
||||
if (list_empty(report_list)) {
|
||||
err_hid("No output report found");
|
||||
hid_err(hid, "No output report found\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Check that the report looks ok */
|
||||
report = list_entry(report_list->next, struct hid_report, list);
|
||||
if (!report) {
|
||||
err_hid("NULL output report");
|
||||
hid_err(hid, "NULL output report\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
field = report->field[0];
|
||||
if (!field) {
|
||||
err_hid("NULL field");
|
||||
hid_err(hid, "NULL field\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -169,8 +169,7 @@ int lg3ff_init(struct hid_device *hid)
|
||||
if (test_bit(FF_AUTOCENTER, dev->ffbit))
|
||||
dev->ff->set_autocenter = hid_lg3ff_set_autocenter;
|
||||
|
||||
dev_info(&hid->dev, "Force feedback for Logitech Flight System G940 by "
|
||||
"Gary Stein <LordCnidarian@gmail.com>\n");
|
||||
hid_info(hid, "Force feedback for Logitech Flight System G940 by Gary Stein <LordCnidarian@gmail.com>\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user