* Re: [PATCH] HID: cp2112: remove use of gpiochip_remove() retval
From: Pramod Gurav @ 2014-10-01 8:19 UTC (permalink / raw)
To: Jiri Kosina
Cc: linux-kernel, Linus Walleij, Alexandre Courbot, linux-input,
linux-gpio
In-Reply-To: <alpine.LNX.2.00.1410011000450.26311@pobox.suse.cz>
On Wednesday 01 October 2014 01:31 PM, Jiri Kosina wrote:
> On Wed, 1 Oct 2014, Pramod Gurav wrote:
>
>>>>> Cc: Linus Walleij <linus.walleij@linaro.org>
>>>>> Cc: Alexandre Courbot <gnurou@gmail.com>
>>>>> Cc: Jiri Kosina <jkosina@suse.cz>
>>>>> Cc: linux-input@vger.kernel.org
>>>>> Cc: linux-gpio@vger.kernel.org
>>>>>
>>>>> Signed-off-by: Pramod Gurav <pramod.gurav@smartplayin.com>
>>> I guess this depends on some other patch that hasn't gone to Linus yet,
>>> right? As Linus' tree currently has this prototype:
>>>
>>> int gpiochip_remove(struct gpio_chip *chip)
>>
>> Yes. It is yet to make it to linus's tree. But the change is there in
>> linux-next master branch.
>
> Alright. It probably makes most sense to take this patch together with the
> prototype change in one pile (i.e. not through my tree).
>
> For that purpose
>
> Acked-by: Jiri Kosina <jkosina@suse.cz>
Jiri,
Just realized when Linus told me these changes are already in his tree
as well as in mast of linux-tree. Sorry for spaming and late realizing this.
>
^ permalink raw reply
* Re: [PATCH] usbhid: add another mouse that needs QUIRK_ALWAYS_POLL
From: Jiri Kosina @ 2014-10-01 12:32 UTC (permalink / raw)
To: Oliver Neukum; +Cc: linux-input, johan
In-Reply-To: <1412151243.4171.10.camel@linux-0dmf.site>
On Wed, 1 Oct 2014, Oliver Neukum wrote:
> > > --- a/drivers/hid/usbhid/hid-quirks.c
> > > +++ b/drivers/hid/usbhid/hid-quirks.c
> > > @@ -80,6 +80,8 @@ static const struct hid_blacklist {
> > > { USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_1610, HID_QUIRK_NOGET },
> > > { USB_VENDOR_ID_PENMOUNT, USB_DEVICE_ID_PENMOUNT_1640, HID_QUIRK_NOGET },
> > > { USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE, HID_QUIRK_ALWAYS_POLL },
> > > + /* OEM version same strings but different IDs */
> > > + { USB_VENDOR_ID_KYE, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE_ID2, HID_QUIRK_ALWAYS_POLL },
> >
> > I don't like the added comment, it makes the list look ugly (as no other
> > device has such a comment). The details are in the git changelog anyway.
> >
> > Are you fine with me removing the comment before commiting the patch?
>
> If you wish to remove it, please do so.
Thanks, I removed it and applied.
> However, if people then complain that I mixed up vendor IDs, will you
> handle that? ;)
I am pretty good at running git blame and looking into changelogs, no
worries :)
Thanks,
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* Re: [PATCH 00/13] HID: add support of Logitech touchpads and special devices
From: Benjamin Tissoires @ 2014-10-01 13:10 UTC (permalink / raw)
To: Jiri Kosina
Cc: Nestor Lopez Casado, Andrew de los Reyes, linux-kernel,
linux-input
In-Reply-To: <alpine.LNX.2.00.1410011016160.26311@pobox.suse.cz>
On Oct 01 2014 or thereabouts, Jiri Kosina wrote:
> On Tue, 30 Sep 2014, Benjamin Tissoires wrote:
>
> > Jiri, This patch series can be split in 2 if you would like:
> > - patches 1 to 4 can be scheduled easily for 3.18 IMO
> > - patches 5 to 13 might need some more reviews, so either 3.18 or 3.19
>
> Benjamin,
>
> thanks for the summary. I'll try to review 1-4 in time for 3.18, but I
> can't guarantee that.
>
Thanks
> Do you forsee any issues if the whole lot is queued for 3.19 only?
Nope. It waited since 2011, so it can wait 3 more months :)
Cheers,
Benjamin
^ permalink raw reply
* [PATCH] HID: uHID: fix excepted report type
From: Benjamin Tissoires @ 2014-10-01 15:59 UTC (permalink / raw)
To: David Herrmann, Jiri Kosina; +Cc: linux-input, linux-kernel
When uhid_get_report() or uhid_set_report() are called, they emit on the
char device a UHID_GET_REPORT or UHID_SET_REPORT message. Then, the
protocol says that the user space asnwers with UHID_GET_REPORT_REPLY
or UHID_SET_REPORT_REPLY.
Unfortunatelly, the current code waits for an event of type UHID_GET_REPORT
or UHID_SET_REPORT instead of the reply one.
Add 1 to UHID_GET_REPORT or UHID_SET_REPORT to actually wait for the
reply, and validate the reply.
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---
Hi David,
while playing with a Bluetooth LE mouse, I noticed that uhid did not validate
properly the get_report feature. With this patch and some work on bluez, this
part now works almost (at least I manage to get reports from the device, there
is still a 0x0b header I can not rely to anything, so there will be some work
to do in Bordeaux :) )
Cheers,
Benjamin
drivers/hid/uhid.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
index f6ec5ea..e094c57 100644
--- a/drivers/hid/uhid.c
+++ b/drivers/hid/uhid.c
@@ -154,7 +154,7 @@ static int __uhid_report_queue_and_wait(struct uhid_device *uhid,
spin_lock_irqsave(&uhid->qlock, flags);
*report_id = ++uhid->report_id;
- uhid->report_type = ev->type;
+ uhid->report_type = ev->type + 1;
uhid->report_running = true;
uhid_queue(uhid, ev);
spin_unlock_irqrestore(&uhid->qlock, flags);
--
1.9.3
^ permalink raw reply related
* Re: How to indicate hover touch when exact distance unknown?
From: Dmitry Torokhov @ 2014-10-01 16:22 UTC (permalink / raw)
To: Benjamin Tissoires
Cc: Henrik Rydberg, Peter Hutterer, Andrew de los Reyes,
Hans de Goede, jikos, David Herrmann, Linux Input
In-Reply-To: <CAN+gG=G4Kik_Gicdo6zqZbJMqp8-hYxw8yy0rEqN7-Dj5HfKeQ@mail.gmail.com>
On Fri, Sep 26, 2014 at 09:50:32AM -0400, Benjamin Tissoires wrote:
> On Wed, Sep 24, 2014 at 1:28 AM, Henrik Rydberg <rydberg@euromail.se> wrote:
> >>>> FWIW, hid-multitouch already support those devices.
> >>>> ABS_MT_DISTANCE is set with a min/max of 0/1 when we detect win8
> >>>> certified panels with hovering capability. By default the spec does not
> >>>> provide the distance IIRC, and you only have one byte: InRange.
> >>>
> >>> Hmm, I missed that and this is unfortunate. The ABS capabilities
> >>> advertised by the devices should match their real capabilities. If
> >>> device can't properly report distance it should not be using
> >>> ABS_MT_DISTANCE/ABS_DISTANCE...
> >>
> >> I think the hid-mt behaviour makes sense. Without explicit resolution (and
> >> no device sets that anyway, IIRC) any distance value > min tells us only that a
> >> tool is within detectable range, but not yet touching. Anything between
> >> min/max is only useful as a relative scale, but effectively that [min,max]
> >> range could be a metre or a millimeter, we can't know. So a device with a
> >> 0/1 range simply has low granularity and is only able to detect whether
> >> something is within range or touching the surface.
> >
> > I agree with this, but I also share Dmitry's concern.
> >
> > A device that can detect hovering, if only binary, does in fact coarsely
> > estimate the distance from the touching surface. A device allowing for a smooth
> > approach of objects would simply support a better resolution. From that
> > perspective, using the ABS_MT_DISTANCE capability makes sense. Pragmatically.
>
> I agree.
>
> >
> > However, at no point are we really changing the coordinate system, which remains
> > euclidian space. We are simply changing resolution and thresholds for what
> > constitues a touch. Forcing userland to step away from the simple interpretation
> > is what eventually makes the capability impossible to use as intended.
>
> I think you are missing a point here. My maths are a little bit rusty,
> but if euclidian space there is, the space is *not* normalized. Peter
> remembered me the other day that the touchpad found on the Lenovo x220
> has a x resolution of 75 and a y resolution of 129. So every sane
> library/driver/tool has to take the individual resolution into account
> if they want to provide accurate results.
> Given that libinput, xorg-evdev and xorg-synaptics all take this into
> account, then it is safe to say that they can simply consider that a
> resolution of 0 is simply absolute and a binary explanation fits well
> (was it 1 mm, 1 cm, 1 inch or 1 meter).
>
> >
> > So, if we cannot express, using the abs_info data, something like "contains a
> > detector which can coarsely estimate the distance and then uses a detector
> > threshold to set that distance to zero or one", we had better express it in some
> > other way, which is less ambiguous.
>
> IMO, your sentence is already ambiguous enough :-)
> Seriously, I think that we should not worry too much about the binary
> ABS_MT_DISTANCE:
> Think about the wacom pens: they report hovering and distance, but I
> don't think any application uses the absolute distance to change the
> behavior. The user can not maintain a constant distance with the tip
> of the finger or the stylus from the surface, so most of the time the
> value is ignored while the hovering matters.
> A binary ABS_MT_DISTANCE is enough to send this info to the driver,
> and then, the driver can decide to transfer it or not to its clients.
>
> >
> > How about ABS_MT_PRESENT and/or ABS_PRESENT? It would complement TOUCH in the
> > case of hovering, allow the state where the tool is there but not touching, and
> > would unambiguously advertise the capability of detecting presence. It would
> > also be forward compatible with additional capabilities, such as reporting the
> > actual distance to the surface.
>
> I don't think adding such a new axis is a good idea. We do *not* have
> a per slot MT_TOUCH. We only have the tracking id which says that the
> slot is *valid*. Then, the spec already explains how can the device
> convey the hovering information:
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/input/multi-touch-protocol.txt#n259
>
> "ABS_MT_DISTANCE: The distance, in surface units, between the contact
> and the surface. Zero distance means the contact is touching the
> surface. A positive number means the contact is hovering above the
> surface."
>
> The problem here is the "surface units", but given that the units on
> each axes depends on the per axis resolution, a resolution of 0 says
> that the units are undefined, and that the client should use only the
> last part of the definition: zero = touch, >0 = hovering.
OK, so should we then say that we will continue reporting binary hovering
with ABS_MT_DISTANCE 0/1 and such devices must report resolution of 0;
devices reporting wider ABS_MT_DISTANCE ranges should also report
appropriate resolution, same as X/Y coordinates?
Thanks.
--
Dmitry
^ permalink raw reply
* Re: [PATCH] HID: uHID: fix excepted report type
From: David Herrmann @ 2014-10-01 16:36 UTC (permalink / raw)
To: Benjamin Tissoires
Cc: David Herrmann, Jiri Kosina, open list:HID CORE LAYER,
linux-kernel
In-Reply-To: <1412179187-15107-1-git-send-email-benjamin.tissoires@redhat.com>
Hi
On Wed, Oct 1, 2014 at 5:59 PM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
> When uhid_get_report() or uhid_set_report() are called, they emit on the
> char device a UHID_GET_REPORT or UHID_SET_REPORT message. Then, the
> protocol says that the user space asnwers with UHID_GET_REPORT_REPLY
> or UHID_SET_REPORT_REPLY.
>
> Unfortunatelly, the current code waits for an event of type UHID_GET_REPORT
> or UHID_SET_REPORT instead of the reply one.
> Add 1 to UHID_GET_REPORT or UHID_SET_REPORT to actually wait for the
> reply, and validate the reply.
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> ---
>
> Hi David,
>
> while playing with a Bluetooth LE mouse, I noticed that uhid did not validate
> properly the get_report feature. With this patch and some work on bluez, this
> part now works almost (at least I manage to get reports from the device, there
> is still a 0x0b header I can not rely to anything, so there will be some work
> to do in Bordeaux :) )
>
> Cheers,
> Benjamin
>
> drivers/hid/uhid.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
> index f6ec5ea..e094c57 100644
> --- a/drivers/hid/uhid.c
> +++ b/drivers/hid/uhid.c
> @@ -154,7 +154,7 @@ static int __uhid_report_queue_and_wait(struct uhid_device *uhid,
>
> spin_lock_irqsave(&uhid->qlock, flags);
> *report_id = ++uhid->report_id;
> - uhid->report_type = ev->type;
> + uhid->report_type = ev->type + 1;
Nice catch. We always need the *_REPLY type as response:
Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Thanks for trying to fix this! I will try to get my Arc-Surface
working until Bordeaux. We should be able to get all that stuff
figured out together then. And it will still be in time for 3.18-fixes
then.
Thanks
David
> uhid->report_running = true;
> uhid_queue(uhid, ev);
> spin_unlock_irqrestore(&uhid->qlock, flags);
> --
> 1.9.3
>
^ permalink raw reply
* Re: [PATCH] HID: uHID: fix excepted report type
From: Jiri Kosina @ 2014-10-01 19:01 UTC (permalink / raw)
To: David Herrmann
Cc: Benjamin Tissoires, David Herrmann, open list:HID CORE LAYER,
linux-kernel
In-Reply-To: <CANq1E4QGPWNBSLzd3_5NJVNkCjBELREN=_twVdcdSe6efOOJ2Q@mail.gmail.com>
On Wed, 1 Oct 2014, David Herrmann wrote:
> > diff --git a/drivers/hid/uhid.c b/drivers/hid/uhid.c
> > index f6ec5ea..e094c57 100644
> > --- a/drivers/hid/uhid.c
> > +++ b/drivers/hid/uhid.c
> > @@ -154,7 +154,7 @@ static int __uhid_report_queue_and_wait(struct uhid_device *uhid,
> >
> > spin_lock_irqsave(&uhid->qlock, flags);
> > *report_id = ++uhid->report_id;
> > - uhid->report_type = ev->type;
> > + uhid->report_type = ev->type + 1;
>
> Nice catch. We always need the *_REPLY type as response:
>
> Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
Applied, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply
* 045e:0745 [HP TouchSmart tm2t-2200] No scancode for several keys of Microsoft Comfort Desktop 5000
From: Ari Fogel @ 2014-10-01 20:36 UTC (permalink / raw)
To: linux-input
[1.] One line summary of the problem:
045e:0745 [HP TouchSmart tm2t-2200] No scancode for several keys of
Microsoft Comfort Desktop 5000
[2.] Full description of the problem/report:
I wanted to map the keys labeled '1', '2', '3', '4', and '5' above the
F-keys between the camera key and the star key, but I discovered that
these raise no events whatsoever via dmesg, xev, nor showkey.
[3.] Keywords (i.e., modules, networking, kernel):
[4.] Kernel version (from /proc/version):
Linux version 3.17.0-031700rc7-generic (apw@gomeisa) (gcc version 4.6.3
(Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201409281835 SMP Sun Sep 28 22:36:30
UTC 2014
[5.] Output of Oops.. message (if applicable) with symbolic information
resolved (see Documentation/oops-tracing.txt)
[6.] A small shell script or example program which triggers the problem
(if possible)
[7.] Environment
Description: Ubuntu 14.04.1 LTS
Release: 14.04
[7.1.] Software (add the output of the ver_linux script here)
If some fields are empty or look unusual you may have an old version.
Compare to the current minimal requirements in Documentation/Changes.
Linux cosmos 3.17.0-031700rc7-generic #201409281835 SMP Sun Sep 28
22:36:30 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Gnu C 4.8
Gnu make 3.81
binutils 2.24
util-linux 2.20.1
mount support
module-init-tools 15
e2fsprogs 1.42.9
xfsprogs 3.1.9
pcmciautils 018
PPP 2.4.5
Linux C Library 2.19
Dynamic linker (ldd) 2.19
Procps 3.3.9
Net-tools 1.60
Kbd 1.15.5
Sh-utils 8.21
wireless-tools 30
Modules Loaded pci_stub vboxpci vboxnetadp vboxnetflt
xt_CHECKSUM iptable_mangle ipt_MASQUERADE iptable_nat nf_conntrack_ipv4
nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack xt_tcpudp vboxdrv bridge
stp llc iptable_filter ip_tables x_tables rfcomm bnep binfmt_misc
snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel
snd_hda_controller snd_usb_audio snd_hda_codec snd_usbmidi_lib snd_hwdep
snd_seq_midi snd_seq_midi_event snd_rawmidi uvcvideo videobuf2_vmalloc
snd_seq snd_pcm videobuf2_memops snd_seq_device videobuf2_core
v4l2_common gpio_ich videodev snd_timer mxm_wmi media coretemp snd
joydev kvm_intel kvm btusb bluetooth soundcore i7core_edac edac_core
nuvoton_cir serio_raw lpc_ich rc_core wmi mac_hid parport_pc ppdev lp
parport hid_generic usbhid hid pata_acpi pata_marvell e1000e psmouse
firewire_ohci ahci firewire_core ptp libahci crc_itu_t pps_core
[7.2.] Processor information (from /proc/cpuinfo):
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 1
cpu cores : 4
apicid : 3
initial apicid : 3
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 4
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 5
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 2
cpu cores : 4
apicid : 5
initial apicid : 5
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 6
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 30
model name : Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz
stepping : 5
microcode : 0x4
cpu MHz : 1199.000
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 3
cpu cores : 4
apicid : 7
initial apicid : 7
fpu : yes
fpu_exception : yes
cpuid level : 11
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 rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3
cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ida dtherm tpr_shadow vnmi
flexpriority ept vpid
bugs :
bogomips : 5600.53
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
[7.3.] Module information (from /proc/modules):
pci_stub 12622 1 - Live 0x0000000000000000
vboxpci 23194 0 - Live 0x0000000000000000 (OE)
vboxnetadp 25670 0 - Live 0x0000000000000000 (OE)
vboxnetflt 27613 0 - Live 0x0000000000000000 (OE)
xt_CHECKSUM 12549 1 - Live 0x0000000000000000
iptable_mangle 12734 1 - Live 0x0000000000000000
ipt_MASQUERADE 12880 1 - Live 0x0000000000000000
iptable_nat 13110 1 - Live 0x0000000000000000
nf_conntrack_ipv4 14857 1 - Live 0x0000000000000000
nf_defrag_ipv4 12758 1 nf_conntrack_ipv4, Live 0x0000000000000000
nf_nat_ipv4 13316 1 iptable_nat, Live 0x0000000000000000
nf_nat 26308 3 ipt_MASQUERADE,iptable_nat,nf_nat_ipv4, Live
0x0000000000000000
nf_conntrack 105636 5
ipt_MASQUERADE,iptable_nat,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat, Live
0x0000000000000000
xt_tcpudp 12924 5 - Live 0x0000000000000000
vboxdrv 409815 3 vboxpci,vboxnetadp,vboxnetflt, Live 0x0000000000000000 (OE)
bridge 122058 0 - Live 0x0000000000000000
stp 12976 1 bridge, Live 0x0000000000000000
llc 14441 2 bridge,stp, Live 0x0000000000000000
iptable_filter 12810 1 - Live 0x0000000000000000
ip_tables 27718 3 iptable_mangle,iptable_nat,iptable_filter, Live
0x0000000000000000
x_tables 34102 6
xt_CHECKSUM,iptable_mangle,ipt_MASQUERADE,xt_tcpudp,iptable_filter,ip_tables,
Live 0x0000000000000000
rfcomm 75114 8 - Live 0x0000000000000000
bnep 19884 2 - Live 0x0000000000000000
binfmt_misc 17508 1 - Live 0x0000000000000000
snd_hda_codec_realtek 78564 1 - Live 0x0000000000000000
snd_hda_codec_generic 70087 1 snd_hda_codec_realtek, Live 0x0000000000000000
snd_hda_intel 30783 0 - Live 0x0000000000000000
snd_hda_controller 32234 1 snd_hda_intel, Live 0x0000000000000000
snd_usb_audio 164122 0 - Live 0x0000000000000000
snd_hda_codec 145035 4
snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller,
Live 0x0000000000000000
snd_usbmidi_lib 30597 1 snd_usb_audio, Live 0x0000000000000000
snd_hwdep 17709 2 snd_usb_audio,snd_hda_codec, Live 0x0000000000000000
snd_seq_midi 13564 0 - Live 0x0000000000000000
snd_seq_midi_event 14899 1 snd_seq_midi, Live 0x0000000000000000
snd_rawmidi 31197 2 snd_usbmidi_lib,snd_seq_midi, Live 0x0000000000000000
uvcvideo 86628 0 - Live 0x0000000000000000
videobuf2_vmalloc 13216 1 uvcvideo, Live 0x0000000000000000
snd_seq 63540 2 snd_seq_midi,snd_seq_midi_event, Live 0x0000000000000000
snd_pcm 105052 4
snd_hda_intel,snd_hda_controller,snd_usb_audio,snd_hda_codec, Live
0x0000000000000000
videobuf2_memops 13362 1 videobuf2_vmalloc, Live 0x0000000000000000
snd_seq_device 14497 3 snd_seq_midi,snd_rawmidi,snd_seq, Live
0x0000000000000000
videobuf2_core 59907 1 uvcvideo, Live 0x0000000000000000
v4l2_common 15715 1 videobuf2_core, Live 0x0000000000000000
gpio_ich 13636 0 - Live 0x0000000000000000
videodev 163831 3 uvcvideo,videobuf2_core,v4l2_common, Live
0x0000000000000000
snd_timer 30118 2 snd_seq,snd_pcm, Live 0x0000000000000000
mxm_wmi 13021 0 - Live 0x0000000000000000
media 22008 2 uvcvideo,videodev, Live 0x0000000000000000
coretemp 13638 0 - Live 0x0000000000000000
snd 84025 12
snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_usbmidi_lib,snd_hwdep,snd_rawmidi,snd_seq,snd_pcm,snd_seq_device,snd_timer,
Live 0x0000000000000000
joydev 17587 0 - Live 0x0000000000000000
kvm_intel 149257 0 - Live 0x0000000000000000
kvm 468567 1 kvm_intel, Live 0x0000000000000000
btusb 32408 0 - Live 0x0000000000000000
bluetooth 477455 22 rfcomm,bnep,btusb, Live 0x0000000000000000
soundcore 15091 2 snd_hda_codec,snd, Live 0x0000000000000000
i7core_edac 24582 0 - Live 0x0000000000000000
edac_core 52405 2 i7core_edac, Live 0x0000000000000000
nuvoton_cir 17920 0 - Live 0x0000000000000000
serio_raw 13483 0 - Live 0x0000000000000000
lpc_ich 21176 0 - Live 0x0000000000000000
rc_core 27515 1 nuvoton_cir, Live 0x0000000000000000
wmi 19379 1 mxm_wmi, Live 0x0000000000000000
mac_hid 13275 0 - Live 0x0000000000000000
parport_pc 32906 0 - Live 0x0000000000000000
ppdev 17711 0 - Live 0x0000000000000000
lp 17799 0 - Live 0x0000000000000000
parport 42481 3 parport_pc,ppdev,lp, Live 0x0000000000000000
hid_generic 12559 0 - Live 0x0000000000000000
usbhid 53122 0 - Live 0x0000000000000000
hid 110572 2 hid_generic,usbhid, Live 0x0000000000000000
pata_acpi 13053 0 - Live 0x0000000000000000
pata_marvell 12940 0 - Live 0x0000000000000000
e1000e 230063 0 - Live 0x0000000000000000
psmouse 118039 0 - Live 0x0000000000000000
firewire_ohci 45300 0 - Live 0x0000000000000000
ahci 30167 4 - Live 0x0000000000000000
firewire_core 69403 1 firewire_ohci, Live 0x0000000000000000
ptp 19534 1 e1000e, Live 0x0000000000000000
libahci 32533 1 ahci, Live 0x0000000000000000
crc_itu_t 12707 1 firewire_core, Live 0x0000000000000000
pps_core 19381 1 ptp, 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
0061-0061 : PNP0800:00
0064-0064 : keyboard
0070-0071 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
00f0-00f0 : PNP0C04:00
03c0-03df : vga+
0400-0403 : ACPI PM1a_EVT_BLK
0404-0405 : ACPI PM1a_CNT_BLK
0408-040b : ACPI PM_TMR
0410-0415 : ACPI CPU throttle
0420-042f : ACPI GPE0_BLK
0428-042f : gpio_ich
0430-0433 : iTCO_wdt
0450-0450 : ACPI PM2_CNT_BLK
0460-047f : iTCO_wdt
0500-057f : gpio_ich
0500-057f : pnp 00:02
0530-053f : gpio_ich
0540-054f : gpio_ich
0680-06ff : pnp 00:02
0cf8-0cff : PCI conf1
0d00-ffff : PCI Bus 0000:00
1000-1fff : PCI Bus 0000:06
1000-100f : 0000:06:00.0
1000-100f : pata_marvell
1010-1017 : 0000:06:00.0
1010-1017 : pata_marvell
1018-101f : 0000:06:00.0
1018-101f : pata_marvell
1020-1023 : 0000:06:00.0
1020-1023 : pata_marvell
1024-1027 : 0000:06:00.0
1024-1027 : pata_marvell
2000-3fff : PCI Bus 0000:01
2000-3fff : PCI Bus 0000:02
2000-2fff : PCI Bus 0000:04
2000-207f : 0000:04:00.0
3000-3fff : PCI Bus 0000:03
3000-307f : 0000:03:00.0
4000-401f : 0000:00:1f.3
4020-403f : 0000:00:1f.2
4020-403f : ahci
4040-405f : 0000:00:19.0
4060-4067 : 0000:00:1f.2
4060-4067 : ahci
4068-406f : 0000:00:1f.2
4068-406f : ahci
4070-4073 : 0000:00:1f.2
4070-4073 : ahci
4074-4077 : 0000:00:1f.2
4074-4077 : ahci
5000-5fff : PCI Bus 0000:05
00000000-00000fff : reserved
00001000-0008efff : System RAM
0008f000-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000cddff : Video ROM
000e0000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-cf52bfff : System RAM
01000000-017a9a77 : Kernel code
017a9a78-01d1e57f : Kernel data
01e80000-01fc6fff : Kernel bss
cf52c000-cf533fff : reserved
cf534000-cf56efff : System RAM
cf56f000-cf5befff : reserved
cf5bf000-cf6cffff : System RAM
cf6d0000-cf7befff : ACPI Non-volatile Storage
cf7bf000-cf7e4fff : System RAM
cf7e5000-cf7eefff : ACPI Tables
cf7ef000-cf7effff : System RAM
cf7f0000-cf7fefff : ACPI Tables
cf7ff000-cf7fffff : System RAM
cf800000-cfffffff : reserved
d0000000-f7ffffff : PCI Bus 0000:00
d0000000-efffffff : PCI Bus 0000:01
d0000000-efffffff : PCI Bus 0000:02
d0000000-dfffffff : PCI Bus 0000:04
d0000000-dfffffff : 0000:04:00.0
e0000000-efffffff : PCI Bus 0000:03
e0000000-efffffff : 0000:03:00.0
f0000000-f6ffffff : PCI Bus 0000:01
f0000000-f6ffffff : PCI Bus 0000:02
f0000000-f2ffffff : PCI Bus 0000:04
f0000000-f1ffffff : 0000:04:00.0
f2000000-f2ffffff : 0000:04:00.0
f4000000-f6ffffff : PCI Bus 0000:03
f4000000-f5ffffff : 0000:03:00.0
f6000000-f6ffffff : 0000:03:00.0
f7000000-f70fffff : PCI Bus 0000:07
f7000000-f7003fff : 0000:07:03.0
f7004000-f70047ff : 0000:07:03.0
f7004000-f70047ff : firewire_ohci
f7100000-f71fffff : PCI Bus 0000:06
f7100000-f71003ff : 0000:06:00.0
f7140000-f717ffff : 0000:06:00.0
f7200000-f721ffff : 0000:00:19.0
f7200000-f721ffff : e1000e
f7220000-f7223fff : 0000:00:1b.0
f7220000-f7223fff : ICH HD audio
f7224000-f7224fff : 0000:00:19.0
f7224000-f7224fff : e1000e
f7225000-f72257ff : 0000:00:1f.2
f7225000-f72257ff : ahci
f7226000-f72260ff : 0000:00:1f.3
f7302000-f73023ff : 0000:00:1a.0
f7302000-f73023ff : ehci_hcd
f7303000-f73033ff : 0000:00:1d.0
f7303000-f73033ff : ehci_hcd
f7400000-f75fffff : PCI Bus 0000:05
f7600000-f77fffff : PCI Bus 0000:05
f8000000-ffffffff : reserved
f8000000-fbffffff : PCI MMCONFIG 0000 [bus 00-3f]
fec00000-fec003ff : IOAPIC 0
fec00000-fec000ff : PNP0003:00
fed00000-fed03fff : PNP0103:00
fed00000-fed003ff : HPET 0
fed1f410-fed1f414 : iTCO_wdt
fee00000-fee00fff : Local APIC
100000000-42fffffff : System RAM
[7.5.] PCI information ('lspci -vvv' as root)
00:00.0 Host bridge: Intel Corporation Core Processor DMI (rev 11)
Subsystem: Intel Corporation Device 0000
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-
Capabilities: [40] #00 [0000]
00:03.0 PCI bridge: Intel Corporation Core Processor PCI Express Root
Port 1 (rev 11) (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=01, subordinate=04, sec-latency=0
I/O behind bridge: 00002000-00003fff
Memory behind bridge: f0000000-f6ffffff
Prefetchable memory behind bridge: 00000000d0000000-00000000efffffff
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] Subsystem: Intel Corporation Device 0000
Capabilities: [60] MSI: Enable+ Count=1/2 Maskable+ 64bit-
Address: feeff00c Data: 41c1
Masking: 00000002 Pending: 00000000
Capabilities: [90] Express (v2) Root Port (Slot+), MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0
ExtTag+ RBE+
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 x16, ASPM not supported,
Exit Latency L0s <512ns, L1 <4us
ClockPM- Surprise+ LLActRep+ BwNot+
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+
DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
Surprise-
Slot #3, PowerLimit 0.000W; Interlock- NoCompl-
SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt-
HPIrq- LinkChg-
Control: AttnInd Off, PwrInd Off, 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 BCD, TimeoutDis+, LTR-, OBFF
Not Supported ARIFwd+
DevCtl2: Completion Timeout: 260ms to 900ms, TimeoutDis-, LTR-,
OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -3.5dB,
EqualizationComplete-, EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-,
LinkEqualizationRequest-
Capabilities: [e0] 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 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: 0e, GenCap- CGenEn- ChkCap- ChkEn-
Capabilities: [150 v1] Access Control Services
ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+
UpstreamFwd+ EgressCtrl- DirectTrans-
ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir-
UpstreamFwd- EgressCtrl- DirectTrans-
Capabilities: [160 v0] Vendor Specific Information: ID=0002 Rev=0
Len=00c <?>
Kernel driver in use: pcieport
00:08.0 System peripheral: Intel Corporation Core Processor System
Management Registers (rev 11)
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-
Capabilities: [40] Express (v2) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
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-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-,
OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled
Capabilities: [100 v0] Vendor Specific Information: ID=0000 Rev=0
Len=000 <?>
00:08.1 System peripheral: Intel Corporation Core Processor Semaphore
and Scratchpad Registers (rev 11)
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-
Capabilities: [40] Express (v2) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
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-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-,
OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled
Capabilities: [100 v0] Vendor Specific Information: ID=0000 Rev=0
Len=000 <?>
00:08.2 System peripheral: Intel Corporation Core Processor System
Control and Status Registers (rev 11)
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-
Capabilities: [40] Express (v2) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE+
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-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-,
OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled
Capabilities: [100 v0] Vendor Specific Information: ID=0000 Rev=0
Len=000 <?>
00:08.3 System peripheral: Intel Corporation Core Processor
Miscellaneous Registers (rev 11)
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-
00:10.0 System peripheral: Intel Corporation Core Processor QPI Link
(rev 11)
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-
00:10.1 System peripheral: Intel Corporation Core Processor QPI Routing
and Protocol Registers (rev 11)
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-
00:19.0 Ethernet controller: Intel Corporation 82578DC Gigabit Network
Connection (rev 05)
Subsystem: Intel Corporation Device 0000
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 32
Region 0: Memory at f7200000 (32-bit, non-prefetchable) [size=128K]
Region 1: Memory at f7224000 (32-bit, non-prefetchable) [size=4K]
Region 2: I/O ports at 4040 [size=32]
Capabilities: [c8] 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=1 PME-
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee1000c Data: 41b2
Capabilities: [e0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: e1000e
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset
USB2 Enhanced Host Controller (rev 05) (prog-if 20 [EHCI])
Subsystem: Intel Corporation Device 424b
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 16
Region 0: Memory at f7302000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] 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: [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:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset
High Definition Audio (rev 05)
Subsystem: Intel Corporation Device 0031
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 33
Region 0: Memory at f7220000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
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: 00000000feeff00c Data: 4192
Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag- RBE-
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-
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-
Capabilities: [130 v1] Root Complex Link
Desc: PortNumber=0f ComponentID=00 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB-
LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI
Express Root Port 1 (rev 05) (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=05, subordinate=05, sec-latency=0
I/O behind bridge: 00005000-00005fff
Memory behind bridge: f7400000-f75fffff
Prefetchable memory behind bridge: 00000000f7600000-00000000f77fffff
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
ExtTag- RBE+
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 2.5GT/s, Width x4, ASPM L0s L1, Exit
Latency L0s <1us, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- 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 25.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 BC, TimeoutDis+, LTR-, OBFF
Not Supported ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-,
EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-,
LinkEqualizationRequest-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: feeff00c Data: 41e1
Capabilities: [90] Subsystem: Intel Corporation Device 424b
Capabilities: [a0] 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-
Kernel driver in use: pcieport
00:1c.7 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI
Express Root Port 8 (rev 05) (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: 00001000-00001fff
Memory behind bridge: f7100000-f71fffff
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
ExtTag- RBE+
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 #8, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit
Latency L0s <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
DLActive+ BWMgmt- ABWMgmt-
RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna-
CRSVisible-
RootCap: CRSVisible-
RootSta: PME ReqID 0000, PMEStatus- PMEPending-
DevCap2: Completion Timeout: Range BC, TimeoutDis+, LTR-, OBFF
Not Supported ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-,
EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-,
LinkEqualizationRequest-
Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000 Data: 0000
Capabilities: [90] Subsystem: Intel Corporation Device 424b
Capabilities: [a0] 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-
Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset
USB2 Enhanced Host Controller (rev 05) (prog-if 20 [EHCI])
Subsystem: Intel Corporation Device 424b
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 f7303000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] 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: [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:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) (prog-if
01 [Subtractive 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
Bus: primary=00, secondary=07, subordinate=07, sec-latency=32
I/O behind bridge: 0000f000-00000fff
Memory behind bridge: f7000000-f70fffff
Prefetchable memory behind bridge: 00000000fff00000-00000000000fffff
Secondary status: 66MHz- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort+ <SERR- <PERR-
BridgeCtl: Parity- SERR- NoISA+ VGA- MAbort- >Reset- FastB2B-
PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
Capabilities: [50] Subsystem: Intel Corporation Device 424b
00:1f.0 ISA bridge: Intel Corporation 5 Series Chipset LPC Interface
Controller (rev 05)
Subsystem: Intel Corporation Device 424b
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=10 <?>
Kernel driver in use: lpc_ich
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset
6 port SATA AHCI Controller (rev 05) (prog-if 01 [AHCI 1.0])
Subsystem: Intel Corporation Device 424b
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 31
Region 0: I/O ports at 4068 [size=8]
Region 1: I/O ports at 4074 [size=4]
Region 2: I/O ports at 4060 [size=8]
Region 3: I/O ports at 4070 [size=4]
Region 4: I/O ports at 4020 [size=32]
Region 5: Memory at f7225000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: feec000c Data: 4152
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
Capabilities: [b0] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus
Controller (rev 05)
Subsystem: Intel Corporation Device 424b
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 11
Region 0: Memory at f7226000 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at 4000 [size=32]
01:00.0 PCI bridge: NVIDIA Corporation NF200 PCIe 2.0 switch for GTX 295
(rev a3) (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=01, secondary=02, subordinate=04, sec-latency=0
I/O behind bridge: 00002000-00003fff
Memory behind bridge: f0000000-f6ffffff
Prefetchable memory behind bridge: 00000000d0000000-00000000efffffff
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] 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: [60] Express (v2) Upstream Port, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ SlotPowerLimit 0.000W
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 5GT/s, Width x16, ASPM L0s, Exit
Latency L0s <512ns, L1 <4us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 5GT/s, Width x2, TrErr- Train- SlotClk+
DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-,
OBFF Not Supported
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-,
EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-,
LinkEqualizationRequest-
Capabilities: [a0] Subsystem: NVIDIA Corporation Device 064e
Kernel driver in use: pcieport
02:00.0 PCI bridge: NVIDIA Corporation NF200 PCIe 2.0 switch for GTX 295
(rev a3) (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=02, secondary=03, subordinate=03, sec-latency=0
I/O behind bridge: 00003000-00003fff
Memory behind bridge: f4000000-f6ffffff
Prefetchable memory behind bridge: 00000000e0000000-00000000efffffff
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] 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: [60] Express (v2) Downstream Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag+ RBE+
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 5GT/s, Width x16, ASPM L0s, Exit
Latency L0s <512ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot+
LnkCtl: ASPM Disabled; Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
Surprise-
Slot #1, 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-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-,
OBFF Not Supported ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-,
Selectable De-emphasis: -3.5dB
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-,
EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-,
LinkEqualizationRequest-
Kernel driver in use: pcieport
02:02.0 PCI bridge: NVIDIA Corporation NF200 PCIe 2.0 switch for GTX 295
(rev a3) (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=02, secondary=04, subordinate=04, sec-latency=0
I/O behind bridge: 00002000-00002fff
Memory behind bridge: f0000000-f2ffffff
Prefetchable memory behind bridge: 00000000d0000000-00000000dfffffff
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] 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: [60] Express (v2) Downstream Port (Slot+), MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0
ExtTag+ RBE+
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 #2, Speed 5GT/s, Width x16, ASPM L0s, Exit
Latency L0s <512ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot+
LnkCtl: ASPM Disabled; Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+
DLActive+ BWMgmt+ ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug-
Surprise-
Slot #3, 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-
DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-,
OBFF Not Supported ARIFwd-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-,
OBFF Disabled ARIFwd-
LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-,
Selectable De-emphasis: -3.5dB
Transmit Margin: Normal Operating Range,
EnterModifiedCompliance- ComplianceSOS-
Compliance De-emphasis: -6dB
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-,
EqualizationPhase1-
EqualizationPhase2-, EqualizationPhase3-,
LinkEqualizationRequest-
Kernel driver in use: pcieport
03:00.0 3D controller: NVIDIA Corporation GT200 [GeForce GTX 295] (rev a1)
Subsystem: NVIDIA Corporation Device 0705
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 9
Region 0: Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 3: Memory at f4000000 (64-bit, non-prefetchable) [size=32M]
Region 5: I/O ports at 3000 [size=128]
Expansion ROM at <ignored> [disabled]
Capabilities: [60] 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: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [78] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <1us,
L1 <4us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 256 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
Latency L0s <1us, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x16, 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=ff
Status: NegoPending- InProgress-
Capabilities: [128 v1] Power Budgeting <?>
Capabilities: [600 v1] Vendor Specific Information: ID=0001 Rev=1
Len=024 <?>
04:00.0 VGA compatible controller: NVIDIA Corporation GT200 [GeForce GTX
295] (rev a1) (prog-if 00 [VGA controller])
Subsystem: NVIDIA Corporation Device 0705
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 11
Region 0: Memory at f2000000 (32-bit, non-prefetchable) [size=16M]
Region 1: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 3: Memory at f0000000 (64-bit, non-prefetchable) [size=32M]
Region 5: I/O ports at 2000 [size=128]
Expansion ROM at <ignored> [disabled]
Capabilities: [60] 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: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [78] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <1us,
L1 <4us
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
MaxPayload 128 bytes, MaxReadReq 256 bytes
DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
TransPend-
LnkCap: Port #2, Speed 2.5GT/s, Width x16, ASPM L0s L1, Exit
Latency L0s <1us, L1 <1us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- CommClk-
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x16, 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=ff
Status: NegoPending- InProgress-
Capabilities: [128 v1] Power Budgeting <?>
Capabilities: [600 v1] Vendor Specific Information: ID=0001 Rev=1
Len=024 <?>
06:00.0 IDE interface: Marvell Technology Group Ltd. 88SE6145 SATA II
PCI-E controller (rev a1) (prog-if 8f [Master SecP SecO PriP PriO])
Subsystem: Intel Corporation Device 424b
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 (2000ns min), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: I/O ports at 1018 [size=8]
Region 1: I/O ports at 1024 [size=4]
Region 2: I/O ports at 1010 [size=8]
Region 3: I/O ports at 1020 [size=4]
Region 4: I/O ports at 1000 [size=16]
Region 5: Memory at f7100000 (32-bit, non-prefetchable) [size=1K]
Expansion ROM at f7140000 [disabled] [size=256K]
Capabilities: [48] 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=1 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000 Data: 0000
Capabilities: [e0] Express (v1) Legacy Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
unlimited, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd- ExtTag- PhantFunc- AuxPwr+ NoSnoop-
MaxPayload 128 bytes, MaxReadReq 512 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq- AuxPwr-
TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s, Exit
Latency L0s <256ns, L1 unlimited
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+
DLActive- BWMgmt- ABWMgmt-
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: 1f, GenCap- CGenEn- ChkCap- ChkEn-
Kernel driver in use: pata_marvell
07:03.0 FireWire (IEEE 1394): Texas Instruments TSB43AB22A
IEEE-1394a-2000 Controller (PHY/Link) [iOHCI-Lynx] (prog-if 10 [OHCI])
Subsystem: Intel Corporation Device 424b
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: 32 (500ns min, 1000ns max), Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 19
Region 0: Memory at f7004000 (32-bit, non-prefetchable) [size=2K]
Region 1: Memory at f7000000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [44] 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+
Kernel driver in use: firewire_ohci
3f:00.0 Host bridge: Intel Corporation Core Processor QuickPath
Architecture Generic Non-Core Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:00.1 Host bridge: Intel Corporation Core Processor QuickPath
Architecture System Address Decoder (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 04)
Subsystem: Intel Corporation Device 8086
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
Kernel driver in use: i7core_edac
3f:02.1 Host bridge: Intel Corporation Core Processor QPI Physical 0
(rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:03.0 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:03.1 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Target Address Decoder (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:03.4 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Test Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:04.0 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 0 Control Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:04.1 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 0 Address Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:04.2 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 0 Rank Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:04.3 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 0 Thermal Control Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:05.0 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 1 Control Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:05.1 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 1 Address Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:05.2 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 1 Rank Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
3f:05.3 Host bridge: Intel Corporation Core Processor Integrated Memory
Controller Channel 1 Thermal Control Registers (rev 04)
Subsystem: Intel Corporation Device 8086
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
[7.6.] SCSI information (from /proc/scsi/scsi)
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: Corsair Force 3 Rev: 3
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD2003FZEX-0 Rev: 1A01
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):
total 0
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1
dr-xr-xr-x 9 root root 0 Oct 1 13:03 10
dr-xr-xr-x 9 root root 0 Oct 1 13:03 101
dr-xr-xr-x 9 root root 0 Oct 1 13:03 102
dr-xr-xr-x 9 root root 0 Oct 1 13:03 103
dr-xr-xr-x 9 root root 0 Oct 1 13:03 104
dr-xr-xr-x 9 root root 0 Oct 1 13:03 11
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1121
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1125
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1131
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1133
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1136
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1186
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1193
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1195
dr-xr-xr-x 9 root root 0 Oct 1 13:03 12
dr-xr-xr-x 9 kernoops adm 0 Oct 1 13:03 1212
dr-xr-xr-x 9 root root 0 Oct 1 13:03 123
dr-xr-xr-x 9 root root 0 Oct 1 13:03 124
dr-xr-xr-x 9 whoopsie whoopsie 0 Oct 1 13:03 1250
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1257
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1258
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1259
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1260
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1261
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1262
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1298
dr-xr-xr-x 9 root root 0 Oct 1 13:03 13
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1311
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1322
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1325
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1331
dr-xr-xr-x 9 lxc-dnsmasq dip 0 Oct 1 13:03 1360
dr-xr-xr-x 9 root root 0 Oct 1 13:03 14
dr-xr-xr-x 9 root arifogel 0 Oct 1 13:04 1461
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1466
dr-xr-xr-x 9 nobody dip 0 Oct 1 13:03 1474
dr-xr-xr-x 9 root root 0 Oct 1 13:03 15
dr-xr-xr-x 9 root root 0 Oct 1 13:14 1593
dr-xr-xr-x 9 root root 0 Oct 1 13:03 16
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1645
dr-xr-xr-x 9 root root 0 Oct 1 13:03 17
dr-xr-xr-x 9 root root 0 Oct 1 13:03 1715
dr-xr-xr-x 9 rtkit rtkit 0 Oct 1 13:03 1722
dr-xr-xr-x 9 root root 0 Oct 1 13:03 177
dr-xr-xr-x 9 root root 0 Oct 1 13:03 178
dr-xr-xr-x 9 root root 0 Oct 1 13:03 179
dr-xr-xr-x 9 root root 0 Oct 1 13:03 18
dr-xr-xr-x 9 root root 0 Oct 1 13:03 180
dr-xr-xr-x 9 root root 0 Oct 1 13:03 181
dr-xr-xr-x 9 root root 0 Oct 1 13:03 182
dr-xr-xr-x 9 root root 0 Oct 1 13:03 183
dr-xr-xr-x 9 root root 0 Oct 1 13:03 184
dr-xr-xr-x 9 root root 0 Oct 1 13:03 185
dr-xr-xr-x 9 root root 0 Oct 1 13:03 186
dr-xr-xr-x 9 root root 0 Oct 1 13:03 187
dr-xr-xr-x 9 root root 0 Oct 1 13:03 188
dr-xr-xr-x 9 root root 0 Oct 1 13:03 189
dr-xr-xr-x 9 root root 0 Oct 1 13:03 19
dr-xr-xr-x 9 root root 0 Oct 1 13:03 190
dr-xr-xr-x 9 root root 0 Oct 1 13:03 191
dr-xr-xr-x 9 root root 0 Oct 1 13:03 196
dr-xr-xr-x 9 root root 0 Oct 1 13:03 197
dr-xr-xr-x 9 root root 0 Oct 1 13:03 198
dr-xr-xr-x 9 root root 0 Oct 1 13:14 1985
dr-xr-xr-x 9 root root 0 Oct 1 13:03 199
dr-xr-xr-x 9 root root 0 Oct 1 13:03 2
dr-xr-xr-x 9 root root 0 Oct 1 13:03 20
dr-xr-xr-x 9 root root 0 Oct 1 13:03 200
dr-xr-xr-x 9 root root 0 Oct 1 13:03 201
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2056
dr-xr-xr-x 9 root root 0 Oct 1 13:03 21
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:14 2100
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2103
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:14 2104
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2108
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2114
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2119
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2123
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2125
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2130
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:03 2150
dr-xr-xr-x 9 root root 0 Oct 1 13:14 2165
dr-xr-xr-x 9 root root 0 Oct 1 13:14 2166
dr-xr-xr-x 9 root root 0 Oct 1 13:14 2167
dr-xr-xr-x 9 root root 0 Oct 1 13:03 22
dr-xr-xr-x 9 root root 0 Oct 1 13:04 2203
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:14 2274
dr-xr-xr-x 9 root root 0 Oct 1 13:03 23
dr-xr-xr-x 9 root root 0 Oct 1 13:03 24
dr-xr-xr-x 9 root root 0 Oct 1 13:14 2406
dr-xr-xr-x 9 arifogel arifogel 0 Oct 1 13:14 2419
dr-xr-xr-x 9 root root 0 Oct 1 13:03 25
dr-xr-xr-x 9 root root 0 Oct 1 13:03 251
dr-xr-xr-x 9 root root 0 Oct 1 13:03 252
dr-xr-xr-x 9 root root 0 Oct 1 13:03 26
dr-xr-xr-x 9 root root 0 Oct 1 13:03 27
dr-xr-xr-x 9 root root 0 Oct 1 13:03 28
dr-xr-xr-x 9 root root 0 Oct 1 13:03 29
dr-xr-xr-x 9 root root 0 Oct 1 13:03 3
dr-xr-xr-x 9 root root 0 Oct 1 13:03 30
dr-xr-xr-x 9 root root 0 Oct 1 13:03 31
dr-xr-xr-x 9 root root 0 Oct 1 13:03 32
dr-xr-xr-x 9 root root 0 Oct 1 13:03 33
dr-xr-xr-x 9 root root 0 Oct 1 13:03 34
dr-xr-xr-x 9 root root 0 Oct 1 13:03 36
dr-xr-xr-x 9 root root 0 Oct 1 13:03 365
dr-xr-xr-x 9 root root 0 Oct 1 13:03 37
dr-xr-xr-x 9 root root 0 Oct 1 13:03 38
dr-xr-xr-x 9 root root 0 Oct 1 13:03 385
dr-xr-xr-x 9 root root 0 Oct 1 13:03 39
dr-xr-xr-x 9 root root 0 Oct 1 13:03 393
dr-xr-xr-x 9 root root 0 Oct 1 13:03 41
dr-xr-xr-x 9 root root 0 Oct 1 13:03 42
dr-xr-xr-x 9 root root 0 Oct 1 13:03 43
dr-xr-xr-x 9 root root 0 Oct 1 13:03 44
dr-xr-xr-x 9 root root 0 Oct 1 13:03 45
dr-xr-xr-x 9 root root 0 Oct 1 13:03 46
dr-xr-xr-x 9 root root 0 Oct 1 13:03 469
dr-xr-xr-x 9 root root 0 Oct 1 13:03 47
dr-xr-xr-x 9 root root 0 Oct 1 13:03 470
dr-xr-xr-x 9 root root 0 Oct 1 13:03 477
dr-xr-xr-x 9 root root 0 Oct 1 13:03 48
dr-xr-xr-x 9 root root 0 Oct 1 13:03 49
dr-xr-xr-x 9 root root 0 Oct 1 13:03 499
dr-xr-xr-x 9 root root 0 Oct 1 13:03 5
dr-xr-xr-x 9 root root 0 Oct 1 13:03 50
dr-xr-xr-x 9 root root 0 Oct 1 13:03 51
dr-xr-xr-x 9 root root 0 Oct 1 13:03 511
dr-xr-xr-x 9 root root 0 Oct 1 13:03 515
dr-xr-xr-x 9 root root 0 Oct 1 13:03 516
dr-xr-xr-x 9 root root 0 Oct 1 13:03 52
dr-xr-xr-x 9 root root 0 Oct 1 13:03 529
dr-xr-xr-x 9 root root 0 Oct 1 13:03 53
dr-xr-xr-x 9 root root 0 Oct 1 13:03 533
dr-xr-xr-x 9 root root 0 Oct 1 13:03 54
dr-xr-xr-x 9 root root 0 Oct 1 13:03 56
dr-xr-xr-x 9 root root 0 Oct 1 13:03 57
dr-xr-xr-x 9 root root 0 Oct 1 13:03 579
dr-xr-xr-x 9 root root 0 Oct 1 13:03 58
dr-xr-xr-x 9 root root 0 Oct 1 13:03 580
dr-xr-xr-x 9 root root 0 Oct 1 13:03 59
dr-xr-xr-x 9 root root 0 Oct 1 13:03 60
dr-xr-xr-x 9 root root 0 Oct 1 13:03 609
dr-xr-xr-x 9 root root 0 Oct 1 13:03 61
dr-xr-xr-x 9 root root 0 Oct 1 13:03 618
dr-xr-xr-x 9 root root 0 Oct 1 13:03 62
dr-xr-xr-x 9 root root 0 Oct 1 13:03 63
dr-xr-xr-x 9 root root 0 Oct 1 13:03 64
dr-xr-xr-x 9 root root 0 Oct 1 13:03 65
dr-xr-xr-x 9 root root 0 Oct 1 13:03 651
dr-xr-xr-x 9 root root 0 Oct 1 13:03 66
dr-xr-xr-x 9 root root 0 Oct 1 13:03 661
dr-xr-xr-x 9 root root 0 Oct 1 13:03 67
dr-xr-xr-x 9 root root 0 Oct 1 13:03 68
dr-xr-xr-x 9 root root 0 Oct 1 13:03 69
dr-xr-xr-x 9 root root 0 Oct 1 13:03 7
dr-xr-xr-x 9 root root 0 Oct 1 13:03 70
dr-xr-xr-x 9 root root 0 Oct 1 13:03 71
dr-xr-xr-x 9 root root 0 Oct 1 13:03 72
dr-xr-xr-x 9 root root 0 Oct 1 13:03 73
dr-xr-xr-x 9 root root 0 Oct 1 13:03 74
dr-xr-xr-x 9 root root 0 Oct 1 13:03 75
dr-xr-xr-x 9 root root 0 Oct 1 13:03 76
dr-xr-xr-x 9 root root 0 Oct 1 13:03 77
dr-xr-xr-x 9 root root 0 Oct 1 13:03 78
dr-xr-xr-x 9 root root 0 Oct 1 13:03 79
dr-xr-xr-x 9 root root 0 Oct 1 13:03 8
dr-xr-xr-x 9 root root 0 Oct 1 13:03 80
dr-xr-xr-x 9 root root 0 Oct 1 13:03 807
dr-xr-xr-x 9 root root 0 Oct 1 13:03 81
dr-xr-xr-x 9 root root 0 Oct 1 13:03 815
dr-xr-xr-x 9 root root 0 Oct 1 13:03 819
dr-xr-xr-x 9 root root 0 Oct 1 13:03 82
dr-xr-xr-x 9 root root 0 Oct 1 13:03 820
dr-xr-xr-x 9 root root 0 Oct 1 13:03 83
dr-xr-xr-x 9 root root 0 Oct 1 13:03 84
dr-xr-xr-x 9 messagebus messagebus 0 Oct 1 13:03 855
dr-xr-xr-x 9 root root 0 Oct 1 13:03 87
dr-xr-xr-x 9 root root 0 Oct 1 13:03 88
dr-xr-xr-x 9 root root 0 Oct 1 13:03 880
dr-xr-xr-x 9 root root 0 Oct 1 13:03 881
dr-xr-xr-x 9 root root 0 Oct 1 13:03 89
dr-xr-xr-x 9 root root 0 Oct 1 13:03 9
dr-xr-xr-x 9 root root 0 Oct 1 13:03 926
dr-xr-xr-x 9 syslog syslog 0 Oct 1 13:03 931
dr-xr-xr-x 9 root root 0 Oct 1 13:03 945
dr-xr-xr-x 9 root root 0 Oct 1 13:03 963
dr-xr-xr-x 9 root root 0 Oct 1 13:03 967
dr-xr-xr-x 9 root root 0 Oct 1 13:03 974
dr-xr-xr-x 9 root root 0 Oct 1 13:03 979
dr-xr-xr-x 9 colord colord 0 Oct 1 13:03 983
dr-xr-xr-x 9 lp lp 0 Oct 1 13:03 987
dr-xr-xr-x 2 root root 0 Oct 1 13:14 acpi
dr-xr-xr-x 6 root root 0 Oct 1 13:14 asound
-r--r--r-- 1 root root 0 Oct 1 13:14 buddyinfo
dr-xr-xr-x 4 root root 0 Oct 1 13:14 bus
-r--r--r-- 1 root root 0 Oct 1 13:14 cgroups
-r--r--r-- 1 root root 0 Oct 1 13:14 cmdline
-r--r--r-- 1 root root 0 Oct 1 13:14 consoles
-r--r--r-- 1 root root 0 Oct 1 13:14 cpuinfo
-r--r--r-- 1 root root 0 Oct 1 13:14 crypto
-r--r--r-- 1 root root 0 Oct 1 13:14 devices
-r--r--r-- 1 root root 0 Oct 1 13:14 diskstats
-r--r--r-- 1 root root 0 Oct 1 13:14 dma
dr-xr-xr-x 2 root root 0 Oct 1 13:14 driver
-r--r--r-- 1 root root 0 Oct 1 13:14
execdomains
-r--r--r-- 1 root root 0 Oct 1 13:14 fb
-r--r--r-- 1 root root 0 Oct 1 13:14
filesystems
dr-xr-xr-x 5 root root 0 Oct 1 13:14 fs
-r--r--r-- 1 root root 0 Oct 1 13:14 interrupts
-r--r--r-- 1 root root 0 Oct 1 13:14 iomem
-r--r--r-- 1 root root 0 Oct 1 13:14 ioports
dr-xr-xr-x 31 root root 0 Oct 1 13:14 irq
-r--r--r-- 1 root root 0 Oct 1 13:14 kallsyms
-r-------- 1 root root 140737477881856 Oct 1 13:14 kcore
-r--r--r-- 1 root root 0 Oct 1 13:14 keys
-r--r--r-- 1 root root 0 Oct 1 13:14 key-users
-r-------- 1 root root 0 Oct 1 13:03 kmsg
-r-------- 1 root root 0 Oct 1 13:14 kpagecount
-r-------- 1 root root 0 Oct 1 13:14 kpageflags
-r--r--r-- 1 root root 0 Oct 1 13:14 loadavg
-r--r--r-- 1 root root 0 Oct 1 13:14 locks
-r--r--r-- 1 root root 0 Oct 1 13:14 mdstat
-r--r--r-- 1 root root 0 Oct 1 13:14 meminfo
-r--r--r-- 1 root root 0 Oct 1 13:14 misc
-r--r--r-- 1 root root 0 Oct 1 13:14 modules
lrwxrwxrwx 1 root root 11 Oct 1 13:14 mounts
-> self/mounts
-rw-r--r-- 1 root root 0 Oct 1 13:03 mtrr
lrwxrwxrwx 1 root root 8 Oct 1 13:14 net ->
self/net
-r--r--r-- 1 root root 0 Oct 1 13:14
pagetypeinfo
-r--r--r-- 1 root root 0 Oct 1 13:14 partitions
-r--r--r-- 1 root root 0 Oct 1 13:14
sched_debug
-r--r--r-- 1 root root 0 Oct 1 13:14 schedstat
dr-xr-xr-x 3 root root 0 Oct 1 13:14 scsi
lrwxrwxrwx 1 root root 0 Oct 1 06:03 self
-> 2419
-r-------- 1 root root 0 Oct 1 13:14 slabinfo
-r--r--r-- 1 root root 0 Oct 1 13:14 softirqs
-r--r--r-- 1 root root 0 Oct 1 13:14 stat
-r--r--r-- 1 root root 0 Oct 1 13:14 swaps
dr-xr-xr-x 1 root root 0 Oct 1 06:03 sys
--w------- 1 root root 0 Oct 1 13:14
sysrq-trigger
dr-xr-xr-x 2 root root 0 Oct 1 13:14 sysvipc
lrwxrwxrwx 1 root root 0 Oct 1 06:03
thread-self -> 2419/task/2419
-r--r--r-- 1 root root 0 Oct 1 13:14 timer_list
-rw-r--r-- 1 root root 0 Oct 1 13:14
timer_stats
dr-xr-xr-x 4 root root 0 Oct 1 13:14 tty
-r--r--r-- 1 root root 0 Oct 1 13:14 uptime
-r--r--r-- 1 root root 0 Oct 1 13:14 version
-r-------- 1 root root 0 Oct 1 13:14
vmallocinfo
-r--r--r-- 1 root root 0 Oct 1 13:14 vmstat
-r--r--r-- 1 root root 0 Oct 1 13:14 zoneinfo
[X.] Other notes, patches, fixes, workarounds:
Launchpad Bug Report:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1168224
^ permalink raw reply
* [PATCH] HID: rmi: Scan the report descriptor to determine if the device is suitable for the hid-rmi driver
From: Andrew Duggan @ 2014-10-02 18:15 UTC (permalink / raw)
To: linux-input, linux-kernel; +Cc: Andrew Duggan, Jiri Kosina, Benjamin Tissoires
On composite HID devices there may be multiple HID devices on separate interfaces, but hid-rmi
should only bind to the touchpad. Commit e19ff99f256aeeff6c07b373e01883b72e049552 simply checked
that the interface protocol was set to mouse. Unfortuately, it is not always the case that the
touchpad has the mouse interface protocol set. This patch takes a different approach and scans
the report descriptor looking for the Vendor Specific Top Level Collection and the associated
usages and report IDs needed by the hid-rmi driver to interface with the device.
Signed-off-by: Andrew Duggan <aduggan@synaptics.com>
---
drivers/hid/hid-core.c | 42 +++++++++++++++++++++++++++++++++++++-----
include/linux/hid.h | 8 +++++++-
2 files changed, 44 insertions(+), 6 deletions(-)
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 12b6e67..498f674 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -686,6 +686,23 @@ static void hid_scan_input_usage(struct hid_parser *parser, u32 usage)
if (usage == HID_DG_CONTACTID)
hid->group = HID_GROUP_MULTITOUCH;
+
+ if (usage == 0xff000004 && parser->global.report_id == 0xb)
+ parser->scan_flags |= HID_SCAN_FLAG_RMI_INPUT_READ;
+
+ if (usage == 0xff000005 && parser->global.report_id == 0xc)
+ parser->scan_flags |= HID_SCAN_FLAG_RMI_ATTN;
+}
+
+static void hid_scan_output_usage(struct hid_parser *parser, u32 usage)
+{
+ struct hid_device *hid = parser->device;
+
+ if (usage == 0xff000002 && parser->global.report_id == 0x9)
+ parser->scan_flags |= HID_SCAN_FLAG_RMI_WRITE;
+
+ if (usage == 0xff000003 && parser->global.report_id == 0xa)
+ parser->scan_flags |= HID_SCAN_FLAG_RMI_OUTPUT_READ;
}
static void hid_scan_feature_usage(struct hid_parser *parser, u32 usage)
@@ -693,6 +710,9 @@ static void hid_scan_feature_usage(struct hid_parser *parser, u32 usage)
if (usage == 0xff0000c5 && parser->global.report_count == 256 &&
parser->global.report_size == 8)
parser->scan_flags |= HID_SCAN_FLAG_MT_WIN_8;
+
+ if (usage == 0xff000006 && parser->global.report_id == 0xf)
+ parser->scan_flags |= HID_SCAN_FLAG_RMI_MODE;
}
static void hid_scan_collection(struct hid_parser *parser, unsigned type)
@@ -702,6 +722,9 @@ static void hid_scan_collection(struct hid_parser *parser, unsigned type)
if (((parser->global.usage_page << 16) == HID_UP_SENSOR) &&
type == HID_COLLECTION_PHYSICAL)
hid->group = HID_GROUP_SENSOR_HUB;
+
+ if ((parser->global.usage_page << 16) == HID_UP_MSVENDOR)
+ parser->scan_flags |= HID_SCAN_FLAG_VENDOR_SPECIFIC;
}
static int hid_scan_main(struct hid_parser *parser, struct hid_item *item)
@@ -725,6 +748,10 @@ static int hid_scan_main(struct hid_parser *parser, struct hid_item *item)
hid_scan_input_usage(parser, parser->local.usage[i]);
break;
case HID_MAIN_ITEM_TAG_OUTPUT:
+ if (data & HID_MAIN_ITEM_CONSTANT)
+ break;
+ for (i = 0; i < parser->local.usage_index; i++)
+ hid_scan_output_usage(parser, parser->local.usage[i]);
break;
case HID_MAIN_ITEM_TAG_FEATURE:
for (i = 0; i < parser->local.usage_index; i++)
@@ -783,11 +810,16 @@ static int hid_scan_report(struct hid_device *hid)
* Vendor specific handlings
*/
if ((hid->vendor == USB_VENDOR_ID_SYNAPTICS) &&
- (hid->group == HID_GROUP_GENERIC) &&
- /* only bind to the mouse interface of composite USB devices */
- (hid->bus != BUS_USB || hid->type == HID_TYPE_USBMOUSE))
- /* hid-rmi should take care of them, not hid-generic */
- hid->group = HID_GROUP_RMI;
+ (hid->group == HID_GROUP_GENERIC)) {
+ if ((parser->scan_flags & HID_SCAN_FLAG_VENDOR_SPECIFIC)
+ && (parser->scan_flags & HID_SCAN_FLAG_RMI_WRITE)
+ && (parser->scan_flags & HID_SCAN_FLAG_RMI_INPUT_READ)
+ && (parser->scan_flags & HID_SCAN_FLAG_RMI_OUTPUT_READ)
+ && (parser->scan_flags & HID_SCAN_FLAG_RMI_ATTN)
+ && (parser->scan_flags & HID_SCAN_FLAG_RMI_MODE))
+ /* hid-rmi should take care of them, not hid-generic */
+ hid->group = HID_GROUP_RMI;
+ }
/*
* Vendor specific handlings
diff --git a/include/linux/hid.h b/include/linux/hid.h
index f53c4a9..82d1f82 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -547,7 +547,13 @@ static inline void hid_set_drvdata(struct hid_device *hdev, void *data)
#define HID_GLOBAL_STACK_SIZE 4
#define HID_COLLECTION_STACK_SIZE 4
-#define HID_SCAN_FLAG_MT_WIN_8 0x00000001
+#define HID_SCAN_FLAG_MT_WIN_8 BIT(0)
+#define HID_SCAN_FLAG_VENDOR_SPECIFIC BIT(1)
+#define HID_SCAN_FLAG_RMI_WRITE BIT(2)
+#define HID_SCAN_FLAG_RMI_INPUT_READ BIT(3)
+#define HID_SCAN_FLAG_RMI_OUTPUT_READ BIT(3)
+#define HID_SCAN_FLAG_RMI_ATTN BIT(4)
+#define HID_SCAN_FLAG_RMI_MODE BIT(5)
struct hid_parser {
struct hid_global global;
--
1.9.1
^ permalink raw reply related
* Re: [PATCH 00/13] HID: add support of Logitech touchpads and special devices
From: Andrew de los Reyes @ 2014-10-02 18:19 UTC (permalink / raw)
To: Benjamin Tissoires
Cc: Jiri Kosina, Nestor Lopez Casado, linux-kernel, Linux Input
In-Reply-To: <20141001131008.GB18756@mail.corp.redhat.com>
I've tested these patches successfully on a Chromebook Pixel with the
following devices:
- T650 touchpad
- TK820 keyboard/touchpad
- Original WTP touchpad
I also tested a touch mouse and as expected it continued to function
as a plain USB mouse. The TK820 was indeed broken into two devices,
with autorepeat enabled for the keyboard only. The other two devices
behaved as expected with no perceived regressions.
In short, from a functionality perspective I'm happy with these
patches. I will let others discuss code structure.
-andrew
On Wed, Oct 1, 2014 at 6:10 AM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
> On Oct 01 2014 or thereabouts, Jiri Kosina wrote:
>> On Tue, 30 Sep 2014, Benjamin Tissoires wrote:
>>
>> > Jiri, This patch series can be split in 2 if you would like:
>> > - patches 1 to 4 can be scheduled easily for 3.18 IMO
>> > - patches 5 to 13 might need some more reviews, so either 3.18 or 3.19
>>
>> Benjamin,
>>
>> thanks for the summary. I'll try to review 1-4 in time for 3.18, but I
>> can't guarantee that.
>>
>
> Thanks
>
>> Do you forsee any issues if the whole lot is queued for 3.19 only?
>
> Nope. It waited since 2011, so it can wait 3 more months :)
>
> Cheers,
> Benjamin
>
^ permalink raw reply
* Re: [PATCH v3 0/2] Add ROHM BU21023/24 Dual touch support resistive touchscreens
From: Yuasa Yoichi @ 2014-10-03 5:16 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Yoichi Yuasa, linux-input
In-Reply-To: <20140925001647.dd48571a3c0ceda5c25ab669@linux-mips.org>
Hi Dmitry,
Do you have any comments?
If you have a comment, I will fix it before next merge.
Thanks,
Yoichi
2014-09-25 0:16 GMT+09:00 Yoichi Yuasa <yuasa@linux-mips.org>:
> Hi Dmitry,
>
> I updated the driver according to your comments.
> Do you have any comments?
>
> v3 Changes:
> - fix multi touch slots initialization
> - fix set_bit BTN_TOUCH
> - remove input_unregister_device()
> - switch to __set_bit()
>
> v2 Changes:
> - remove polling mode
> - switch to threaded interrupt
> - switch to managed resources
> - use MT-B protocol with input_mt_assign_slots
> - provide ST emulation
> - firmware load and device initialization are shifted at opening the device
> - add error handling for IO operations
>
> Yoichi Yuasa (2):
> input: Add ROHM BU21023/24 Dual touch support resistive touchscreens
> input: bu21023_ts: Add calibration function
>
> drivers/input/touchscreen/Kconfig | 11 +
> drivers/input/touchscreen/Makefile | 1 +
> drivers/input/touchscreen/rohm_bu21023.c | 930 ++++++++++++++++++++++++++++++
> drivers/input/touchscreen/rohm_bu21023.h | 258 +++++++++
> 4 files changed, 1200 insertions(+)
> create mode 100644 drivers/input/touchscreen/rohm_bu21023.c
> create mode 100644 drivers/input/touchscreen/rohm_bu21023.h
>
> --
> 1.7.9.5
>
^ permalink raw reply
* [PATCH 1/3] input: alps: Reset mouse before identifying it
From: Pali Rohár @ 2014-10-03 9:43 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel, Pali Rohár
In-Reply-To: <1412329392-5580-1-git-send-email-pali.rohar@gmail.com>
On some systems after starting computer function alps_identify() does not detect
dual ALPS touchpad+trackstick device correctly and detect only touchpad.
Resetting ALPS device before identifiying it fixing this problem and both parts
touchpad and trackstick are detected.
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/input/mouse/alps.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 35a49bf..1bd5aa1 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -2403,6 +2403,8 @@ int alps_detect(struct psmouse *psmouse, bool set_properties)
{
struct alps_data dummy;
+ psmouse_reset(psmouse);
+
if (alps_identify(psmouse, &dummy) < 0)
return -1;
--
1.7.9.5
^ permalink raw reply related
* [PATCH 2/3] input: alps: For protocol V3, do not process data when last packet's bit7 is set
From: Pali Rohár @ 2014-10-03 9:43 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel, Pali Rohár
In-Reply-To: <1412329392-5580-1-git-send-email-pali.rohar@gmail.com>
Sometimes laptops with closed lid receive invalid ALPS protocol V3 packets with
last bit7 set.
This happens on Dell Latitude laptops and it looks like it is BIOS bug. Probably
EC does not correctly split keyboard and touchpad PS/2 data and when laptop lid
is closed it adds 0xFF packet into touchpad PS/2 data.
When last packet's bit7 is set it is invalid ALPS packet. So Do not process it
and drop it with PSMOUSE_FULL_PACKET.
After testing it looks like this patch fixed problem with reseting mouse (after
series of invalid packets) when laptop lid is closed on Dell Latitude machines.
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/input/mouse/alps.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index 1bd5aa1..b1f44d4 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -1179,6 +1179,16 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
return PSMOUSE_BAD_DATA;
}
+ if (priv->proto_version == ALPS_PROTO_V3 && psmouse->pktcnt == psmouse->pktsize) {
+ // For protocol V3, do not process data when last packet's bit7 is set
+ if (psmouse->packet[psmouse->pktcnt - 1] & 0x80) {
+ psmouse_dbg(psmouse, "v3 discard packet[%i] = %x\n",
+ psmouse->pktcnt - 1,
+ psmouse->packet[psmouse->pktcnt - 1]);
+ return PSMOUSE_FULL_PACKET;
+ }
+ }
+
/* Bytes 2 - pktsize should have 0 in the highest bit */
if ((priv->proto_version < ALPS_PROTO_V5) &&
psmouse->pktcnt >= 2 && psmouse->pktcnt <= psmouse->pktsize &&
--
1.7.9.5
^ permalink raw reply related
* [PATCH 0/3] input: alps: Fixes for ALPS driver
From: Pali Rohár @ 2014-10-03 9:43 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel, Pali Rohár
This patch series trying to fix problems with ALPS dualpoint touchpad on
Dell Latitude laptops which are probably caused by bugs in Dell BIOS.
Reported bugs:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1258837
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1320022
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1272624
Pali Rohár (3):
input: alps: Reset mouse before identifying it
input: alps: For protocol V3, do not process data when last packet's
bit7 is set
input: alps: Reset mouse and ALPS driver immediately after first
invalid packet
drivers/input/mouse/alps.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
--
1.7.9.5
--
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
* [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
From: Pali Rohár @ 2014-10-03 9:43 UTC (permalink / raw)
To: Dmitry Torokhov, Hans de Goede, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel, Pali Rohár
In-Reply-To: <1412329392-5580-1-git-send-email-pali.rohar@gmail.com>
For unknown reasons linux psmouse alps driver sometimes receive totally invalid
packet sequences on Dell Latitude laptops. According to ALPS HW engineers these
invalid packets do not come from ALPS devices. So it looks like bug in BIOS and
EC incorrectly split keyboard and touchpad PS/2 data when laptops are under
heavy loads (big I/O together with powersave governor, running on battery).
There are sequences of invalid packets (which are dropeed) and some sequences
which look like valid. But these valid packets cause random trackstick button
pressing, random cursor moving/jumping and in these condition it is not possible
to use ALPS device (trackstick+touchpad).
To prevent random button press and random cursor jumps immediately reset ALPS
device after first invalid packet. This will cause that touchpad and trackstick
will not respond for one or two seconds and it better then random cursor jumps.
Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
Tested-by: Pali Rohár <pali.rohar@gmail.com>
---
drivers/input/mouse/alps.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
index b1f44d4..d2b144f 100644
--- a/drivers/input/mouse/alps.c
+++ b/drivers/input/mouse/alps.c
@@ -2399,6 +2399,10 @@ int alps_init(struct psmouse *psmouse)
/* We are having trouble resyncing ALPS touchpads so disable it for now */
psmouse->resync_time = 0;
+ /* Reset immediately after bad packet. When bad packet arrives then
+ cursor pointer jumps and trackstick buttons are randomly pressed. */
+ psmouse->resetafter = 1;
+
return 0;
init_fail:
--
1.7.9.5
--
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 related
* Re: [PATCH 1/3] input: alps: Reset mouse before identifying it
From: Hans de Goede @ 2014-10-03 9:47 UTC (permalink / raw)
To: Pali Rohár, Dmitry Torokhov, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel
In-Reply-To: <1412329392-5580-2-git-send-email-pali.rohar@gmail.com>
Hi,
Thanks for working on this!
On 10/03/2014 11:43 AM, Pali Rohár wrote:
> On some systems after starting computer function alps_identify() does not detect
> dual ALPS touchpad+trackstick device correctly and detect only touchpad.
>
> Resetting ALPS device before identifiying it fixing this problem and both parts
> touchpad and trackstick are detected.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> Tested-by: Pali Rohár <pali.rohar@gmail.com>
Looks good and seems sensible:
Acked-by: Hans de Goede <hdegoede@redhat.com>
Regards,
Hans
> ---
> drivers/input/mouse/alps.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 35a49bf..1bd5aa1 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -2403,6 +2403,8 @@ int alps_detect(struct psmouse *psmouse, bool set_properties)
> {
> struct alps_data dummy;
>
> + psmouse_reset(psmouse);
> +
> if (alps_identify(psmouse, &dummy) < 0)
> return -1;
>
>
--
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: [PATCH 2/3] input: alps: For protocol V3, do not process data when last packet's bit7 is set
From: Hans de Goede @ 2014-10-03 9:51 UTC (permalink / raw)
To: Pali Rohár, Dmitry Torokhov, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel
In-Reply-To: <1412329392-5580-3-git-send-email-pali.rohar@gmail.com>
Hi,
On 10/03/2014 11:43 AM, Pali Rohár wrote:
> Sometimes laptops with closed lid receive invalid ALPS protocol V3 packets with
> last bit7 set.
>
> This happens on Dell Latitude laptops and it looks like it is BIOS bug. Probably
> EC does not correctly split keyboard and touchpad PS/2 data and when laptop lid
> is closed it adds 0xFF packet into touchpad PS/2 data.
>
> When last packet's bit7 is set it is invalid ALPS packet. So Do not process it
> and drop it with PSMOUSE_FULL_PACKET.
>
> After testing it looks like this patch fixed problem with reseting mouse (after
> series of invalid packets) when laptop lid is closed on Dell Latitude machines.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> Tested-by: Pali Rohár <pali.rohar@gmail.com>
> ---
> drivers/input/mouse/alps.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 1bd5aa1..b1f44d4 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -1179,6 +1179,16 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
> return PSMOUSE_BAD_DATA;
> }
>
> + if (priv->proto_version == ALPS_PROTO_V3 && psmouse->pktcnt == psmouse->pktsize) {
> + // For protocol V3, do not process data when last packet's bit7 is set
> + if (psmouse->packet[psmouse->pktcnt - 1] & 0x80) {
> + psmouse_dbg(psmouse, "v3 discard packet[%i] = %x\n",
> + psmouse->pktcnt - 1,
> + psmouse->packet[psmouse->pktcnt - 1]);
> + return PSMOUSE_FULL_PACKET;
> + }
> + }
> +
I wonder if this should not be PSMOUSE_BAD_DATA as a return value ? I realize that
with the 3th patch in place, that will cause an immediate reset, but if your theory is
right that this ff gets inserted from the keyboard ps/2 stream, then we actually want
a full reset as otherwise we will be out of sync then.
> /* Bytes 2 - pktsize should have 0 in the highest bit */
> if ((priv->proto_version < ALPS_PROTO_V5) &&
> psmouse->pktcnt >= 2 && psmouse->pktcnt <= psmouse->pktsize &&
>
Regards,
Hans
--
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: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
From: Hans de Goede @ 2014-10-03 9:55 UTC (permalink / raw)
To: Pali Rohár, Dmitry Torokhov, Yunkang Tang, Tommy Will
Cc: linux-input, linux-kernel
In-Reply-To: <1412329392-5580-4-git-send-email-pali.rohar@gmail.com>
Hi,
On 10/03/2014 11:43 AM, Pali Rohár wrote:
> For unknown reasons linux psmouse alps driver sometimes receive totally invalid
> packet sequences on Dell Latitude laptops. According to ALPS HW engineers these
> invalid packets do not come from ALPS devices. So it looks like bug in BIOS and
> EC incorrectly split keyboard and touchpad PS/2 data when laptops are under
> heavy loads (big I/O together with powersave governor, running on battery).
>
> There are sequences of invalid packets (which are dropeed) and some sequences
> which look like valid. But these valid packets cause random trackstick button
> pressing, random cursor moving/jumping and in these condition it is not possible
> to use ALPS device (trackstick+touchpad).
>
> To prevent random button press and random cursor jumps immediately reset ALPS
> device after first invalid packet. This will cause that touchpad and trackstick
> will not respond for one or two seconds and it better then random cursor jumps.
>
This one probably should have:
Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1145954
And you may want to add Bug: tags to the relevant patches for the
launchpad issues too.
While on the topic of tags, once we've agreed upon the return value to use for the
2nd patch, can you please resend with a "Cc: stable@vger.kernel.org" added to all
3 patches?
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> Tested-by: Pali Rohár <pali.rohar@gmail.com>
Looks good and seems sensible:
Acked-by: Hans de Goede <hdegoede@redhat.com>
Thanks & Regards,
Hans
--
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: [PATCH 2/3] input: alps: For protocol V3, do not process data when last packet's bit7 is set
From: Pali Rohár @ 2014-10-03 9:58 UTC (permalink / raw)
To: Hans de Goede
Cc: Dmitry Torokhov, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <542E719A.8030509@redhat.com>
[-- Attachment #1: Type: Text/Plain, Size: 3052 bytes --]
On Friday 03 October 2014 11:51:22 Hans de Goede wrote:
> Hi,
>
> On 10/03/2014 11:43 AM, Pali Rohár wrote:
> > Sometimes laptops with closed lid receive invalid ALPS
> > protocol V3 packets with last bit7 set.
> >
> > This happens on Dell Latitude laptops and it looks like it
> > is BIOS bug. Probably EC does not correctly split keyboard
> > and touchpad PS/2 data and when laptop lid is closed it
> > adds 0xFF packet into touchpad PS/2 data.
> >
> > When last packet's bit7 is set it is invalid ALPS packet. So
> > Do not process it and drop it with PSMOUSE_FULL_PACKET.
> >
> > After testing it looks like this patch fixed problem with
> > reseting mouse (after series of invalid packets) when
> > laptop lid is closed on Dell Latitude machines.
> >
> > Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> > Tested-by: Pali Rohár <pali.rohar@gmail.com>
> > ---
> >
> > drivers/input/mouse/alps.c | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/drivers/input/mouse/alps.c
> > b/drivers/input/mouse/alps.c index 1bd5aa1..b1f44d4 100644
> > --- a/drivers/input/mouse/alps.c
> > +++ b/drivers/input/mouse/alps.c
> > @@ -1179,6 +1179,16 @@ static psmouse_ret_t
> > alps_process_byte(struct psmouse *psmouse)
> >
> > return PSMOUSE_BAD_DATA;
> >
> > }
> >
> > + if (priv->proto_version == ALPS_PROTO_V3 &&
> > psmouse->pktcnt == psmouse->pktsize) { + // For protocol
> > V3, do not process data when last packet's bit7 is set
> > + if (psmouse->packet[psmouse->pktcnt - 1] & 0x80) {
> > + psmouse_dbg(psmouse, "v3 discard packet[%i] =
%x\n",
> > + psmouse->pktcnt - 1,
> > + psmouse->packet[psmouse->pktcnt - 1]);
> > + return PSMOUSE_FULL_PACKET;
> > + }
> > + }
> > +
>
> I wonder if this should not be PSMOUSE_BAD_DATA as a return
> value ? I realize that with the 3th patch in place, that will
> cause an immediate reset, but if your theory is right that
> this ff gets inserted from the keyboard ps/2 stream, then we
> actually want a full reset as otherwise we will be out of
> sync then.
>
We really do not know what is root cause of this problem.
Probably it is BIOS/EC/firmware/... but it could be something
other too.
On my laptop - Dell Latitude E6440 - I'm getting these invalid
packets when I close LID. And they are generated too many (lot of
per second). When PSMOUSE_FULL_PACKET is returned then no driver
does not reset touchpad. With PSMOUSE_BAD_DATA psmouse decide
that it needs reset and with 3rd patch psmouse could try to reset
device too many times... So I think PSMOUSE_FULL_PACKET is better
here. And having dmesg log full of device resets is probably not
good too when laptop lid is closed.
> > /* Bytes 2 - pktsize should have 0 in the highest bit */
> > if ((priv->proto_version < ALPS_PROTO_V5) &&
> >
> > psmouse->pktcnt >= 2 && psmouse->pktcnt <=
> > psmouse->pktsize &&
>
> Regards,
>
> Hans
--
Pali Rohár
pali.rohar@gmail.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply
* Re: [PATCH 2/3] input: alps: For protocol V3, do not process data when last packet's bit7 is set
From: Hans de Goede @ 2014-10-03 10:01 UTC (permalink / raw)
To: Pali Rohár
Cc: Dmitry Torokhov, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <201410031158.02134@pali>
Hi,
On 10/03/2014 11:58 AM, Pali Rohár wrote:
> On Friday 03 October 2014 11:51:22 Hans de Goede wrote:
>> Hi,
>>
>> On 10/03/2014 11:43 AM, Pali Rohár wrote:
>>> Sometimes laptops with closed lid receive invalid ALPS
>>> protocol V3 packets with last bit7 set.
>>>
>>> This happens on Dell Latitude laptops and it looks like it
>>> is BIOS bug. Probably EC does not correctly split keyboard
>>> and touchpad PS/2 data and when laptop lid is closed it
>>> adds 0xFF packet into touchpad PS/2 data.
>>>
>>> When last packet's bit7 is set it is invalid ALPS packet. So
>>> Do not process it and drop it with PSMOUSE_FULL_PACKET.
>>>
>>> After testing it looks like this patch fixed problem with
>>> reseting mouse (after series of invalid packets) when
>>> laptop lid is closed on Dell Latitude machines.
>>>
>>> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
>>> Tested-by: Pali Rohár <pali.rohar@gmail.com>
>>> ---
>>>
>>> drivers/input/mouse/alps.c | 10 ++++++++++
>>> 1 file changed, 10 insertions(+)
>>>
>>> diff --git a/drivers/input/mouse/alps.c
>>> b/drivers/input/mouse/alps.c index 1bd5aa1..b1f44d4 100644
>>> --- a/drivers/input/mouse/alps.c
>>> +++ b/drivers/input/mouse/alps.c
>>> @@ -1179,6 +1179,16 @@ static psmouse_ret_t
>>> alps_process_byte(struct psmouse *psmouse)
>>>
>>> return PSMOUSE_BAD_DATA;
>>>
>>> }
>>>
>>> + if (priv->proto_version == ALPS_PROTO_V3 &&
>>> psmouse->pktcnt == psmouse->pktsize) { + // For protocol
>>> V3, do not process data when last packet's bit7 is set
>>> + if (psmouse->packet[psmouse->pktcnt - 1] & 0x80) {
>>> + psmouse_dbg(psmouse, "v3 discard packet[%i] =
> %x\n",
>>> + psmouse->pktcnt - 1,
>>> + psmouse->packet[psmouse->pktcnt - 1]);
>>> + return PSMOUSE_FULL_PACKET;
>>> + }
>>> + }
>>> +
>>
>> I wonder if this should not be PSMOUSE_BAD_DATA as a return
>> value ? I realize that with the 3th patch in place, that will
>> cause an immediate reset, but if your theory is right that
>> this ff gets inserted from the keyboard ps/2 stream, then we
>> actually want a full reset as otherwise we will be out of
>> sync then.
>>
>
> We really do not know what is root cause of this problem.
> Probably it is BIOS/EC/firmware/... but it could be something
> other too.
>
> On my laptop - Dell Latitude E6440 - I'm getting these invalid
> packets when I close LID. And they are generated too many (lot of
> per second). When PSMOUSE_FULL_PACKET is returned then no driver
> does not reset touchpad. With PSMOUSE_BAD_DATA psmouse decide
> that it needs reset and with 3rd patch psmouse could try to reset
> device too many times... So I think PSMOUSE_FULL_PACKET is better
> here. And having dmesg log full of device resets is probably not
> good too when laptop lid is closed.
Ok, then lets stick with PSMOUSE_FULL_PACKET.
So this patch also is:
Acked-by: Hans de Goede <hdegoede@redhat.com>
Can you please do a v2, with the following tags added to the
commit messages ? :
- Cc: stable@vger.kernel.org
- Acked-by: Hans de Goede <hdegoede@redhat.com>
- Bug: ... for the relevant bugs
Thanks & Regards,
Hans
--
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: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
From: Pali Rohár @ 2014-10-03 10:05 UTC (permalink / raw)
To: Hans de Goede
Cc: Dmitry Torokhov, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <542E72A8.2030908@redhat.com>
[-- Attachment #1: Type: Text/Plain, Size: 2802 bytes --]
On Friday 03 October 2014 11:55:52 Hans de Goede wrote:
> Hi,
>
> On 10/03/2014 11:43 AM, Pali Rohár wrote:
> > For unknown reasons linux psmouse alps driver sometimes
> > receive totally invalid packet sequences on Dell Latitude
> > laptops. According to ALPS HW engineers these invalid
> > packets do not come from ALPS devices. So it looks like bug
> > in BIOS and EC incorrectly split keyboard and touchpad PS/2
> > data when laptops are under heavy loads (big I/O together
> > with powersave governor, running on battery).
> >
> > There are sequences of invalid packets (which are dropeed)
> > and some sequences which look like valid. But these valid
> > packets cause random trackstick button pressing, random
> > cursor moving/jumping and in these condition it is not
> > possible to use ALPS device (trackstick+touchpad).
> >
> > To prevent random button press and random cursor jumps
> > immediately reset ALPS device after first invalid packet.
> > This will cause that touchpad and trackstick will not
> > respond for one or two seconds and it better then random
> > cursor jumps.
>
> This one probably should have:
>
> Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1145954
>
Yes, in that bug is described same problem as on my E6440.
> And you may want to add Bug: tags to the relevant patches for
> the launchpad issues too.
>
I just added links to famous ALPS bugs which looks like that one
which I have on my E6440. But I'm not sure if my patches will
resolve these problems on other machines too.
> While on the topic of tags, once we've agreed upon the return
> value to use for the 2nd patch, can you please resend with a
> "Cc: stable@vger.kernel.org" added to all 3 patches?
>
I would like if somebody else can test patches on other machines
with ALPS devices. Specially this third if it does not break
something else.
Note that this third patch does not fixing problem correctly with
jumping & clicking. It just immediately reset ps/2 device if it
receive invalid packages. So it only try to prevent jumping &
clicking. On my E6440 machine it somehow working. When driver
doing ps/2 reset keyboard, touchpad and trackstick not
responding. I think it is better then having random clicks but
somebody else really should try and test patches how it will work
on other machines.
Proper fix would be to understand why invalid packets are
received and try to force buggy component to not send these
invalid packets.
> > Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> > Tested-by: Pali Rohár <pali.rohar@gmail.com>
>
> Looks good and seems sensible:
>
> Acked-by: Hans de Goede <hdegoede@redhat.com>
>
> Thanks & Regards,
>
> Hans
--
Pali Rohár
pali.rohar@gmail.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply
* Re: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
From: Hans de Goede @ 2014-10-03 10:18 UTC (permalink / raw)
To: Pali Rohár
Cc: Dmitry Torokhov, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <201410031205.42927@pali>
Hi,
On 10/03/2014 12:05 PM, Pali Rohár wrote:
> On Friday 03 October 2014 11:55:52 Hans de Goede wrote:
>> Hi,
>>
>> On 10/03/2014 11:43 AM, Pali Rohár wrote:
>>> For unknown reasons linux psmouse alps driver sometimes
>>> receive totally invalid packet sequences on Dell Latitude
>>> laptops. According to ALPS HW engineers these invalid
>>> packets do not come from ALPS devices. So it looks like bug
>>> in BIOS and EC incorrectly split keyboard and touchpad PS/2
>>> data when laptops are under heavy loads (big I/O together
>>> with powersave governor, running on battery).
>>>
>>> There are sequences of invalid packets (which are dropeed)
>>> and some sequences which look like valid. But these valid
>>> packets cause random trackstick button pressing, random
>>> cursor moving/jumping and in these condition it is not
>>> possible to use ALPS device (trackstick+touchpad).
>>>
>>> To prevent random button press and random cursor jumps
>>> immediately reset ALPS device after first invalid packet.
>>> This will cause that touchpad and trackstick will not
>>> respond for one or two seconds and it better then random
>>> cursor jumps.
>>
>> This one probably should have:
>>
>> Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1145954
>>
>
> Yes, in that bug is described same problem as on my E6440.
>
>> And you may want to add Bug: tags to the relevant patches for
>> the launchpad issues too.
>>
OK, so lets just reference the RH bug then, and leave the others
out.
>
> I just added links to famous ALPS bugs which looks like that one
> which I have on my E6440. But I'm not sure if my patches will
> resolve these problems on other machines too.
>
>> While on the topic of tags, once we've agreed upon the return
>> value to use for the 2nd patch, can you please resend with a
>> "Cc: stable@vger.kernel.org" added to all 3 patches?
>>
>
> I would like if somebody else can test patches on other machines
> with ALPS devices. Specially this third if it does not break
> something else.
In my experience with ALPS devices, they normally never cause
PSMOUSE_BAD_DATA errors, so I would not worry about regressing
because of that.
> Note that this third patch does not fixing problem correctly with
> jumping & clicking. It just immediately reset ps/2 device if it
> receive invalid packages. So it only try to prevent jumping &
> clicking.
I understand, but that seems to be the best we can do for now.
> On my E6440 machine it somehow working. When driver
> doing ps/2 reset keyboard, touchpad and trackstick not
> responding.
Right, but I would expect that to be for only a short period of
time, or does the whole reset take a significant amount of time ?
> I think it is better then having random clicks but
> somebody else really should try and test patches how it will work
> on other machines.
>
> Proper fix would be to understand why invalid packets are
> received and try to force buggy component to not send these
> invalid packets.
Regards,
Hans
--
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: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
From: Pali Rohár @ 2014-10-03 10:23 UTC (permalink / raw)
To: Hans de Goede
Cc: Dmitry Torokhov, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <542E780B.7030103@redhat.com>
[-- Attachment #1: Type: Text/Plain, Size: 428 bytes --]
On Friday 03 October 2014 12:18:51 Hans de Goede wrote:
> > On my E6440 machine it somehow working. When driver
> > doing ps/2 reset keyboard, touchpad and trackstick not
> > responding.
>
> Right, but I would expect that to be for only a short period
> of time, or does the whole reset take a significant amount of
> time ?
>
It is one or two seconds which is OK for me.
--
Pali Rohár
pali.rohar@gmail.com
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply
* Re: [PATCH 3/3] input: alps: Reset mouse and ALPS driver immediately after first invalid packet
From: Hans de Goede @ 2014-10-03 11:03 UTC (permalink / raw)
To: Pali Rohár
Cc: Dmitry Torokhov, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <201410031223.10608@pali>
Hi,
On 10/03/2014 12:23 PM, Pali Rohár wrote:
> On Friday 03 October 2014 12:18:51 Hans de Goede wrote:
>>> On my E6440 machine it somehow working. When driver
>>> doing ps/2 reset keyboard, touchpad and trackstick not
>>> responding.
>>
>> Right, but I would expect that to be for only a short period
>> of time, or does the whole reset take a significant amount of
>> time ?
>>
>
> It is one or two seconds which is OK for me.
Hmm, 1-2 seconds is quite long, not good. Lets see if the solution
we've been discussing by private mail yields better results.
Regards,
Hans
--
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: [PATCH 00/13] HID: add support of Logitech touchpads and special devices
From: Jiri Kosina @ 2014-10-03 11:09 UTC (permalink / raw)
To: Andrew de los Reyes
Cc: Benjamin Tissoires, Nestor Lopez Casado, linux-kernel,
Linux Input
In-Reply-To: <CAG_cf+fYGATBL9Sgvvp7CaScP112fiqiyuR0gBdkS-424S3Kog@mail.gmail.com>
On Thu, 2 Oct 2014, Andrew de los Reyes wrote:
> I've tested these patches successfully on a Chromebook Pixel with the
> following devices:
>
> - T650 touchpad
> - TK820 keyboard/touchpad
> - Original WTP touchpad
>
> I also tested a touch mouse and as expected it continued to function
> as a plain USB mouse. The TK820 was indeed broken into two devices,
> with autorepeat enabled for the keyboard only. The other two devices
> behaved as expected with no perceived regressions.
>
> In short, from a functionality perspective I'm happy with these
> patches. I will let others discuss code structure.
Thank you. Can I use
Tested-by: Andrew de los Reyes <andrew-vger@gizmolabs.org>
once / if I am merging this patchset?
--
Jiri Kosina
SUSE Labs
^ 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