* [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: Anssi Hannula @ 2013-10-07 16:48 UTC (permalink / raw)
To: Jiri Kosina
Cc: linux-usb, linux-input, Elias Vanderstuyft, Simon Wood, stable
From: Elias Vanderstuyft <Elias.vds@gmail.com>
Add USB IDs for Logitech Formula Vibration Feedback Wheel (046d:ca04).
The lg2ff force feedback subdriver is used for vibration and
HID_GD_MULTIAXIS is set to avoid deadzone like other Logitech wheels.
Kconfig description etc are also updated accordingly.
Signed-off-by: Elias Vanderstuyft <Elias.vds@gmail.com>
[anssi.hannula@iki.fi: added description and CCs]
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Cc: Simon Wood <simon@mungewell.org>
Cc: <stable@vger.kernel.org>
---
Simon, does this look OK to you, or do you think it should be an lg4ff
device? Though I guess lg2ff is better than nothing even in that case.
Jiri, lets see if we get a comment from Simon before applying.
I added CC to stable since it is just ID additions (plus description
stuff), but feel free to drop that if you think it is not appropriate.
drivers/hid/Kconfig | 8 +++++---
drivers/hid/hid-core.c | 1 +
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-lg.c | 3 +++
drivers/hid/hid-lg2ff.c | 2 +-
5 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 71b70e3..42c2a8b 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -368,12 +368,14 @@ config LOGITECH_FF
force feedback.
config LOGIRUMBLEPAD2_FF
- bool "Logitech RumblePad/Rumblepad 2 force feedback support"
+ bool "Logitech force feedback support (variant 2)"
depends on HID_LOGITECH
select INPUT_FF_MEMLESS
help
- Say Y here if you want to enable force feedback support for Logitech
- RumblePad and Rumblepad 2 devices.
+ Say Y here if you want to enable force feedback support for:
+ - Logitech RumblePad
+ - Logitech Rumblepad 2
+ - Logitech Formula Vibration Feedback Wheel
config LOGIG940_FF
bool "Logitech Flight System G940 force feedback support"
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index b8470b1..037915f 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1752,6 +1752,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_FLIGHT_SYSTEM_G940) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2) },
+ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_VIBRATION_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFP_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFGT_WHEEL) },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index e60e8d5..0ff958b 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -570,6 +570,7 @@
#define USB_DEVICE_ID_DINOVO_EDGE 0xc714
#define USB_DEVICE_ID_DINOVO_MINI 0xc71f
#define USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2 0xca03
+#define USB_DEVICE_ID_LOGITECH_VIBRATION_WHEEL 0xca04
#define USB_VENDOR_ID_LUMIO 0x202e
#define USB_DEVICE_ID_CRYSTALTOUCH 0x0006
diff --git a/drivers/hid/hid-lg.c b/drivers/hid/hid-lg.c
index 6f12ecd..c2c7dab 100644
--- a/drivers/hid/hid-lg.c
+++ b/drivers/hid/hid-lg.c
@@ -492,6 +492,7 @@ static int lg_input_mapped(struct hid_device *hdev, struct hid_input *hi,
case USB_DEVICE_ID_LOGITECH_G27_WHEEL:
case USB_DEVICE_ID_LOGITECH_WII_WHEEL:
case USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2:
+ case USB_DEVICE_ID_LOGITECH_VIBRATION_WHEEL:
field->application = HID_GD_MULTIAXIS;
break;
default:
@@ -639,6 +640,8 @@ static const struct hid_device_id lg_devices[] = {
.driver_data = LG_NOGET | LG_FF4 },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOMO_WHEEL2),
.driver_data = LG_FF4 },
+ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_VIBRATION_WHEEL),
+ .driver_data = LG_FF2 },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_G25_WHEEL),
.driver_data = LG_FF4 },
{ HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_DFGT_WHEEL),
diff --git a/drivers/hid/hid-lg2ff.c b/drivers/hid/hid-lg2ff.c
index 1a42eaa..0e3fb1a 100644
--- a/drivers/hid/hid-lg2ff.c
+++ b/drivers/hid/hid-lg2ff.c
@@ -95,7 +95,7 @@ int lg2ff_init(struct hid_device *hid)
hid_hw_request(hid, report, HID_REQ_SET_REPORT);
- hid_info(hid, "Force feedback for Logitech RumblePad/Rumblepad 2 by Anssi Hannula <anssi.hannula@gmail.com>\n");
+ hid_info(hid, "Force feedback for Logitech variant 2 rumble devices by Anssi Hannula <anssi.hannula@gmail.com>\n");
return 0;
}
--
1.8.1.5
^ permalink raw reply related
* Re: [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: simon-wM4F9T/ekXmXDw4h08c5KA @ 2013-10-07 17:48 UTC (permalink / raw)
To: Anssi Hannula
Cc: Jiri Kosina, linux-usb-u79uwXL29TY76Z2rM5mHXA,
linux-input-u79uwXL29TY76Z2rM5mHXA, Elias Vanderstuyft,
Simon Wood, stable-u79uwXL29TY76Z2rM5mHXA,
"Michal Malý"
In-Reply-To: <1381164492-27145-1-git-send-email-anssi.hannula-X3B1VOXEql0@public.gmane.org>
> From: Elias Vanderstuyft <Elias.vds-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
>
> Add USB IDs for Logitech Formula Vibration Feedback Wheel (046d:ca04).
>
> The lg2ff force feedback subdriver is used for vibration and
> HID_GD_MULTIAXIS is set to avoid deadzone like other Logitech wheels.
>
> Kconfig description etc are also updated accordingly.
>
> Signed-off-by: Elias Vanderstuyft <Elias.vds-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> [anssi.hannula-X3B1VOXEql0@public.gmane.org: added description and CCs]
> Signed-off-by: Anssi Hannula <anssi.hannula-X3B1VOXEql0@public.gmane.org>
> Cc: Simon Wood <simon-wM4F9T/ekXmXDw4h08c5KA@public.gmane.org>
> Cc: <stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
> ---
>
> Simon, does this look OK to you, or do you think it should be an lg4ff
> device? Though I guess lg2ff is better than nothing even in that case.
>
> Jiri, lets see if we get a comment from Simon before applying.
>
I've cc'ed Michal as he contributed a lot to lg4ff and is looking at
improving ff-memless.
I am unfamiliar with this wheel (180' rotation, bungee cord for autocenter
and rumble motors - or so google tells me...), it's not listed on
Wikipedia (hint, hint):
http://en.wikipedia.org/wiki/Racing_wheel
At present lg4ff does not support RUMBLE effects (only CONSTANT and
AUTOCENTER), so lg2ff seems a sensible place. The only minor concern I
would have is any confusion from the descriptions in Kconfig.
I didn't build, but think that the patch looks OK to commit.
For the other wheels we have re-written the HID descriptors to split
brake/accel into seperate axis. Do you know whether this is possible for
this wheel too?
Thanks for your patch,
Simon.
Signed-off-by: Simon Wood <simon-wM4F9T/ekXmXDw4h08c5KA@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: Anssi Hannula @ 2013-10-07 17:56 UTC (permalink / raw)
To: simon
Cc: Jiri Kosina, linux-usb, linux-input, Elias Vanderstuyft, stable,
Michal Malý
In-Reply-To: <cec1e0ca61cf17ceb6e52faa4f2baad9.squirrel@mungewell.org>
07.10.2013 20:48, simon@mungewell.org kirjoitti:
>> From: Elias Vanderstuyft <Elias.vds@gmail.com>
>>
>> Add USB IDs for Logitech Formula Vibration Feedback Wheel (046d:ca04).
>>
>> The lg2ff force feedback subdriver is used for vibration and
>> HID_GD_MULTIAXIS is set to avoid deadzone like other Logitech wheels.
>>
>> Kconfig description etc are also updated accordingly.
>>
>> Signed-off-by: Elias Vanderstuyft <Elias.vds@gmail.com>
>> [anssi.hannula@iki.fi: added description and CCs]
>> Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
>> Cc: Simon Wood <simon@mungewell.org>
>> Cc: <stable@vger.kernel.org>
>> ---
>>
>> Simon, does this look OK to you, or do you think it should be an lg4ff
>> device? Though I guess lg2ff is better than nothing even in that case.
>>
>> Jiri, lets see if we get a comment from Simon before applying.
>>
>
> I've cc'ed Michal as he contributed a lot to lg4ff and is looking at
> improving ff-memless.
>
> I am unfamiliar with this wheel (180' rotation, bungee cord for autocenter
> and rumble motors - or so google tells me...), it's not listed on
> Wikipedia (hint, hint):
> http://en.wikipedia.org/wiki/Racing_wheel
>
> At present lg4ff does not support RUMBLE effects (only CONSTANT and
> AUTOCENTER), so lg2ff seems a sensible place. The only minor concern I
> would have is any confusion from the descriptions in Kconfig.
>
> I didn't build, but think that the patch looks OK to commit.
>
> For the other wheels we have re-written the HID descriptors to split
> brake/accel into seperate axis. Do you know whether this is possible for
> this wheel too?
Elias noted earlier that it is configurable in Windows at least, so that
might be the case. We didn't look at the HID descriptors, though, but
feel free to work with him to see if it is possible :)
> Thanks for your patch,
> Simon.
>
> Signed-off-by: Simon Wood <simon@mungewell.org>
--
Anssi Hannula
^ permalink raw reply
* Re: [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: simon @ 2013-10-07 20:03 UTC (permalink / raw)
To: Elias Vanderstuyft
Cc: Anssi Hannula, simon, Jiri Kosina, linux-usb, linux-input, stable,
"Michal Malý"
In-Reply-To: <CADbOyBSry1eFsCycM-BaDEhaA7_+JUBpYZEqA4s5s-g2vq5whg@mail.gmail.com>
> I don't really know what you need for the HID descriptors, but I thought
> maybe I should post usbmon output when plugging in the wheel:
I'm not sure I can do anything with that file. It would be great if you
could dump/attach the report descriptor file. This can be found in the
/sys folder structure under the USB ID for your device.
ie. for my Sony Dual Shock controller
--
simon@simon-virtual-machine:/sys/bus/usb/devices/1-1:1.0/0003:054C:0268.0001$
hexdump -C report_descriptor
00000000 05 01 09 04 a1 01 a1 02 85 01 75 08 95 01 15 00
|..........u.....|
00000010 26 ff 00 81 03 75 01 95 13 15 00 25 01 35 00 45
|&....u.....%.5.E|
00000020 01 05 09 19 01 29 13 81 02 75 01 95 0d 06 00 ff
|.....)...u......|
00000030 81 03 15 00 26 ff 00 05 01 09 01 a1 00 75 08 95
|....&........u..|
00000040 04 35 00 46 ff 00 09 30 09 31 09 32 09 35 81 02
|.5.F...0.1.2.5..|
00000050 c0 05 01 95 13 09 01 81 02 95 0c 81 01 75 10 95
|.............u..|
00000060 04 26 ff 03 46 ff 03 09 01 81 02 c0 a1 02 85 02
|.&..F...........|
00000070 75 08 95 30 09 01 b1 02 c0 a1 02 85 ee 75 08 95
|u..0.........u..|
00000080 30 09 01 b1 02 c0 a1 02 85 ef 75 08 95 30 09 01
|0.........u..0..|
00000090 b1 02 c0 c0 |....|
00000094
--
To confirm which bits of the HID stream actually change when the pedals
are pushed you could run the command as root.
--
$ hexdump -v -e '17/1 "%02x " "\n"' < /dev/hidraw0
--
You'll have to change the '17' to match the actual number of bytes your
wheel sends, when you get it right the columns of values will change
'nicely' as you steer/depress the pedals/etc.
I'm expecting to see one column (or two adjacent if the bits don't align)
change as you press the brake/etc. If you can send a small capture showing
values changing for each of brake and accel that should be enough
information.
When we know where the data is, we can tell Linux's HID system which bits
to interpret as Y and Z axis.
Cheers,
Simon
^ permalink raw reply
* [PATCH 01/02] input: serio: use DEVICE_ATTR_RO()
From: Greg Kroah-Hartman @ 2013-10-08 1:08 UTC (permalink / raw)
To: Dmitry Torokhov, linux-input; +Cc: Greg Kroah-Hartman
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Convert the serio sysfs fiels to use the DEVICE_ATTR_RO() macros to make
it easier to audit the correct sysfs file permission usage.
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: <linux-input@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/input/serio/serio.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -373,34 +373,34 @@ static ssize_t serio_show_modalias(struc
serio->id.type, serio->id.proto, serio->id.id, serio->id.extra);
}
-static ssize_t serio_show_id_type(struct device *dev, struct device_attribute *attr, char *buf)
+static ssize_t type_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct serio *serio = to_serio_port(dev);
return sprintf(buf, "%02x\n", serio->id.type);
}
-static ssize_t serio_show_id_proto(struct device *dev, struct device_attribute *attr, char *buf)
+static ssize_t proto_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct serio *serio = to_serio_port(dev);
return sprintf(buf, "%02x\n", serio->id.proto);
}
-static ssize_t serio_show_id_id(struct device *dev, struct device_attribute *attr, char *buf)
+static ssize_t id_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct serio *serio = to_serio_port(dev);
return sprintf(buf, "%02x\n", serio->id.id);
}
-static ssize_t serio_show_id_extra(struct device *dev, struct device_attribute *attr, char *buf)
+static ssize_t extra_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct serio *serio = to_serio_port(dev);
return sprintf(buf, "%02x\n", serio->id.extra);
}
-static DEVICE_ATTR(type, S_IRUGO, serio_show_id_type, NULL);
-static DEVICE_ATTR(proto, S_IRUGO, serio_show_id_proto, NULL);
-static DEVICE_ATTR(id, S_IRUGO, serio_show_id_id, NULL);
-static DEVICE_ATTR(extra, S_IRUGO, serio_show_id_extra, NULL);
+static DEVICE_ATTR_RO(type);
+static DEVICE_ATTR_RO(proto);
+static DEVICE_ATTR_RO(id);
+static DEVICE_ATTR_RO(extra);
static struct attribute *serio_device_id_attrs[] = {
&dev_attr_type.attr,
^ permalink raw reply
* [PATCH 02/02] input: serio: remove bus usage of dev_attrs
From: Greg Kroah-Hartman @ 2013-10-08 1:09 UTC (permalink / raw)
To: Dmitry Torokhov, linux-input; +Cc: Greg Kroah-Hartman
In-Reply-To: <20131008010823.GA27012@kroah.com>
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
The dev_attrs field of struct bus_type is going away soon, so move the
remaining sysfs files that are being described with this field to use
dev_groups instead.
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: <linux-input@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/input/serio/serio.c | 62 +++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 32 deletions(-)
--- a/drivers/input/serio/serio.c
+++ b/drivers/input/serio/serio.c
@@ -365,7 +365,7 @@ static ssize_t serio_show_description(st
return sprintf(buf, "%s\n", serio->name);
}
-static ssize_t serio_show_modalias(struct device *dev, struct device_attribute *attr, char *buf)
+static ssize_t modalias_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct serio *serio = to_serio_port(dev);
@@ -397,30 +397,7 @@ static ssize_t extra_show(struct device
return sprintf(buf, "%02x\n", serio->id.extra);
}
-static DEVICE_ATTR_RO(type);
-static DEVICE_ATTR_RO(proto);
-static DEVICE_ATTR_RO(id);
-static DEVICE_ATTR_RO(extra);
-
-static struct attribute *serio_device_id_attrs[] = {
- &dev_attr_type.attr,
- &dev_attr_proto.attr,
- &dev_attr_id.attr,
- &dev_attr_extra.attr,
- NULL
-};
-
-static struct attribute_group serio_id_attr_group = {
- .name = "id",
- .attrs = serio_device_id_attrs,
-};
-
-static const struct attribute_group *serio_device_attr_groups[] = {
- &serio_id_attr_group,
- NULL
-};
-
-static ssize_t serio_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+static ssize_t drvctl_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
struct serio *serio = to_serio_port(dev);
struct device_driver *drv;
@@ -474,14 +451,36 @@ static ssize_t serio_set_bind_mode(struc
return retval;
}
-static struct device_attribute serio_device_attrs[] = {
- __ATTR(description, S_IRUGO, serio_show_description, NULL),
- __ATTR(modalias, S_IRUGO, serio_show_modalias, NULL),
- __ATTR(drvctl, S_IWUSR, NULL, serio_rebind_driver),
- __ATTR(bind_mode, S_IWUSR | S_IRUGO, serio_show_bind_mode, serio_set_bind_mode),
- __ATTR_NULL
+static DEVICE_ATTR_RO(type);
+static DEVICE_ATTR_RO(proto);
+static DEVICE_ATTR_RO(id);
+static DEVICE_ATTR_RO(extra);
+static DEVICE_ATTR_RO(modalias);
+static DEVICE_ATTR_WO(drvctl);
+static DEVICE_ATTR(description, S_IRUGO, serio_show_description, NULL);
+static DEVICE_ATTR(bind_mode, S_IWUSR | S_IRUGO, serio_show_bind_mode, serio_set_bind_mode);
+
+static struct attribute *serio_device_id_attrs[] = {
+ &dev_attr_type.attr,
+ &dev_attr_proto.attr,
+ &dev_attr_id.attr,
+ &dev_attr_extra.attr,
+ &dev_attr_modalias.attr,
+ &dev_attr_description.attr,
+ &dev_attr_drvctl.attr,
+ &dev_attr_bind_mode.attr,
+ NULL
+};
+
+static struct attribute_group serio_id_attr_group = {
+ .name = "id",
+ .attrs = serio_device_id_attrs,
};
+static const struct attribute_group *serio_device_attr_groups[] = {
+ &serio_id_attr_group,
+ NULL
+};
static void serio_release_port(struct device *dev)
{
@@ -996,7 +995,6 @@ EXPORT_SYMBOL(serio_interrupt);
static struct bus_type serio_bus = {
.name = "serio",
- .dev_attrs = serio_device_attrs,
.drv_groups = serio_driver_groups,
.match = serio_bus_match,
.uevent = serio_uevent,
^ permalink raw reply
* [PATCH 3/8] input: gameport: convert bus code to use dev_groups
From: Greg Kroah-Hartman @ 2013-10-08 1:27 UTC (permalink / raw)
To: linux-kernel; +Cc: Greg Kroah-Hartman, Dmitry Torokhov, linux-input
In-Reply-To: <1381195662-28009-1-git-send-email-gregkh@linuxfoundation.org>
The dev_attrs field of struct bus_type is going away soon, dev_groups
should be used instead. This converts the gameport bus code to use the
correct field.
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: <linux-input@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
Dmitry, I can take this through my driver-core tree if you don't want to
take it through yours, just let me know what works best for you.
drivers/input/gameport/gameport.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
index 922a7fe..24c41ba 100644
--- a/drivers/input/gameport/gameport.c
+++ b/drivers/input/gameport/gameport.c
@@ -422,14 +422,15 @@ static struct gameport *gameport_get_pending_child(struct gameport *parent)
* Gameport port operations
*/
-static ssize_t gameport_show_description(struct device *dev, struct device_attribute *attr, char *buf)
+static ssize_t gameport_description_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct gameport *gameport = to_gameport_port(dev);
return sprintf(buf, "%s\n", gameport->name);
}
+static DEVICE_ATTR(description, S_IRUGO, gameport_description_show, NULL);
-static ssize_t gameport_rebind_driver(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+static ssize_t drvctl_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
{
struct gameport *gameport = to_gameport_port(dev);
struct device_driver *drv;
@@ -457,12 +458,14 @@ static ssize_t gameport_rebind_driver(struct device *dev, struct device_attribut
return error ? error : count;
}
+static DEVICE_ATTR_WO(drvctl);
-static struct device_attribute gameport_device_attrs[] = {
- __ATTR(description, S_IRUGO, gameport_show_description, NULL),
- __ATTR(drvctl, S_IWUSR, NULL, gameport_rebind_driver),
- __ATTR_NULL
+static struct attribute *gameport_device_attrs[] = {
+ &dev_attr_description.attr,
+ &dev_attr_drvctl.attr,
+ NULL,
};
+ATTRIBUTE_GROUPS(gameport_device);
static void gameport_release_port(struct device *dev)
{
@@ -750,7 +753,7 @@ static int gameport_bus_match(struct device *dev, struct device_driver *drv)
static struct bus_type gameport_bus = {
.name = "gameport",
- .dev_attrs = gameport_device_attrs,
+ .dev_groups = gameport_device_groups,
.drv_groups = gameport_driver_groups,
.match = gameport_bus_match,
.probe = gameport_driver_probe,
--
1.8.4.6.g82e253f.dirty
^ permalink raw reply related
* Re: [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: Michal Malý @ 2013-10-08 10:00 UTC (permalink / raw)
To: simon-wM4F9T/ekXmXDw4h08c5KA
Cc: Elias Vanderstuyft, Anssi Hannula, Jiri Kosina,
linux-usb-u79uwXL29TY76Z2rM5mHXA,
linux-input-u79uwXL29TY76Z2rM5mHXA, stable-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <fa1af5a9ba814114ddf5ee8fe65b8b4b.squirrel-uf5OtEnyChf6gvvhDbwh+ti2O/JbrIOy@public.gmane.org>
Hey guys,
I assume that we're talking about this wheel (http://www.logitech.com/en-roeu/support/298)?
Does the wheel have an actual FFB servo or does it have just a rumble motor that shakes the wheel? If it's the latter, supporting it in lg2ff is a way to go. Description in KConfig should probably be updated to reflect this.
As for the HID descriptors, Simon's suggestion will work just fine. Alternatively you can use Wireshark which can use usbmon to capture USB traffic. (Wireshark must run as root and usbmon module must be loaded before Wireshark starts). We can hack the descriptor in hid-logitech just like we did it for DFP. If we come across more wheels that need a hacked descriptor, perhaps we should consider handling the raw data ourselves (check out the Wii remote driver for details)...
Michal.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* [PATCH] INPUT/MISC: Fix input/misc PWM related undefined reference errors.
From: Majunath Goudar @ 2013-10-08 10:37 UTC (permalink / raw)
To: linux-arm-kernel
Cc: nataraja.km, Majunath Goudar, Dmitry Torokhov, linux-input,
linux-kernel
This patch adds a PWM dependency to configure the INPUT_MAX8997_HAPTIC
and INPUT_PWM_BEEPER. Without this patch, build system can lead to build
failure. This was observed during randconfig testing, in which
INPUT_MAX8997_HAPTIC or INPUT_PWM_BEEPER was enabled w/o PWM being
enabled. leading to the following error:
init/built-in.o
drivers/built-in.o: In function `max8997_haptic_disable':
:(.text+0x1073a0): undefined reference to `pwm_disable'
drivers/built-in.o: In function `max8997_haptic_remove':
:(.text+0x1073fc): undefined reference to `pwm_free'
drivers/built-in.o: In function `max8997_haptic_play_effect_work':
:(.text+0x1074f0): undefined reference to `pwm_config'
:(.text+0x1075b0): undefined reference to `pwm_enable'
drivers/built-in.o: In function `max8997_haptic_probe':
:(.text+0x1076f8): undefined reference to `pwm_request'
:(.text+0x1077e8): undefined reference to `pwm_free'
drivers/built-in.o: In function `pwm_beeper_resume':
:(.text+0x1081a4): undefined reference to `pwm_config'
make: *** [vmlinux] Error 1
Signed-off-by: Manjunath Goudar <csmanjuvijay@gmail.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
drivers/input/misc/Kconfig | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
index aa51baa..265240b 100644
--- a/drivers/input/misc/Kconfig
+++ b/drivers/input/misc/Kconfig
@@ -156,7 +156,7 @@ config INPUT_MAX8925_ONKEY
config INPUT_MAX8997_HAPTIC
tristate "MAXIM MAX8997 haptic controller support"
- depends on HAVE_PWM && MFD_MAX8997
+ depends on HAVE_PWM && MFD_MAX8997 && PWM
select INPUT_FF_MEMLESS
help
This option enables device driver support for the haptic controller
@@ -461,7 +461,7 @@ config INPUT_PCF8574
config INPUT_PWM_BEEPER
tristate "PWM beeper support"
- depends on HAVE_PWM || PWM
+ depends on HAVE_PWM && PWM
help
Say Y here to get support for PWM based beeper devices.
--
1.7.9.5
^ permalink raw reply related
* [PATCH] SOUND/SPI: Fix "clk_round_rate" undefined reference error.
From: Majunath Goudar @ 2013-10-08 10:40 UTC (permalink / raw)
To: linux-arm-kernel
Cc: nataraja.km, Majunath Goudar, Dmitry Torokhov, linux-kernel,
linux-input
This patch adds a COMMON_CLK dependency to configure the
SND_AT73C213 for Atmel AT73C213 DAC driver. Without this patch,
build system can lead to build failure. This was observed during
randconfig testing, in which SND_AT73C213 was enabled w/o COMMON_CLK
being enabled. leading to the following error:
sound/built-in.o: In function `snd_at73c213_probe':
:(.text+0x328c4): undefined reference to `clk_round_rate'
make: *** [vmlinux] Error 1
Signed-off-by: Manjunath Goudar <csmanjuvijay@gmail.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Cc: linux-input@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
sound/spi/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/spi/Kconfig b/sound/spi/Kconfig
index e6485be..798d1ee 100644
--- a/sound/spi/Kconfig
+++ b/sound/spi/Kconfig
@@ -11,7 +11,7 @@ if SND_SPI
config SND_AT73C213
tristate "Atmel AT73C213 DAC driver"
- depends on ATMEL_SSC
+ depends on ATMEL_SSC && COMMON_CLK
select SND_PCM
help
Say Y here if you want to use the Atmel AT73C213 external DAC. This
--
1.7.9.5
^ permalink raw reply related
* [PATCH] input: touchscreen: add driver for CJTouch touchscreen
From: linuxsea521 @ 2013-10-08 14:21 UTC (permalink / raw)
To: linux-input; +Cc: linuxsea
From: linuxsea <linuxsea@163.com>
Signed-off-by: linuxsea <linuxsea@163.com>
---
drivers/input/touchscreen/Kconfig | 5 ++
drivers/input/touchscreen/usbtouchscreen.c | 99 ++++++++++++++++++++++++++++
2 files changed, 104 insertions(+)
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index e09ec67..2640195 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -812,6 +812,11 @@ config TOUCHSCREEN_USB_NEXIO
bool "NEXIO/iNexio device support" if EXPERT
depends on TOUCHSCREEN_USB_COMPOSITE
+config TOUCHSCREEN_USB_CJTOUCH
+ default y
+ bool "CJTouch Touchscreen device support" if EXPERT
+ depends on TOUCHSCREEN_USB_COMPOSITE
+
config TOUCHSCREEN_USB_EASYTOUCH
default y
bool "EasyTouch USB Touch controller device support" if EMBEDDED
diff --git a/drivers/input/touchscreen/usbtouchscreen.c b/drivers/input/touchscreen/usbtouchscreen.c
index 721fdb3..cd3aa8c 100644
--- a/drivers/input/touchscreen/usbtouchscreen.c
+++ b/drivers/input/touchscreen/usbtouchscreen.c
@@ -18,6 +18,7 @@
* - NEXIO/iNexio
* - Elo TouchSystems 2700 IntelliTouch
* - EasyTouch USB Dual/Multi touch controller from Data Modul
+ * - CJTouch
*
* Copyright (C) 2004-2007 by Daniel Ritz <daniel.ritz@gmx.ch>
* Copyright (C) by Todd E. Johnson (mtouchusb.c)
@@ -142,6 +143,8 @@ enum {
DEVTYPE_NEXIO,
DEVTYPE_ELO,
DEVTYPE_ETOUCH,
+ DEVTYPE_CJTOUCH,
+ DEVTYPE_CJMTOUCH,
};
#define USB_DEVICE_HID_CLASS(vend, prod) \
@@ -251,6 +254,11 @@ static const struct usb_device_id usbtouch_devices[] = {
{USB_DEVICE(0x7374, 0x0001), .driver_info = DEVTYPE_ETOUCH},
#endif
+#ifdef CONFIG_TOUCHSCREEN_USB_CJTOUCH
+ {USB_DEVICE(0x24b8, 0x0001), .driver_info = DEVTYPE_CJTOUCH},
+ {USB_DEVICE(0x24b8, 0x0004), .driver_info = DEVTYPE_CJTOUCH},
+ {USB_DEVICE(0x24b8, 0x000f), .driver_info = DEVTYPE_CJMTOUCH},
+#endif
{}
};
@@ -1065,6 +1073,78 @@ static int elo_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
/*****************************************************************************
+ * CJTouch part
+ */
+
+#ifdef CONFIG_TOUCHSCREEN_USB_CJTOUCH
+static int x = 1;
+static int y = 1;
+static int old2State = 1;
+
+
+static int cjtouch_touch_read_data(struct usbtouch_usb *dev, unsigned char *pkt)
+{
+ dev->x = ((pkt[2] & 0x00FF) << 8) | (pkt[1] & 0x00FF);
+ dev->y = ((pkt[4] & 0x00FF) << 8) | (pkt[3] & 0x00FF);
+ dev->press = pkt[0];
+ dev->touch = pkt[0];
+
+ return 1;
+}
+
+static void cjmtouch_touch_process_pkt(struct usbtouch_usb *usbtouch,
+ unsigned char *pkt, int len)
+{
+ int touch1 = pkt[1] & 0x01;
+ int touch2 = pkt[7] & 0x01;
+
+ if (touch1)
+ input_report_abs(usbtouch->input, ABS_MT_TOUCH_MAJOR, 1);
+ else
+ input_report_abs(usbtouch->input, ABS_MT_TOUCH_MAJOR, 0);
+
+ {
+ x = ((pkt[4] << 8) | pkt[3]);
+ y = ((pkt[6] << 8) | pkt[5]);
+
+ input_report_abs(usbtouch->input, ABS_MT_WIDTH_MAJOR, 1);
+ input_report_abs(usbtouch->input, ABS_MT_POSITION_X, x);
+ input_report_abs(usbtouch->input, ABS_MT_POSITION_Y, y);
+
+ input_mt_sync(usbtouch->input);
+ }
+
+ if (touch2) {
+ old2State = 1;
+ input_report_abs(usbtouch->input, ABS_MT_TOUCH_MAJOR, 1);
+
+ input_report_abs(usbtouch->input, ABS_MT_WIDTH_MAJOR, 1);
+ input_report_abs(usbtouch->input, ABS_MT_POSITION_X, x);
+ input_report_abs(usbtouch->input, ABS_MT_POSITION_Y, y);
+
+ input_mt_sync(usbtouch->input);
+ } else {
+ if (old2State == 1) {
+ old2State = 0;
+ input_report_abs(usbtouch->input, ABS_MT_TOUCH_MAJOR, 0);
+
+ x = (x * 800) / 0xfff;
+ y = (y * 600) / 0xfff;
+
+ input_report_abs(usbtouch->input, ABS_MT_WIDTH_MAJOR, 1);
+ input_report_abs(usbtouch->input, ABS_MT_POSITION_X, x);
+ input_report_abs(usbtouch->input, ABS_MT_POSITION_Y, y);
+
+ input_mt_sync(usbtouch->input);
+ }
+ }
+
+ input_sync(usbtouch->input);
+
+}
+#endif
+
+/*****************************************************************************
* the different device descriptors
*/
#ifdef MULTI_PACKET
@@ -1284,6 +1364,25 @@ static struct usbtouch_device_info usbtouch_dev_info[] = {
.read_data = etouch_read_data,
},
#endif
+#ifdef CONFIG_TOUCHSCREEN_USB_CJTOUCH
+ [DEVTYPE_CJTOUCH] = {
+ .min_xc = 0x0,
+ .max_xc = 0x0fff,
+ .min_yc = 0x0,
+ .max_yc = 0x0fff,
+ .rept_size = 7,
+ .read_data = cjtouch_touch_read_data,
+ },
+
+ [DEVTYPE_CJMTOUCH] = {
+ .min_xc = 0x0,
+ .max_xc = 0x0fff,
+ .min_yc = 0x0,
+ .max_yc = 0x0fff,
+ .rept_size = 14,
+ .process_pkt = cjmtouch_touch_process_pkt,
+ },
+#endif
};
--
1.7.9.5
^ permalink raw reply related
* [PATCH] HID: remove self-assignment from hid_input_report
From: Felix Rueegg @ 2013-10-08 17:33 UTC (permalink / raw)
To: jkosina; +Cc: linux-input, linux-kernel, Felix Rueegg
The ternary expression will always result in a self-assignment, which is pointless.
Signed-off-by: Felix Rueegg <felix.rueegg@gmail.com>
---
drivers/hid/hid-core.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 5a8c011..ae0c963 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1417,10 +1417,8 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i
if (hdrv && hdrv->raw_event && hid_match_report(hid, report)) {
ret = hdrv->raw_event(hid, report, data, size);
- if (ret < 0) {
- ret = ret < 0 ? ret : 0;
+ if (ret < 0)
goto unlock;
- }
}
ret = hid_report_raw_event(hid, type, data, size, interrupt);
--
1.8.4
^ permalink raw reply related
* Re: [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: simon @ 2013-10-08 18:24 UTC (permalink / raw)
To: "Michal Malý"
Cc: simon, Elias Vanderstuyft, Anssi Hannula, Jiri Kosina, linux-usb,
linux-input, stable
In-Reply-To: <4607275.ItDsRbK9eM@geidi-prime>
> We can hack the descriptor in hid-logitech just
> like we did it for DFP. If we come across more wheels that need a hacked
> descriptor, perhaps we should consider handling the raw data ourselves
> (check out the Wii remote driver for details)...
We currently 'hack HID desc.' for the DF, DFP and MOMO-Red. The DFGT, G25
and G27 are pushed into native mode and automatically split the brake and
accel axis.
I'll get the 'hack HID desc.' done for Elias' wheel and the MOMO-black I
picked last week. Should be done this week sometime.
I think we've got every wheel variant covered.... unless the release more
with different IDs (recently saw a new DFGT version).
In the longer term we may wish to add an option/control to split (or not)
the brake/accel as the user requests. I don't actually think that anyone
wants combined axis, but there's no telling with some people ;-)
Simon
^ permalink raw reply
* [PATCH 1/1] Revert "HID: fix unit exponent parsing"
From: Nikolai Kondrashov @ 2013-10-08 18:59 UTC (permalink / raw)
To: Jiri Kosina; +Cc: linux-input, Benjamin Tissoires, Nikolai Kondrashov
From: Nikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
Revert "HID: fix unit exponent parsing" as it is based on incorrect
understanding of the HID specification and breaks resolution
calculation at least on graphics tablets.
There are two "unit exponents" in HID specification and it is important
not to mix them. One is the global "Unit Exponent" item and another is
nibble values in the global "Unit" item. See 6.2.2.7 Global Items.
The "Unit Exponent" value is just a signed integer and is used to scale
the integer resolution unit values, so fractions can be expressed.
The nibbles of "Unit" value are used to select the unit system (nibble
0), and presence of a particular basic unit type in the unit formula and
its *exponent* (or power, nibbles 1-6). And yes, the latter is in two
complement and zero means absence of the unit type.
Taking the representation example of (integer) joules from the
specification:
[mass(grams)][length(centimeters)^2][time(seconds)^-2] * 10^-7
the "Unit Exponent" would be -7 (or 0xF9, if stored as a byte) and the
"Unit" value would be 0xE121, signifying:
Nibble Part Value Meaning
----- ---- ----- -------
0 System 1 SI Linear
1 Length 2 Centimeters^2
2 Mass 1 Grams
3 Time -2 Seconds^-2
To give the resolution in e.g. hundredth of joules the "Unit Exponent"
item value should have been -9.
See also the examples of "Unit" values for some common units in the same
chapter.
This reverts commit 774638386826621c984ab6994439f474709cac5e.
---
Jiri, I've had the HID specification thoroughly read WRT report descriptors
when implementing hidrd [1] and would be happy to help reviewing any patches
touching that area. Please CC me if there's any need.
[1] https://sf.net/apps/mediawiki/digimend?title=Hidrd
drivers/hid/hid-core.c | 16 +---------------
drivers/hid/hid-input.c | 13 ++++---------
include/linux/hid.h | 1 -
3 files changed, 5 insertions(+), 25 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index b8470b1..94350b7 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -319,7 +319,6 @@ static s32 item_sdata(struct hid_item *item)
static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
{
- __u32 raw_value;
switch (item->tag) {
case HID_GLOBAL_ITEM_TAG_PUSH:
@@ -370,14 +369,7 @@ static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
return 0;
case HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT:
- /* Units exponent negative numbers are given through a
- * two's complement.
- * See "6.2.2.7 Global Items" for more information. */
- raw_value = item_udata(item);
- if (!(raw_value & 0xfffffff0))
- parser->global.unit_exponent = hid_snto32(raw_value, 4);
- else
- parser->global.unit_exponent = raw_value;
+ parser->global.unit_exponent = item_sdata(item);
return 0;
case HID_GLOBAL_ITEM_TAG_UNIT:
@@ -983,12 +975,6 @@ static s32 snto32(__u32 value, unsigned n)
return value & (1 << (n - 1)) ? value | (-1 << n) : value;
}
-s32 hid_snto32(__u32 value, unsigned n)
-{
- return snto32(value, n);
-}
-EXPORT_SYMBOL_GPL(hid_snto32);
-
/*
* Convert a signed 32-bit integer to a signed n-bit integer.
*/
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 8741d95..d97f232 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -192,6 +192,7 @@ static int hidinput_setkeycode(struct input_dev *dev,
return -EINVAL;
}
+
/**
* hidinput_calc_abs_res - calculate an absolute axis resolution
* @field: the HID report field to calculate resolution for
@@ -234,23 +235,17 @@ __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
case ABS_MT_TOOL_Y:
case ABS_MT_TOUCH_MAJOR:
case ABS_MT_TOUCH_MINOR:
- if (field->unit & 0xffffff00) /* Not a length */
- return 0;
- unit_exponent += hid_snto32(field->unit >> 4, 4) - 1;
- switch (field->unit & 0xf) {
- case 0x1: /* If centimeters */
+ if (field->unit == 0x11) { /* If centimeters */
/* Convert to millimeters */
unit_exponent += 1;
- break;
- case 0x3: /* If inches */
+ } else if (field->unit == 0x13) { /* If inches */
/* Convert to millimeters */
prev = physical_extents;
physical_extents *= 254;
if (physical_extents < prev)
return 0;
unit_exponent -= 1;
- break;
- default:
+ } else {
return 0;
}
break;
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 31b9d29..96f3432 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -766,7 +766,6 @@ int hid_connect(struct hid_device *hid, unsigned int connect_mask);
void hid_disconnect(struct hid_device *hid);
const struct hid_device_id *hid_match_id(struct hid_device *hdev,
const struct hid_device_id *id);
-s32 hid_snto32(__u32 value, unsigned n);
/**
* hid_device_io_start - enable HID input during probe, remove
--
1.8.4.rc3
^ permalink raw reply related
* [PATCH 1/1 FROM FIXED] Revert "HID: fix unit exponent parsing"
From: Nikolai Kondrashov @ 2013-10-08 19:05 UTC (permalink / raw)
To: Jiri Kosina; +Cc: linux-input, Benjamin Tissoires, Nikolai Kondrashov
In-Reply-To: <1381258791-24966-1-git-send-email-spbnick@gmail.com>
Revert "HID: fix unit exponent parsing" as it is based on incorrect
understanding of the HID specification and breaks resolution
calculation at least on graphics tablets.
There are two "unit exponents" in HID specification and it is important
not to mix them. One is the global "Unit Exponent" item and another is
nibble values in the global "Unit" item. See 6.2.2.7 Global Items.
The "Unit Exponent" value is just a signed integer and is used to scale
the integer resolution unit values, so fractions can be expressed.
The nibbles of "Unit" value are used to select the unit system (nibble
0), and presence of a particular basic unit type in the unit formula and
its *exponent* (or power, nibbles 1-6). And yes, the latter is in two
complement and zero means absence of the unit type.
Taking the representation example of (integer) joules from the
specification:
[mass(grams)][length(centimeters)^2][time(seconds)^-2] * 10^-7
the "Unit Exponent" would be -7 (or 0xF9, if stored as a byte) and the
"Unit" value would be 0xE121, signifying:
Nibble Part Value Meaning
----- ---- ----- -------
0 System 1 SI Linear
1 Length 2 Centimeters^2
2 Mass 1 Grams
3 Time -2 Seconds^-2
To give the resolution in e.g. hundredth of joules the "Unit Exponent"
item value should have been -9.
See also the examples of "Unit" values for some common units in the same
chapter.
This reverts commit 774638386826621c984ab6994439f474709cac5e.
---
This patch has correct e-mail in "From".
drivers/hid/hid-core.c | 16 +---------------
drivers/hid/hid-input.c | 13 ++++---------
include/linux/hid.h | 1 -
3 files changed, 5 insertions(+), 25 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index b8470b1..94350b7 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -319,7 +319,6 @@ static s32 item_sdata(struct hid_item *item)
static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
{
- __u32 raw_value;
switch (item->tag) {
case HID_GLOBAL_ITEM_TAG_PUSH:
@@ -370,14 +369,7 @@ static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
return 0;
case HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT:
- /* Units exponent negative numbers are given through a
- * two's complement.
- * See "6.2.2.7 Global Items" for more information. */
- raw_value = item_udata(item);
- if (!(raw_value & 0xfffffff0))
- parser->global.unit_exponent = hid_snto32(raw_value, 4);
- else
- parser->global.unit_exponent = raw_value;
+ parser->global.unit_exponent = item_sdata(item);
return 0;
case HID_GLOBAL_ITEM_TAG_UNIT:
@@ -983,12 +975,6 @@ static s32 snto32(__u32 value, unsigned n)
return value & (1 << (n - 1)) ? value | (-1 << n) : value;
}
-s32 hid_snto32(__u32 value, unsigned n)
-{
- return snto32(value, n);
-}
-EXPORT_SYMBOL_GPL(hid_snto32);
-
/*
* Convert a signed 32-bit integer to a signed n-bit integer.
*/
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 8741d95..d97f232 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -192,6 +192,7 @@ static int hidinput_setkeycode(struct input_dev *dev,
return -EINVAL;
}
+
/**
* hidinput_calc_abs_res - calculate an absolute axis resolution
* @field: the HID report field to calculate resolution for
@@ -234,23 +235,17 @@ __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code)
case ABS_MT_TOOL_Y:
case ABS_MT_TOUCH_MAJOR:
case ABS_MT_TOUCH_MINOR:
- if (field->unit & 0xffffff00) /* Not a length */
- return 0;
- unit_exponent += hid_snto32(field->unit >> 4, 4) - 1;
- switch (field->unit & 0xf) {
- case 0x1: /* If centimeters */
+ if (field->unit == 0x11) { /* If centimeters */
/* Convert to millimeters */
unit_exponent += 1;
- break;
- case 0x3: /* If inches */
+ } else if (field->unit == 0x13) { /* If inches */
/* Convert to millimeters */
prev = physical_extents;
physical_extents *= 254;
if (physical_extents < prev)
return 0;
unit_exponent -= 1;
- break;
- default:
+ } else {
return 0;
}
break;
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 31b9d29..96f3432 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -766,7 +766,6 @@ int hid_connect(struct hid_device *hid, unsigned int connect_mask);
void hid_disconnect(struct hid_device *hid);
const struct hid_device_id *hid_match_id(struct hid_device *hdev,
const struct hid_device_id *id);
-s32 hid_snto32(__u32 value, unsigned n);
/**
* hid_device_io_start - enable HID input during probe, remove
--
1.8.4.rc3
^ permalink raw reply related
* Re: [PATCH 1/1 FROM FIXED] Revert "HID: fix unit exponent parsing"
From: Nikolai Kondrashov @ 2013-10-09 7:37 UTC (permalink / raw)
To: Nikolai Kondrashov; +Cc: Jiri Kosina, linux-input, Benjamin Tissoires
In-Reply-To: <1381259117-25256-1-git-send-email-spbnick@gmail.com>
On 10/08/2013 10:05 PM, Nikolai Kondrashov wrote:
> Revert "HID: fix unit exponent parsing" as it is based on incorrect
> understanding of the HID specification and breaks resolution
> calculation at least on graphics tablets.
>
> There are two "unit exponents" in HID specification and it is important
> not to mix them. One is the global "Unit Exponent" item and another is
> nibble values in the global "Unit" item. See 6.2.2.7 Global Items.
>
> The "Unit Exponent" value is just a signed integer and is used to scale
> the integer resolution unit values, so fractions can be expressed.
I see now that the official "HID Descriptor Tool" writes the "Unit Exponent"
as a two's complement nibble and Microsoft cites binary representations as
such (although they seem to be made with that tool).
This likely means most report descriptors in the wild store it as such. Which
probably means that it is more practical to expect them to be so, but I don't
have any statistically-significant data.
However, I still think that this interpretation of the standard is incorrect
(the standard is vague in this part). First, the specification says about
"Unit Exponent":
Value of the unit exponent in base 10. See the
table later in this section for more information.
I.e. nothing about nibbles. It refers to a table, but doesn't say which one.
However, the first table appearing later is a mouse example mentioning an
exponent.
The specification also mentions the one-byte prefix for the item to be
"0101 01 nn", where "nn" is the size value, which would be pointless to have
anything different from 1 byte, if it was limited to a nibble.
And lastly and most importantly there is no point in limiting the "Unit
Exponent" to a nibble where you have a full 32-bit signed integer available,
thus complicating encoding/decoding and limiting the possible reported unit
scale.
From what data I have on various non-Wacom graphics tablets, most of the older
ones provide incorrect "unit" item value, so "unit exponent" doesn't apply.
However, some recent ones, such as made by Huion, do have correct units,
and nibble-stored "unit exponent". And I was wondering where that strange data
came from. Sigh...
I'll try to reach usb.org for comments on this.
Meanwhile, can I suggest a hybrid approach? As positive unit exponent beyond 7
is unlikely to appear for axes which have their resolution calculated
currently, can we assume anything higher than 7 to be nibble-stored negative
exponents and anything else normal signed integers?
Sincerely,
Nick
^ permalink raw reply
* Unit Exponent value storage
From: Nikolai Kondrashov @ 2013-10-09 7:53 UTC (permalink / raw)
To: hidcomments; +Cc: linux-input
Hello,
Could you please clarify how the "Unit Exponent" global item value should be
encoded in report descriptors, according to Device Class Definition for HID
1.11?
In my understanding it is encoded similarly to the rest of the signed integer
items, i.e. two's complement 1, 2, or 4 byte integer.
However, the "HID Descriptor Tool" available on the HID page [1] encodes it as
a two's complement nibble, limited to [-8, 7] range accordingly.
Which encoding is meant by the specification?
I'm CC'ing this message to the "linux-input" maillist where I'm trying to
raise discussion about how "Unit Exponent" value should be interpreted for the
purposes of resolution calculation for HID devices in the Linux kernel.
Could you please keep this CC in your answer, so others get posted?
Thank you very much.
Sincerely,
Nikolai Kondrashov
^ permalink raw reply
* Re: [PATCH 1/1 FROM FIXED] Revert "HID: fix unit exponent parsing"
From: Benjamin Tissoires @ 2013-10-09 9:02 UTC (permalink / raw)
To: Nikolai Kondrashov; +Cc: Jiri Kosina, linux-input
In-Reply-To: <525507AC.5050807@gmail.com>
Hi Nikolai,
first, I wouldn't revert the patch as this, because I think the patch
also fixes the nibbles parsing in unit:
- the part regarding the unit exponent seems blurry
- the part regarding the unit exponent seems correct to me.
On Wed, Oct 9, 2013 at 9:37 AM, Nikolai Kondrashov <spbnick@gmail.com> wrote:
> On 10/08/2013 10:05 PM, Nikolai Kondrashov wrote:
>>
>> Revert "HID: fix unit exponent parsing" as it is based on incorrect
>> understanding of the HID specification and breaks resolution
>> calculation at least on graphics tablets.
I have re-read the HID spec, and indeed, it is not clear at all.
However, as you mentioned later in this mail, I based this assumption
by looking at the report descriptors I have in hand for hid-multitouch
(which is still quite a lot), and it looked correct this way.
>>
>> There are two "unit exponents" in HID specification and it is important
>> not to mix them. One is the global "Unit Exponent" item and another is
>> nibble values in the global "Unit" item. See 6.2.2.7 Global Items.
>>
>> The "Unit Exponent" value is just a signed integer and is used to scale
>> the integer resolution unit values, so fractions can be expressed.
>
>
> I see now that the official "HID Descriptor Tool" writes the "Unit Exponent"
> as a two's complement nibble and Microsoft cites binary representations as
> such (although they seem to be made with that tool).
>
> This likely means most report descriptors in the wild store it as such.
> Which
> probably means that it is more practical to expect them to be so, but I
> don't
> have any statistically-significant data.
>
> However, I still think that this interpretation of the standard is incorrect
> (the standard is vague in this part). First, the specification says about
> "Unit Exponent":
>
> Value of the unit exponent in base 10. See the
> table later in this section for more information.
>
> I.e. nothing about nibbles. It refers to a table, but doesn't say which one.
> However, the first table appearing later is a mouse example mentioning an
> exponent.
>From what I read, the unit exponent has nothing to do with nibbles.
Only "Unit" has them.
However, my experience says that the unit exponent is often used as a
two's complement :(
>
> The specification also mentions the one-byte prefix for the item to be
> "0101 01 nn", where "nn" is the size value, which would be pointless to have
> anything different from 1 byte, if it was limited to a nibble.
It could be, as it allows the firmware maker to avoid to add padding
bits... Which seems a convenient way to do it.
>
> And lastly and most importantly there is no point in limiting the "Unit
> Exponent" to a nibble where you have a full 32-bit signed integer available,
> thus complicating encoding/decoding and limiting the possible reported unit
> scale.
sure.
>
> From what data I have on various non-Wacom graphics tablets, most of the
> older
> ones provide incorrect "unit" item value, so "unit exponent" doesn't apply.
Yes. The "correct" specification of unit and unit exponent has only be
a requirements since Windows 8 [1]. (Note, there used to be a pdf [2],
which I found more convenient to read, but still...).
So definitely, Microsoft considers that the unit exponent is a 4 bits
two's complement, otherwise, the firmware will not get a Windows 8
certification.
> However, some recent ones, such as made by Huion, do have correct units,
> and nibble-stored "unit exponent". And I was wondering where that strange
> data
> came from. Sigh...
See above... Microsoft certification.
>
> I'll try to reach usb.org for comments on this.
>
> Meanwhile, can I suggest a hybrid approach? As positive unit exponent beyond
> 7
> is unlikely to appear for axes which have their resolution calculated
> currently, can we assume anything higher than 7 to be nibble-stored negative
> exponents and anything else normal signed integers?
I would say that the current approach (without the revert) is exactly this:
- if the data is stored on only 1 byte ( if (!(raw_value &
0xfffffff0))), do the two's complement -> any value less than 7 will
be the same, above are considered as negative.
- if not, then use the raw value.
Could you please share some of the report descriptors which you found
problematic, so that I can have a better understanding of the problem?
If you want to have a look at some multitouch descriptors (and few
other devices), I started to build a database of hid devices[3].
Cheers,
Benjamin
[1] http://msdn.microsoft.com/en-us/library/windows/hardware/dn383621.aspx
[2] http://feishare.com/attachments/article/299/windows-pointer-device-protocol.pdf
[3] https://github.com/bentiss/hid-devices
PS: I'll be mostly offline until the 1st of November when I'll finish
my transfer to the RH Westford Office.
PPS: my nick on the RH internal IRC is bentiss :)
^ permalink raw reply
* Re: [PATCH] HID: logitech - lg2ff: Add IDs for Formula Vibration Feedback Wheel
From: Jiri Kosina @ 2013-10-09 10:09 UTC (permalink / raw)
To: Simon Wood
Cc: Anssi Hannula, linux-usb, linux-input, Elias Vanderstuyft, stable,
"Michal Malý"
In-Reply-To: <cec1e0ca61cf17ceb6e52faa4f2baad9.squirrel@mungewell.org>
On Mon, 7 Oct 2013, simon@mungewell.org wrote:
> > The lg2ff force feedback subdriver is used for vibration and
> > HID_GD_MULTIAXIS is set to avoid deadzone like other Logitech wheels.
> >
> > Kconfig description etc are also updated accordingly.
> >
> > Signed-off-by: Elias Vanderstuyft <Elias.vds@gmail.com>
> > [anssi.hannula@iki.fi: added description and CCs]
> > Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
> > Cc: Simon Wood <simon@mungewell.org>
> > Cc: <stable@vger.kernel.org>
> > ---
> >
> > Simon, does this look OK to you, or do you think it should be an lg4ff
> > device? Though I guess lg2ff is better than nothing even in that case.
>
> Signed-off-by: Simon Wood <simon@mungewell.org>
Thanks, I have now applied the patch. In case you are going to work
further on splitting break/accel into different axes, please send it as a
followup patch.
Thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH] HID: i2c-hid: add platform data for quirks
From: Jiri Kosina @ 2013-10-09 10:26 UTC (permalink / raw)
To: Bibek Basu; +Cc: benjamin.tissoires, linux-tegra, kadduri, linux-input
In-Reply-To: <1380790121-1355-1-git-send-email-bbasu@nvidia.com>
On Thu, 3 Oct 2013, Bibek Basu wrote:
> Some HID device does not responds to INPUT/FEATURE
> report query during initialization. As a result HID driver
> throws error even when its not mandatory according to the
> HID specification. Add platform data to provide
> quirk information to the driver so that init query is not
> done on such devices.
>
> Signed-off-by: Bibek Basu <bbasu@nvidia.com>
> ---
> drivers/hid/i2c-hid/i2c-hid.c | 1 +
> include/linux/i2c/i2c-hid.h | 3 ++-
> 2 files changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
> index fd7ce37..a7aec2c 100644
> --- a/drivers/hid/i2c-hid/i2c-hid.c
> +++ b/drivers/hid/i2c-hid/i2c-hid.c
> @@ -1017,6 +1017,7 @@ static int i2c_hid_probe(struct i2c_client *client,
> hid->version = le16_to_cpu(ihid->hdesc.bcdVersion);
> hid->vendor = le16_to_cpu(ihid->hdesc.wVendorID);
> hid->product = le16_to_cpu(ihid->hdesc.wProductID);
> + hid->quirks = platform_data->quirks;
>
> snprintf(hid->name, sizeof(hid->name), "%s %04hX:%04hX",
> client->name, hid->vendor, hid->product);
> diff --git a/include/linux/i2c/i2c-hid.h b/include/linux/i2c/i2c-hid.h
> index 7aa901d..12e682d 100644
> --- a/include/linux/i2c/i2c-hid.h
> +++ b/include/linux/i2c/i2c-hid.h
> @@ -17,7 +17,7 @@
> /**
> * struct i2chid_platform_data - used by hid over i2c implementation.
> * @hid_descriptor_address: i2c register where the HID descriptor is stored.
> - *
> + * @quirks: quirks, if any for i2c-hid devices
> * Note that it is the responsibility of the platform driver (or the acpi 5.0
> * driver, or the flattened device tree) to setup the irq related to the gpio in
> * the struct i2c_board_info.
> @@ -31,6 +31,7 @@
> */
> struct i2c_hid_platform_data {
> u16 hid_descriptor_address;
> + u32 quirks;
> };
Umm, and where does the quirks field of platform data actually get set? I
don't seem to see any followup patchset doing that?
Thanks,
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH] HID: i2c-hid: add platform data for quirks
From: Benjamin Tissoires @ 2013-10-09 10:59 UTC (permalink / raw)
To: Jiri Kosina
Cc: Bibek Basu, linux-tegra-u79uwXL29TY76Z2rM5mHXA, Kiran Adduri,
linux-input
In-Reply-To: <alpine.LNX.2.00.1310091225230.13289-ztGlSCb7Y1iN3ZZ/Hiejyg@public.gmane.org>
On Wed, Oct 9, 2013 at 12:26 PM, Jiri Kosina <jkosina-AlSwsSmVLrQ@public.gmane.org> wrote:
> On Thu, 3 Oct 2013, Bibek Basu wrote:
>
>> Some HID device does not responds to INPUT/FEATURE
>> report query during initialization. As a result HID driver
>> throws error even when its not mandatory according to the
>> HID specification. Add platform data to provide
>> quirk information to the driver so that init query is not
>> done on such devices.
>>
>> Signed-off-by: Bibek Basu <bbasu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>> ---
>> drivers/hid/i2c-hid/i2c-hid.c | 1 +
>> include/linux/i2c/i2c-hid.h | 3 ++-
>> 2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
>> index fd7ce37..a7aec2c 100644
>> --- a/drivers/hid/i2c-hid/i2c-hid.c
>> +++ b/drivers/hid/i2c-hid/i2c-hid.c
>> @@ -1017,6 +1017,7 @@ static int i2c_hid_probe(struct i2c_client *client,
>> hid->version = le16_to_cpu(ihid->hdesc.bcdVersion);
>> hid->vendor = le16_to_cpu(ihid->hdesc.wVendorID);
>> hid->product = le16_to_cpu(ihid->hdesc.wProductID);
>> + hid->quirks = platform_data->quirks;
>>
>> snprintf(hid->name, sizeof(hid->name), "%s %04hX:%04hX",
>> client->name, hid->vendor, hid->product);
>> diff --git a/include/linux/i2c/i2c-hid.h b/include/linux/i2c/i2c-hid.h
>> index 7aa901d..12e682d 100644
>> --- a/include/linux/i2c/i2c-hid.h
>> +++ b/include/linux/i2c/i2c-hid.h
>> @@ -17,7 +17,7 @@
>> /**
>> * struct i2chid_platform_data - used by hid over i2c implementation.
>> * @hid_descriptor_address: i2c register where the HID descriptor is stored.
>> - *
>> + * @quirks: quirks, if any for i2c-hid devices
>> * Note that it is the responsibility of the platform driver (or the acpi 5.0
>> * driver, or the flattened device tree) to setup the irq related to the gpio in
>> * the struct i2c_board_info.
>> @@ -31,6 +31,7 @@
>> */
>> struct i2c_hid_platform_data {
>> u16 hid_descriptor_address;
>> + u32 quirks;
>> };
>
Hi Jiri,
> Umm, and where does the quirks field of platform data actually get set? I
> don't seem to see any followup patchset doing that?
The platform data is filled by specific march-* board definition data.
In this case some I would say a tegra board. So it's fine not having a
patchset setting the quirk (as it is per board, and maybe per
version/manufacturer).
Other than that I would love seeing the same for the device tree
binding if we add this to the struct i2c_hid_platform_data.
BTW, Jiri, the aim of the patch was to be able to add the quirk
HID_QUIRK_NO_INIT_INPUT_REPORTS to some of the i2c-hid devices.
However, the Windows driver uses this by default, so I already told to
Bibek that we could just drop the related calls in
i2c_hid_init_reports().
Cheers,
Benjamin
^ permalink raw reply
* Re: PROBLEM: XPS 12-9Q33 touchpad not recognized, problem with i2c_hid module
From: Benjamin Tissoires @ 2013-10-09 11:03 UTC (permalink / raw)
To: Wouter van der Graaf; +Cc: linux-input, Jiri Kosina
In-Reply-To: <525274D2.8080707@dynora.nl>
Hi Wouter,
(Adding in CC Jiri, the HID maintainer)
ok, this is something which was expected to happen at some point (at
least which does not surprise me :-P ).
The solution is to write a proper driver for the Synaptics i2c-hid
touchpad, when in HID mode. I started doing this some months ago, and
I will have to ping Synaptics again to this extend.
However, I will not be able to do anything before Nov. 1st.
Cheers,
Benjamin
On Mon, Oct 7, 2013 at 10:46 AM, Wouter van der Graaf <wouter@dynora.nl> wrote:
> Dear Maintainers,
>
> [1.] One line summary of the problem:
>
> Dell XPS 12-9Q33 touchpad is not recognized, works when i2c_hid (needed for
> touchscreen) is blacklisted
>
>
> [2.] Full description of the problem/report:
>
> Problem exists in kernels 3.10, 3.11 and 3.12rc3 (latest mainline kernel
> release as of this writing).
>
> The Dell XPS 12, 2013 Haswell version, comes with both multitouch
> touchscreen and touchpad, of which only the touchscreen functions correctly.
> The touchpad is not correctly detected and acts like a generic pointing
> device without any touchpad (multitouch, scrolling, etc.) features.
>
> Below I've included environment and device information as well as Xorg log,
> xinput list and dmesg output.
>
> The device named "DLL05E3:01 06CB:2734" is the touchpad.
>
> When i2c_hid module is blacklisted, the touchpad *does* work and is detected
> by the psmouse module as a Synaptics touchpad. However, the touchscreen
> needs the i2c_hid module.
>
> With i2c_hid module enabled, both touchpad and touchscreen are detected by
> i2c_hid, but maybe this causes a conflict and the psmouse module is not able
> to detect the touchpad anymore.
>
>
> [3.] Keywords (i.e., modules, networking, kernel):
>
>
> [4.] Kernel version (from /proc/version):
>
> Linux version 3.12.0-031200rc3-generic (apw@gomeisa) (gcc version 4.6.3
> (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201309291835 SMP Sun Sep 29 22:37:02 UTC
> 2013
>
>
> [5.] Output of Oops.. message (if applicable) with symbolic information
> resolved (see Documentation/oops-tracing.txt)
>
> N/A
>
>
> [6.] A small shell script or example program which triggers the
> problem (if possible)
>
> N/A
>
>
> [7.] Environment
>
> Description: Ubuntu Saucy Salamander (development branch)
> Release: 13.10
>
>
> [7.1.] Software (add the output of the ver_linux script here)
>
> Linux wouter-xps12 3.12.0-031200rc3-generic #201309291835 SMP Sun Sep 29
> 22:37:02 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>
> Gnu C 4.8
> Gnu make 3.81
> binutils 2.23.52.20130913
> util-linux 2.20.1
> mount support
> module-init-tools 9
> e2fsprogs 1.42.8
> pcmciautils 018
> PPP 2.4.5
> Linux C Library 2.17
> Dynamic linker (ldd) 2.17
> Procps 3.3.3
> Net-tools 1.60
> Kbd 1.15.5
> Sh-utils 8.20
> wireless-tools 30
> Modules Loaded dm_crypt x86_pkg_temp_thermal coretemp kvm_intel kvm
> crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw
> gf128mul glue_helper ablk_helper cryptd joydev pn544_mei mei_phy pn544 hci
> snd_hda_codec_realtek nfc snd_hda_codec_hdmi hid_sensor_magn_3d
> hid_sensor_accel_3d hid_sensor_gyro_3d hid_sensor_trigger
> industrialio_triggered_buffer kfifo_buf industrialio arc4 snd_hda_intel
> hid_sensor_iio_common snd_hda_codec snd_hwdep hid_multitouch snd_pcm
> hid_generic dell_wmi sparse_keymap snd_page_alloc snd_seq_midi
> snd_seq_midi_event snd_rawmidi dell_laptop parport_pc dcdbas ppdev snd_seq
> mei_me uvcvideo hid_sensor_hub iwlmvm microcode videobuf2_vmalloc
> videobuf2_memops mac80211 videobuf2_core mei videodev usb_storage rfcomm
> bnep psmouse iwlwifi serio_raw snd_seq_device btusb bluetooth cfg80211
> snd_timer lpc_ich snd soundcore i2c_hid i2c_designware_platform
> i2c_designware_core mac_hid intel_smartconnect tpm_tis nls_iso8859_1 lp
> parport usbhid hid i915 i2c_algo_bit drm_kms_helper ahci drm libahci wmi
> video
>
>
> [7.2.] Processor information (from /proc/cpuinfo):
>
> processor : 0
> vendor_id : GenuineIntel
> cpu family : 6
> model : 69
> model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
> stepping : 1
> microcode : 0x14
> cpu MHz : 1800.000
> cache size : 4096 KB
> physical id : 0
> siblings : 4
> core id : 0
> cpu cores : 2
> apicid : 0
> initial apicid : 0
> fpu : yes
> fpu_exception : yes
> cpuid level : 13
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
> rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
> nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est
> tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt
> tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb
> xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase
> tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
> bogomips : 4788.86
> clflush size : 64
> cache_alignment : 64
> address sizes : 39 bits physical, 48 bits virtual
> power management:
>
> processor : 1
> vendor_id : GenuineIntel
> cpu family : 6
> model : 69
> model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
> stepping : 1
> microcode : 0x14
> cpu MHz : 1800.000
> cache size : 4096 KB
> physical id : 0
> siblings : 4
> core id : 1
> cpu cores : 2
> apicid : 2
> initial apicid : 2
> fpu : yes
> fpu_exception : yes
> cpuid level : 13
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
> rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
> nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est
> tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt
> tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb
> xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase
> tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
> bogomips : 4788.86
> clflush size : 64
> cache_alignment : 64
> address sizes : 39 bits physical, 48 bits virtual
> power management:
>
> processor : 2
> vendor_id : GenuineIntel
> cpu family : 6
> model : 69
> model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
> stepping : 1
> microcode : 0x14
> cpu MHz : 1800.000
> cache size : 4096 KB
> physical id : 0
> siblings : 4
> core id : 0
> cpu cores : 2
> apicid : 1
> initial apicid : 1
> fpu : yes
> fpu_exception : yes
> cpuid level : 13
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
> rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
> nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est
> tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt
> tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb
> xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase
> tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
> bogomips : 4788.86
> clflush size : 64
> cache_alignment : 64
> address sizes : 39 bits physical, 48 bits virtual
> power management:
>
> processor : 3
> vendor_id : GenuineIntel
> cpu family : 6
> model : 69
> model name : Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz
> stepping : 1
> microcode : 0x14
> cpu MHz : 1800.000
> cache size : 4096 KB
> physical id : 0
> siblings : 4
> core id : 1
> cpu cores : 2
> apicid : 3
> initial apicid : 3
> fpu : yes
> fpu_exception : yes
> cpuid level : 13
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
> pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
> rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
> nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est
> tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt
> tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb
> xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase
> tsc_adjust bmi1 avx2 smep bmi2 erms invpcid
> bogomips : 4788.86
> clflush size : 64
> cache_alignment : 64
> address sizes : 39 bits physical, 48 bits virtual
> power management:
>
>
> [7.3.] Module information (from /proc/modules):
>
> dm_crypt 23012 1 - Live 0x0000000000000000
> x86_pkg_temp_thermal 14269 0 - Live 0x0000000000000000
> coretemp 17728 0 - Live 0x0000000000000000
> kvm_intel 144049 0 - Live 0x0000000000000000
> kvm 457676 1 kvm_intel, Live 0x0000000000000000
> crct10dif_pclmul 14250 0 - Live 0x0000000000000000
> crc32_pclmul 13160 0 - Live 0x0000000000000000
> ghash_clmulni_intel 13259 0 - Live 0x0000000000000000
> aesni_intel 55720 268 - Live 0x0000000000000000
> aes_x86_64 17131 1 aesni_intel, Live 0x0000000000000000
> lrw 13294 1 aesni_intel, Live 0x0000000000000000
> gf128mul 14951 1 lrw, Live 0x0000000000000000
> glue_helper 14095 1 aesni_intel, Live 0x0000000000000000
> ablk_helper 13597 1 aesni_intel, Live 0x0000000000000000
> cryptd 20501 136 ghash_clmulni_intel,aesni_intel,ablk_helper, Live
> 0x0000000000000000
> joydev 17575 0 - Live 0x0000000000000000
> pn544_mei 12787 0 - Live 0x0000000000000000
> mei_phy 13929 1 pn544_mei, Live 0x0000000000000000
> pn544 17995 1 pn544_mei, Live 0x0000000000000000
> hci 44774 2 mei_phy,pn544, Live 0x0000000000000000
> snd_hda_codec_realtek 56695 1 - Live 0x0000000000000000
> nfc 99413 2 pn544,hci, Live 0x0000000000000000
> snd_hda_codec_hdmi 41684 1 - Live 0x0000000000000000
> hid_sensor_magn_3d 13266 0 - Live 0x0000000000000000
> hid_sensor_accel_3d 13279 0 - Live 0x0000000000000000
> hid_sensor_gyro_3d 13266 0 - Live 0x0000000000000000
> hid_sensor_trigger 12916 3
> hid_sensor_magn_3d,hid_sensor_accel_3d,hid_sensor_gyro_3d, Live
> 0x0000000000000000
> industrialio_triggered_buffer 12882 3
> hid_sensor_magn_3d,hid_sensor_accel_3d,hid_sensor_gyro_3d, Live
> 0x0000000000000000
> kfifo_buf 13294 1 industrialio_triggered_buffer, Live 0x0000000000000000
> industrialio 54016 6
> hid_sensor_magn_3d,hid_sensor_accel_3d,hid_sensor_gyro_3d,hid_sensor_trigger,industrialio_triggered_buffer,kfifo_buf,
> Live 0x0000000000000000
> arc4 12573 2 - Live 0x0000000000000000
> snd_hda_intel 57183 5 - Live 0x0000000000000000
> hid_sensor_iio_common 13807 3
> hid_sensor_magn_3d,hid_sensor_accel_3d,hid_sensor_gyro_3d, Live
> 0x0000000000000000
> snd_hda_codec 194881 3
> snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel, Live
> 0x0000000000000000
> snd_hwdep 13613 1 snd_hda_codec, Live 0x0000000000000000
> hid_multitouch 17645 0 - Live 0x0000000000000000
> snd_pcm 107140 3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec, Live
> 0x0000000000000000
> hid_generic 12548 0 - Live 0x0000000000000000
> dell_wmi 12681 0 - Live 0x0000000000000000
> sparse_keymap 13890 1 dell_wmi, Live 0x0000000000000000
> snd_page_alloc 18798 2 snd_hda_intel,snd_pcm, Live 0x0000000000000000
> snd_seq_midi 13324 0 - Live 0x0000000000000000
> snd_seq_midi_event 14899 1 snd_seq_midi, Live 0x0000000000000000
> snd_rawmidi 30465 1 snd_seq_midi, Live 0x0000000000000000
> dell_laptop 17425 0 - Live 0x0000000000000000
> parport_pc 32866 0 - Live 0x0000000000000000
> dcdbas 14977 1 dell_laptop, Live 0x0000000000000000
> ppdev 17711 0 - Live 0x0000000000000000
> snd_seq 66061 2 snd_seq_midi,snd_seq_midi_event, Live 0x0000000000000000
> mei_me 18418 0 - Live 0x0000000000000000
> uvcvideo 82247 0 - Live 0x0000000000000000
> hid_sensor_hub 19096 5
> hid_sensor_magn_3d,hid_sensor_accel_3d,hid_sensor_gyro_3d,hid_sensor_trigger,hid_sensor_iio_common,
> Live 0x0000000000000000
> iwlmvm 176559 0 - Live 0x0000000000000000
> microcode 23650 0 - Live 0x0000000000000000
> videobuf2_vmalloc 13216 1 uvcvideo, Live 0x0000000000000000
> videobuf2_memops 13362 1 videobuf2_vmalloc, Live 0x0000000000000000
> mac80211 634661 1 iwlmvm, Live 0x0000000000000000
> videobuf2_core 40903 1 uvcvideo, Live 0x0000000000000000
> mei 78609 3 pn544_mei,mei_phy,mei_me, Live 0x0000000000000000
> videodev 139144 2 uvcvideo,videobuf2_core, Live 0x0000000000000000
> usb_storage 66714 0 - Live 0x0000000000000000
> rfcomm 74658 12 - Live 0x0000000000000000
> bnep 23966 2 - Live 0x0000000000000000
> psmouse 104113 0 - Live 0x0000000000000000
> iwlwifi 171124 1 iwlmvm, Live 0x0000000000000000
> serio_raw 13462 0 - Live 0x0000000000000000
> snd_seq_device 14497 3 snd_seq_midi,snd_rawmidi,snd_seq, Live
> 0x0000000000000000
> btusb 28326 0 - Live 0x0000000000000000
> bluetooth 391597 22 rfcomm,bnep,btusb, Live 0x0000000000000000
> cfg80211 504229 3 iwlmvm,mac80211,iwlwifi, Live 0x0000000000000000
> snd_timer 30038 2 snd_pcm,snd_seq, Live 0x0000000000000000
> lpc_ich 21163 0 - Live 0x0000000000000000
> snd 73802 21
> snd_hda_codec_realtek,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_seq_midi,snd_rawmidi,snd_seq,snd_seq_device,snd_timer,
> Live 0x0000000000000000
> soundcore 12680 1 snd, Live 0x0000000000000000
> i2c_hid 19067 0 - Live 0x0000000000000000
> i2c_designware_platform 13006 0 - Live 0x0000000000000000
> i2c_designware_core 14990 1 i2c_designware_platform, Live 0x0000000000000000
> mac_hid 13253 0 - Live 0x0000000000000000
> intel_smartconnect 12619 0 - Live 0x0000000000000000
> tpm_tis 19116 0 - Live 0x0000000000000000
> nls_iso8859_1 12713 1 - Live 0x0000000000000000
> lp 17799 0 - Live 0x0000000000000000
> parport 42481 3 parport_pc,ppdev,lp, Live 0x0000000000000000
> usbhid 53067 0 - Live 0x0000000000000000
> hid 106254 5 hid_multitouch,hid_generic,hid_sensor_hub,i2c_hid,usbhid, Live
> 0x0000000000000000
> i915 733800 5 - Live 0x0000000000000000
> i2c_algo_bit 13564 1 i915, Live 0x0000000000000000
> drm_kms_helper 53165 1 i915, Live 0x0000000000000000
> ahci 30063 3 - Live 0x0000000000000000
> drm 303133 4 i915,drm_kms_helper, Live 0x0000000000000000
> libahci 32088 1 ahci, Live 0x0000000000000000
> wmi 19363 1 dell_wmi, Live 0x0000000000000000
> video 19574 1 i915, Live 0x0000000000000000
>
>
> [7.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)
>
> 0000-0cf7 : PCI Bus 0000:00
> 0000-001f : dma1
> 0020-0021 : pic1
> 0040-0043 : timer0
> 0050-0053 : timer1
> 0060-0060 : keyboard
> 0062-0062 : EC data
> 0064-0064 : keyboard
> 0066-0066 : EC cmd
> 0070-0077 : rtc0
> 0080-008f : dma page reg
> 00a0-00a1 : pic2
> 00c0-00df : dma2
> 00f0-00ff : fpu
> 04d0-04d1 : pnp 00:06
> 0680-069f : pnp 00:03
> 0cf8-0cff : PCI conf1
> 0d00-ffff : PCI Bus 0000:00
> 164e-164f : pnp 00:03
> 1800-1803 : ACPI PM1a_EVT_BLK
> 1804-1805 : ACPI PM1a_CNT_BLK
> 1808-180b : ACPI PM_TMR
> 1810-1815 : ACPI CPU throttle
> 1830-1833 : iTCO_wdt
> 1850-1850 : ACPI PM2_CNT_BLK
> 1854-1857 : pnp 00:05
> 1860-187f : iTCO_wdt
> 1880-189f : ACPI GPE0_BLK
> 1c00-1fff : INT33C7:00
> 1c00-1fff : lp-gpio
> 2000-2fff : PCI Bus 0000:04
> f000-f03f : 0000:00:02.0
> f040-f05f : 0000:00:1f.3
> f060-f07f : 0000:00:1f.2
> f060-f07f : ahci
> f080-f083 : 0000:00:1f.2
> f080-f083 : ahci
> f090-f097 : 0000:00:1f.2
> f090-f097 : ahci
> f0a0-f0a3 : 0000:00:1f.2
> f0a0-f0a3 : ahci
> f0b0-f0b7 : 0000:00:1f.2
> f0b0-f0b7 : ahci
> ffff-ffff : pnp 00:03
> ffff-ffff : pnp 00:03
> ffff-ffff : pnp 00:03
>
> 00000000-00000fff : reserved
> 00001000-00057fff : System RAM
> 00058000-00058fff : reserved
> 00059000-0009efff : System RAM
> 0009f000-0009ffff : reserved
> 000a0000-000bffff : PCI Bus 0000:00
> 000c0000-000ce9ff : Video ROM
> 000d0000-000d3fff : PCI Bus 0000:00
> 000d4000-000d7fff : PCI Bus 0000:00
> 000d8000-000dbfff : PCI Bus 0000:00
> 000dc000-000dffff : PCI Bus 0000:00
> 000f0000-000fffff : System ROM
> 00100000-c98d3fff : System RAM
> 02000000-02762924 : Kernel code
> 02762925-02d18c7f : Kernel data
> 02e72000-02fe4fff : Kernel bss
> c98d4000-c98dafff : ACPI Non-volatile Storage
> c98db000-c9d18fff : System RAM
> c9d19000-ca2b4fff : reserved
> ca2b5000-da96efff : System RAM
> da96f000-dae4bfff : reserved
> dae4c000-dae65fff : ACPI Tables
> dae66000-db764fff : ACPI Non-volatile Storage
> db765000-dbffefff : reserved
> dbfff000-dbffffff : System RAM
> dd000000-df1fffff : reserved
> dd200000-df1fffff : Graphics Stolen Memory
> df200000-feafffff : PCI Bus 0000:00
> df200000-df3fffff : PCI Bus 0000:04
> df400000-df5fffff : PCI Bus 0000:04
> e0000000-efffffff : 0000:00:02.0
> f7800000-f7bfffff : 0000:00:02.0
> f7c00000-f7cfffff : PCI Bus 0000:06
> f7c00000-f7c01fff : 0000:06:00.0
> f7c00000-f7c01fff : iwlwifi
> f7d00000-f7d0ffff : 0000:00:14.0
> f7d00000-f7d0ffff : xhci_hcd
> f7d10000-f7d13fff : 0000:00:1b.0
> f7d10000-f7d13fff : ICH HD audio
> f7d14000-f7d17fff : 0000:00:03.0
> f7d14000-f7d17fff : ICH HD audio
> f7d19000-f7d190ff : 0000:00:1f.3
> f7d1a000-f7d1a7ff : 0000:00:1f.2
> f7d1a000-f7d1a7ff : ahci
> f7d1b000-f7d1b3ff : 0000:00:1d.0
> f7d1b000-f7d1b3ff : ehci_hcd
> f7d1d000-f7d1d01f : 0000:00:16.0
> f7d1d000-f7d1d01f : mei_me
> f7fef000-f7feffff : pnp 00:0c
> f7ff0000-f7ff0fff : pnp 00:0c
> f8000000-fbffffff : PCI MMCONFIG 0000 [bus 00-3f]
> f8000000-fbffffff : reserved
> f8000000-fbffffff : pnp 00:0c
> fe102000-fe102fff : pnp 00:09
> fe104000-fe104fff : pnp 00:09
> fe105000-fe105fff : INT33C3:00
> fe105000-fe105fff : INT33C3:00
> fe106000-fe106fff : pnp 00:09
> fe108000-fe108fff : pnp 00:09
> fe10a000-fe10afff : pnp 00:09
> fe10c000-fe10cfff : pnp 00:09
> fe10e000-fe10efff : pnp 00:09
> fe111000-fe111007 : pnp 00:09
> fe111014-fe111fff : pnp 00:09
> fe112000-fe112fff : pnp 00:09
> fec00000-fec00fff : reserved
> fec00000-fec003ff : IOAPIC 0
> fed00000-fed03fff : reserved
> fed00000-fed003ff : HPET 0
> fed10000-fed17fff : pnp 00:0c
> fed18000-fed18fff : pnp 00:0c
> fed19000-fed19fff : pnp 00:0c
> fed1c000-fed1ffff : reserved
> fed1c000-fed1ffff : pnp 00:0c
> fed1f410-fed1f414 : iTCO_wdt
> fed20000-fed3ffff : pnp 00:0c
> fed45000-fed8ffff : pnp 00:0c
> fed90000-fed93fff : pnp 00:0c
> fee00000-fee00fff : Local APIC
> fee00000-fee00fff : reserved
> ff000000-ffffffff : reserved
> ff000000-ffffffff : pnp 00:0c
> 100000000-21fdfffff : System RAM
> 21fe00000-21fffffff : RAM buffer
>
>
> [7.5.] PCI information ('lspci -vvv' as root)
>
> 00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
> Subsystem: Dell Device 05e3
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort+ >SERR- <PERR- INTx-
> Latency: 0
> Capabilities: [e0] Vendor Specific Information: Len=0c <?>
>
> 00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated
> Graphics Controller (rev 09) (prog-if 00 [VGA controller])
> Subsystem: Dell Device 05e3
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 58
> Region 0: Memory at f7800000 (64-bit, non-prefetchable) [size=4M]
> Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
> Region 4: I/O ports at f000 [size=64]
> Expansion ROM at <unassigned> [disabled]
> Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0f00c Data: 41b1
> Capabilities: [d0] Power Management version 2
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
> PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [a4] PCI Advanced Features
> AFCap: TP+ FLR+
> AFCtrl: FLR-
> AFStatus: TP-
> Kernel driver in use: i915
>
> 00:03.0 Audio device: Intel Corporation Device 0a0c (rev 09)
> Subsystem: Intel Corporation Device 2010
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 61
> Region 0: Memory at f7d14000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: [50] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> PME(D0-,D1-,D2-,D3hot-,D3cold-)
> Status: D3 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0f00c Data: 4142
> Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited,
> L1 unlimited
> ExtTag- RBE- FLReset+
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
> TransPend-
> LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency
> L0 <64ns, L1 <1us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive-
> BWMgmt- ABWMgmt-
> Kernel driver in use: snd_hda_intel
>
> 00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04)
> (prog-if 30 [XHCI])
> Subsystem: Dell Device 05e3
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 56
> Region 0: Memory at f7d00000 (64-bit, non-prefetchable) [size=64K]
> Capabilities: [70] Power Management version 2
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
> PME(D0-,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+
> Address: 00000000fee0a00c Data: 4181
> Kernel driver in use: xhci_hcd
>
> 00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0
> (rev 04)
> Subsystem: Dell Device 05e3
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 60
> Region 0: Memory at f7d1d000 (64-bit, non-prefetchable) [size=32]
> Capabilities: [50] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [8c] MSI: Enable+ Count=1/1 Maskable- 64bit+
> Address: 00000000fee0f00c Data: 4122
> Kernel driver in use: mei_me
>
> 00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller
> (rev 04)
> Subsystem: Dell Device 05e3
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 62
> Region 0: Memory at f7d10000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: [50] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
> Address: 00000000fee0f00c Data: 4162
> Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1
> <1us
> ExtTag- RBE- FLReset+
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> TransPend-
> LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency
> L0 <64ns, L1 <1us
> ClockPM- Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive-
> BWMgmt- ABWMgmt-
> Capabilities: [100 v1] Virtual Channel
> Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
> Arb: Fixed- WRR32- WRR64- WRR128-
> Ctrl: ArbSelect=Fixed
> Status: InProgress-
> VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
> Status: NegoPending- InProgress-
> VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
> Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
> Ctrl: Enable- ID=2 ArbSelect=Fixed TC/VC=04
> Status: NegoPending- InProgress-
> Kernel driver in use: snd_hda_intel
>
> 00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 1
> (rev e4) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=04, subordinate=05, sec-latency=0
> I/O behind bridge: 00002000-00002fff
> Memory behind bridge: df200000-df3fffff
> Prefetchable memory behind bridge: 00000000df400000-00000000df5fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1
> <1us
> ExtTag- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> TransPend-
> LnkCap: Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0
> <1us, L1 <4us
> ClockPM- Surprise- LLActRep+ BwNot+
> LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain-
> CommClk-
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive-
> BWMgmt- ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+
> Surprise+
> Slot #0, PowerLimit 0.000W; Interlock- NoCompl+
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
> LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet-
> Interlock-
> Changed: MRL- PresDet- LinkState-
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> DevCap2: Completion Timeout: Range ABC, TimeoutDis+ ARIFwd-
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-,
> Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
> EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-,
> EqualizationPhase1-
> EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
> Address: 00000000 Data: 0000
> Capabilities: [90] Subsystem: Dell Device 05e3
> Capabilities: [a0] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Kernel driver in use: pcieport
>
> 00:1c.2 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3
> (rev e4) (prog-if 00 [Normal decode])
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Bus: primary=00, secondary=06, subordinate=06, sec-latency=0
> I/O behind bridge: 0000f000-00000fff
> Memory behind bridge: f7c00000-f7cfffff
> Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
> Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- <SERR- <PERR-
> BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
> PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
> Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1
> <1us
> ExtTag- RBE+ FLReset-
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> TransPend-
> LnkCap: Port #3, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0
> <512ns, L1 <16us
> ClockPM- Surprise- LLActRep+ BwNot+
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+
> BWMgmt+ ABWMgmt-
> SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
> Surprise-
> Slot #2, PowerLimit 10.000W; Interlock- NoCompl+
> SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq-
> LinkChg-
> Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
> SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+
> Interlock-
> Changed: MRL- PresDet- LinkState-
> RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
> CRSVisible-
> RootCap: CRSVisible-
> RootSta: PME ReqID 0000, PMEStatus- PMEPending-
> DevCap2: Completion Timeout: Range ABC, TimeoutDis+ ARIFwd-
> DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- ARIFwd-
> LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-,
> Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
> EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-,
> EqualizationPhase1-
> EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
> Address: 00000000 Data: 0000
> Capabilities: [90] Subsystem: Dell Device 05e3
> Capabilities: [a0] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [100 v0] #00
> Capabilities: [200 v1] #1e
> Kernel driver in use: pcieport
>
> 00:1d.0 USB controller: Intel Corporation Lynx Point-LP USB EHCI #1 (rev 04)
> (prog-if 20 [EHCI])
> Subsystem: Dell Device 05e3
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin A routed to IRQ 23
> Region 0: Memory at f7d1b000 (32-bit, non-prefetchable) [size=1K]
> Capabilities: [50] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [58] Debug port: BAR=1 offset=00a0
> Capabilities: [98] PCI Advanced Features
> AFCap: TP+ FLR+
> AFCtrl: FLR-
> AFStatus: TP-
> Kernel driver in use: ehci-pci
>
> 00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
> Subsystem: Dell Device 05e3
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Capabilities: [e0] Vendor Specific Information: Len=0c <?>
> Kernel driver in use: lpc_ich
>
> 00:1f.2 SATA controller: Intel Corporation Lynx Point-LP SATA Controller 1
> [AHCI mode] (rev 04) (prog-if 01 [AHCI 1.0])
> Subsystem: Dell Device 05e3
> Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Latency: 0
> Interrupt: pin B routed to IRQ 57
> Region 0: I/O ports at f0b0 [size=8]
> Region 1: I/O ports at f0a0 [size=4]
> Region 2: I/O ports at f090 [size=8]
> Region 3: I/O ports at f080 [size=4]
> Region 4: I/O ports at f060 [size=32]
> Region 5: Memory at f7d1a000 (32-bit, non-prefetchable) [size=2K]
> Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
> Address: fee0a00c Data: 41a1
> Capabilities: [70] Power Management version 3
> Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
> PME(D0-,D1-,D2-,D3hot+,D3cold-)
> Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004
> Kernel driver in use: ahci
>
> 00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
> Subsystem: Dell Device 05e3
> Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx-
> Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
> <TAbort- <MAbort- >SERR- <PERR- INTx-
> Interrupt: pin C routed to IRQ 3
> Region 0: Memory at f7d19000 (64-bit, non-prefetchable) [size=256]
> Region 4: I/O ports at f040 [size=32]
>
> 06:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b)
> Subsystem: Intel Corporation Dual Band Wireless-AC 7260
> Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
> Stepping- SERR- FastB2B- DisINTx+
> Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort-
> <MAbort- >SERR- <PERR- INTx-
> Latency: 0, Cache Line Size: 64 bytes
> Interrupt: pin A routed to IRQ 59
> Region 0: Memory at f7c00000 (64-bit, non-prefetchable) [size=8K]
> Capabilities: [c8] Power Management version 3
> Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
> PME(D0+,D1-,D2-,D3hot+,D3cold+)
> Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
> Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
> Address: 00000000fee0100c Data: 41e1
> Capabilities: [40] Express (v2) Endpoint, MSI 00
> DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1
> unlimited
> ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
> DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
> Unsupported-
> RlxdOrd- ExtTag- PhantFunc- AuxPwr+ NoSnoop+ FLReset-
> MaxPayload 128 bytes, MaxReadReq 128 bytes
> DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+
> TransPend-
> LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0
> <4us, L1 <32us
> ClockPM+ Surprise- LLActRep- BwNot-
> LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
> ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
> LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive-
> BWMgmt- ABWMgmt-
> DevCap2: Completion Timeout: Range B, TimeoutDis+
> DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis-
> LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-,
> Selectable De-emphasis: -6dB
> Transmit Margin: Normal Operating Range,
> EnterModifiedCompliance- ComplianceSOS-
> Compliance De-emphasis: -6dB
> LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-,
> EqualizationPhase1-
> EqualizationPhase2-, EqualizationPhase3-,
> LinkEqualizationRequest-
> Capabilities: [100 v1] Advanced Error Reporting
> UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF-
> MalfTLP- ECRC- UnsupReq- ACSViol-
> UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF-
> MalfTLP- ECRC- UnsupReq- ACSViol-
> UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+
> MalfTLP+ ECRC- UnsupReq- ACSViol-
> CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
> AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> Capabilities: [140 v1] Device Serial Number 5c-51-4f-ff-ff-11-a5-9e
> Capabilities: [14c v1] Latency Tolerance Reporting
> Max snoop latency: 3145728ns
> Max no snoop latency: 3145728ns
> Capabilities: [154 v1] Vendor Specific Information: ID=cafe Rev=1
> Len=014 <?>
> Kernel driver in use: iwlwifi
>
>
> [7.6.] SCSI information (from /proc/scsi/scsi)
>
> Attached devices:
> Host: scsi0 Channel: 00 Id: 00 Lun: 00
> Vendor: ATA Model: LITEONIT LMT-256 Rev: DM81
> Type: Direct-Access ANSI SCSI revision: 05
>
>
> [7.7.] Other information that might be relevant to the problem (please look
> in /proc and include all information that you think to be relevant):
>
> Relevant info from /proc/bus/input/devices
>
> I: Bus=0018 Vendor=06cb Product=2734 Version=0100
> N: Name="DLL05E3:01 06CB:2734"
> P: Phys=
> S: Sysfs=/devices/pci0000:00/INT33C3:00/i2c-8/8-002c/input/input7
> U: Uniq=
> H: Handlers=mouse0 event7
> B: PROP=0
> B: EV=17
> B: KEY=30000 0 0 0 0
> B: REL=3
> B: MSC=10
>
> I: Bus=0018 Vendor=03eb Product=842f Version=0100
> N: Name="ATML1000:00 03EB:842F"
> P: Phys=
> S: Sysfs=/devices/pci0000:00/INT33C3:00/i2c-8/8-004b/input/input8
> U: Uniq=
> H: Handlers=mouse1 event8
> B: PROP=2
> B: EV=b
> B: KEY=400 0 0 0 0 0
> B: ABS=260800000000003
>
>
> /var/log/Xorg.0.log
>
> [ 11.411] X.Org X Server 1.14.2.901 (1.14.3 RC 1) Release Date:
> 2013-07-25
> [ 11.411] X Protocol Version 11, Revision 0
> [ 11.411] Build Operating System: Linux 3.2.0-37-generic x86_64 Ubuntu
> [ 11.411] Current Operating System: Linux wouter-xps12
> 3.12.0-031200rc3-generic #201309291835 SMP Sun Sep 29 22:37:02 UTC 2013
> x86_64
> [ 11.411] Kernel command line:
> BOOT_IMAGE=/boot/vmlinuz-3.12.0-031200rc3-generic
> root=UUID=8e4879ce-4777-4c48-b6d7-5b3b4b116ad3 ro quiet splash vt.handoff=7
> [ 11.411] Build Date: 26 September 2013 05:25:08PM
> [ 11.411] xorg-server 2:1.14.2.901-2ubuntu6 (For technical support please
> see http://www.ubuntu.com/support)
> [ 11.411] Current version of pixman: 0.30.2
> [ 11.411] Before reporting problems, check http://wiki.x.org to make
> sure that you have the latest version.
> [ 11.411] Markers: (--) probed, (**) from config file, (==) default
> setting, (++) from command line, (!!) notice, (II) informational, (WW)
> warning, (EE) error, (NI) not implemented, (??) unknown.
> [ 11.411] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Oct 6 21:24:45
> 2013
> [ 11.412] (==) Using config file: "/etc/X11/xorg.conf"
> [ 11.412] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
> [ 11.414] (==) No Layout section. Using the first Screen section.
> [ 11.414] (==) No screen section available. Using defaults.
> [ 11.414] (**) |-->Screen "Default Screen Section" (0)
> [ 11.414] (**) | |-->Monitor "<default monitor>"
> [ 11.414] (==) No monitor specified for screen "Default Screen Section".
> Using a default monitor configuration.
> [ 11.414] (==) Automatically adding devices
> [ 11.414] (==) Automatically enabling devices
> [ 11.414] (==) Automatically adding GPU devices
> [ 11.416] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not
> exist.
> [ 11.416] Entry deleted from font path.
> [ 11.416] (WW) The directory "/usr/share/fonts/X11/100dpi/" does not
> exist.
> [ 11.416] Entry deleted from font path.
> [ 11.416] (WW) The directory "/usr/share/fonts/X11/75dpi/" does not
> exist.
> [ 11.416] Entry deleted from font path.
> [ 11.416] (WW) The directory "/usr/share/fonts/X11/100dpi" does not
> exist.
> [ 11.416] Entry deleted from font path.
> [ 11.416] (WW) The directory "/usr/share/fonts/X11/75dpi" does not exist.
> [ 11.416] Entry deleted from font path.
> [ 11.416] (WW) The directory
> "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" does not exist.
> [ 11.416] Entry deleted from font path.
> [ 11.416] (==) FontPath set to:
> /usr/share/fonts/X11/misc,
> /usr/share/fonts/X11/Type1,
> built-ins
> [ 11.416] (==) ModulePath set to
> "/usr/lib/x86_64-linux-gnu/xorg/extra-modules,/usr/lib/xorg/extra-modules,/usr/lib/xorg/modules"
> [ 11.416] (II) The server relies on udev to provide the list of input
> devices.
> If no devices become available, reconfigure udev or disable
> AutoAddDevices.
> [ 11.416] (II) Loader magic: 0x7fe40c4a1d20
> [ 11.416] (II) Module ABI versions:
> [ 11.416] X.Org ANSI C Emulation: 0.4
> [ 11.416] X.Org Video Driver: 14.1
> [ 11.416] X.Org XInput driver : 19.1
> [ 11.416] X.Org Server Extension : 7.0
> [ 11.417] (II) xfree86: Adding drm device (/dev/dri/card0)
> [ 11.417] (--) PCI:*(0:0:2:0) 8086:0a16:1028:05e3 rev 9, Mem @
> 0xf7800000/4194304, 0xe0000000/268435456, I/O @ 0x0000f000/64
> [ 11.417] (II) Open ACPI successful (/var/run/acpid.socket)
> [ 11.418] Initializing built-in extension Generic Event Extension
> [ 11.418] Initializing built-in extension SHAPE
> [ 11.418] Initializing built-in extension MIT-SHM
> [ 11.418] Initializing built-in extension XInputExtension
> [ 11.418] Initializing built-in extension XTEST
> [ 11.418] Initializing built-in extension BIG-REQUESTS
> [ 11.418] Initializing built-in extension SYNC
> [ 11.418] Initializing built-in extension XKEYBOARD
> [ 11.418] Initializing built-in extension XC-MISC
> [ 11.418] Initializing built-in extension SECURITY
> [ 11.418] Initializing built-in extension XINERAMA
> [ 11.418] Initializing built-in extension XFIXES
> [ 11.418] Initializing built-in extension RENDER
> [ 11.418] Initializing built-in extension RANDR
> [ 11.418] Initializing built-in extension COMPOSITE
> [ 11.418] Initializing built-in extension DAMAGE
> [ 11.418] Initializing built-in extension MIT-SCREEN-SAVER
> [ 11.418] Initializing built-in extension DOUBLE-BUFFER
> [ 11.418] Initializing built-in extension RECORD
> [ 11.418] Initializing built-in extension DPMS
> [ 11.418] Initializing built-in extension X-Resource
> [ 11.418] Initializing built-in extension XVideo
> [ 11.418] Initializing built-in extension XVideo-MotionCompensation
> [ 11.418] Initializing built-in extension SELinux
> [ 11.418] Initializing built-in extension XFree86-VidModeExtension
> [ 11.418] Initializing built-in extension XFree86-DGA
> [ 11.418] Initializing built-in extension XFree86-DRI
> [ 11.418] Initializing built-in extension DRI2
> [ 11.418] (II) "glx" will be loaded by default.
> [ 11.418] (WW) "xmir" is not to be loaded by default. Skipping.
> [ 11.418] (II) LoadModule: "dri2"
> [ 11.418] (II) Module "dri2" already built-in
> [ 11.418] (II) LoadModule: "glamoregl"
> [ 11.419] (II) Loading /usr/lib/xorg/modules/libglamoregl.so
> [ 11.431] (II) Module glamoregl: vendor="X.Org Foundation"
> [ 11.431] compiled for 1.14.2.901, module version = 0.5.1
> [ 11.432] ABI class: X.Org ANSI C Emulation, version 0.4
> [ 11.432] (II) LoadModule: "glx"
> [ 11.432] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
> [ 11.434] (II) Module glx: vendor="X.Org Foundation"
> [ 11.434] compiled for 1.14.2.901, module version = 1.0.0
> [ 11.434] ABI class: X.Org Server Extension, version 7.0
> [ 11.434] (==) AIGLX enabled
> [ 11.434] Loading extension GLX
> [ 11.434] (==) Matched intel as autoconfigured driver 0
> [ 11.434] (==) Matched intel as autoconfigured driver 1
> [ 11.434] (==) Matched vesa as autoconfigured driver 2
> [ 11.434] (==) Matched modesetting as autoconfigured driver 3
> [ 11.434] (==) Matched fbdev as autoconfigured driver 4
> [ 11.434] (==) Assigned the driver to the xf86ConfigLayout
> [ 11.434] (II) LoadModule: "intel"
> [ 11.434] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
> [ 11.437] (II) Module intel: vendor="X.Org Foundation"
> [ 11.437] compiled for 1.14.2.901, module version = 2.21.14
> [ 11.437] Module class: X.Org Video Driver
> [ 11.437] ABI class: X.Org Video Driver, version 14.1
> [ 11.437] (II) LoadModule: "vesa"
> [ 11.437] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
> [ 11.437] (II) Module vesa: vendor="X.Org Foundation"
> [ 11.437] compiled for 1.14.1, module version = 2.3.2
> [ 11.438] Module class: X.Org Video Driver
> [ 11.438] ABI class: X.Org Video Driver, version 14.1
> [ 11.438] (II) LoadModule: "modesetting"
> [ 11.438] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
> [ 11.438] (II) Module modesetting: vendor="X.Org Foundation"
> [ 11.438] compiled for 1.14.1, module version = 0.8.0
> [ 11.438] Module class: X.Org Video Driver
> [ 11.438] ABI class: X.Org Video Driver, version 14.1
> [ 11.438] (II) LoadModule: "fbdev"
> [ 11.438] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
> [ 11.439] (II) Module fbdev: vendor="X.Org Foundation"
> [ 11.439] compiled for 1.14.1, module version = 0.4.3
> [ 11.439] Module class: X.Org Video Driver
> [ 11.439] ABI class: X.Org Video Driver, version 14.1
> [ 11.439] (II) intel: Driver for Intel(R) Integrated Graphics Chipsets:
> i810, i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G,
> 915G, E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM,
> Pineview G, 965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33,
> GM45, 4 Series, G45/G43, Q45/Q43, G41, B43, HD Graphics,
> HD Graphics 2000, HD Graphics 3000, HD Graphics 2500,
> HD Graphics 4000, HD Graphics P4000, HD Graphics 4600,
> HD Graphics 5000, HD Graphics P4600/P4700, Iris(TM) Graphics 5100,
> HD Graphics 4400, HD Graphics 4200, Iris(TM) Pro Graphics 5200
> [ 11.439] (II) VESA: driver for VESA chipsets: vesa
> [ 11.439] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
> [ 11.439] (II) FBDEV: driver for framebuffer: fbdev
> [ 11.439] (++) using VT number 7
>
> [ 11.440] (II) intel(0): SNA compiled: xserver-xorg-video-intel
> 2:2.21.14-4ubuntu4 (Christopher James Halse Rogers <raof@ubuntu.com>)
> [ 11.441] (WW) Falling back to old probe method for vesa
> [ 11.441] (WW) Falling back to old probe method for modesetting
> [ 11.441] (WW) Falling back to old probe method for fbdev
> [ 11.441] (II) Loading sub module "fbdevhw"
> [ 11.441] (II) LoadModule: "fbdevhw"
> [ 11.442] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
> [ 11.442] (II) Module fbdevhw: vendor="X.Org Foundation"
> [ 11.442] compiled for 1.14.2.901, module version = 0.0.2
> [ 11.442] ABI class: X.Org Video Driver, version 14.1
> [ 11.443] (II) intel(0): Creating default Display subsection in Screen
> section
> "Default Screen Section" for depth/fbbpp 24/32
> [ 11.443] (==) intel(0): Depth 24, (--) framebuffer bpp 32
> [ 11.443] (==) intel(0): RGB weight 888
> [ 11.443] (==) intel(0): Default visual is TrueColor
> [ 11.443] (--) intel(0): Integrated Graphics Chipset: Intel(R) HD
> Graphics 4400
> [ 11.443] (--) intel(0): CPU: x86-64, sse2, sse3, ssse3, sse4.1, sse4.2,
> avx, avx2
> [ 11.443] (**) intel(0): Framebuffer tiled
> [ 11.443] (**) intel(0): Pixmaps tiled
> [ 11.443] (**) intel(0): "Tear free" disabled
> [ 11.443] (**) intel(0): Forcing per-crtc-pixmaps? no
> [ 11.443] (II) intel(0): Output eDP1 has no monitor section
> [ 11.443] (--) intel(0): found backlight control interface acpi_video0
> (type 'firmware')
> [ 11.443] (II) intel(0): Output DP1 has no monitor section
> [ 11.443] (II) intel(0): Output HDMI1 has no monitor section
> [ 11.443] (--) intel(0): Output eDP1 using initial mode 1920x1080 on pipe
> 0
> [ 11.443] (==) intel(0): DPI set to (96, 96)
> [ 11.443] (II) Loading sub module "dri2"
> [ 11.443] (II) LoadModule: "dri2"
> [ 11.443] (II) Module "dri2" already built-in
> [ 11.443] (II) UnloadModule: "vesa"
> [ 11.443] (II) Unloading vesa
> [ 11.443] (II) UnloadModule: "modesetting"
> [ 11.443] (II) Unloading modesetting
> [ 11.443] (II) UnloadModule: "fbdev"
> [ 11.443] (II) Unloading fbdev
> [ 11.443] (II) UnloadSubModule: "fbdevhw"
> [ 11.443] (II) Unloading fbdevhw
> [ 11.443] (==) Depth 24 pixmap format is 32 bpp
> [ 11.446] (II) intel(0): SNA initialized with Haswell (gen7.5, gt2)
> backend
> [ 11.446] (==) intel(0): Backing store disabled
> [ 11.446] (==) intel(0): Silken mouse enabled
> [ 11.446] (II) intel(0): HW Cursor enabled
> [ 11.446] (II) intel(0): RandR 1.2 enabled, ignore the following RandR
> disabled message.
> [ 11.447] (==) intel(0): DPMS enabled
> [ 11.447] (II) intel(0): [DRI2] Setup complete
> [ 11.447] (II) intel(0): [DRI2] DRI driver: i965
> [ 11.447] (II) intel(0): direct rendering: DRI2 Enabled
> [ 11.447] (==) intel(0): hotplug detection: "enabled"
> [ 11.447] (--) RandR disabled
> [ 11.452] (II) SELinux: Disabled on system
> [ 11.467] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
> [ 11.467] (II) AIGLX: enabled GLX_INTEL_swap_event
> [ 11.467] (II) AIGLX: enabled GLX_ARB_create_context
> [ 11.467] (II) AIGLX: enabled GLX_ARB_create_context_profile
> [ 11.467] (II) AIGLX: enabled GLX_EXT_create_context_es2_profile
> [ 11.467] (II) AIGLX: enabled GLX_SGI_swap_control and
> GLX_MESA_swap_control
> [ 11.467] (II) AIGLX: GLX_EXT_texture_from_pixmap backed by buffer
> objects
> [ 11.467] (II) AIGLX: Loaded and initialized i965
> [ 11.467] (II) GLX: Initialized DRI2 GL provider for screen 0
> [ 11.470] (II) intel(0): switch to mode 1920x1080@59.9 on pipe 0 using
> eDP1, position (0, 0), rotation normal
> [ 11.488] (II) intel(0): Setting screen physical size to 508 x 285
> [ 11.497] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-B20D7FC79C7F597315E3E501AEF10E0D866E8E92.xkm
> [ 11.499] (II) config/udev: Adding input device Power Button
> (/dev/input/event2)
> [ 11.499] (**) Power Button: Applying InputClass "evdev keyboard
> catchall"
> [ 11.499] (II) LoadModule: "evdev"
> [ 11.499] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
> [ 11.500] (II) Module evdev: vendor="X.Org Foundation"
> [ 11.500] compiled for 1.14.1, module version = 2.7.3
> [ 11.500] Module class: X.Org XInput Driver
> [ 11.500] ABI class: X.Org XInput driver, version 19.1
> [ 11.500] (II) Using input driver 'evdev' for 'Power Button'
> [ 11.500] (**) Power Button: always reports core events
> [ 11.500] (**) evdev: Power Button: Device: "/dev/input/event2"
> [ 11.500] (--) evdev: Power Button: Vendor 0 Product 0x1
> [ 11.500] (--) evdev: Power Button: Found keys
> [ 11.500] (II) evdev: Power Button: Configuring as keyboard
> [ 11.500] (**) Option "config_info"
> "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input2/event2"
> [ 11.500] (II) XINPUT: Adding extended input device "Power Button" (type:
> KEYBOARD, id 6)
> [ 11.500] (**) Option "xkb_rules" "evdev"
> [ 11.500] (**) Option "xkb_model" "pc105"
> [ 11.500] (**) Option "xkb_layout" "us"
> [ 11.500] (**) Option "xkb_variant" "intl"
> [ 11.502] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-A5431D4A34463C892C9E905E2E421B30A3CC30DD.xkm
> [ 11.503] (II) config/udev: Adding input device Video Bus
> (/dev/input/event4)
> [ 11.503] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
> [ 11.503] (II) Using input driver 'evdev' for 'Video Bus'
> [ 11.503] (**) Video Bus: always reports core events
> [ 11.503] (**) evdev: Video Bus: Device: "/dev/input/event4"
> [ 11.503] (--) evdev: Video Bus: Vendor 0 Product 0x6
> [ 11.503] (--) evdev: Video Bus: Found keys
> [ 11.503] (II) evdev: Video Bus: Configuring as keyboard
> [ 11.503] (**) Option "config_info"
> "udev:/sys/devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input4/event4"
> [ 11.503] (II) XINPUT: Adding extended input device "Video Bus" (type:
> KEYBOARD, id 7)
> [ 11.503] (**) Option "xkb_rules" "evdev"
> [ 11.503] (**) Option "xkb_model" "pc105"
> [ 11.503] (**) Option "xkb_layout" "us"
> [ 11.503] (**) Option "xkb_variant" "intl"
> [ 11.504] (II) config/udev: Adding input device Power Button
> (/dev/input/event0)
> [ 11.504] (**) Power Button: Applying InputClass "evdev keyboard
> catchall"
> [ 11.504] (II) Using input driver 'evdev' for 'Power Button'
> [ 11.504] (**) Power Button: always reports core events
> [ 11.504] (**) evdev: Power Button: Device: "/dev/input/event0"
> [ 11.504] (--) evdev: Power Button: Vendor 0 Product 0x1
> [ 11.504] (--) evdev: Power Button: Found keys
> [ 11.504] (II) evdev: Power Button: Configuring as keyboard
> [ 11.504] (**) Option "config_info"
> "udev:/sys/devices/LNXSYSTM:00/device:00/PNP0C0C:00/input/input0/event0"
> [ 11.504] (II) XINPUT: Adding extended input device "Power Button" (type:
> KEYBOARD, id 8)
> [ 11.504] (**) Option "xkb_rules" "evdev"
> [ 11.504] (**) Option "xkb_model" "pc105"
> [ 11.504] (**) Option "xkb_layout" "us"
> [ 11.504] (**) Option "xkb_variant" "intl"
> [ 11.504] (II) config/udev: Adding input device Lid Switch
> (/dev/input/event1)
> [ 11.504] (II) No input driver specified, ignoring this device.
> [ 11.504] (II) This device may have been added with another device file.
> [ 11.504] (II) config/udev: Adding drm device (/dev/dri/card0)
> [ 11.504] (II) config/udev: Ignoring already known drm device
> (/dev/dri/card0)
> [ 11.504] (II) config/udev: Adding input device HDA Intel MID
> HDMI/DP,pcm=7 (/dev/input/event10)
> [ 11.504] (II) No input driver specified, ignoring this device.
> [ 11.504] (II) This device may have been added with another device file.
> [ 11.504] (II) config/udev: Adding input device HDA Intel MID
> HDMI/DP,pcm=3 (/dev/input/event11)
> [ 11.504] (II) No input driver specified, ignoring this device.
> [ 11.504] (II) This device may have been added with another device file.
> [ 11.505] (II) config/udev: Adding input device HDA Intel MID
> HDMI/DP,pcm=8 (/dev/input/event9)
> [ 11.505] (II) No input driver specified, ignoring this device.
> [ 11.505] (II) This device may have been added with another device file.
> [ 11.505] (II) config/udev: Adding input device Integrated Webcam
> (/dev/input/event5)
> [ 11.505] (**) Integrated Webcam: Applying InputClass "evdev keyboard
> catchall"
> [ 11.505] (II) Using input driver 'evdev' for 'Integrated Webcam'
> [ 11.505] (**) Integrated Webcam: always reports core events
> [ 11.505] (**) evdev: Integrated Webcam: Device: "/dev/input/event5"
> [ 11.505] (--) evdev: Integrated Webcam: Vendor 0xbda Product 0x5602
> [ 11.505] (--) evdev: Integrated Webcam: Found keys
> [ 11.505] (II) evdev: Integrated Webcam: Configuring as keyboard
> [ 11.505] (**) Option "config_info"
> "udev:/sys/devices/pci0000:00/0000:00:14.0/usb2/2-5/2-5:1.0/input/input5/event5"
> [ 11.505] (II) XINPUT: Adding extended input device "Integrated Webcam"
> (type: KEYBOARD, id 9)
> [ 11.505] (**) Option "xkb_rules" "evdev"
> [ 11.505] (**) Option "xkb_model" "pc105"
> [ 11.505] (**) Option "xkb_layout" "us"
> [ 11.505] (**) Option "xkb_variant" "intl"
> [ 11.505] (II) config/udev: Adding input device HDA Intel PCH Headphone
> (/dev/input/event12)
> [ 11.505] (II) No input driver specified, ignoring this device.
> [ 11.505] (II) This device may have been added with another device file.
> [ 11.505] (II) config/udev: Adding input device DLL05E3:01 06CB:2734
> (/dev/input/event7)
> [ 11.505] (**) DLL05E3:01 06CB:2734: Applying InputClass "evdev pointer
> catchall"
> [ 11.505] (II) Using input driver 'evdev' for 'DLL05E3:01 06CB:2734'
> [ 11.505] (**) DLL05E3:01 06CB:2734: always reports core events
> [ 11.505] (**) evdev: DLL05E3:01 06CB:2734: Device: "/dev/input/event7"
> [ 11.512] (--) evdev: DLL05E3:01 06CB:2734: Vendor 0x6cb Product 0x2734
> [ 11.512] (--) evdev: DLL05E3:01 06CB:2734: Found 3 mouse buttons
> [ 11.512] (--) evdev: DLL05E3:01 06CB:2734: Found relative axes
> [ 11.512] (--) evdev: DLL05E3:01 06CB:2734: Found x and y relative axes
> [ 11.512] (II) evdev: DLL05E3:01 06CB:2734: Configuring as mouse
> [ 11.512] (**) evdev: DLL05E3:01 06CB:2734: YAxisMapping: buttons 4 and 5
> [ 11.512] (**) evdev: DLL05E3:01 06CB:2734: EmulateWheelButton: 4,
> EmulateWheelInertia: 10, EmulateWheelTimeout: 200
> [ 11.512] (**) Option "config_info"
> "udev:/sys/devices/pci0000:00/INT33C3:00/i2c-8/8-002c/input/input7/event7"
> [ 11.512] (II) XINPUT: Adding extended input device "DLL05E3:01
> 06CB:2734" (type: MOUSE, id 10)
> [ 11.512] (II) evdev: DLL05E3:01 06CB:2734: initialized for relative
> axes.
> [ 11.513] (**) DLL05E3:01 06CB:2734: (accel) keeping acceleration scheme
> 1
> [ 11.513] (**) DLL05E3:01 06CB:2734: (accel) acceleration profile 0
> [ 11.513] (**) DLL05E3:01 06CB:2734: (accel) acceleration factor: 2.000
> [ 11.513] (**) DLL05E3:01 06CB:2734: (accel) acceleration threshold: 4
> [ 11.513] (II) config/udev: Adding input device DLL05E3:01 06CB:2734
> (/dev/input/mouse0)
> [ 11.513] (II) No input driver specified, ignoring this device.
> [ 11.513] (II) This device may have been added with another device file.
> [ 11.513] (II) config/udev: Adding input device ATML1000:00 03EB:842F
> (/dev/input/event8)
> [ 11.513] (**) ATML1000:00 03EB:842F: Applying InputClass "evdev
> touchscreen catchall"
> [ 11.513] (II) Using input driver 'evdev' for 'ATML1000:00 03EB:842F'
> [ 11.513] (**) ATML1000:00 03EB:842F: always reports core events
> [ 11.513] (**) evdev: ATML1000:00 03EB:842F: Device: "/dev/input/event8"
> [ 11.514] (--) evdev: ATML1000:00 03EB:842F: Vendor 0x3eb Product 0x842f
> [ 11.514] (--) evdev: ATML1000:00 03EB:842F: Found absolute axes
> [ 11.514] (--) evdev: ATML1000:00 03EB:842F: Found absolute multitouch
> axes
> [ 11.514] (--) evdev: ATML1000:00 03EB:842F: Found x and y absolute axes
> [ 11.514] (--) evdev: ATML1000:00 03EB:842F: Found absolute touchscreen
> [ 11.514] (II) evdev: ATML1000:00 03EB:842F: Configuring as touchscreen
> [ 11.514] (**) evdev: ATML1000:00 03EB:842F: YAxisMapping: buttons 4 and
> 5
> [ 11.514] (**) evdev: ATML1000:00 03EB:842F: EmulateWheelButton: 4,
> EmulateWheelInertia: 10, EmulateWheelTimeout: 200
> [ 11.514] (**) Option "config_info"
> "udev:/sys/devices/pci0000:00/INT33C3:00/i2c-8/8-004b/input/input8/event8"
> [ 11.514] (II) XINPUT: Adding extended input device "ATML1000:00
> 03EB:842F" (type: TOUCHSCREEN, id 11)
> [ 11.514] (II) evdev: ATML1000:00 03EB:842F: initialized for absolute
> axes.
> [ 11.514] (**) ATML1000:00 03EB:842F: (accel) keeping acceleration scheme
> 1
> [ 11.514] (**) ATML1000:00 03EB:842F: (accel) acceleration profile 0
> [ 11.514] (**) ATML1000:00 03EB:842F: (accel) acceleration factor: 2.000
> [ 11.514] (**) ATML1000:00 03EB:842F: (accel) acceleration threshold: 4
> [ 11.515] (II) config/udev: Adding input device ATML1000:00 03EB:842F
> (/dev/input/mouse1)
> [ 11.515] (II) No input driver specified, ignoring this device.
> [ 11.515] (II) This device may have been added with another device file.
> [ 11.515] (II) config/udev: Adding input device AT Translated Set 2
> keyboard (/dev/input/event3)
> [ 11.515] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev
> keyboard catchall"
> [ 11.515] (II) Using input driver 'evdev' for 'AT Translated Set 2
> keyboard'
> [ 11.515] (**) AT Translated Set 2 keyboard: always reports core events
> [ 11.515] (**) evdev: AT Translated Set 2 keyboard: Device:
> "/dev/input/event3"
> [ 11.515] (--) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product
> 0x1
> [ 11.515] (--) evdev: AT Translated Set 2 keyboard: Found keys
> [ 11.515] (II) evdev: AT Translated Set 2 keyboard: Configuring as
> keyboard
> [ 11.515] (**) Option "config_info"
> "udev:/sys/devices/platform/i8042/serio0/input/input3/event3"
> [ 11.515] (II) XINPUT: Adding extended input device "AT Translated Set 2
> keyboard" (type: KEYBOARD, id 12)
> [ 11.515] (**) Option "xkb_rules" "evdev"
> [ 11.515] (**) Option "xkb_model" "pc105"
> [ 11.515] (**) Option "xkb_layout" "us"
> [ 11.515] (**) Option "xkb_variant" "intl"
> [ 11.516] (II) config/udev: Adding input device Dell WMI hotkeys
> (/dev/input/event6)
> [ 11.516] (**) Dell WMI hotkeys: Applying InputClass "evdev keyboard
> catchall"
> [ 11.516] (II) Using input driver 'evdev' for 'Dell WMI hotkeys'
> [ 11.516] (**) Dell WMI hotkeys: always reports core events
> [ 11.516] (**) evdev: Dell WMI hotkeys: Device: "/dev/input/event6"
> [ 11.516] (--) evdev: Dell WMI hotkeys: Vendor 0 Product 0
> [ 11.516] (--) evdev: Dell WMI hotkeys: Found keys
> [ 11.516] (II) evdev: Dell WMI hotkeys: Configuring as keyboard
> [ 11.516] (**) Option "config_info"
> "udev:/sys/devices/virtual/input/input6/event6"
> [ 11.516] (II) XINPUT: Adding extended input device "Dell WMI hotkeys"
> (type: KEYBOARD, id 13)
> [ 11.516] (**) Option "xkb_rules" "evdev"
> [ 11.516] (**) Option "xkb_model" "pc105"
> [ 11.516] (**) Option "xkb_layout" "us"
> [ 11.516] (**) Option "xkb_variant" "intl"
> [ 11.793] (II) intel(0): EDID vendor "LGD", prod id 1021
> [ 11.793] (II) intel(0): Printing DDC gathered Modelines:
> [ 11.793] (II) intel(0): Modeline "1920x1080"x0.0 138.50 1920 1968 2000
> 2080 1080 1083 1088 1111 +hsync -vsync (66.6 kHz eP)
> [ 17.641] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-8CD2763E246F7107805A70A0C7DBAC594B3523D9.xkm
> [ 18.165] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-657D1E36EA86B8E7C9DA9E3D0CE267494DF7D894.xkm
> [ 18.168] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-657D1E36EA86B8E7C9DA9E3D0CE267494DF7D894.xkm
> [ 18.381] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-280C0FB5E1610579A23BBD0FBA8EB1281D867EEF.xkm
> [ 18.722] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-8CD2763E246F7107805A70A0C7DBAC594B3523D9.xkm
> [ 18.727] (II) XKB: reuse xkmfile
> /var/lib/xkb/server-657D1E36EA86B8E7C9DA9E3D0CE267494DF7D894.xkm
>
>
> xinput --list
>
> ⎡ Virtual core pointer id=2 [master pointer (3)]
> ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer
> (2)]
> ⎜ ↳ DLL05E3:01 06CB:2734 id=10 [slave pointer
> (2)]
> ⎜ ↳ ATML1000:00 03EB:842F id=11 [slave pointer
> (2)]
> ⎣ Virtual core keyboard id=3 [master keyboard (2)]
> ↳ Virtual core XTEST keyboard id=5 [slave keyboard
> (3)]
> ↳ Power Button id=6 [slave keyboard
> (3)]
> ↳ Video Bus id=7 [slave keyboard
> (3)]
> ↳ Power Button id=8 [slave keyboard
> (3)]
> ↳ Integrated Webcam id=9 [slave keyboard
> (3)]
> ↳ AT Translated Set 2 keyboard id=12 [slave keyboard
> (3)]
> ↳ Dell WMI hotkeys id=13 [slave keyboard
> (3)]
>
>
> Relevant lines from dmesg
>
> [ 0.000000] Linux version 3.12.0-031200rc3-generic (apw@gomeisa) (gcc
> version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201309291835 SMP Sun Sep 29
> 22:37:02 UTC 2013
> [ 0.000000] Command line:
> BOOT_IMAGE=/boot/vmlinuz-3.12.0-031200rc3-generic
> root=UUID=8e4879ce-4777-4c48-b6d7-5b3b4b116ad3 ro quiet splash vt.handoff=7
> [ 0.000000] DMI: Dell Inc. XPS 12-9Q33/XPS 12-9Q33, BIOS A02 07/26/2013
>
> [ 1.145083] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at
> 0x60,0x64 irq 1,12
> [ 1.169878] serio: i8042 KBD port at 0x60,0x64 irq 1
> [ 1.169882] serio: i8042 AUX port at 0x60,0x64 irq 12
> [ 1.170063] mousedev: PS/2 mouse device common for all mice
>
> [ 8.636649] ACPI Warning: 0x0000000000001828-0x000000000000182f SystemIO
> conflicts with Region \PMIO 1 (20130725/utaddress-251)
> [ 8.636656] ACPI: If an ACPI driver is available for this device, you
> should use it instead of the native driver
> [ 8.636660] ACPI Warning: 0x0000000000001c30-0x0000000000001c3f SystemIO
> conflicts with Region \GPRL 1 (20130725/utaddress-251)
> [ 8.636664] ACPI Warning: 0x0000000000001c30-0x0000000000001c3f SystemIO
> conflicts with Region \GPR_ 2 (20130725/utaddress-251)
> [ 8.636667] ACPI: If an ACPI driver is available for this device, you
> should use it instead of the native driver
> [ 8.636669] ACPI Warning: 0x0000000000001c00-0x0000000000001c2f SystemIO
> conflicts with Region \GPRL 1 (20130725/utaddress-251)
> [ 8.636672] ACPI Warning: 0x0000000000001c00-0x0000000000001c2f SystemIO
> conflicts with Region \GPR_ 2 (20130725/utaddress-251)
> [ 8.636675] ACPI: If an ACPI driver is available for this device, you
> should use it instead of the native driver
> [ 8.636677] lpc_ich: Resource conflict(s) found affecting gpio_ich
>
> [ 8.915773] i2c_hid 8-002c: failed to retrieve report from device.
> [ 8.918200] i2c_hid 8-002c: failed to retrieve report from device.
> [ 8.918897] i2c_hid 8-002c: failed to retrieve report from device.
> [ 8.924053] i2c_hid 8-002c: failed to retrieve report from device.
> [ 8.924118] input: DLL05E3:01 06CB:2734 as
> /devices/pci0000:00/INT33C3:00/i2c-8/8-002c/input/input7
> [ 8.924297] hid-generic 0018:06CB:2734.0003: input,hidraw0: <UNKNOWN> HID
> v1.00 Pointer [DLL05E3:01 06CB:2734] on
> [ 8.928162] i2c_hid 8-004b: error in i2c_hid_init_report size:20 /
> ret_size:0
> [ 8.930894] i2c_hid 8-004b: error in i2c_hid_init_report size:20 /
> ret_size:0
> [ 8.933598] i2c_hid 8-004b: error in i2c_hid_init_report size:13 /
> ret_size:0
>
> [ 8.946226] input: ATML1000:00 03EB:842F as
> /devices/pci0000:00/INT33C3:00/i2c-8/8-004b/input/input8
> [ 8.946815] hid-multitouch 0018:03EB:842F.0002: input,hidraw1: <UNKNOWN>
> HID v1.00 Device [ATML1000:00 03EB:842F] on
>
>
> ls /proc
>
> 1 1353 1671 1794 1995 23 304 485 56 922 iomem
> sched_debug
> 10 14 1673 18 2 2334 31 490 57 928 ioports
> schedstat
> 1005 140 1681 1807 20 24 33 493 579 93 irq scsi
> 1016 141 1683 1821 2002 2456 330 495 629 acpi kallsyms
> self
> 1027 1413 1686 1844 2005 2480 338 496 637 asound kcore
> slabinfo
> 1044 142 1690 1851 2011 2486 34 498 69 buddyinfo key-users
> softirqs
> 1058 143 1692 1853 2021 2487 35 499 7 bus kmsg stat
> 1094 15 17 19 2028 25 36 5 718 cgroups kpagecount swaps
> 11 1522 1701 192 2029 2557 37 507 73 cmdline kpageflags sys
> 1142 1566 1720 1920 2034 2562 38 51 765 consoles latency_stats
> sysrq-trigger
> 1155 1568 1738 1922 2044 26 39 510 795 cpuinfo loadavg
> sysvipc
> 1156 16 1748 1924 2048 2668 41 511 8 crypto locks
> timer_list
> 1157 1617 1760 1925 2052 2683 42 513 800 devices mdstat
> timer_stats
> 1158 1619 1761 1928 21 2716 43 514 822 diskstats meminfo
> tty
> 1189 1633 1762 193 2186 2738 44 52 832 dma misc uptime
> 12 1639 1763 1931 2194 2765 45 528 834 driver modules
> version
> 1200 1645 1765 194 2201 2767 457 529 9 execdomains mounts
> vmallocinfo
> 1214 1658 1781 1945 2207 28 46 53 900 fb mtrr vmstat
> 1261 1661 1785 1948 2215 29 467 531 908 filesystems net zoneinfo
> 1292 1664 1786 1965 2232 3 47 54 919 fs pagetypeinfo
> 13 1666 1787 1976 2284 30 483 55 92 interrupts partitions
>
>
> [X.] Other notes, patches, fixes, workarounds:
>
> Downstream Launchpad bug report:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1218973
>
> After blacklisting i2c_hid this is my xinput list:
>
> ⎡ Virtual core pointer id=2 [master pointer (3)]
> ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer
> (2)]
> ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer
> (2)]
> ⎣ Virtual core keyboard id=3 [master keyboard (2)]
> ↳ Virtual core XTEST keyboard id=5 [slave keyboard
> (3)]
> ↳ Power Button id=6 [slave keyboard
> (3)]
> ↳ Video Bus id=7 [slave keyboard
> (3)]
> ↳ Power Button id=8 [slave keyboard
> (3)]
> ↳ Integrated Webcam id=9 [slave keyboard
> (3)]
> ↳ AT Translated Set 2 keyboard id=10 [slave keyboard
> (3)]
> ↳ Dell WMI hotkeys id=12 [slave keyboard
> (3)]
>
> As you can see, the touchpad is no longer called "DLL05E3:01 06CB:2734".
> However, touchscreen "ATML1000:00 03EB:842F" is missing now.
>
> Thank you for your time.
>
> --
> Wouter van der Graaf
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: PROBLEM: XPS 12-9Q33 touchpad not recognized, problem with i2c_hid module
From: Wouter van der Graaf @ 2013-10-09 12:17 UTC (permalink / raw)
To: Benjamin Tissoires; +Cc: linux-input, Jiri Kosina
In-Reply-To: <CAN+gG=GnpGYVfrXL9ZB6mX1p+ODEWWp9SDKYnd_aw7bpCuf8dw@mail.gmail.com>
Hi Benjamin,
Thank you very much for your response.
> ok, this is something which was expected to happen at some point (at
> least which does not surprise me :-P ).
Is HID over i2c something new, only found in newer 'ultrabooks'?
> The solution is to write a proper driver for the Synaptics i2c-hid
> touchpad, when in HID mode. I started doing this some months ago, and
> I will have to ping Synaptics again to this extend.
If there is anything I can contribute to, let me know. I'm not a kernel
dev with any C experience, but I am a developer using Linux 10+ years.
The least I can do is test the bunch :-)
> However, I will not be able to do anything before Nov. 1st.
That's fine, of course. Is there a way for me to follow progress on this
issue, e.g. bug tracker? Do you want me to take action?
Again thank you for your time.
Wouter
^ permalink raw reply
* Re: [PATCH 1/1 FROM FIXED] Revert "HID: fix unit exponent parsing"
From: Nikolai Kondrashov @ 2013-10-09 18:42 UTC (permalink / raw)
To: Benjamin Tissoires; +Cc: Jiri Kosina, linux-input
In-Reply-To: <CAN+gG=FiMk-EhQi2BE49MXLY71DMJW7cjzGt8wijrAJG_snyHQ@mail.gmail.com>
Hi Benjamin,
On 10/09/2013 12:02 PM, Benjamin Tissoires wrote:
> first, I wouldn't revert the patch as this, because I think the patch
> also fixes the nibbles parsing in unit:
> - the part regarding the unit exponent seems blurry
> - the part regarding the unit exponent seems correct to me.
This statement is sure confusing :)
> On Wed, Oct 9, 2013 at 9:37 AM, Nikolai Kondrashov<spbnick@gmail.com> wrote:
>> On 10/08/2013 10:05 PM, Nikolai Kondrashov wrote:
>> From what data I have on various non-Wacom graphics tablets, most of the
>> older ones provide incorrect "unit" item value, so "unit exponent" doesn't
>> apply.
>
> Yes. The "correct" specification of unit and unit exponent has only be
> a requirements since Windows 8 [1]. (Note, there used to be a pdf [2],
> which I found more convenient to read, but still...).
I've stumbled on the very same document yesterday.
> So definitely, Microsoft considers that the unit exponent is a 4 bits
> two's complement, otherwise, the firmware will not get a Windows 8
> certification.
I think this is due to their use of the "HID Descriptor Tool". Maybe
assuming it is a reference implementation, which it is not, but more likely
just not noticing the discrepancy.
I'll try to reach Microsoft on this and maybe make them correct their
specification.
>> Meanwhile, can I suggest a hybrid approach? As positive unit exponent
>> beyond 7 is unlikely to appear for axes which have their resolution
>> calculated currently, can we assume anything higher than 7 to be
>> nibble-stored negative exponents and anything else normal signed integers?
>
> I would say that the current approach (without the revert) is exactly this:
> - if the data is stored on only 1 byte ( if (!(raw_value&
> 0xfffffff0))), do the two's complement -> any value less than 7 will
> be the same, above are considered as negative.
> - if not, then use the raw value.
It is not exactly what I suggested. It also considers anything above 15 to be
a normal integer. However, it might be a cleaner way.
All-in-all, I'd say that the relevant hid-core.c code should have its comment
fixed, and the hid-input.c (hidinput_calc_abs_res) change needs to be reverted
as it (incorrectly) takes the component unit power into account for resolution
calculation and makes the "unit" item value handling harder to comprehend.
I'll prepare and test a patch and we can carry on from there.
> Could you please share some of the report descriptors which you found
> problematic, so that I can have a better understanding of the problem?
> If you want to have a look at some multitouch descriptors (and few
> other devices), I started to build a database of hid devices[3].
I have my repository of tablet diagnostics published at
https://github.com/DIGImend/devices
The original report descriptors are in */rd/original*.txt files and their XML
representation is in */rd/original*.xml files. Most (if not all) of them have
the "unit exponent" as nibble.
The XML representation was created by my "hidrd-convert" tool [1], which can
also output binary, specification example format and code from either binary
or XML input.
I use it to generate fixed report descriptors for graphics tablets. Maybe you
can find it useful as well. However, it interprets the "unit exponent" per
specification, i.e. just as an integer.
> [1] http://msdn.microsoft.com/en-us/library/windows/hardware/dn383621.aspx
> [2] http://feishare.com/attachments/article/299/windows-pointer-device-protocol.pdf
> [3] https://github.com/bentiss/hid-devices
>
> PS: I'll be mostly offline until the 1st of November when I'll finish
> my transfer to the RH Westford Office.
> PPS: my nick on the RH internal IRC is bentiss :)
My nick there is "nkondrashov". However, I would prefer to keep this
discussion on the mailing list.
Good luck in the US!
Sincerely,
Nick
[1] https://sf.net/apps/mediawiki/digimend?title=Hidrd
^ permalink raw reply
* Re: [PATCH 1/1 FROM FIXED] Revert "HID: fix unit exponent parsing"
From: Nikolai Kondrashov @ 2013-10-09 19:04 UTC (permalink / raw)
To: Benjamin Tissoires; +Cc: Jiri Kosina, linux-input
In-Reply-To: <5255A391.6040501@gmail.com>
On 10/09/2013 09:42 PM, Nikolai Kondrashov wrote:
>> I would say that the current approach (without the revert) is exactly this:
>> - if the data is stored on only 1 byte ( if (!(raw_value&
>> 0xfffffff0))), do the two's complement -> any value less than 7 will
>> be the same, above are considered as negative.
>> - if not, then use the raw value.
>
> It is not exactly what I suggested. It also considers anything above 15 to be
> a normal integer. However, it might be a cleaner way.
>
> All-in-all, I'd say that the relevant hid-core.c code should have its comment
> fixed, and the hid-input.c (hidinput_calc_abs_res) change needs to be reverted
> as it (incorrectly) takes the component unit power into account for resolution
> calculation and makes the "unit" item value handling harder to comprehend.
On a second glance at the test data, hid-core.c needs to be fixed as well, as
for the non-nibble case it loses the sign by reading the item value as
unsigned. So a perfectly valid 1 byte 0xFD value becomes 253, instead of -3.
I'll include that into the patch.
Sincerely,
Nick
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox