Received: by 10.213.65.68 with SMTP id h4csp3955493imn; Tue, 3 Apr 2018 13:49:45 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/w70V9UGsiBowTGRsTp6k8Iz6wVczoRZjZvrkbvdBm9v6MhPdgaXejpgcNbMen+2Pr/m01 X-Received: by 2002:a17:902:ba87:: with SMTP id k7-v6mr15923131pls.124.1522788585229; Tue, 03 Apr 2018 13:49:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522788585; cv=none; d=google.com; s=arc-20160816; b=Gymb7bagZMDqfzI6gnJK9U37dxYc2Ym1gWrChvMx+FaV7dYqmDklf47PfGEVef4+iV fSb0hxzkJSSgaQyy5Xl1RZ4UnihIBFx5HVDX9YpIfrbTyx7VMI9G2kk5rdDiU+2lvx8O uDObj7dE8peXXB5V83czj+jlWSEnQF0RuD6A2p5SzjRr9L0xadDYTUVpWNc3psI5YWWR 9GUF14/UhDBJCjX/pK/o5f6wsF/47C9P20IWg1bdRFfn+/m+owxqlSyE4gWKM8knNj4h ujj2InyyB0jk7vg42Qtu1cMldbz5b3taPnRAsqzC21wslOlkTNFN9wX8RK6mBWC7QfpW gK3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-disposition :content-transfer-encoding:mime-version:in-reply-to:references:cc :user-agent:date:subject:to:from:dkim-signature :arc-authentication-results; bh=vk7EdDo90P1hbhaWOoTseO7wYi+9jlzmM55S8CPPBqY=; b=T1Cb/OaDp6vDtto6Lqs9caTjq5pYmxb34i7T7W43sRYa+HUbsHGWhk11OqC1JFx7zh g65B7HtOxoNJYhwuoDN+HWnzVzjxya/PmZAcPoGOl53iVNlSINV/W/y/xdL6M3H2v01y SqveejiuCHV73B/7Z8XdINBPojXhbB9aixBIEbQIkoDN5R6zjfRHnB5R/qT7Cg6tolmy zGSPpKX+WJB5nCFC1hRPNqjTh73b59H4Llsc7jBndPl8qcQpZ69gw4k/4fAvIP24bCpd ocEEdannbCmCTcTinCqnCbDr5+yId3vdcZRPSHJMO15bPRn8i0uybSjsyPT1tUSfHfrt /kjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@rainbow-software.org header.s=atlsmtp header.b=O02B58ob; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g24-v6si3808820plj.40.2018.04.03.13.49.30; Tue, 03 Apr 2018 13:49:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=temperror (no key for signature) header.i=@rainbow-software.org header.s=atlsmtp header.b=O02B58ob; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753121AbeDCUsW (ORCPT + 99 others); Tue, 3 Apr 2018 16:48:22 -0400 Received: from smtp-1b.atlantis.sk ([80.94.52.26]:45902 "EHLO smtp-1b.atlantis.sk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752495AbeDCUsV (ORCPT ); Tue, 3 Apr 2018 16:48:21 -0400 Received: from [192.168.0.2] (188-167-69-119.dynamic.chello.sk [188.167.69.119]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp-1b.atlantis.sk (Postfix) with ESMTPSA id 4D8E083491BD; Tue, 3 Apr 2018 22:48:19 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=rainbow-software.org; s=atlsmtp; t=1522788499; bh=dc69RvKVo41+IeTKx3HeASuEWG+nzek9OEG3n6FsGUA=; h=From:To:Subject:Date:Cc:References:In-Reply-To; b=O02B58obLxDGZk9h8fC9Uw75f5Z3+lz1EdE/OdsFK4k/RsXCygCUOW9fG5xgOAOF8 fei27Lj81vWhtffb1Ak4XREsfjLQ0AzgTKLEk9ijYpi+S1ltNWdKVzAIKL1oXZ7wua AMnHh3dDovkmpIYa1PDDkYEry4Ikgwyj/ux67wb8= From: Ondrej Zary To: Dmitry Torokhov Subject: Re: Sony Vaio VGN-CS31S touch sensor buttons breaking touchpad Date: Tue, 3 Apr 2018 22:48:16 +0200 User-Agent: KMail/1.9.10 (enterprise35 0.20100827.1168748) Cc: linux-input@vger.kernel.org, linux-kernel@vger.kernel.org References: <201804012321.56423.linux@rainbow-software.org> <201804022239.59370.linux@rainbow-software.org> In-Reply-To: <201804022239.59370.linux@rainbow-software.org> X-KMail-QuotePrefix: > MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201804032248.16465.linux@rainbow-software.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Monday 02 April 2018 22:39:59 Ondrej Zary wrote: > On Sunday 01 April 2018 23:21:55 Ondrej Zary wrote: > > Hello, > > I got a Sony Vaio VGN-CS31S laptop with Synaptics touchpad that exhibits > > weird behavior. It seems to work until I touch the "Touch Sensor Buttons" > > bar above the keyboard - then the buttons start to act weirdly: click or > > remain pressed (sometimes it breaks even without touching the bar). > > > > It seems to be a known problem with VGN-CS series: > > https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/+b > >ug /774877 > > https://wiki.freegeekvancouver.org/article/Laptop_Troubleshooting > > (mentions nasty partial workaround: psmouse.resetafter=1) > > > > Many models of the VGN-CS series have the Touch Sensor Buttons: > > ftp://124.40.41.224/PUB/MANUALS/SWT/Z009/Z009690111.PDF > > > > From the hardware side (can be found in MBX-196 Quanta GD2 schematic), > > the touch bar is a separate PS/2 device connected to third PS/2 port of > > the EC (Embedded Controller) WPC775L. The touchpad is on the 1st PS/2 > > port, 2nd port is unused. However, the i8042 does not seem to support > > multiplexing, the firmware probably combines the data internally somehow. > > Good news: it supports multiplexing but i8042_nomux is set because of: > /* > * Most (all?) VAIOs do not have external PS/2 ports nor > * they implement active multiplexing properly, and > * MUX discovery usually messes up keyboard/touchpad. > */ > .matches = { > DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), > DMI_MATCH(DMI_BOARD_NAME, "VAIO"), > }, > in drivers/input/serio/i8042-x86ia64io.h > (How can this be modified to exclude VGN-CS series?) > > Now only to write the touchbar driver... (seems to be detected at serio2 as > PS/2 Generic Mouse) The device acts almost as a synaptics touchpad. The 0x47 magic number (used in detection) is replaced by 0x43. The absolute packet format is simple: BYTE BIT 7 6 5 4 3 2 1 0 1 1 0 Z Z Z Z Z Z pressure (left) 2 0 0 0 0 L L L L position (left:11-8) 3 L L L L L L L L position (left:7-0) 4 1 1 Z Z Z Z Z Z pressure (right) 5 0 0 0 A R R R R position (right:11-8), A = AV MODE (center "button") 6 R R R R R R R R position (right:7-0) (left = media player part, right = volume part) maximum observed pressure was 0x38 Now find the command(s) to control the LEDs... What's the best way to present these controls to user space? Process the touch/drag actions in kernel. light up corresponding LEDs and emit key presses? -- Ondrej Zary