Thread (1 message) 1 message, 1 author, 2016-08-30

Re: [PATCH 4/8] ARM: dts: sun8i: Add touchscreen node for sun8i-a23-gt90h

From: Maxime Ripard <hidden>
Date: 2016-08-30 16:33:05
Also in: linux-arm-kernel

On Sat, Aug 27, 2016 at 10:32:16AM +0200, Hans de Goede wrote:
quoted
quoted
a13-94v-0:		a082 a23-tj-a23-q88-v4.0_20140815/GSL1680E_700_FW.fw	1024x600 inverted-x
a13-tzx-713b-v2.1:	a082 a23-tj-a23-q88-v4.0_20140815/GSL1680E_700_FW.fw	1024x600
a23-q8h-v3:		a082 a23-tj-a23-q88-v4.0_20140815/GSL1688_A70_FW.fw	 800x480 swapped-x-y
a23-tj-a23-q88-v4.0:	a082 a23-tj-a23-q88-v4.0_20140815/GSL1680E_700_FW.fw	1024x600
a23-tw-ao721-v41:	a082 a23-tj-a23-q88-v4.0_20140815/GSL1680E_700_FW.fw	1024x600 inverted-x
a23-ippo-q8h-v1.2:	a082 a23-tj-a23-q88-v4.0_20140815/GSL1688_A70_FW.fw	 800x480 swapped-x-y
a33-ippo-q8h-v1.2:	a082 a23-tj-a23-q88-v4.0_20140815/GSL1688_A70_FW.fw	 800x480 swapped-x-y
a33-tzx-723q4:		b482 a33-Q8_V2.4_1118/GSL1680_FW_D702.fw		 960x640 inverted-x
a33-q8-v2.4-1118:	b482 a33-Q8_V2.4_1118/GSL1680_FW_D702.fw		 960x640
a33-q8h-v1.5:		b482 a33-q8h-v1.5/GSL1688_A70_FW.fw			 960x640

I'm working on a q8hardware-mgr (inspired by the beagle bone cape mgr)
to automatically detect the touchscreen controller as well as the controller id
(the 2nd column above), and it will need to set a filename for the firmware
file based on this, deriving this from the machine compatible will
simply not work here.
I'm not sure why we need to stick to some insane naming scheme. Or why
can't we use symlinks.
All the above tablets use the same dts file (sun5i-a13-q8-tablet.dts,
sun8i-a23-q8-tablet.dts, sun8i-a33-q8-tablet.dts) while not having
the same touchscreen, as discussed in the past I'm working on a kernel
module to detect which touchscreen is in use and then automatically
update the dt using dynamic-devicetree since creating a separate dt
file for each variant is madness (there is a new revision every few
weeks).

I already have this sort of working and I can detect if a tablet has
a gsl1680 touchscreen (*) and if it is the a082 or b482 variant. Now
we could encode the chip-id (the a082/b482) in the firmware name
at the driver level, but that is still not good enough, e.g. these
2 tablets:

a23-q8h-v3:		a082 a23-tj-a23-q88-v4.0_20140815/GSL1688_A70_FW.fw	 800x480 swapped-x-y
a23-tj-a23-q88-v4.0:	a082 a23-tj-a23-q88-v4.0_20140815/GSL1680E_700_FW.fw	1024x600

Both use a a082 revision gsl1680 but need different firmware files,
since they both use sun8i-a23-q8-tablet.dts, so simply embedding
the machine compatible string in the filename passed to
request_firmware is not going to help.

I hope to get permission to get these firmware files added to
linux-firmware and then the different files need unique names,
and we need a way to specify in devicetree which file to load.

We can do some weird indirect dance but that is not really
helpful, esp. since I also expect users to need to override
which firmware file gets used in certain cases and in that
scenario simply specifying the filename certainly is the most
userfriendly.

TL;DR: we need a way to specify which firmware needs to
be loaded and this CANNOT be derived from the machine
compatible as devices with the same machine compatible
need different firmwares.
You convinced me. Let's see Rob's answer, on your new serie, but since
it's what he suggested, that should be ok.

I'll merge it as soon as he's ok with it.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help