All of lore.kernel.org
 help / color / mirror / Atom feed
* hdsp driver status
@ 2003-07-03 11:12 Thomas Charbonnel
  2003-07-03 11:45 ` Takashi Iwai
                   ` (2 more replies)
  0 siblings, 3 replies; 35+ messages in thread
From: Thomas Charbonnel @ 2003-07-03 11:12 UTC (permalink / raw)
  To: alsa-devel

[-- Attachment #1: Type: text/plain, Size: 1393 bytes --]

Hi,

I've been off the net and busy for a long time. I apologize to anyone
whose mail I didn't answer during this period. I'm slowly catching up with
the huge activity that has been going on this list, focusing on the hdsp
driver issues. I'd like to summarize the driver status :

Fixed :
* Marcus, Jaroslav : thanks for having solved the long (ever ? :)
lasting hdsp midi bug !

Done:
* Takashi : I succesfully tested your memory preallocation patch (only
the hdsp part of it, actually), thanks for it. (Thanks too for the
addition of hdspconf to cvs, it is indeed the latest version).

Remaining:
* HDSP9652: the matrix mixer isn't yet handled right.
* Rev11 + Multiface: either the firmware file is wrong or the io-box
firmware upload scenario has changed for this card revision. Has anyone
ever had success with this combination (or rev11 + Digiface) ?

The attached patch :
* Reenables the hdsp_check_for_iobox function Paul bypassed in his
previous patch. This function is needed for mobile setups. It handles the
cases where the iobox has been unplugged/replugged or lost power supply.
* Fixes the channel limit Mark has reported on the HDSP9652 (24 instead of
26).
* Fixes a locking issue reported by Joshua N Pritikin.

David, Jesse and Patrick, I'm back at work on the totalmix clone. It
should be out for testing really soon. Sorry for having been so
unresponsive lately.

Thomas



[-- Attachment #2: hdsp-03-07-03.patch --]
[-- Type: application/octet-stream, Size: 2391 bytes --]

--- hdsp.c.old	2003-07-03 12:23:52.000000000 +0200
+++ hdsp.c	2003-07-03 12:24:07.000000000 +0200
@@ -76,8 +76,8 @@
 #define DIGIFACE_DS_CHANNELS     14
 #define MULTIFACE_SS_CHANNELS    18
 #define MULTIFACE_DS_CHANNELS    14
-#define H9652_DS_CHANNELS        24
-#define H9652_SS_CHANNELS        24
+#define H9652_DS_CHANNELS        26
+#define H9652_SS_CHANNELS        14
 
 /* Write registers. These are defined as byte-offsets from the iobase value.
  */
@@ -497,15 +497,15 @@
 
 static inline int hdsp_check_for_iobox (hdsp_t *hdsp)
 {
-	return 0;
-#if 0
+
+	if (hdsp->io_type == H9652) return 0;
 	if (hdsp_read (hdsp, HDSP_statusRegister) & HDSP_ConfigError) {
 		snd_printk ("Hammerfall-DSP: no Digiface or Multiface connected!\n");
 		hdsp->state &= ~HDSP_FirmwareLoaded;
 		return -EIO;
 	}
 	return 0;
-#endif
+
 }
 
 static int snd_hdsp_load_firmware_from_cache(hdsp_t *hdsp) {
@@ -835,6 +835,11 @@
 	int current_rate;
 	int rate_bits;
 
+	/* ASSUMPTION: hdsp->lock is either help, or
+	   there is no need for it (e.g. during module
+	   initialization).
+	*/
+	
 	if (!(hdsp->control_register & HDSP_ClockModeMaster)) {	
 		if (called_internally) {
 			/* request from ctl or card initialization */
@@ -866,8 +871,6 @@
 	   exists for externally-driven rate changes. All we can do
 	   is to flag rate changes in the read/write routines.  */
 
-	spin_lock_irq(&hdsp->lock);
-
 	switch (rate) {
 	case 32000:
 		if (current_rate > 48000) {
@@ -906,7 +909,6 @@
 		rate_bits = HDSP_Frequency96KHz;
 		break;
 	default:
-		spin_unlock_irq(&hdsp->lock);
 		return -EINVAL;
 	}
 
@@ -914,7 +916,6 @@
 		snd_printk ("cannot change between single- and double-speed mode (capture PID = %d, playback PID = %d)\n",
 			    hdsp->capture_pid,
 			    hdsp->playback_pid);
-		spin_unlock_irq(&hdsp->lock);
 		return -EBUSY;
 	}
 
@@ -945,7 +946,6 @@
 		hdsp_update_simple_mixer_controls (hdsp);
 	}
 
-	spin_unlock_irq(&hdsp->lock);
 	return 0;
 }
 
@@ -3346,9 +3346,13 @@
 	/* how to make sure that the rate matches an externally-set one ?
 	 */
 
+	spin_lock_irq(&hdsp->lock);
 	if ((err = hdsp_set_rate(hdsp, params_rate(params), 0)) < 0) {
+		spin_unlock_irq(&hdsp->lock);
 		_snd_pcm_hw_param_setempty(params, SNDRV_PCM_HW_PARAM_RATE);
 		return err;
+	} else {
+		spin_unlock_irq(&hdsp->lock);
 	}
 
 	if ((err = hdsp_set_interrupt_interval(hdsp, params_period_size(params))) < 0) {

^ permalink raw reply	[flat|nested] 35+ messages in thread
* hdsp driver status
@ 2003-05-08  2:04 Paul Davis
  2003-05-08  6:36 ` Jaroslav Kysela
  0 siblings, 1 reply; 35+ messages in thread
From: Paul Davis @ 2003-05-08  2:04 UTC (permalink / raw)
  To: alsa-devel; +Cc: thomas

i finally got the information from RME to enable the mixer on the
hdsp-9652. i updated CVS, and the hdsp driver is totally
incompilable. somebody ripped out the definition of HDSP_IO_Type, and
then we have stuff like this:

../../alsa-kernel/pci/rme9652/hdsp.c:403: `HDSP_MATRIX_MIXER_SIZE' undeclared he
re (not in a function)
../../alsa-kernel/pci/rme9652/hdsp.c: In function `hdsp_read_gain':
../../alsa-kernel/pci/rme9652/hdsp.c:655: `HDSP_MATRIX_MIXER_SIZE' undeclared (f
irst use in this function)
../../alsa-kernel/pci/rme9652/hdsp.c:655: (Each undeclared identifier is reporte
d only once
../../alsa-kernel/pci/rme9652/hdsp.c:655: for each function it appears in.)
../../alsa-kernel/pci/rme9652/hdsp.c: In function `hdsp_write_gain':
../../alsa-kernel/pci/rme9652/hdsp.c:692: `HDSP_MATRIX_MIXER_SIZE' undeclared (f
irst use in this function)
../../alsa-kernel/pci/rme9652/hdsp.c: In function `snd_hdsp_set_defaults':
../../alsa-kernel/pci/rme9652/hdsp.c:3029: `HDSP_MATRIX_MIXER_SIZE' undeclared (
first use in this function)
../../alsa-kernel/pci/rme9652/hdsp.c: In function `snd_hdsp_hwdep_ioctl':
../../alsa-kernel/pci/rme9652/hdsp.c:3729: `hdsp_firmware_t' undeclared (first u
se in this function)
../../alsa-kernel/pci/rme9652/hdsp.c:3729: `firmware' undeclared (first use in t
his

can some fill me in on what is going on? why is the driver so totally broken?


-------------------------------------------------------
Enterprise Linux Forum Conference & Expo, June 4-6, 2003, Santa Clara
The only event dedicated to issues related to Linux enterprise solutions
www.enterpriselinuxforum.com

^ permalink raw reply	[flat|nested] 35+ messages in thread
* hdsp driver status
@ 2003-04-14  9:55 Thomas Charbonnel
  2003-04-14 13:00 ` Jeremy Hall
  2003-04-14 19:51 ` Mark Knecht
  0 siblings, 2 replies; 35+ messages in thread
From: Thomas Charbonnel @ 2003-04-14  9:55 UTC (permalink / raw)
  To: alsa-devel

Hi,

To summarize the current problems with the driver :

* there is a locking issue which has been found and solved (thanks again
to Joshua N Pritikin). This was the cause of the freezes Mark and others
have been experiencing. I need to clean the code up before submitting a
patch (hopefully today).

* there is a problem with rev11 firmwares yet to be identified (the
simplest reason could be that the firmware files are wrong)

* the way the matrix mixer is handled for hdsp9652 cards seems wrong.
This could explain the absence of sound output Mark and others are
reporting.

Thomas




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf

^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2003-07-09  4:49 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-03 11:12 hdsp driver status Thomas Charbonnel
2003-07-03 11:45 ` Takashi Iwai
2003-07-03 13:55 ` Mark Knecht
2003-07-03 15:47 ` Patrick Shirkey
2003-07-03 16:15   ` Patrick Shirkey
2003-07-03 16:34     ` Patrick Shirkey
2003-07-03 16:42       ` Patrick Shirkey
2003-07-03 17:08     ` Justin Cormack
2003-07-03 17:23       ` jfm3
2003-07-03 18:57         ` Patrick Shirkey
2003-07-03 20:20           ` jfm3
2003-07-03 20:22         ` Thomas Charbonnel
2003-07-03 20:37           ` Mark Knecht
2003-07-04  1:20             ` Thomas Charbonnel
2003-07-04  3:07               ` Mark Knecht
2003-07-03 20:15       ` Thomas Charbonnel
2003-07-04 12:43         ` Justin Cormack
2003-07-04 13:18           ` Thomas Charbonnel
     [not found]             ` <1057325373.10858.77.camel@lotte>
     [not found]               ` <35748.217.128.161.242.1057327134.squirrel@www.undata.org>
2003-07-04 15:03                 ` Justin Cormack
2003-07-05  3:35                   ` jfm3
2003-07-05  8:29                     ` Thomas Charbonnel
2003-07-05 15:19                       ` jfm3
2003-07-06  3:15                         ` jfm3
2003-07-06  9:33                           ` Thomas Charbonnel
2003-07-09  4:24                             ` Jesse Chappell
2003-07-09  4:49                               ` Thomas Charbonnel
2003-07-03 20:13     ` Thomas Charbonnel
  -- strict thread matches above, loose matches on Subject: below --
2003-05-08  2:04 Paul Davis
2003-05-08  6:36 ` Jaroslav Kysela
2003-05-08  9:15   ` Thomas Charbonnel
2003-04-14  9:55 Thomas Charbonnel
2003-04-14 13:00 ` Jeremy Hall
2003-04-14 13:16   ` Thomas Charbonnel
2003-04-14 13:24   ` Paul Davis
2003-04-14 19:51 ` Mark Knecht

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.