Skip to content

Commit

Permalink
ALSA: maestro3: Enable docking support for Dell Latitude C810
Browse files Browse the repository at this point in the history
Enable I2S docking for Dell Latitude C810.
This allows the audio output on C/Port II to work (and probably also
the audio inputs on C/Dock II).

The volume can't be adjusted - none of the mixer controls currently
supported affects the I2S output (they belong to the STAC9721/23 AC'97
codec responsible for the laptop internal connectors & speakers).

Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
  • Loading branch information
Ondrej Zary authored and Takashi Iwai committed Nov 1, 2015
1 parent d1482fb commit 030270b
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions sound/pci/maestro3.c
Original file line number Diff line number Diff line change
Expand Up @@ -1932,12 +1932,19 @@ snd_m3_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val)
}


static void snd_m3_remote_codec_config(int io, int isremote)
static void snd_m3_remote_codec_config(struct snd_m3 *chip, int isremote)
{
int io = chip->iobase;
u16 tmp;

isremote = isremote ? 1 : 0;

outw((inw(io + RING_BUS_CTRL_B) & ~SECOND_CODEC_ID_MASK) | isremote,
io + RING_BUS_CTRL_B);
tmp = inw(io + RING_BUS_CTRL_B) & ~SECOND_CODEC_ID_MASK;
/* enable dock on Dell Latitude C810 */
if (chip->pci->subsystem_vendor == 0x1028 &&
chip->pci->subsystem_device == 0x00e5)
tmp |= M3I_DOCK_ENABLE;
outw(tmp | isremote, io + RING_BUS_CTRL_B);
outw((inw(io + SDO_OUT_DEST_CTRL) & ~COMMAND_ADDR_OUT) | isremote,
io + SDO_OUT_DEST_CTRL);
outw((inw(io + SDO_IN_DEST_CTRL) & ~STATUS_ADDR_IN) | isremote,
Expand Down Expand Up @@ -1989,7 +1996,7 @@ static void snd_m3_ac97_reset(struct snd_m3 *chip)
if (!chip->irda_workaround)
dir |= 0x10; /* assuming pci bus master? */

snd_m3_remote_codec_config(io, 0);
snd_m3_remote_codec_config(chip, 0);

outw(IO_SRAM_ENABLE, io + RING_BUS_CTRL_A);
udelay(20);
Expand Down

0 comments on commit 030270b

Please sign in to comment.