All of lore.kernel.org
 help / color / mirror / Atom feed
* Recognition for ECS K7VTA3 integrated VIA 8233A in via82xx.c
@ 2004-12-28 14:39 Marco Matarazzo
  0 siblings, 0 replies; only message in thread
From: Marco Matarazzo @ 2004-12-28 14:39 UTC (permalink / raw)
  To: linux-kernel

This is a fast little patch to add automatic recognition of some (older?) model of
VIA8233A integrated audio that have to be configured with dxs_support = 4 (NO_VRA).

With dxs_support set to 1 (ENABLE) or 3 (48K, default without that) the audio works but
it's REALLY REALLY REALLY poor.

I see that ECS K7VTA3 support is already there, but mine shows a different vendor/device
codes. I tried to find out what revision my board is, and i THINK it's a 6.0a, I'm not
sure (it's not clear on both manual and board itself, at least to me). I tried that patch
with a friend's board (same version, we bought them togheter) and it works. I hope to
hear from someone else that have the same version I have.

diff -ur linux-2.6.10/sound/pci/via82xx.c linux-2.6.10-storm/sound/pci/via82xx.c
--- linux-2.6.10/sound/pci/via82xx.c	2004-12-24 22:35:24.000000000 +0100
+++ linux-2.6.10-storm/sound/pci/via82xx.c	2004-12-27 17:26:07.368716640 +0100
@@ -2094,6 +2094,7 @@
		{ .vendor = 0x1005, .device = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */
		{ .vendor = 0x1019, .device = 0x0996, .action = VIA_DXS_48K },
		{ .vendor = 0x1019, .device = 0x0a81, .action = VIA_DXS_NO_VRA }, /* ECS K7VTA3 v8.0 */
+		{ .vendor = 0x1019, .device = 0x1841, .action = VIA_DXS_NO_VRA }, /* ECS K7VTA3 (maybe v6.0a) */
		{ .vendor = 0x1019, .device = 0x0a85, .action = VIA_DXS_NO_VRA }, /* ECS L7VMM2 */
		{ .vendor = 0x1025, .device = 0x0033, .action = VIA_DXS_NO_VRA }, /* Acer Inspire 1353LM */
		{ .vendor = 0x1043, .device = 0x8095, .action = VIA_DXS_NO_VRA }, /* ASUS A7V8X (FIXME: possibly VIA_DXS_ENABLE?)*/


I also applied the following patch to identify vendor/device codes.

BTW, i would like to have some explainations here. I can accept an answer
like "Go Learn By Yourself" :-)

I wrote this patch using an approach that needs not so much knowledge of
hardware, I just looked in the code and understood more or less how it works.
I guess the two codes that come out from :

         pci_read_config_word(pci, PCI_SUBSYSTEM_VENDOR_ID, &subsystem_vendor);
         pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &subsystem_device);

*should* be the vendor id and the device id, as usual. BUT these are not, as
shown in /proc/pci:

[...]
   Bus  0, device  17, function  5:
     Class 0401: PCI device 1106:3059 (rev 80).
       IRQ 5.
       I/O at 0xe400 [0xe4ff].
[...]

and in fact the following patch (that i used to find the two values) shown
something else.

I know that probably I am wrong, and probably these pairs are simply
different things. Can someone can enlighten me or point me somewhere to read anything?

Noobish thanks =)

diff -ur linux-2.6.10/sound/pci/via82xx.c linux-2.6.10-storm/sound/pci/via82xx.c
--- linux-2.6.10/sound/pci/via82xx.c	2004-12-24 22:35:24.000000000 +0100
+++ linux-2.6.10-storm/sound/pci/via82xx.c	2004-12-27 17:26:07.368716640 +0100
@@ -2146,6 +2147,7 @@
	printk(KERN_INFO "via82xx: Assuming DXS channels with 48k fixed sample rate.\n");
	printk(KERN_INFO "         Please try dxs_support=1 or dxs_support=4 option\n");
	printk(KERN_INFO "         and report if it works on your machine.\n");
+	printk(KERN_INFO "         (vendor = 0x%x , device = 0x%x).\n", subsystem_vendor, subsystem_device);
	return VIA_DXS_48K;
};


BTW2: the [PATCH] tag have to/should/could be used when submitting patches like that?


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2004-12-28 14:38 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-12-28 14:39 Recognition for ECS K7VTA3 integrated VIA 8233A in via82xx.c Marco Matarazzo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.