* Re: [PATCH] drivers: input: mouse: Use "static inline" instead of "inline" in "lifebook.h"
From: Chen Gang @ 2014-11-09 10:49 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-input, linux-kernel@vger.kernel.org, cmetcalf@tilera.com
In-Reply-To: <545F4602.10101@gmail.com>
After this patch, our tile can pass allmodconfig building. :-)
Thanks.
On 11/09/2014 06:46 PM, Chen Gang wrote:
> For inline function in header file, better to be "static inline", or may
> cause building break under the latest upstream gcc (although, probably,
> it should be the gcc's issue).
>
> The related error (with allmodconfig under tile):
>
> MODPOST 4002 modules
> ERROR: "lifebook_detect" [drivers/input/mouse/psmouse.ko] undefined!
>
> Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
> ---
> drivers/input/mouse/lifebook.h | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/input/mouse/lifebook.h b/drivers/input/mouse/lifebook.h
> index 4c4326c..0baf02a 100644
> --- a/drivers/input/mouse/lifebook.h
> +++ b/drivers/input/mouse/lifebook.h
> @@ -16,14 +16,14 @@ void lifebook_module_init(void);
> int lifebook_detect(struct psmouse *psmouse, bool set_properties);
> int lifebook_init(struct psmouse *psmouse);
> #else
> -inline void lifebook_module_init(void)
> +static inline void lifebook_module_init(void)
> {
> }
> -inline int lifebook_detect(struct psmouse *psmouse, bool set_properties)
> +static inline int lifebook_detect(struct psmouse *psmouse, bool set_properties)
> {
> return -ENOSYS;
> }
> -inline int lifebook_init(struct psmouse *psmouse)
> +static inline int lifebook_init(struct psmouse *psmouse)
> {
> return -ENOSYS;
> }
>
--
Chen Gang
Open share and attitude like air water and life which God blessed
^ permalink raw reply
* [PATCH] drivers: input: mouse: Use "static inline" instead of "inline" in "lifebook.h"
From: Chen Gang @ 2014-11-09 10:46 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, linux-kernel@vger.kernel.org
For inline function in header file, better to be "static inline", or may
cause building break under the latest upstream gcc (although, probably,
it should be the gcc's issue).
The related error (with allmodconfig under tile):
MODPOST 4002 modules
ERROR: "lifebook_detect" [drivers/input/mouse/psmouse.ko] undefined!
Signed-off-by: Chen Gang <gang.chen.5i5j@gmail.com>
---
drivers/input/mouse/lifebook.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/input/mouse/lifebook.h b/drivers/input/mouse/lifebook.h
index 4c4326c..0baf02a 100644
--- a/drivers/input/mouse/lifebook.h
+++ b/drivers/input/mouse/lifebook.h
@@ -16,14 +16,14 @@ void lifebook_module_init(void);
int lifebook_detect(struct psmouse *psmouse, bool set_properties);
int lifebook_init(struct psmouse *psmouse);
#else
-inline void lifebook_module_init(void)
+static inline void lifebook_module_init(void)
{
}
-inline int lifebook_detect(struct psmouse *psmouse, bool set_properties)
+static inline int lifebook_detect(struct psmouse *psmouse, bool set_properties)
{
return -ENOSYS;
}
-inline int lifebook_init(struct psmouse *psmouse)
+static inline int lifebook_init(struct psmouse *psmouse)
{
return -ENOSYS;
}
--
1.9.3
^ permalink raw reply related
* [PATCH 1/2] HID: lenovo: Move USB KEY_FILE to 0x00f9 to prevent scancode clash
From: Jamie Lentin @ 2014-11-09 7:54 UTC (permalink / raw)
To: Jiri Kosina, Antonio Ospite; +Cc: linux-input, linux-kernel, Jamie Lentin
In-Reply-To: <1415519670-24449-1-git-send-email-jm@lentin.co.uk>
The bluetooth keyboard also generates 0x00fa when the middle button is
pressed. Move the made-up report out of the way so we don't trigger
KEY_FILE when middle button is pressed
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
---
drivers/hid/hid-lenovo.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c
index bf227f7..4716f1e 100644
--- a/drivers/hid/hid-lenovo.c
+++ b/drivers/hid/hid-lenovo.c
@@ -85,13 +85,13 @@ static int lenovo_input_mapping_cptkbd(struct hid_device *hdev,
case 0x00f8: /* Fn-F11: View open applications (3 boxes) */
map_key_clear(KEY_SCALE);
return 1;
- case 0x00fa: /* Fn-Esc: Fn-lock toggle */
- map_key_clear(KEY_FN_ESC);
- return 1;
- case 0x00fb: /* Fn-F12: Open My computer (6 boxes) USB-only */
+ case 0x00f9: /* Fn-F12: Open My computer (6 boxes) USB-only */
/* NB: This mapping is invented in raw_event below */
map_key_clear(KEY_FILE);
return 1;
+ case 0x00fa: /* Fn-Esc: Fn-lock toggle */
+ map_key_clear(KEY_FN_ESC);
+ return 1;
}
}
@@ -207,8 +207,8 @@ static int lenovo_raw_event(struct hid_device *hdev,
&& data[0] == 0x15
&& data[1] == 0x94
&& data[2] == 0x01)) {
- data[1] = 0x0;
- data[2] = 0x4;
+ data[1] = 0x00;
+ data[2] = 0x01;
}
return 0;
--
2.1.0
^ permalink raw reply related
* Re: [PATCH v3 4/4] input: alps: Fix trackstick detection
From: Dmitry Torokhov @ 2014-11-09 8:05 UTC (permalink / raw)
To: Pali Rohár
Cc: Hans de Goede, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <1414884310-19842-5-git-send-email-pali.rohar@gmail.com>
Hi Pali,
On Sun, Nov 02, 2014 at 12:25:10AM +0100, Pali Rohár wrote:
> int alps_detect(struct psmouse *psmouse, bool set_properties)
> {
> - struct alps_data dummy;
> + unsigned char e6[4];
>
> - if (alps_identify(psmouse, &dummy) < 0)
> - return -1;
> + /*
> + * Try "E6 report".
> + * ALPS should return 0,0,10 or 0,0,100 if no buttons are pressed.
> + * The bits 0-2 of the first byte will be 1s if some buttons are
> + * pressed.
> + */
> + if (alps_rpt_cmd(psmouse, PSMOUSE_CMD_SETRES,
> + PSMOUSE_CMD_SETSCALE11, e6))
> + return -EIO;
> +
> + if ((e6[0] & 0xf8) != 0 || e6[1] != 0 || (e6[2] != 10 && e6[2] != 100))
> + return -EINVAL;
>
> if (set_properties) {
> + /*
> + * NOTE: To detect model and trackstick presence we need to do
> + * full device reset. To speed up detection and prevent
> + * calling duplicate initialization sequence (both in
> + * alps_detect() and alps_init()) we set model/protocol
> + * version and correct name in alps_init() (which will
> + * do full device reset). For now set name to DualPoint.
> + */
> psmouse->vendor = "ALPS";
> - psmouse->name = dummy.flags & ALPS_DUALPOINT ?
> - "DualPoint TouchPad" : "GlidePoint";
> - psmouse->model = dummy.proto_version << 8;
> + psmouse->name = "DualPoint TouchPad";
> }
> +
> return 0;
We can't do this; going by e6 only will give us false positives and
alps_detect is supposed to be authoritative.
Thanks.
--
Dmitry
^ permalink raw reply
* [PATCH 2/2] HID: lenovo: Don't set EV_REP to avoid repeating mice buttons
From: Jamie Lentin @ 2014-11-09 7:54 UTC (permalink / raw)
To: Jiri Kosina, Antonio Ospite; +Cc: linux-input, linux-kernel, Jamie Lentin
In-Reply-To: <1415519670-24449-1-git-send-email-jm@lentin.co.uk>
On the USB keyboard, the VENDOR hotkeys share the same device as the
mouse. Setting EV_REP also affects mouse buttons, so leave it off.
The bluetooth keyboard still has autorepeating mouse buttons, as it
only has one device and is set by the KEYBOARD pages.
Signed-off-by: Jamie Lentin <jm@lentin.co.uk>
---
drivers/hid/hid-lenovo.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/hid/hid-lenovo.c b/drivers/hid/hid-lenovo.c
index 4716f1e..4c55f4d 100644
--- a/drivers/hid/hid-lenovo.c
+++ b/drivers/hid/hid-lenovo.c
@@ -62,7 +62,6 @@ static int lenovo_input_mapping_cptkbd(struct hid_device *hdev,
/* HID_UP_LNVENDOR = USB, HID_UP_MSVENDOR = BT */
if ((usage->hid & HID_USAGE_PAGE) == HID_UP_MSVENDOR ||
(usage->hid & HID_USAGE_PAGE) == HID_UP_LNVENDOR) {
- set_bit(EV_REP, hi->input->evbit);
switch (usage->hid & HID_USAGE) {
case 0x00f1: /* Fn-F4: Mic mute */
map_key_clear(KEY_MICMUTE);
--
2.1.0
^ permalink raw reply related
* [PATCH 0/2] HID: lenovo: Small fixups for compact keyboards
From: Jamie Lentin @ 2014-11-09 7:54 UTC (permalink / raw)
To: Jiri Kosina, Antonio Ospite; +Cc: linux-input, linux-kernel, Jamie Lentin
Some small problems that have since been picked up since my patchset that
introduced support for the Thinkpad Compact Keyboards[0]. Both have been tested
on 3.18-rc1.
There are other outstanding problems that will require less trivial patches:
* The USB keyboard needs a patch to the HID descriptor table for the horizontal
scroll wheel events to be recognised.
* There is potentially a sensitivity control to expose via. sysfs, but needs
more investigation.
* The bluetooth keyboard mouse buttons still autorepeat. Since they are part of
the same input device as the keys I'm not sure this is currently solvable.
The first 2 I will sort out once enough free time appears, if you would prefer
a single large patchset, feel free to ignore this and wait for a bigger
patchset.
Many thanks,
[0] https://lkml.org/lkml/2014/7/23/702
Jamie Lentin (2):
HID: lenovo: Move USB KEY_FILE to 0x00f9 to prevent scancode clash
HID: lenovo: Don't set EV_REP to avoid repeating mice buttons
drivers/hid/hid-lenovo.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
--
2.1.0
^ permalink raw reply
* Re: [PATCH v3 3/4] input: alps: For protocol V3, do not process data when last packet's bit7 is set
From: Dmitry Torokhov @ 2014-11-09 7:50 UTC (permalink / raw)
To: Pali Rohár
Cc: Hans de Goede, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <1414884310-19842-4-git-send-email-pali.rohar@gmail.com>
Hi Pali,
On Sun, Nov 02, 2014 at 12:25:09AM +0100, Pali Rohár wrote:
> Sometimes on Dell Latitude laptops psmouse/alps driver receive invalid ALPS
> protocol V3 packets with bit7 set in last byte. More often it can be reproduced
> on Dell Latitude E6440 or E7440 with closed lid and pushing cover above touchpad.
>
> If bit7 in last packet byte is set then it is not valid ALPS packet. I was told
> that ALPS devices never send these packets. It is not know yet who send those
> packets, it could be Dell EC, bug in BIOS and also bug in touchpad firmware...
>
> With this patch alps driver does not process those invalid packets and drops it
> with PSMOUSE_FULL_PACKET so psmouse driver does not enter to out of sync state.
>
> This patch fix problem when psmouse driver still resetting ALPS device when
> laptop lid is closed because of receiving invalid packets in out of sync state.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> Tested-by: Pali Rohár <pali.rohar@gmail.com>
> Cc: stable@vger.kernel.org
> ---
> 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 7c47e97..e802d28 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -1181,6 +1181,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 wanted to apply it, but I would like some more data. Could you please
send me the dmesg with i8042.debug wit this patch in place?
Thanks!
--
Dmitry
--
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
* [Gigabyte M1405] Touchpad not detected
From: Adam Chrimes @ 2014-11-09 0:33 UTC (permalink / raw)
To: linux-input
[1.] One line summary of the problem:
[Gigabyte M1405] Touchpad not detected
[2.] Full description of the problem/report:
The touchpad does not appear in the list when I run "cat
/proc/bus/input/devices". The touchpad and its buttons are
unresponsive. This is a brand new installation of XBMCbuntu.
[3.] Keywords (i.e., modules, networking, kernel):
[4.] Kernel version (from /proc/version):
Linux version 3.18.0-031800rc3-generic (apw@tangerine) (gcc version
4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #201411022335 SMP Sun Nov 2
23:36:52 UTC 2014
[5.] Output of Oops.. message (if applicable) with symbolic
information resolved (see Documentation/oops-tracing.txt)
N/A
[6.] A small shell script or example program which triggers the
problem (if possible)
N/A
[7.] Environment
Description: Ubuntu 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 redServer 3.18.0-031800rc3-generic #201411022335 SMP Sun Nov 2
23:36:52 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
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 ctr ccm lirc_dev rc_core autofs4 gpio_ich
sparse_keymap dm_multipath scsi_dh kvm_intel kvm snd_hda_codec_hdmi
snd_hda_codec_realtek snd_hda_codec_generic arc4 snd_hda_intel ath9k
ath9k_common snd_hda_controller ath9k_hw snd_hda_codec ath joydev
snd_hwdep mac80211 snd_pcm snd_seq_midi snd_seq_midi_event cfg80211
snd_rawmidi snd_seq snd_seq_device snd_timer serio_raw snd soundcore
lpc_ich wmi nfsd mac_hid auth_rpcgss nfs_acl nfs lp lockd grace
parport sunrpc coretemp fscache btrfs xor raid6_pq dm_mirror
dm_region_hash dm_log ums_realtek uas usb_storage hid_generic usbhid
hid ahci libahci i915 r8169 mii i2c_algo_bit drm_kms_helper video drm
[7.2.] Processor information (from /proc/cpuinfo):
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Genuine Intel(R) CPU U7300 @ 1.30GHz
stepping : 10
microcode : 0xa07
cpu MHz : 1066.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl
aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm
sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bugs :
bogomips : 3466.60
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 : 23
model name : Genuine Intel(R) CPU U7300 @ 1.30GHz
stepping : 10
microcode : 0xa07
cpu MHz : 1066.000
cache size : 3072 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl
aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm
sse4_1 xsave lahf_lm dtherm tpr_shadow vnmi flexpriority
bugs :
bogomips : 3466.60
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
[7.3.] Module information (from /proc/modules):
ctr 13193 2 - Live 0x0000000000000000
ccm 17856 2 - Live 0x0000000000000000
lirc_dev 20018 0 - Live 0x0000000000000000
rc_core 27515 1 lirc_dev, Live 0x0000000000000000
autofs4 39306 1 - Live 0x0000000000000000
gpio_ich 13636 0 - Live 0x0000000000000000
sparse_keymap 13890 0 - Live 0x0000000000000000
dm_multipath 23188 0 - Live 0x0000000000000000
scsi_dh 14873 1 dm_multipath, Live 0x0000000000000000
kvm_intel 149984 0 - Live 0x0000000000000000
kvm 475233 1 kvm_intel, Live 0x0000000000000000
snd_hda_codec_hdmi 52670 1 - Live 0x0000000000000000
snd_hda_codec_realtek 76099 1 - Live 0x0000000000000000
snd_hda_codec_generic 69995 1 snd_hda_codec_realtek, Live 0x0000000000000000
arc4 12573 2 - Live 0x0000000000000000
snd_hda_intel 30783 0 - Live 0x0000000000000000
ath9k 162133 0 - Live 0x0000000000000000
ath9k_common 25638 1 ath9k, Live 0x0000000000000000
snd_hda_controller 32234 1 snd_hda_intel, Live 0x0000000000000000
ath9k_hw 460416 2 ath9k,ath9k_common, Live 0x0000000000000000
snd_hda_codec 144641 5
snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_controller,
Live 0x0000000000000000
ath 29397 3 ath9k,ath9k_common,ath9k_hw, Live 0x0000000000000000
joydev 17587 0 - Live 0x0000000000000000
snd_hwdep 17709 1 snd_hda_codec, Live 0x0000000000000000
mac80211 697143 1 ath9k, Live 0x0000000000000000
snd_pcm 106273 4
snd_hda_codec_hdmi,snd_hda_intel,snd_hda_controller,snd_hda_codec,
Live 0x0000000000000000
snd_seq_midi 13564 0 - Live 0x0000000000000000
snd_seq_midi_event 14899 1 snd_seq_midi, Live 0x0000000000000000
cfg80211 520257 4 ath9k,ath9k_common,ath,mac80211, Live 0x0000000000000000
snd_rawmidi 31197 1 snd_seq_midi, Live 0x0000000000000000
snd_seq 63540 2 snd_seq_midi,snd_seq_midi_event, Live 0x0000000000000000
snd_seq_device 14497 3 snd_seq_midi,snd_rawmidi,snd_seq, Live 0x0000000000000000
snd_timer 30118 2 snd_pcm,snd_seq, Live 0x0000000000000000
serio_raw 13483 0 - Live 0x0000000000000000
snd 84025 11 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_codec_generic,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer,
Live 0x0000000000000000
soundcore 15091 2 snd_hda_codec,snd, Live 0x0000000000000000
lpc_ich 21176 0 - Live 0x0000000000000000
wmi 19379 0 - Live 0x0000000000000000
nfsd 302377 2 - Live 0x0000000000000000
mac_hid 13275 0 - Live 0x0000000000000000
auth_rpcgss 60078 1 nfsd, Live 0x0000000000000000
nfs_acl 12883 1 nfsd, Live 0x0000000000000000
nfs 249589 0 - Live 0x0000000000000000
lp 17799 0 - Live 0x0000000000000000
lockd 94786 2 nfsd,nfs, Live 0x0000000000000000
grace 13295 2 nfsd,lockd, Live 0x0000000000000000
parport 42481 1 lp, Live 0x0000000000000000
sunrpc 302693 6 nfsd,auth_rpcgss,nfs_acl,nfs,lockd, Live 0x0000000000000000
coretemp 13638 0 - Live 0x0000000000000000
fscache 64236 1 nfs, Live 0x0000000000000000
btrfs 945983 0 - Live 0x0000000000000000
xor 21411 1 btrfs, Live 0x0000000000000000
raid6_pq 97812 1 btrfs, Live 0x0000000000000000
dm_mirror 22356 0 - Live 0x0000000000000000
dm_region_hash 21010 1 dm_mirror, Live 0x0000000000000000
dm_log 18527 2 dm_mirror,dm_region_hash, Live 0x0000000000000000
ums_realtek 18352 0 - Live 0x0000000000000000
uas 22673 0 - Live 0x0000000000000000
usb_storage 67010 5 ums_realtek,uas, Live 0x0000000000000000
hid_generic 12559 0 - Live 0x0000000000000000
usbhid 53155 0 - Live 0x0000000000000000
hid 110572 2 hid_generic,usbhid, Live 0x0000000000000000
ahci 34220 2 - Live 0x0000000000000000
libahci 32446 1 ahci, Live 0x0000000000000000
i915 1031913 4 - Live 0x0000000000000000
r8169 86907 0 - Live 0x0000000000000000
mii 13981 1 r8169, Live 0x0000000000000000
i2c_algo_bit 13564 1 i915, Live 0x0000000000000000
drm_kms_helper 99802 1 i915, Live 0x0000000000000000
video 20649 1 i915, Live 0x0000000000000000
drm 323675 6 i915,drm_kms_helper, Live 0x0000000000000000
[7.4.] Loaded driver and hardware information (/proc/ioports, /proc/iomem)
adam@redServer:/$ cat /proc/ioports
0000-0cf7 : PCI Bus 0000:00
0000-001f : dma1
0020-0021 : pic1
0040-0043 : timer0
0050-0053 : timer1
0060-0060 : keyboard
0062-0062 : PNP0C09:00
0062-0062 : EC data
0064-0064 : keyboard
0066-0066 : PNP0C09:00
0066-0066 : EC cmd
0070-0077 : rtc0
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
00f0-00f0 : PNP0C04:00
03c0-03df : vesafb
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
0430-0433 : iTCO_wdt
0450-0450 : ACPI PM2_CNT_BLK
0460-047f : iTCO_wdt
0500-053f : gpio_ich
0500-053f : pnp 00:00
0500-052f : gpio_ich
0600-060f : pnp 00:00
0610-0610 : pnp 00:00
0800-080f : pnp 00:00
0810-0817 : pnp 00:00
0820-0823 : pnp 00:00
0cf8-0cff : PCI conf1
0d00-ffff : PCI Bus 0000:00
164e-164f : pnp 00:00
2000-2fff : PCI Bus 0000:07
3000-3fff : PCI Bus 0000:04
3000-30ff : 0000:04:00.0
3000-30ff : r8169
4000-4fff : PCI Bus 0000:01
5000-501f : 0000:00:1f.3
5020-503f : 0000:00:1f.2
5020-503f : ahci
5040-505f : 0000:00:1d.3
5040-505f : uhci_hcd
5060-507f : 0000:00:1d.2
5060-507f : uhci_hcd
5080-509f : 0000:00:1d.1
5080-509f : uhci_hcd
50a0-50bf : 0000:00:1d.0
50a0-50bf : uhci_hcd
50c0-50df : 0000:00:1a.1
50c0-50df : uhci_hcd
50e0-50ff : 0000:00:1a.0
50e0-50ff : uhci_hcd
5100-5107 : 0000:00:1f.2
5100-5107 : ahci
5108-510f : 0000:00:1f.2
5108-510f : ahci
5110-5117 : 0000:00:02.0
5118-511b : 0000:00:1f.2
5118-511b : ahci
511c-511f : 0000:00:1f.2
511c-511f : ahci
adam@redServer:/$ cat /proc/iomem
00000000-00000fff : reserved
00001000-0009dfff : System RAM
0009e000-0009ffff : reserved
000a0000-000bffff : PCI Bus 0000:00
000c0000-000c7fff : Video ROM
000e0000-000fffff : reserved
000f0000-000fffff : System ROM
00100000-b9f00fff : System RAM
01000000-017ae357 : Kernel code
017ae358-01d1997f : Kernel data
01e80000-01fc8fff : Kernel bss
b9f01000-b9f3efff : ACPI Non-volatile Storage
b9f3f000-b9f6bfff : System RAM
b9f6c000-b9fbefff : reserved
b9fbf000-b9fe2fff : System RAM
b9fe3000-b9ff6fff : ACPI Tables
b9ff7000-b9ffffff : System RAM
ba000000-bfffffff : reserved
bc000000-bfffffff : Graphics Stolen Memory
c0000000-febfffff : PCI Bus 0000:00
c0000000-d1ffffff : PCI Bus 0000:01
d2000000-d2000fff : Intel Flush Page
e0000000-efffffff : 0000:00:02.0
f0000000-f1ffffff : PCI Bus 0000:01
f2000000-f23fffff : 0000:00:02.0
f2400000-f33fffff : PCI Bus 0000:04
f2400000-f2403fff : 0000:04:00.0
f2400000-f2403fff : r8169
f2404000-f2404fff : 0000:04:00.0
f2404000-f2404fff : r8169
f3400000-f43fffff : PCI Bus 0000:07
f4400000-f44fffff : 0000:00:02.1
f4500000-f54fffff : PCI Bus 0000:07
f4500000-f450ffff : 0000:07:00.0
f4500000-f450ffff : ath9k
f5500000-f64fffff : PCI Bus 0000:04
f5500000-f551ffff : 0000:04:00.0
f6500000-f6503fff : 0000:00:1b.0
f6500000-f6503fff : ICH HD audio
f6504000-f6504fff : 0000:00:1f.6
f6505000-f65057ff : 0000:00:1f.2
f6505000-f65057ff : ahci
f6505800-f6505bff : 0000:00:1d.7
f6505800-f6505bff : ehci_hcd
f6505c00-f6505fff : 0000:00:1a.7
f6505c00-f6505fff : ehci_hcd
f6506000-f65060ff : 0000:00:1f.3
f8000000-fbffffff : PCI MMCONFIG 0000 [bus 00-3f]
f8000000-fbffffff : reserved
fec00000-fec00fff : reserved
fec00000-fec003ff : IOAPIC 0
fed00000-fed003ff : HPET 0
fed00000-fed003ff : PNP0103:00
fed10000-fed13fff : reserved
fed10000-fed13fff : pnp 00:00
fed18000-fed19fff : reserved
fed18000-fed18fff : pnp 00:00
fed19000-fed19fff : pnp 00:00
fed1c000-fed1ffff : reserved
fed1c000-fed1ffff : pnp 00:00
fed1f410-fed1f414 : iTCO_wdt
fed20000-fed3ffff : pnp 00:00
fed40000-fed44fff : pnp 00:00
fed45000-fed8ffff : pnp 00:00
fee00000-fee00fff : Local APIC
fee00000-fee00fff : reserved
fee00000-fee00fff : pnp 00:00
ff800000-ffffffff : INT0800:00
ffe00000-ffffffff : reserved
100000000-13fffffff : System RAM
[7.5.] PCI information ('lspci -vvv' as root)
00:00.0 Host bridge: Intel Corporation Mobile 4 Series Chipset Memory
Controller Hub (rev 07)
Subsystem: Gigabyte Technology Co., Ltd Device 1405
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort+ >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0a <?>
Kernel driver in use: agpgart-intel
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series
Chipset Integrated Graphics Controller (rev 07) (prog-if 00 [VGA
controller])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 29
Region 0: Memory at f2000000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at e0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 5110 [size=8]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 41b2
Capabilities: [d0] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Kernel driver in use: i915
00:02.1 Display controller: Intel Corporation Mobile 4 Series Chipset
Integrated Graphics Controller (rev 07)
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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
Region 0: Memory at f4400000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [d0] 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-
00:1a.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #4 (rev 03) (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 4: I/O ports at 50e0 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #5 (rev 03) (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 21
Region 4: I/O ports at 50c0 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1a.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2
EHCI Controller #2 (rev 03) (prog-if 20 [EHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 D routed to IRQ 19
Region 0: Memory at f6505c00 (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 82801I (ICH9 Family) HD Audio
Controller (rev 03)
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 30
Region 0: Memory at f6500000 (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: 00000000fee0300c Data: 41d2
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=7f
Status: NegoPending- InProgress-
VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=80
Status: NegoPending- InProgress-
Capabilities: [130 v1] Root Complex Link
Desc: PortNumber=0f ComponentID=02 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=02
AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: snd_hda_intel
00:1c.0 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 1 (rev 03) (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=03, sec-latency=0
I/O behind bridge: 00004000-00004fff
Memory behind bridge: f0000000-f1ffffff
Prefetchable memory behind bridge: 00000000c0000000-00000000d1ffffff
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 (v1) 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 6.500W; 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-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 41d1
Capabilities: [90] Subsystem: Gigabyte Technology Co., Ltd Device 1405
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-
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-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=01 ComponentID=02 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=02
AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
00:1c.4 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 5 (rev 03) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Bus: primary=00, secondary=04, subordinate=06, sec-latency=0
I/O behind bridge: 00003000-00003fff
Memory behind bridge: f5500000-f64fffff
Prefetchable memory behind bridge: 00000000f2400000-00000000f33fffff
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 (v1) 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 #5, Speed 2.5GT/s, Width x1, ASPM L0s L1,
Exit Latency L0s <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM L0s Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train-
SlotClk+ DLActive+ BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd-
HotPlug+ Surprise+
Slot #4, PowerLimit 6.500W; 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-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 41e1
Capabilities: [90] Subsystem: Gigabyte Technology Co., Ltd Device 1405
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-
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-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=05 ComponentID=02 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=02
AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
00:1c.5 PCI bridge: Intel Corporation 82801I (ICH9 Family) PCI Express
Port 6 (rev 03) (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=07, subordinate=07, sec-latency=0
I/O behind bridge: 00002000-00002fff
Memory behind bridge: f4500000-f54fffff
Prefetchable memory behind bridge: 00000000f3400000-00000000f43fffff
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 (v1) 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 #6, Speed 2.5GT/s, Width x1, ASPM L0s L1,
Exit Latency L0s <256ns, L1 <4us
ClockPM- Surprise- LLActRep+ BwNot-
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train-
SlotClk+ DLActive+ BWMgmt- ABWMgmt-
SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd-
HotPlug+ Surprise+
Slot #5, PowerLimit 6.500W; 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-
Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0300c Data: 4142
Capabilities: [90] Subsystem: Gigabyte Technology Co., Ltd Device 1405
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-
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-
Capabilities: [180 v1] Root Complex Link
Desc: PortNumber=06 ComponentID=02 EltType=Config
Link0: Desc: TargetPort=00 TargetComponent=02
AssocRCRB- LinkType=MemMapped LinkValid+
Addr: 00000000fed1c000
Kernel driver in use: pcieport
00:1d.0 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #1 (rev 03) (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 4: I/O ports at 50a0 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.1 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #2 (rev 03) (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 19
Region 4: I/O ports at 5080 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.2 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #3 (rev 03) (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 D routed to IRQ 16
Region 4: I/O ports at 5060 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.3 USB controller: Intel Corporation 82801I (ICH9 Family) USB
UHCI Controller #6 (rev 03) (prog-if 00 [UHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 C routed to IRQ 18
Region 4: I/O ports at 5040 [size=32]
Capabilities: [50] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: uhci_hcd
00:1d.7 USB controller: Intel Corporation 82801I (ICH9 Family) USB2
EHCI Controller #1 (rev 03) (prog-if 20 [EHCI])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 f6505800 (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 Mobile PCI Bridge (rev 93)
(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=08, subordinate=08, sec-latency=32
I/O behind bridge: 0000f000-00000fff
Memory behind bridge: fff00000-000fffff
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: Gigabyte Technology Co., Ltd Device 1405
00:1f.0 ISA bridge: Intel Corporation ICH9M-E LPC Interface Controller (rev 03)
Subsystem: Gigabyte Technology Co., Ltd Device 1405
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Capabilities: [e0] Vendor Specific Information: Len=0c <?>
Kernel driver in use: lpc_ich
00:1f.2 SATA controller: Intel Corporation 82801IBM/IEM
(ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] (rev 03) (prog-if
01 [AHCI 1.0])
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 28
Region 0: I/O ports at 5108 [size=8]
Region 1: I/O ports at 511c [size=4]
Region 2: I/O ports at 5100 [size=8]
Region 3: I/O ports at 5118 [size=4]
Region 4: I/O ports at 5020 [size=32]
Region 5: Memory at f6505000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [80] MSI: Enable+ Count=1/16 Maskable- 64bit-
Address: fee0300c Data: 41a2
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 82801I (ICH9 Family) SMBus Controller (rev 03)
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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 f6506000 (64-bit, non-prefetchable) [size=256]
Region 4: I/O ports at 5000 [size=32]
00:1f.6 Signal processing controller: Intel Corporation 82801I (ICH9
Family) Thermal Subsystem (rev 03)
Subsystem: Gigabyte Technology Co., Ltd Device 1405
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-
Interrupt: pin C routed to IRQ 11
Region 0: Memory at f6504000 (64-bit, non-prefetchable) [size=4K]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 03)
Subsystem: Gigabyte Technology Co., Ltd Device 1458
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 27
Region 0: I/O ports at 3000 [size=256]
Region 2: Memory at f2404000 (64-bit, prefetchable) [size=4K]
Region 4: Memory at f2400000 (64-bit, prefetchable) [size=16K]
Expansion ROM at f5500000 [disabled] [size=128K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
PME(D0+,D1+,D2+,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee0300c Data: 4192
Capabilities: [70] Express (v2) Endpoint, MSI 01
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s
<512ns, L1 <64us
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
DevCtl: Report errors: Correctable- Non-Fatal- Fatal-
Unsupported-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 4096 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+
AuxPwr+ TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1,
Exit Latency L0s <512ns, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot-
LnkCtl: ASPM L0s Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, 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: 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: [ac] MSI-X: Enable- Count=4 Masked-
Vector table: BAR=4 offset=00000000
PBA: BAR=4 offset=00000800
Capabilities: [cc] Vital Product Data
Unknown small resource type 00, will not decode more.
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr+ BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] 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-
Capabilities: [160 v1] Device Serial Number 04-00-00-00-68-4c-e0-00
Kernel driver in use: r8169
07:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network
Adapter (PCI-Express) (rev 01)
Subsystem: AzureWave AW-NE785 / AW-NE785H 802.11bgn Wireless
Full or Half-size Mini PCIe Card
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 17
Region 0: Memory at f4500000 (64-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA
PME(D0+,D1+,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit-
Address: 00000000 Data: 0000
Capabilities: [60] Express (v2) Legacy Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s
<512ns, L1 <64us
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 L1,
Exit Latency L0s <512ns, L1 <64us
ClockPM- Surprise- LLActRep- BwNot-
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, 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: 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: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt-
UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt-
UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr+ BadTLP- BadDLLP+ Rollover+ Timeout+ NonFatalErr+
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
Capabilities: [140 v1] 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-
Capabilities: [160 v1] Device Serial Number 00-15-17-ff-ff-24-14-12
Capabilities: [170 v1] Power Budgeting <?>
Kernel driver in use: ath9k
[7.6.] SCSI information (from /proc/scsi/scsi)
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: TOSHIBA MK3265GS Rev: 3A
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi6 Channel: 00 Id: 00 Lun: 00
Vendor: Generic- Model: Multi-Card Rev: 1.00
Type: Direct-Access ANSI SCSI revision: 00
Host: scsi7 Channel: 00 Id: 00 Lun: 00
Vendor: Generic Model: External Rev: 1.03
Type: Direct-Access ANSI SCSI revision: 04
Host: scsi8 Channel: 00 Id: 00 Lun: 00
Vendor: WDC WD10 Model: EAVS-00D7B1 Rev:
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi9 Channel: 00 Id: 00 Lun: 00
Vendor: SAMSUNG Model: HM500JI Rev:
Type: Direct-Access ANSI SCSI revision: 02
[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):
adam@redServer:/$ ls /proc
1 13 1421 1629 179 1949 262 34 576 845
consoles kallsyms net timer_list
10 131 1424 1640 18 1987 27 38 59 857 cpuinfo
kcore pagetypeinfo timer_stats
1002 1315 1425 165 180 1988 2741 382 591 9 crypto
keys partitions tty
1035 1318 1429 166 181 2 28 39 595 945 devices
key-users sched_debug uptime
1039 133 1438 167 185 20 2847 40 606 960
diskstats kmsg schedstat version
1068 1331 144 17 186 21 29 409 614 987 dma
kpagecount scsi vmallocinfo
11 1341 147 170 187 22 3 5 615 988 driver
kpageflags self vmstat
1104 1345 149 171 1894 23 30 502 645 998
execdomains loadavg slabinfo zoneinfo
1154 135 15 172 1895 24 3072 505 646 999 fb
locks softirqs
1156 1354 1503 173 19 2408 31 508 7 acpi
filesystems mdstat stat
1182 1357 152 174 1902 25 3113 52 778 asound fs
meminfo swaps
1199 138 153 175 1907 252 32 525 79 buddyinfo
interrupts misc sys
12 14 154 176 1911 2573 3299 53 790 bus iomem
modules sysrq-trigger
1213 140 1576 177 193 26 33 558 8 cgroups ioports
mounts sysvipc
1215 141 158 178 194 261 3312 560 80 cmdline irq
mtrr thread-self
adam@redServer:/$ cat /proc/bus/input/devices
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input0
U: Uniq=
H: Handlers=kbd event0
B: PROP=0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0019 Vendor=0000 Product=0003 Version=0000
N: Name="Sleep Button"
P: Phys=PNP0C0E/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=4000 0 0
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input2
U: Uniq=
H: Handlers=event2
B: PROP=0
B: EV=21
B: SW=1
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: PROP=0
B: EV=3
B: KEY=10000000000000 0
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input4
U: Uniq=
H: Handlers=sysrq kbd event4
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input5
U: Uniq=
H: Handlers=kbd event5
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0
I: Bus=0003 Vendor=04d9 Product=2519 Version=0100
N: Name="Shenzhen LogoTech 2.4GHz receiver "
P: Phys=usb-0000:00:1d.0-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.0/0003:04D9:2519.0001/input/input6
U: Uniq=
H: Handlers=sysrq kbd event6
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=04d9 Product=2519 Version=0100
N: Name="Shenzhen LogoTech 2.4GHz receiver "
P: Phys=usb-0000:00:1d.0-1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb5/5-1/5-1:1.1/0003:04D9:2519.0002/input/input7
U: Uniq=
H: Handlers=kbd mouse0 event7
B: PROP=0
B: EV=1f
B: KEY=3f0003007f 0 0 483ffff17aff32d bf54444600000000 1f0001
120f938b17c000 677bfad941dfed 9ed68000004400 10000002
B: REL=143
B: ABS=100000000
B: MSC=10
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel Front Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input8
U: Uniq=
H: Handlers=event8
B: PROP=0
B: EV=21
B: SW=10
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel Rear Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input9
U: Uniq=
H: Handlers=event9
B: PROP=0
B: EV=21
B: SW=10
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input10
U: Uniq=
H: Handlers=event10
B: PROP=0
B: EV=21
B: SW=4
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel Front Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input11
U: Uniq=
H: Handlers=event11
B: PROP=0
B: EV=21
B: SW=4
I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1b.0/sound/card0/input12
U: Uniq=
H: Handlers=event12
B: PROP=0
B: EV=21
B: SW=140
[X.] Other notes, patches, fixes, workarounds:
An external USB mouse works when it is connected (and is visible in
proc/input/devices as the 2.4GHz receiver). The touchpad remains
dead.The touchpad works in windows 7 (dual boot system) so I am sure
it is not a hardware issue.
Please provide a link to your Launchpad bug report.
https://bugs.launchpad.net/bugs/1388335
^ permalink raw reply
* Re: [PATCH v3 2/4] input: alps: Allow 2 invalid packets without resetting device
From: Dmitry Torokhov @ 2014-11-08 21:00 UTC (permalink / raw)
To: Pali Rohár
Cc: Hans de Goede, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <1414884310-19842-3-git-send-email-pali.rohar@gmail.com>
On Sun, Nov 02, 2014 at 12:25:08AM +0100, Pali Rohár wrote:
> On some Dell Latitude laptops ALPS device or Dell EC send one invalid byte in
> 6 bytes ALPS packet. In this case psmouse driver enter out of sync state. It
> looks like that all other bytes in packets are valid and also device working
> properly. So there is no need to do full device reset, just need to wait
> for byte which match condition for first byte (start of packet). Because ALPS
> packets are bigger (6 or 8 bytes) default limit is small.
>
> This patch increase number of invalid bytes to size of 2 ALPS packets which
> psmouse driver can drop before do full reset.
>
> Resetting ALPS devices take some time and when doing reset on some Dell laptops
> touchpad, trackstick and also keyboard do not respond. So it is better to do it
> only if really necessary.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> Tested-by: Pali Rohár <pali.rohar@gmail.com>
> Cc: stable@vger.kernel.org
Applied, thank you.
> ---
> drivers/input/mouse/alps.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index a772745..7c47e97 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -2391,6 +2391,9 @@ int alps_init(struct psmouse *psmouse)
> /* We are having trouble resyncing ALPS touchpads so disable it for now */
> psmouse->resync_time = 0;
>
> + /* Allow 2 invalid packets without resetting device */
> + psmouse->resetafter = psmouse->pktsize * 2;
> +
> return 0;
>
> init_fail:
> --
> 1.7.9.5
>
--
Dmitry
--
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 v3 1/4] input: alps: Do not try to parse data as 3 bytes packet when driver is out of sync
From: Dmitry Torokhov @ 2014-11-08 20:52 UTC (permalink / raw)
To: Pali Rohár
Cc: Hans de Goede, Yunkang Tang, Tommy Will, linux-input,
linux-kernel
In-Reply-To: <1414884310-19842-2-git-send-email-pali.rohar@gmail.com>
On Sun, Nov 02, 2014 at 12:25:07AM +0100, Pali Rohár wrote:
> 5th and 6th byte of ALPS trackstick V3 protocol match condition for first byte
> of PS/2 3 bytes packet. When driver enters out of sync state and ALPS trackstick
> is sending data then driver match 5th, 6th and next 1st bytes as PS/2.
>
> It basically means if user is using trackstick when driver is in out of sync
> state driver will never resync. Processing these bytes as 3 bytes PS/2 data
> cause total mess (random cursor movements, random clicks) and make trackstick
> unusable until psmouse driver decide to do full device reset.
>
> Lot of users reported problems with ALPS devices on Dell Latitude E6440, E6540
> and E7440 laptops. ALPS device or Dell EC for unknown reason send some invalid
> ALPS PS/2 bytes which cause driver out of sync. It looks like that i8042 and
> psmouse/alps driver always receive group of 6 bytes packets so there are no
> missing bytes and no bytes were inserted between valid once.
>
> This patch does not fix root of problem with ALPS devices found in Dell Latitude
> laptops but it does not allow to process some (invalid) subsequence of 6 bytes
> ALPS packets as 3 bytes PS/2 when driver is out of sync.
>
> So with this patch trackstick input device does not report bogus data when
> also driver is out of sync, so trackstick should be usable on those machines.
>
> Unknown is also information which ALPS devices send 3 bytes packets and why
> ALPS driver needs to handle also bare PS/2 packets. According to git (and plus
> historic tree from bitkeeper) code for processing 3 bytes bare PS/2 packets
> is there since first version of alps.c existence (since 2.6.9-rc2).
I believe it was to handle external devices plugged into PS/2 ports on
Dell laptops (maybe?). Dell laptops do not use active multiplexing
controller so everything comes mixed into single data stream.
>
> We do not want to break some older ALPS devices. And disabling processing bare
> PS/2 packets when driver is out of sync should not break it.
>
> Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
> Tested-by: Pali Rohár <pali.rohar@gmail.com>
> Cc: stable@vger.kernel.org
Applied, thank you.
> ---
> drivers/input/mouse/alps.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
> index 2b0ae8c..a772745 100644
> --- a/drivers/input/mouse/alps.c
> +++ b/drivers/input/mouse/alps.c
> @@ -1156,7 +1156,9 @@ static psmouse_ret_t alps_process_byte(struct psmouse *psmouse)
> {
> struct alps_data *priv = psmouse->private;
>
> - if ((psmouse->packet[0] & 0xc8) == 0x08) { /* PS/2 packet */
> + /* FIXME: Could we receive bare PS/2 packets from DualPoint devices?? */
> + if (!psmouse->out_of_sync_cnt &&
> + (psmouse->packet[0] & 0xc8) == 0x08) { /* PS/2 packet */
> if (psmouse->pktcnt == 3) {
> alps_report_bare_ps2_packet(psmouse, psmouse->packet,
> true);
> --
> 1.7.9.5
>
--
Dmitry
--
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] Input: twl4030-pwrbutton: ensure a wakeup event is recorded.
From: Dmitry Torokhov @ 2014-11-08 20:36 UTC (permalink / raw)
To: NeilBrown; +Cc: linux-input, linux-kernel, GTA04 owners
In-Reply-To: <20141108104015.635a7388@notabene.brown>
On Sat, Nov 08, 2014 at 10:40:15AM +1100, NeilBrown wrote:
>
>
> This button is treated as a wakeup source, so we need to initialise it
> correctly.
>
> Without the device_init_wakeup() call, dev->power.wakeup will
> be NULL, and pm_wakeup_event() will do nothing.
>
> Signed-off-by: NeilBrown <neilb@suse.de>
Applied, thank you.
>
> diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c
> index fb3b63b2f85c..8400a1a34d87 100644
> --- a/drivers/input/misc/twl4030-pwrbutton.c
> +++ b/drivers/input/misc/twl4030-pwrbutton.c
> @@ -85,6 +85,7 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev)
> }
>
> platform_set_drvdata(pdev, pwr);
> + device_init_wakeup(&pdev->dev, true);
>
> return 0;
> }
--
Dmitry
^ permalink raw reply
* Re: Aorus X3+ touchpad not working
From: Dmitry Torokhov @ 2014-11-08 20:35 UTC (permalink / raw)
To: Hans de Goede; +Cc: Maximilien Levesque, Benjamin Tissoires, linux-input
In-Reply-To: <545DEC92.10903@redhat.com>
On Sat, Nov 08, 2014 at 11:12:34AM +0100, Hans de Goede wrote:
> Hi,
>
> On 11/08/2014 09:41 AM, Dmitry Torokhov wrote:
> > On Thu, Nov 06, 2014 at 03:51:48PM +0100, Hans de Goede wrote:
> >> Hi,
> >>
> >> On 11/06/2014 03:13 PM, Maximilien Levesque wrote:
> >>> Hi,
> >>> Thanks for your time!
> >>> Below is the output of dmesg with kernel boot parameter i8042.debug=1
> >>> All the best,
> >>
> >> Thanks, I'm afraid reading raw i8042 is not my forte though, Dmitry, can
> >> you take a look, and do you see why no ps/2 mouse (or touchpad) is seen ?
> >
> > ...
> >
> >>> [ 1.901600] input: AT Translated Set 2 keyboard as
> >>> /devices/platform/i8042/serio0/input/input4
> >>> [ 1.901749] i8042: [3] d4 -> i8042 (command)
> >>> [ 1.901809] i8042: [3] f2 -> i8042 (parameter)
> >
> > ...
> > No ACK to GET_ID
> >
> >>> [ 2.101556] i8042: [53] d4 -> i8042 (command)
> >>> [ 2.101622] i8042: [53] ed -> i8042 (parameter)
> >
> > Trying LEDs - no response - not a keyboard, atkbd signs out
> >
> >>> [ 2.165646] usb 1-2: new low-speed USB device number 2 using xhci_hcd
> >>> [ 2.185660] usb 3-1: new high-speed USB device number 2 using ehci-pci
> >>> [ 2.205674] usb 4-1: new high-speed USB device number 2 using ehci-pci
> >>> [ 2.301725] i8042: [103] 60 -> i8042 (command)
> >>> [ 2.301796] i8042: [103] 45 -> i8042 (parameter)
> >
> > Close AUX port
> >
> >>> [ 2.301911] i8042: [103] 60 -> i8042 (command)
> >>> [ 2.302025] i8042: [103] 47 -> i8042 (parameter)
> >
> > Enables AUX port again (to clear state - needed on some boxes)
> >
> >>> [ 2.302094] i8042: [103] d4 -> i8042 (command)
> >>> [ 2.302212] i8042: [103] f2 -> i8042 (parameter)
> >
> > psmouse - GET_ID - silence. So we decide there is no mouse.
>
> Dmitry, thanks for the analysis.
>
> So if I understand things correctly, then the aux port also gets
> probed for it having a second keyboard attached ?
Basically every "free" serio port is tried by every serio driver, so, depending
on link order and other factors psmouse driver can try both KBD and AUX port
and atkbd can do the same.
> I did not know
> that, could it be that this confuses the touchpad?
It should not as the first thing we try is GET_ID command which is the same for
keyboard and mouse and we did not get any response.
>
> > Have we tried i8042.reset?
>
> No not yet. Maximilien, can you try booting with
> i8042.reset=1 on the kernel commandline ?
OK, so it looks like it did not work. I wonder if we could try resetting the
mouse by sticking psmouse_reset before trying to isse the GETID command.
Thanks.
--
Dmitry
^ permalink raw reply
* Re: Aorus X3+ touchpad not working
From: Maximilien Levesque @ 2014-11-08 13:55 UTC (permalink / raw)
To: Hans de Goede; +Cc: Dmitry Torokhov, Benjamin Tissoires, linux-input
In-Reply-To: <545DEC92.10903@redhat.com>
Hi,
Thanks for the analysis and the advice.
I tested i8042.reset=1 and touchpad's still dead.
Best,
Max
On Sat, Nov 8, 2014 at 11:12 AM, Hans de Goede <hdegoede@redhat.com> wrote:
> Hi,
>
> On 11/08/2014 09:41 AM, Dmitry Torokhov wrote:
>> On Thu, Nov 06, 2014 at 03:51:48PM +0100, Hans de Goede wrote:
>>> Hi,
>>>
>>> On 11/06/2014 03:13 PM, Maximilien Levesque wrote:
>>>> Hi,
>>>> Thanks for your time!
>>>> Below is the output of dmesg with kernel boot parameter i8042.debug=1
>>>> All the best,
>>>
>>> Thanks, I'm afraid reading raw i8042 is not my forte though, Dmitry, can
>>> you take a look, and do you see why no ps/2 mouse (or touchpad) is seen ?
>>
>> ...
>>
>>>> [ 1.901600] input: AT Translated Set 2 keyboard as
>>>> /devices/platform/i8042/serio0/input/input4
>>>> [ 1.901749] i8042: [3] d4 -> i8042 (command)
>>>> [ 1.901809] i8042: [3] f2 -> i8042 (parameter)
>>
>> ...
>> No ACK to GET_ID
>>
>>>> [ 2.101556] i8042: [53] d4 -> i8042 (command)
>>>> [ 2.101622] i8042: [53] ed -> i8042 (parameter)
>>
>> Trying LEDs - no response - not a keyboard, atkbd signs out
>>
>>>> [ 2.165646] usb 1-2: new low-speed USB device number 2 using xhci_hcd
>>>> [ 2.185660] usb 3-1: new high-speed USB device number 2 using ehci-pci
>>>> [ 2.205674] usb 4-1: new high-speed USB device number 2 using ehci-pci
>>>> [ 2.301725] i8042: [103] 60 -> i8042 (command)
>>>> [ 2.301796] i8042: [103] 45 -> i8042 (parameter)
>>
>> Close AUX port
>>
>>>> [ 2.301911] i8042: [103] 60 -> i8042 (command)
>>>> [ 2.302025] i8042: [103] 47 -> i8042 (parameter)
>>
>> Enables AUX port again (to clear state - needed on some boxes)
>>
>>>> [ 2.302094] i8042: [103] d4 -> i8042 (command)
>>>> [ 2.302212] i8042: [103] f2 -> i8042 (parameter)
>>
>> psmouse - GET_ID - silence. So we decide there is no mouse.
>
> Dmitry, thanks for the analysis.
>
> So if I understand things correctly, then the aux port also gets
> probed for it having a second keyboard attached ? I did not know
> that, could it be that this confuses the touchpad?
>
>> Have we tried i8042.reset?
>
> No not yet. Maximilien, can you try booting with
> i8042.reset=1 on the kernel commandline ?
>
> Regards,
>
> Hans
^ permalink raw reply
* Re: [PATCH 1/5] input: touchscreen: ti_am335x_tsc Interchange touchscreen and ADC steps
From: Jonathan Cameron @ 2014-11-08 12:29 UTC (permalink / raw)
To: Vignesh R, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell,
Kumar Gala, Benoit Cousson, Tony Lindgren, Russell King,
Hartmut Knaack, Dmitry Torokhov, Lee Jones,
Sebastian Andrzej Siewior
Cc: Lars-Peter Clausen, Peter Meerwald, Samuel Ortiz, Felipe Balbi,
Brad Griffis, Sanjeev Sharma, Paul Gortmaker, Jan Kardell,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-iio-u79uwXL29TY76Z2rM5mHXA,
linux-input-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1415339350-17679-2-git-send-email-vigneshr-l0cyMroinI0@public.gmane.org>
On 07/11/14 05:49, Vignesh R wrote:
> From: Brad Griffis <bgriffis-l0cyMroinI0@public.gmane.org>
>
> This patch makes the initial changes required to workaround TSC-false
> pen-up interrupts. It is required to implement these changes in order to
> remove udelay in the TSC interrupt handler and false pen-up events.
> The charge step is to be executed immediately after sampling X+. Hence
> TSC is made to use higher numbered steps (steps 5 to 16 for 5 co-ordinate
> readouts, 4 wire TSC configuration) and ADC to use lower ones. Further
> X co-ordinate readouts must be the last to be sampled, thus co-ordinates
> are sampled in the order Y-Z-X.
>
> Signed-off-by: Brad Griffis <bgriffis-l0cyMroinI0@public.gmane.org>
> [vigneshr-l0cyMroinI0@public.gmane.org: Ported the patch from v3.12 to v3.18rc2]
>
> Signed-off-by: Vignesh R <vigneshr-l0cyMroinI0@public.gmane.org>
For the tiny bit in IIO
Acked-by: Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
All yours Lee/Dmitry.
Jonathan
> ---
> drivers/iio/adc/ti_am335x_adc.c | 5 ++--
> drivers/input/touchscreen/ti_am335x_tsc.c | 42 ++++++++++++++++++-------------
> 2 files changed, 26 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c
> index b730864731e8..adba23246474 100644
> --- a/drivers/iio/adc/ti_am335x_adc.c
> +++ b/drivers/iio/adc/ti_am335x_adc.c
> @@ -86,19 +86,18 @@ static void tiadc_step_config(struct iio_dev *indio_dev)
> {
> struct tiadc_device *adc_dev = iio_priv(indio_dev);
> unsigned int stepconfig;
> - int i, steps;
> + int i, steps = 0;
>
> /*
> * There are 16 configurable steps and 8 analog input
> * lines available which are shared between Touchscreen and ADC.
> *
> - * Steps backwards i.e. from 16 towards 0 are used by ADC
> + * Steps forwards i.e. from 0 towards 16 are used by ADC
> * depending on number of input lines needed.
> * Channel would represent which analog input
> * needs to be given to ADC to digitalize data.
> */
>
> - steps = TOTAL_STEPS - adc_dev->channels;
> if (iio_buffer_enabled(indio_dev))
> stepconfig = STEPCONFIG_AVG_16 | STEPCONFIG_FIFO1
> | STEPCONFIG_MODE_SWCNT;
> diff --git a/drivers/input/touchscreen/ti_am335x_tsc.c b/drivers/input/touchscreen/ti_am335x_tsc.c
> index 2ce649520fe0..1aeac9675fe7 100644
> --- a/drivers/input/touchscreen/ti_am335x_tsc.c
> +++ b/drivers/input/touchscreen/ti_am335x_tsc.c
> @@ -121,7 +121,7 @@ static void titsc_step_config(struct titsc *ts_dev)
> {
> unsigned int config;
> int i;
> - int end_step;
> + int end_step, first_step, tsc_steps;
> u32 stepenable;
>
> config = STEPCONFIG_MODE_HWSYNC |
> @@ -140,9 +140,11 @@ static void titsc_step_config(struct titsc *ts_dev)
> break;
> }
>
> - /* 1 … coordinate_readouts is for X */
> - end_step = ts_dev->coordinate_readouts;
> - for (i = 0; i < end_step; i++) {
> + tsc_steps = ts_dev->coordinate_readouts * 2 + 2;
> + first_step = TOTAL_STEPS - tsc_steps;
> + /* Steps 16 to 16-coordinate_readouts is for X */
> + end_step = first_step + tsc_steps;
> + for (i = end_step - ts_dev->coordinate_readouts; i < end_step; i++) {
> titsc_writel(ts_dev, REG_STEPCONFIG(i), config);
> titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY);
> }
> @@ -164,9 +166,9 @@ static void titsc_step_config(struct titsc *ts_dev)
> break;
> }
>
> - /* coordinate_readouts … coordinate_readouts * 2 is for Y */
> - end_step = ts_dev->coordinate_readouts * 2;
> - for (i = ts_dev->coordinate_readouts; i < end_step; i++) {
> + /* 1 ... coordinate_readouts is for Y */
> + end_step = first_step + ts_dev->coordinate_readouts;
> + for (i = first_step; i < end_step; i++) {
> titsc_writel(ts_dev, REG_STEPCONFIG(i), config);
> titsc_writel(ts_dev, REG_STEPDELAY(i), STEPCONFIG_OPENDLY);
> }
> @@ -179,7 +181,7 @@ static void titsc_step_config(struct titsc *ts_dev)
> titsc_writel(ts_dev, REG_CHARGECONFIG, config);
> titsc_writel(ts_dev, REG_CHARGEDELAY, CHARGEDLY_OPENDLY);
>
> - /* coordinate_readouts * 2 … coordinate_readouts * 2 + 2 is for Z */
> + /* coordinate_readouts + 1 ... coordinate_readouts + 2 is for Z */
> config = STEPCONFIG_MODE_HWSYNC |
> STEPCONFIG_AVG_16 | ts_dev->bit_yp |
> ts_dev->bit_xn | STEPCONFIG_INM_ADCREFM |
> @@ -194,8 +196,11 @@ static void titsc_step_config(struct titsc *ts_dev)
> titsc_writel(ts_dev, REG_STEPDELAY(end_step),
> STEPCONFIG_OPENDLY);
>
> - /* The steps1 … end and bit 0 for TS_Charge */
> - stepenable = (1 << (end_step + 2)) - 1;
> + /* The steps end ... end - readouts * 2 + 2 and bit 0 for TS_Charge */
> + stepenable = 1;
> + for (i = 0; i < tsc_steps; i++)
> + stepenable |= 1 << (first_step + i + 1);
> +
> ts_dev->step_mask = stepenable;
> am335x_tsc_se_set_cache(ts_dev->mfd_tscadc, ts_dev->step_mask);
> }
> @@ -209,6 +214,7 @@ static void titsc_read_coordinates(struct titsc *ts_dev,
> unsigned int read, diff;
> unsigned int i, channel;
> unsigned int creads = ts_dev->coordinate_readouts;
> + unsigned int first_step = TOTAL_STEPS - (creads * 2 + 2);
>
> *z1 = *z2 = 0;
> if (fifocount % (creads * 2 + 2))
> @@ -226,7 +232,7 @@ static void titsc_read_coordinates(struct titsc *ts_dev,
>
> channel = (read & 0xf0000) >> 16;
> read &= 0xfff;
> - if (channel < creads) {
> + if (channel > first_step + creads + 2) {
> diff = abs(read - prev_val_x);
> if (diff < prev_diff_x) {
> prev_diff_x = diff;
> @@ -234,19 +240,19 @@ static void titsc_read_coordinates(struct titsc *ts_dev,
> }
> prev_val_x = read;
>
> - } else if (channel < creads * 2) {
> + } else if (channel == first_step + creads + 1) {
> + *z1 = read;
> +
> + } else if (channel == first_step + creads + 2) {
> + *z2 = read;
> +
> + } else if (channel > first_step) {
> diff = abs(read - prev_val_y);
> if (diff < prev_diff_y) {
> prev_diff_y = diff;
> *y = read;
> }
> prev_val_y = read;
> -
> - } else if (channel < creads * 2 + 1) {
> - *z1 = read;
> -
> - } else if (channel < creads * 2 + 2) {
> - *z2 = read;
> }
> }
> }
>
^ permalink raw reply
* Re: Aorus X3+ touchpad not working
From: Hans de Goede @ 2014-11-08 10:12 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: Maximilien Levesque, Benjamin Tissoires, linux-input
In-Reply-To: <20141108084125.GF21475@dtor-ws>
Hi,
On 11/08/2014 09:41 AM, Dmitry Torokhov wrote:
> On Thu, Nov 06, 2014 at 03:51:48PM +0100, Hans de Goede wrote:
>> Hi,
>>
>> On 11/06/2014 03:13 PM, Maximilien Levesque wrote:
>>> Hi,
>>> Thanks for your time!
>>> Below is the output of dmesg with kernel boot parameter i8042.debug=1
>>> All the best,
>>
>> Thanks, I'm afraid reading raw i8042 is not my forte though, Dmitry, can
>> you take a look, and do you see why no ps/2 mouse (or touchpad) is seen ?
>
> ...
>
>>> [ 1.901600] input: AT Translated Set 2 keyboard as
>>> /devices/platform/i8042/serio0/input/input4
>>> [ 1.901749] i8042: [3] d4 -> i8042 (command)
>>> [ 1.901809] i8042: [3] f2 -> i8042 (parameter)
>
> ...
> No ACK to GET_ID
>
>>> [ 2.101556] i8042: [53] d4 -> i8042 (command)
>>> [ 2.101622] i8042: [53] ed -> i8042 (parameter)
>
> Trying LEDs - no response - not a keyboard, atkbd signs out
>
>>> [ 2.165646] usb 1-2: new low-speed USB device number 2 using xhci_hcd
>>> [ 2.185660] usb 3-1: new high-speed USB device number 2 using ehci-pci
>>> [ 2.205674] usb 4-1: new high-speed USB device number 2 using ehci-pci
>>> [ 2.301725] i8042: [103] 60 -> i8042 (command)
>>> [ 2.301796] i8042: [103] 45 -> i8042 (parameter)
>
> Close AUX port
>
>>> [ 2.301911] i8042: [103] 60 -> i8042 (command)
>>> [ 2.302025] i8042: [103] 47 -> i8042 (parameter)
>
> Enables AUX port again (to clear state - needed on some boxes)
>
>>> [ 2.302094] i8042: [103] d4 -> i8042 (command)
>>> [ 2.302212] i8042: [103] f2 -> i8042 (parameter)
>
> psmouse - GET_ID - silence. So we decide there is no mouse.
Dmitry, thanks for the analysis.
So if I understand things correctly, then the aux port also gets
probed for it having a second keyboard attached ? I did not know
that, could it be that this confuses the touchpad?
> Have we tried i8042.reset?
No not yet. Maximilien, can you try booting with
i8042.reset=1 on the kernel commandline ?
Regards,
Hans
^ permalink raw reply
* Re: Aorus X3+ touchpad not working
From: Dmitry Torokhov @ 2014-11-08 8:41 UTC (permalink / raw)
To: Hans de Goede; +Cc: Maximilien Levesque, Benjamin Tissoires, linux-input
In-Reply-To: <545B8B04.8070706@redhat.com>
On Thu, Nov 06, 2014 at 03:51:48PM +0100, Hans de Goede wrote:
> Hi,
>
> On 11/06/2014 03:13 PM, Maximilien Levesque wrote:
> > Hi,
> > Thanks for your time!
> > Below is the output of dmesg with kernel boot parameter i8042.debug=1
> > All the best,
>
> Thanks, I'm afraid reading raw i8042 is not my forte though, Dmitry, can
> you take a look, and do you see why no ps/2 mouse (or touchpad) is seen ?
...
> > [ 1.901600] input: AT Translated Set 2 keyboard as
> > /devices/platform/i8042/serio0/input/input4
> > [ 1.901749] i8042: [3] d4 -> i8042 (command)
> > [ 1.901809] i8042: [3] f2 -> i8042 (parameter)
...
No ACK to GET_ID
> > [ 2.101556] i8042: [53] d4 -> i8042 (command)
> > [ 2.101622] i8042: [53] ed -> i8042 (parameter)
Trying LEDs - no response - not a keyboard, atkbd signs out
> > [ 2.165646] usb 1-2: new low-speed USB device number 2 using xhci_hcd
> > [ 2.185660] usb 3-1: new high-speed USB device number 2 using ehci-pci
> > [ 2.205674] usb 4-1: new high-speed USB device number 2 using ehci-pci
> > [ 2.301725] i8042: [103] 60 -> i8042 (command)
> > [ 2.301796] i8042: [103] 45 -> i8042 (parameter)
Close AUX port
> > [ 2.301911] i8042: [103] 60 -> i8042 (command)
> > [ 2.302025] i8042: [103] 47 -> i8042 (parameter)
Enables AUX port again (to clear state - needed on some boxes)
> > [ 2.302094] i8042: [103] d4 -> i8042 (command)
> > [ 2.302212] i8042: [103] f2 -> i8042 (parameter)
psmouse - GET_ID - silence. So we decide there is no mouse.
Have we tried i8042.reset?
Thanks.
--
Dmitry
^ permalink raw reply
* Re: [PATCH 4/5] Input: elantech - provide a sysfs knob for crc_enabled
From: Dmitry Torokhov @ 2014-11-08 8:25 UTC (permalink / raw)
To: Ulrik De Bie; +Cc: linux-input, Hans de Goede, David Herrmann
In-Reply-To: <1409407846-15449-5-git-send-email-ulrik.debie-os@e2big.org>
On Sat, Aug 30, 2014 at 04:10:45PM +0200, Ulrik De Bie wrote:
> The detection of crc_enabled is known to fail for Fujitsu H730. A DMI
> blacklist is added for that, but it can be expected that other laptops
> will pop up with this.
>
> Here a sysfs knob is provided to alter the behaviour of crc_enabled.
> Writing 0 or 1 to it sets the variable to 0 or 1.
> Writing 2 to it will perform the detection and set the variable to 0
> or 1 according to the result of the detection.
> Reading it will show the crc_enabled variable (0 or 1).
>
This is over-complicated, please make it straight bool (0/1). If one
wants to redetect it can be done by unbinding and rebinding driver
through sysfs (either at driver level or serio - drvctl attribute -
level).
Thanks.
--
Dmitry
^ permalink raw reply
* Re: [PATCH 3/5] Input: elantech - report the middle button of the touchpad
From: Dmitry Torokhov @ 2014-11-08 8:23 UTC (permalink / raw)
To: Ulrik De Bie; +Cc: linux-input, Hans de Goede, David Herrmann
In-Reply-To: <1409407846-15449-4-git-send-email-ulrik.debie-os@e2big.org>
On Sat, Aug 30, 2014 at 04:10:44PM +0200, Ulrik De Bie wrote:
> In the past, no elantech was known with 3 touchpad mouse buttons.
> Fujitsu H730 is the first known elantech with a middle button. This commit
> enables this middle button.
>
> Reported-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Alfredo Gemma <alfredo.gemma@gmail.com>
> Signed-off-by: Ulrik De Bie <ulrik.debie-os@e2big.org>
> ---
> drivers/input/mouse/elantech.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
> index 67d56c0..e86bbd7 100644
> --- a/drivers/input/mouse/elantech.c
> +++ b/drivers/input/mouse/elantech.c
> @@ -563,6 +563,7 @@ static void elantech_input_sync_v4(struct psmouse *psmouse)
> } else {
> input_report_key(dev, BTN_LEFT, packet[0] & 0x01);
> input_report_key(dev, BTN_RIGHT, packet[0] & 0x02);
> + input_report_key(dev, BTN_MIDDLE, packet[0] & 0x04);
> }
>
> input_mt_report_pointer_emulation(dev, true);
> @@ -1150,6 +1151,7 @@ static int elantech_set_input_params(struct psmouse *psmouse)
> __clear_bit(EV_REL, dev->evbit);
>
> __set_bit(BTN_LEFT, dev->keybit);
> + __set_bit(BTN_MIDDLE, dev->keybit);
No, we should not advertise presence of middle button unconditionally. I
guess we need another DMI, at least for now.
> __set_bit(BTN_RIGHT, dev->keybit);
>
> __set_bit(BTN_TOUCH, dev->keybit);
> --
> 2.1.0
>
Thanks.
--
Dmitry
^ permalink raw reply
* Re: [PATCH 2/5] Input: elantech - Fix crc_enabled for Fujitsu H730
From: Dmitry Torokhov @ 2014-11-08 8:22 UTC (permalink / raw)
To: Ulrik De Bie; +Cc: linux-input, Hans de Goede, David Herrmann
In-Reply-To: <1409407846-15449-3-git-send-email-ulrik.debie-os@e2big.org>
On Sat, Aug 30, 2014 at 04:10:43PM +0200, Ulrik De Bie wrote:
> The Fujitsu H730 does not work with crc_enabled = 0, even though the
> crc_enabled bit in the firmware version indicated it would. When switching
> this value to crc_enabled to 1, the touchpad works. This patch uses
> DMI to detect H730.
>
> Reported-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Alfredo Gemma <alfredo.gemma@gmail.com>
> Signed-off-by: Ulrik De Bie <ulrik.debie-os@e2big.org>
Applied with some edits to minimize patch size, thank you.
> ---
> drivers/input/mouse/elantech.c | 65 ++++++++++++++++++++++++++++++------------
> drivers/input/mouse/elantech.h | 2 +-
> 2 files changed, 48 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
> index f0a55b4d..67d56c0 100644
> --- a/drivers/input/mouse/elantech.c
> +++ b/drivers/input/mouse/elantech.c
> @@ -1235,6 +1235,52 @@ static int elantech_set_input_params(struct psmouse *psmouse)
> return 0;
> }
>
> +/*
> + * Some hw_version 3 models go into error state when we try to set
> + * bit 3 and/or bit 1 of r10.
> + */
> +static const struct dmi_system_id no_hw_res_dmi_table[] = {
> +#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> + {
> + /* Gigabyte U2442 */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "U2442"),
> + },
> + },
> +#endif
> + { }
> +};
> +
> +/*
> + * Some hw_version 4 models do not work with crc_disabled
> + */
> +static const struct dmi_system_id elantech_dmi_crc_enabled[] = {
> +#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> + {
> + /* Fujitsu H730 does not work with crc_enabled == 0 */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "CELSIUS H730"),
> + },
> + },
> +#endif
> + { }
> +};
> +
> +/*
> + * Autodetect crc_enabled and verify override DMI table
> + */
> +static unsigned char elantech_detect_crc_enabled(struct elantech_data *etd)
> +{
> +
> +#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> + if (dmi_check_system(elantech_dmi_crc_enabled))
> + return 1;
> +#endif /* CONFIG_X86 */
> +
> + return ((etd->fw_version & 0x4000) == 0x4000);
> +}
> struct elantech_attr_data {
> size_t field_offset;
> unsigned char reg;
> @@ -1444,23 +1490,6 @@ static int elantech_reconnect(struct psmouse *psmouse)
> }
>
> /*
> - * Some hw_version 3 models go into error state when we try to set
> - * bit 3 and/or bit 1 of r10.
> - */
> -static const struct dmi_system_id no_hw_res_dmi_table[] = {
> -#if defined(CONFIG_DMI) && defined(CONFIG_X86)
> - {
> - /* Gigabyte U2442 */
> - .matches = {
> - DMI_MATCH(DMI_SYS_VENDOR, "GIGABYTE"),
> - DMI_MATCH(DMI_PRODUCT_NAME, "U2442"),
> - },
> - },
> -#endif
> - { }
> -};
> -
> -/*
> * determine hardware version and set some properties according to it.
> */
> static int elantech_set_properties(struct elantech_data *etd)
> @@ -1518,7 +1547,7 @@ static int elantech_set_properties(struct elantech_data *etd)
> * The signatures of v3 and v4 packets change depending on the
> * value of this hardware flag.
> */
> - etd->crc_enabled = ((etd->fw_version & 0x4000) == 0x4000);
> + etd->crc_enabled = elantech_detect_crc_enabled(etd);
>
> /* Enable real hardware resolution on hw_version 3 ? */
> etd->set_hw_resolution = !dmi_check_system(no_hw_res_dmi_table);
> diff --git a/drivers/input/mouse/elantech.h b/drivers/input/mouse/elantech.h
> index 6f3afec..c25127a 100644
> --- a/drivers/input/mouse/elantech.h
> +++ b/drivers/input/mouse/elantech.h
> @@ -128,11 +128,11 @@ struct elantech_data {
> unsigned char reg_25;
> unsigned char reg_26;
> unsigned char debug;
> + unsigned char crc_enabled;
> unsigned char capabilities[3];
> bool paritycheck;
> bool jumpy_cursor;
> bool reports_pressure;
> - bool crc_enabled;
> bool set_hw_resolution;
> unsigned char hw_version;
> unsigned int fw_version;
> --
> 2.1.0
>
--
Dmitry
^ permalink raw reply
* Re: [PATCH 1/5] Input: elantech - use elantech_report_trackpoint for hardware v4 too
From: Dmitry Torokhov @ 2014-11-08 8:21 UTC (permalink / raw)
To: Ulrik De Bie; +Cc: linux-input, Hans de Goede, David Herrmann
In-Reply-To: <1409407846-15449-2-git-send-email-ulrik.debie-os@e2big.org>
On Sat, Aug 30, 2014 at 04:10:42PM +0200, Ulrik De Bie wrote:
> The Fujitsu H730 has hardware v4 with a trackpoint. This enables
> the elantech_report_trackpoint for v4.
>
> Reported-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Stefan Valouch <stefan@valouch.com>
> Tested-by: Alfredo Gemma <alfredo.gemma@gmail.com>
> Signed-off-by: Ulrik De Bie <ulrik.debie-os@e2big.org>
Applied, thank you.
> ---
> drivers/input/mouse/elantech.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/input/mouse/elantech.c b/drivers/input/mouse/elantech.c
> index da51738..f0a55b4d 100644
> --- a/drivers/input/mouse/elantech.c
> +++ b/drivers/input/mouse/elantech.c
> @@ -792,6 +792,9 @@ static int elantech_packet_check_v4(struct psmouse *psmouse)
> unsigned char packet_type = packet[3] & 0x03;
> bool sanity_check;
>
> + if ((packet[3]&0x0f) == 0x06)
> + return PACKET_TRACKPOINT;
> +
> /*
> * Sanity check based on the constant bits of a packet.
> * The constant bits change depending on the value of
> @@ -877,10 +880,19 @@ static psmouse_ret_t elantech_process_byte(struct psmouse *psmouse)
>
> case 4:
> packet_type = elantech_packet_check_v4(psmouse);
> - if (packet_type == PACKET_UNKNOWN)
> + switch (packet_type) {
> + case PACKET_UNKNOWN:
> return PSMOUSE_BAD_DATA;
>
> - elantech_report_absolute_v4(psmouse, packet_type);
> + case PACKET_TRACKPOINT:
> + elantech_report_trackpoint(psmouse, packet_type);
> + break;
> +
> + default:
> + elantech_report_absolute_v4(psmouse, packet_type);
> + break;
> + }
> +
> break;
> }
>
> --
> 2.1.0
>
--
Dmitry
^ permalink raw reply
* Re: [PATCH] Input: gpio_keys: Make sure wake-up buttons work.
From: Rafael J. Wysocki @ 2014-11-08 0:49 UTC (permalink / raw)
To: NeilBrown; +Cc: Dmitry Torokhov, linux-input, linux-kernel, GTA04 owners
In-Reply-To: <20141108110058.6c5217e3@notabene.brown>
[-- Attachment #1: Type: text/plain, Size: 1887 bytes --]
On Saturday, November 08, 2014 11:00:58 AM NeilBrown wrote:
> On Fri, 7 Nov 2014 15:45:07 -0800 Dmitry Torokhov <dmitry.torokhov@gmail.com>
> wrote:
>
> > Hi Neil,
> >
> > On Sat, Nov 08, 2014 at 10:37:07AM +1100, NeilBrown wrote:
> > >
> > >
> > > If a key is to be used for wake-up, we must not disable
> > > the interrupt during suspend.
> > >
> > > Signed-off-by: NeilBrown <neilb@suse.de>
> > >
> > > diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> > > index 8c98e97f8e41..0b5e54ae343e 100644
> > > --- a/drivers/input/keyboard/gpio_keys.c
> > > +++ b/drivers/input/keyboard/gpio_keys.c
> > > @@ -526,6 +526,8 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
> > > */
> > > if (!button->can_disable)
> > > irqflags |= IRQF_SHARED;
> > > + if (button->wakeup)
> > > + irqflags |= IRQF_NO_SUSPEND;
> >
> > No, enable_irq_wake() should be enough. I believe Rafael has fixed that
> > in the core, right?
> >
>
> Interesting... you seem to be right, but I was having wakeup problems until
> I added that patch.
This was a fairly recent change made in 3.18-rc1.
> I didn't test exhaustively, but the first time my device entered suspend, the
> gpio-key didn't wake it up. Subsequent suspends did...
>
> After I applied this patch, it would reliably wake up even on the first
> suspend.
>
> So there seems to be something wrong, but maybe it is more subtle.
>
> Is there a good reason why enable_irq_wake() is only called just as the
> device is being suspended, and why disable_irq_wake() is called on resume?
> To me it would make more sense to just enable it once (if required) and leave
> it enabled....
On some platforms it actually changes the configuration of interrupt
controllers in to a "suspend mode" which is not appropriate for run time
AFAICS.
> I'll see what I can find.
Yes, please.
Rafael
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: [PATCH] Input: gpio_keys: Make sure wake-up buttons work.
From: NeilBrown @ 2014-11-08 0:00 UTC (permalink / raw)
To: Dmitry Torokhov
Cc: linux-input, linux-kernel, GTA04 owners, Rafael J. Wysocki
In-Reply-To: <20141107234507.GB4439@dtor-ws>
[-- Attachment #1: Type: text/plain, Size: 1582 bytes --]
On Fri, 7 Nov 2014 15:45:07 -0800 Dmitry Torokhov <dmitry.torokhov@gmail.com>
wrote:
> Hi Neil,
>
> On Sat, Nov 08, 2014 at 10:37:07AM +1100, NeilBrown wrote:
> >
> >
> > If a key is to be used for wake-up, we must not disable
> > the interrupt during suspend.
> >
> > Signed-off-by: NeilBrown <neilb@suse.de>
> >
> > diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> > index 8c98e97f8e41..0b5e54ae343e 100644
> > --- a/drivers/input/keyboard/gpio_keys.c
> > +++ b/drivers/input/keyboard/gpio_keys.c
> > @@ -526,6 +526,8 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
> > */
> > if (!button->can_disable)
> > irqflags |= IRQF_SHARED;
> > + if (button->wakeup)
> > + irqflags |= IRQF_NO_SUSPEND;
>
> No, enable_irq_wake() should be enough. I believe Rafael has fixed that
> in the core, right?
>
Interesting... you seem to be right, but I was having wakeup problems until
I added that patch.
I didn't test exhaustively, but the first time my device entered suspend, the
gpio-key didn't wake it up. Subsequent suspends did...
After I applied this patch, it would reliably wake up even on the first
suspend.
So there seems to be something wrong, but maybe it is more subtle.
Is there a good reason why enable_irq_wake() is only called just as the
device is being suspended, and why disable_irq_wake() is called on resume?
To me it would make more sense to just enable it once (if required) and leave
it enabled....
I'll see what I can find.
Thanks,
NeilBrown
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply
* Re: [PATCH] Input: gpio_keys: Make sure wake-up buttons work.
From: Dmitry Torokhov @ 2014-11-07 23:45 UTC (permalink / raw)
To: NeilBrown; +Cc: linux-input, linux-kernel, GTA04 owners, Rafael J. Wysocki
In-Reply-To: <20141108103707.45bcc7e3@notabene.brown>
Hi Neil,
On Sat, Nov 08, 2014 at 10:37:07AM +1100, NeilBrown wrote:
>
>
> If a key is to be used for wake-up, we must not disable
> the interrupt during suspend.
>
> Signed-off-by: NeilBrown <neilb@suse.de>
>
> diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
> index 8c98e97f8e41..0b5e54ae343e 100644
> --- a/drivers/input/keyboard/gpio_keys.c
> +++ b/drivers/input/keyboard/gpio_keys.c
> @@ -526,6 +526,8 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
> */
> if (!button->can_disable)
> irqflags |= IRQF_SHARED;
> + if (button->wakeup)
> + irqflags |= IRQF_NO_SUSPEND;
No, enable_irq_wake() should be enough. I believe Rafael has fixed that
in the core, right?
>
> error = devm_request_any_context_irq(&pdev->dev, bdata->irq,
> isr, irqflags, desc, bdata);
Thanks.
--
Dmitry
^ permalink raw reply
* [PATCH] Input: twl4030-pwrbutton: ensure a wakeup event is recorded.
From: NeilBrown @ 2014-11-07 23:40 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, linux-kernel, GTA04 owners
[-- Attachment #1: Type: text/plain, Size: 664 bytes --]
This button is treated as a wakeup source, so we need to initialise it
correctly.
Without the device_init_wakeup() call, dev->power.wakeup will
be NULL, and pm_wakeup_event() will do nothing.
Signed-off-by: NeilBrown <neilb@suse.de>
diff --git a/drivers/input/misc/twl4030-pwrbutton.c b/drivers/input/misc/twl4030-pwrbutton.c
index fb3b63b2f85c..8400a1a34d87 100644
--- a/drivers/input/misc/twl4030-pwrbutton.c
+++ b/drivers/input/misc/twl4030-pwrbutton.c
@@ -85,6 +85,7 @@ static int twl4030_pwrbutton_probe(struct platform_device *pdev)
}
platform_set_drvdata(pdev, pwr);
+ device_init_wakeup(&pdev->dev, true);
return 0;
}
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related
* [PATCH] Input: gpio_keys: Make sure wake-up buttons work.
From: NeilBrown @ 2014-11-07 23:37 UTC (permalink / raw)
To: Dmitry Torokhov; +Cc: linux-input, linux-kernel, GTA04 owners
[-- Attachment #1: Type: text/plain, Size: 660 bytes --]
If a key is to be used for wake-up, we must not disable
the interrupt during suspend.
Signed-off-by: NeilBrown <neilb@suse.de>
diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c
index 8c98e97f8e41..0b5e54ae343e 100644
--- a/drivers/input/keyboard/gpio_keys.c
+++ b/drivers/input/keyboard/gpio_keys.c
@@ -526,6 +526,8 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
*/
if (!button->can_disable)
irqflags |= IRQF_SHARED;
+ if (button->wakeup)
+ irqflags |= IRQF_NO_SUSPEND;
error = devm_request_any_context_irq(&pdev->dev, bdata->irq,
isr, irqflags, desc, bdata);
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 811 bytes --]
^ permalink raw reply related
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