New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 676086 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Squawks/Quawks touchpad firmware update error after 4.4 kernel uprev

Project Member Reported by kathrelk...@chromium.org, Dec 20 2016

Issue description

Devices cannot update from 4.0 (the FSI firmware) after the kernel uprev.  Same failure happening on Squawks and Quawks.  These devices were using 3.10 kernel.

2016-12-19T13:43:16.933571-08:00 NOTICE chromeos-elan-touch-firmware-update[1150]: Board detected as 'squawks'
2016-12-19T13:43:16.967430-08:00 NOTICE chromeos-elan-touch-firmware-update[1184]: Touch controller reported Product ID: 57.0
2016-12-19T13:43:16.984371-08:00 NOTICE chromeos-elan-touch-firmware-update[1194]: Attempting to load FW: '/lib/firmware/elan_i2c.bin'
2016-12-19T13:43:16.987556-08:00 NOTICE chromeos-elan-touch-firmware-update[1196]: (which points to '/opt/google/touch/firmware/57.0_8.0.bin')
2016-12-19T13:43:16.991346-08:00 NOTICE chromeos-elan-touch-firmware-update[1198]: Hardware product id : 57.0
2016-12-19T13:43:16.994694-08:00 NOTICE chromeos-elan-touch-firmware-update[1200]: Updater product id  : 57.0
2016-12-19T13:43:17.001175-08:00 NOTICE chromeos-elan-touch-firmware-update[1204]: Current Firmware: 4.0
2016-12-19T13:43:17.004324-08:00 NOTICE chromeos-elan-touch-firmware-update[1207]: Updater Firmware: 8.0
2016-12-19T13:43:17.010056-08:00 NOTICE chromeos-elan-touch-firmware-update[1213]: Update needed, firmware out of date.
2016-12-19T13:43:17.013588-08:00 NOTICE chromeos-elan-touch-firmware-update[1216]: Update FW to 57.0_8.0
2016-12-19T13:43:17.018297-08:00 NOTICE chromeos-elan-touch-firmware-update[1219]: update_firmware try #1 failed... retrying.
2016-12-19T13:43:17.021333-08:00 NOTICE chromeos-elan-touch-firmware-update[1221]: update_firmware try #2 failed... retrying.
2016-12-19T13:43:17.024305-08:00 NOTICE chromeos-elan-touch-firmware-update[1223]: update_firmware try #3 failed... retrying.
2016-12-19T13:43:17.027234-08:00 NOTICE chromeos-elan-touch-firmware-update[1225]: update_firmware try #4 failed... retrying.
2016-12-19T13:43:17.031094-08:00 NOTICE chromeos-elan-touch-firmware-update[1227]: update_firmware try #5 failed... retrying.
2016-12-19T13:43:17.038218-08:00 NOTICE chromeos-elan-touch-firmware-update[1229]: error: Error updating touch firmware. 1


Example failures:
squawks - https://wmatrix.googleplex.com/testrun/unfiltered?test_ids=400527961
quawks - https://wmatrix.googleplex.com/testrun/unfiltered?test_ids=394588020


Kernel uprev to 4.4 happened in R57-9064.0.0.  There's some potential delay in test failures since and update will only happen after the machine runs the FSI AU test.  The first squawks failure happened in R57-9076.0.0, and the first quawks failure happened in R57-9066.0.0.  The hosts which have this failure don't recover (and thus keep failing).
 
Status: Started (was: Assigned)
It looks like the driver for elan that's in the 4.4 kernel is missing the ability to load the "fallback" fw location.  This was omitted since we didn't need it for any new systems.  Since we're moving old systems forward onto 4.4 this isn't true anymore.

I'll try and find the patch and test it in 4.4 and post the results here.
fyi, I've got a patch that I believe fixes this for elan ts & tp on 4.4 up for review now.  I tested it on my Quawks and everything was working once it was applied.

https://chromium-review.googlesource.com/#/c/424375/
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 11 2017

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/96209af51c6d08b8ee777ee84587173eeac85b38

commit 96209af51c6d08b8ee777ee84587173eeac85b38
Author: Charlie Mooney <charliemooney@chromium.org>
Date: Tue Jan 03 18:09:33 2017

CHROMUIM: input: Add fallback fw paths for Elan

Previously the elan_i2c and elants_i2c drivers would automatically load
firmwares from a filename including the product ID when a fw update was
requested.  This is the correct logic and how we'd like things to be
done going forward.  However, several of our old systems were just
bumped up to kernel 4.4 and they still have old touch devices that rely
on the driver falling back to a firmware filename without the product ID
included when the more device-specific path fails.  Since this
functionality was no longer in 4.4, when the devices were updated their
firmware updating capabilities stopped working.

This patch adds in a fallback for both Elan drivers to match the old
functionality.

BUG= chromium:676086 
TEST=I built the kernel and forced fw updates, they first tried the
new-style filenames then failed back to the legacy approach.

Change-Id: Ib2c5272895d1b6cbe3c53cd680ec359d854e2e1c
Signed-off-by: Charlie Mooney <charliemooney@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/424375
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>

[modify] https://crrev.com/96209af51c6d08b8ee777ee84587173eeac85b38/drivers/input/touchscreen/elants_i2c.c
[modify] https://crrev.com/96209af51c6d08b8ee777ee84587173eeac85b38/drivers/input/mouse/elan_i2c_core.c

Status: Fixed (was: Started)
Status: Verified (was: Fixed)

Sign in to add a comment