David Henningsson wrote at Thursday, February 23, 2012 1:31 AM: > On 02/23/2012 01:01 AM, Andres Cimmarusti wrote: > >> If the new two pins can be never used, i.e. physically unreachable, > >> we may disable these pins by giving the proper default pin-config > >> values. Usually it's a job of BIOS. But if BIOS doesn't do it, user > >> need to do it manually. > >> > >> Build your kernel with CONFIG_SND_HDA_HWDEP=y, > >> CONFIG_SND_HDA_RECONFIG=y, CONFIG_SND_HDA_PATCH_LOADER=y. > >> I guess most of distro kernels are built with them. > >> Then create a file containing below in /lib/firmware, such as, > >> /lib/firmware/ibx-hdmi: > >> > >> ================================================================ > >> [codec] > >> 0x80862804 0x80860101 3 > >> [pincfg] > >> 0x04 0x411111f0 > >> 0x06 0x411111f0 > >> ================================================================ > >> > >> Now pass this file to "patch" module option for snd-hda-intel. > >> For example, create a file in /etc/modprobe.d/, > >> e.g. /etc/modprobe.d/50-hdmi.conf, containing the line > >> > >> options snd-hda-intel patch="ibx-hdmi" > >> > >> Then reload the driver or reboot. This will disable pins 0x04 and > >> 0x06 so that only the pin 0x05 will be used. > > > > I've tested this workaround and it works well. I don't suppose this > > could be added as a quirk to the kernel for this particular device? > > (when and only if there's only one physically accessible HDMI > > connector). > > Stephen, could you comment on this? Are we guaranteed a certain board > configuration (i e which pins are physically connected or not) given a > PCI SSID, or anything else that can be used as a key to a quirk table? I > think I've asked you before and that the answer was "no", but my memory > could be failing me.
Any quirks would definitely have to include the PCI subsystem vendor ID and subsystem device ID to stand any chance of working; the main dev and vendor IDs certainly aren't enough. For NVIDIA GPUs, my expectation is that matching on all 4 IDs would often provide a unique key that determines which quirks to apply. However, the subsystem IDs are assigned by OEMs, and I have no idea whether they re- use the same IDs for different boards sometimes (I believe they shouldn't, but that doesn't necessarily mean anything). I assume the situation is identical for Intel graphics chips, but I can't really comment there at all! In summary: Our GPUs have a bunch of output port pins, and it's up to the individual board design which of those to use for which ports. There should be a 1:1 mapping between the 4-part PCI ID and the set of ports used and what for, but there's no way to guarantee that's true across all boards. Finally, if we did start quirking this, a complete table would end up being potentially enormous; an entry for every graphics board or mother- board with integrated graphics ever made... -- nvpublic