Re: [PATCH] si2157: Add support for Logilink VG0022A.

From: Mauro Carvalho Chehab
Date: Thu Oct 03 2019 - 16:03:38 EST


Em Thu, 3 Oct 2019 21:51:35 +0200
Gonsolo <gonsolo@xxxxxxxxx> escreveu:

> > 1) The firmware file is likely at the Windows driver for this device
> > (probably using a different format). It should be possible to get
> > it from there.
>
> If you tell me how I'm willing to do this. :)

I don't know. I was not the one that extracted the firmware. I guess
Antti did it.

I suspect that there are some comments about that in the past at the
ML. seek at lore.kernel.org.

>
> > 2) Another possibility would be to add a way to tell the si2168 driver
> > to not try to load a firmware, using the original one. That would
> > require adding a field at si2168_config to allow signalizing to it
> > that it should not try to load a firmware file, and add a quirk at
> > the af9035 that would set such flag for Logilink VG0022A.
>
> I don't get this. Which firmware, si2168 or si2157?

The one that it is causing the problem. If I understood well, the
culprit was the si2168 firmware.

> I'm still for option 3: If there is a bogus chip revision number it's
> likely the VG0022A and we can safely set fw to NULL, in which case
> everything works.
> All already working devices will continue to work as before.
> With a low probability there are other devices that will return 0xffff
> but a) they didn't work until now and b) they receive a clear message
> that they return bogus numbers and this works just for the VG0022A, in
> which case this hardware can be tested.
> At last, *my* VG0022A will work without a custom kernel which I'm a
> big fan of. :))
>
> Are there any counterarguments except that it is not the cleanest
> solution in the universe? ;)

That's a really bad solution. Returning 0xff is what happens when
things go wrong during I2C transfers. Several problems can cause it,
including device misfunction. Every time someone comes with a patch
trying to ignore it, things go sideways for other devices (existing
or future ones).

Ignoring errors is always a bad idea.

Also, it is a very bad idea to load a firmware that it is not
compatible with a device. There are even cases of devices that
were burned due to that[1].

[1] XCeive has two versions of 3028/2028 chipsets. One with a
"normal power" and a "low power" version. If the firmware for
the "normal power" (version 2.7) is used at the "low power" chip
(with requires version 3.6), it makes the chipset hotter and
reduces a lot the lifetime of the tuner.

Thanks,
Mauro