Hi,
On 22-02-18 12:35, Mark Brown wrote:
On Thu, Feb 22, 2018 at 12:08:29PM +0100, Hans de Goede wrote:
So thinking more about this I think that having the codec driver only check device-properties and completely killing platform_data is the best way forward / best way to clean this up.
Combined with either device-tree or the machine driver setting these device properties for now, and in the future the ACPI tables can set these properties directly and we can hopefully won't need to add new quirks to the machine driver.
The device properties thing seems reasonable enough. I'm still not super convinced the machine driver is the right place, but let's see the code. I think ideally the arch code would have a way to put all the device property based quirks for these systems like we IIRC do for some DT fixups.
We've already tried something like that for fixing a similar situation (not enough info in ACPI for the driver to function) for silead touchscreens:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/drive...
Note that this device-property providing driver can only be builtin, it cannot be built as a module (otherwise we're back to having ordering issues). We (Dmitry and I) have gotten quite some flack about needlessly growing the bzImage size with data only used on a small subset of x86 devices and this construction is not something which I want to repeat (nor would advise others to repeat).
We really need to have a way to have these quirks table in a module which only loads on devices which need it. So in my mind the machine driver is a good place for this.
Regards,
Hans