← Back to team overview

desktop-packages team mailing list archive

[Bug 893210] Re: [Dell OptiPlex GX620 - AD1981b, playback] No sound at all

 

diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
index 0e9d75b..9e659e2 100644
--- a/include/sound/ac97_codec.h
+++ b/include/sound/ac97_codec.h
@@ -31,6 +31,7 @@
 #include <sound/pcm.h>
 #include <sound/control.h>
 #include <sound/info.h>
+#include <sound/jack.h>
 
 /* maximum number of devices on the AC97 bus */
 #define	AC97_BUS_MAX_DEVICES	4
@@ -531,6 +532,10 @@ struct snd_ac97 {
 	struct device dev;
 
 	struct snd_pcm_chmap *chmaps[2]; /* channel-maps (optional) */
+
+	struct snd_jack *hp_jack;
+	struct snd_jack *lo_jack;
+	struct snd_jack *sp_jack;
 };
 
 #define to_ac97_t(d) container_of(d, struct snd_ac97, dev)
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index f4234ed..581000c 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -1886,6 +1886,23 @@ static int patch_ad1981a(struct snd_ac97 *ac97)
 static const struct snd_kcontrol_new snd_ac97_ad198x_2cmic =
 AC97_SINGLE("Stereo Mic", AC97_AD_MISC, 6, 1, 0);
 
+#define AD198X_JS1_ST		0x08
+#define AD198X_JS0_ST		0x04
+
+void ad198x_handle_hp_jack(struct snd_ac97 *ac97)
+{
+	bool hp_plugged = (snd_ac97_read(ac97, AC97_AD_JACK_SPDIF) &
+				AD198X_JS1_ST) == AD198X_JS1_ST; 
+	snd_jack_report(ac97->hp_jack, hp_plugged ? SND_JACK_HEADPHONE : 0);
+}
+
+void ad198x_handle_lo_jack(struct snd_ac97 *ac97)
+{
+	bool lo_plugged = (snd_ac97_read(ac97, AC97_AD_JACK_SPDIF) &
+				AD198X_JS0_ST) == AD198X_JS0_ST; 
+	snd_jack_report(ac97->lo_jack, lo_plugged ? SND_JACK_LINEOUT : 0);
+}
+
 static int patch_ad1981b_specific(struct snd_ac97 *ac97)
 {
 	int err;
@@ -1894,8 +1911,23 @@ static int patch_ad1981b_specific(struct snd_ac97 *ac97)
 		return err;
 	if (check_list(ac97, ad1981_jacks_blacklist))
 		return 0;
-	return patch_build_controls(ac97, snd_ac97_ad1981x_jack_sense,
+	err = patch_build_controls(ac97, snd_ac97_ad1981x_jack_sense,
 				    ARRAY_SIZE(snd_ac97_ad1981x_jack_sense));
+	if (err < 0)
+		return err;
+	if (( err = snd_jack_new(ac97->bus->card, "Headphone", SND_JACK_HEADPHONE,
+		   &ac97->hp_jack, true, false)) < 0)
+		return err;
+	ad198x_handle_hp_jack(ac97);
+	if (( err = snd_jack_new(ac97->bus->card, "Line Out", SND_JACK_LINEOUT,
+		   &ac97->lo_jack, true, false)) < 0)
+		return err;
+	ad198x_handle_lo_jack(ac97);
+	if (( err = snd_jack_new(ac97->bus->card, "Internal Speaker", SND_JACK_LINEOUT,
+		   &ac97->sp_jack, true, true)) < 0)
+		return err;	
+	snd_jack_report(ac97->sp_jack, SND_JACK_LINEOUT);
+	return 0;
 }
 
 static const struct snd_ac97_build_ops patch_ad1981b_build_ops = {

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to alsa-driver in Ubuntu.
https://bugs.launchpad.net/bugs/893210

Title:
  [Dell OptiPlex GX620 - AD1981b, playback] No sound at all

Status in ALSA driver:
  Confirmed
Status in alsa-driver package in Ubuntu:
  Incomplete

Bug description:
  fresh install of ubuntu studio and updates but internal speakers do
  not play. dell optiplex gx620 love ya

  ProblemType: Bug
  DistroRelease: Ubuntu 11.10
  Package: alsa-base 1.0.24+dfsg-0ubuntu2
  ProcVersionSignature: Ubuntu 3.0.0-13.22-generic 3.0.6
  Uname: Linux 3.0.0-13-generic i686
  AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
  ApportVersion: 1.23-0ubuntu4
  Architecture: i386
  Card0.Amixer.info:
   Card hw:0 'ICH7'/'Intel ICH7 with AD1981B at irq 23'
     Mixer name	: 'Analog Devices AD1981B'
     Components	: 'AC97a:41445374'
     Controls      : 28
     Simple ctrls  : 20
  Card1.Amixer.info:
   Card hw:1 'Device'/'C-Media Electronics Inc. USB Multimedia Audio Device at usb-0000:00:1d.7-4.1.4,'
     Mixer name	: 'USB Mixer'
     Components	: 'USB0d8c:0105'
     Controls      : 13
     Simple ctrls  : 6
  Date: Mon Nov 21 11:51:25 2011
  InstallationMedia: Ubuntu-Studio 11.10 "Oneiric Ocelot" - Release i386 (20111011.1)
  PackageArchitecture: all
  ProcEnviron:
   PATH=(custom, no user)
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: alsa-driver
  Symptom: audio
  Symptom_AlsaPlaybackTest: ALSA playback test through plughw:ICH7 failed
  Symptom_Card: CM108 Audio Controller - USB Multimedia Audio Device
  Symptom_Type: No sound at all
  Title: [ICH4 - Intel ICH7, playback] No sound at all
  UpgradeStatus: Upgraded to oneiric on 2011-11-12 (8 days ago)
  dmi.bios.date: 11/30/2006
  dmi.bios.vendor: Dell Inc.
  dmi.bios.version: A11
  dmi.board.name: 0F8101
  dmi.board.vendor: Dell Inc.
  dmi.chassis.type: 15
  dmi.chassis.vendor: Dell Inc.
  dmi.modalias: dmi:bvnDellInc.:bvrA11:bd11/30/2006:svnDellInc.:pnOptiPlexGX620:pvr:rvnDellInc.:rn0F8101:rvr:cvnDellInc.:ct15:cvr:
  dmi.product.name: OptiPlex GX620
  dmi.sys.vendor: Dell Inc.

To manage notifications about this bug go to:
https://bugs.launchpad.net/alsa-driver/+bug/893210/+subscriptions