[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#450742: installation: sound driver problem - no sound on Dell Optiplex GX1



I had this problem on the previous model - Dell Optiplex GXa

The problem is that the wrong driver is being loaded. From the dmesg output you see
1)  isapnp: Card 'CS4236B'
2) error messages from the driver for the CS4232 (snd-cs4232.ko)
The correct driver is the snd-cs4236 driver.

The contents of files under /sys/devices/pnp1/01:01 are
                Filename        Contents
                card_id           CSC6835
                name             CS4236B
                01:01.00/id     CSC0000
                01:01.01/id     CSC000f
                01:01.02/id     CSC0010
                01:01.03/id     CSC0003

01:01.01 is the game port that has its own driver. Hence the full alias information for the sound card is
        pnp:cCSC6835dCSC0000dCSC0010dCSC0003*

A grep of modules.alias shows that snd_cs4236 claims this full alias. However examination of modules.alias also shows that snd_cs4232 claims
    pnp:dCSC0000*
i.e. The snd_cs4232 driver claims it supports all cards with an id of CSC0000. This is incorrect.

I changed file cs4236.c (both the snd-cs4232 and snd-cs4236 are built from this file) to stop the snd-cs4232 driver from claiming pnp:dCSC000* as follows
*** cs4236.c.000        2006-09-20 04:42:06.000000000 +0100
--- cs4236.c    2007-12-29 21:15:29.000000000 +0000
***************
*** 153,159 ****
--- 153,161 ----
   */
  static const struct pnp_device_id snd_cs4232_pnpbiosids[] = {
        { .id = "CSC0100" },
+ #if 0         /* dont list just CSC0000 as CS4236 devices also use this id */
        { .id = "CSC0000" },
+ #endif
        /* Guillemot Turtlebeach something appears to be cs4232 compatible
         * (untested) */
        { .id = "GIM0100" },
***************
*** 223,229 ****
        { .id = "CSC4637", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
        /* NewClear 3D - CX4237B-XQ3 */
        { .id = "CSC4837", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
!       /* Dell Optiplex GX1 - CS4236B */
        { .id = "CSC6835", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
        /* Dell P410 motherboard - CS4236B */
        { .id = "CSC6835", .devs = { { "CSC0000" }, { "CSC0010" } } },
--- 225,231 ----
        { .id = "CSC4637", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
        /* NewClear 3D - CX4237B-XQ3 */
        { .id = "CSC4837", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
!       /* Dell Optiplex GXa, Dell Optiplex GX1 - CS4236B */
        { .id = "CSC6835", .devs = { { "CSC0000" }, { "CSC0010" }, { "CSC0003" } } },
        /* Dell P410 motherboard - CS4236B */
        { .id = "CSC6835", .devs = { { "CSC0000" }, { "CSC0010" } } },

I rebooted using the rebuilt 4232 driver and the 4232 driver was nolonger loaded.


However despite the snd_cs4236 driver having the correct full alias, the snd_cs4236 driver was not loaded. I didn't bother investigating why this happened, I just worked around this problem by adding the line snd_cs423 to /etc/modules.
_________________________________________________________________
Make distant family not so distant with Windows Vista® + Windows Live™.
http://www.microsoft.com/windows/digitallife/keepintouch.mspx?ocid=TXT_TAGLM_CPC_VideoChat_distantfamily_012008


Reply to: