On Nov 28, 2015, Alexandre Oliva <[email protected]> wrote: > On Nov 28, 2015, Iru Cai <[email protected]> wrote: >> I bought a Chromebook pixel 2013 recently. When it runs Trisquel with >> Linux-libre 3.13, the touchscreen and touchpad work fine. However, in later >> kernel release, it needs to load non-free firmware in mxt_initialize(), >> which is in drivers/input/touchscreen/atmel_mxt_ts.c, and the atmel_mxt_ts >> driver fails to work. Is there a work around for this?
> I suspect blacklisting the specific driver might get the device to > fallback to generic emulation mode, which is presumably what you were > get on 3.13 (assuming there isn't a specific driver there). I've taken a look at the driver, and it is buggy. Even though it works without the blob, it treats an -EINVAL return from r*t_firmware_nowait as a hard error, instead of ignoring as it could/should, to work even upstream, when the firmware loader is disabled altogether in the build configuration. We could work around that bug in GNU Linux-libre, using an alternate call that fakes a success return status, but... I'd much rather it be fixed upstream, so that we can keep local changes to a minimum. Would you report that, saying it doesn't work with the firmware loader disabled, or if request_firmware_nowait fails for whatever reason, even though you know it could work just fine? In the mean time, I suggest patching the driver so that it doesn't take the error status from reject_firmware_nowait as fatal, reporting it but ignoring it. -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer _______________________________________________ linux-libre mailing list [email protected] http://www.fsfla.org/cgi-bin/mailman/listinfo/linux-libre
