Mainline Linux-libre for Chromebook pixel 2013?

Alexandre Oliva lxoliva at
Sun Nov 29 15:00:06 UTC 2015

On Nov 28, 2015, Alexandre Oliva <lxoliva at> wrote:

> On Nov 28, 2015, Iru Cai <mytbk920423 at> 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

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
You must be the change you wish to see in the world. -- Gandhi
Be Free! --   FSF Latin America board member
Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer

More information about the linux-libre mailing list