Skip to contentSkip to conversation

sparc dbri: recording is back

PATCH Applied Krzysztof Helt 2 participants 6 messages Aug 23, 2006 – Aug 28, 2006 Sound

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sparc dbri: recording is back

From: Krzysztof Helt ([email protected])

This patch fixes recording after convertion to ring buffered driver. It also contains smaller fixes to the conversion.

---

----------------------------------------------------
Oglądaj -> Wydarzenia.wp.pl -> Wiesz, co najważniejsze! Najbardziej aktualne materiały filmowe - Kliknij:
http://klik.wp.pl/?adr=www.wydarzenia.wp.pl&sid=848

sound/sparc/dbri.c renamed from alsa-kernel/sparc/dbri.c +19 -44
@@ -610,10 +610,10 @@ CPU interrupt to signal completion.
 
 Since the DBRI can run in parallel with the CPU, several means of
 synchronization present themselves. The method implemented here is only
-to use the dbri_cmdwait() to wait for execution of batch of sent commands.
+use of the dbri_cmdwait() to wait for execution of batch of sent commands.
 
 A circular command buffer is used here. A new command is being added 
-while other can be executed. The scheme works by adding two WAIT commands
+while another can be executed. The scheme works by adding two WAIT commands
 after each sent batch of commands. When the next batch is prepared it is
 added after the WAIT commands then the WAITs are replaced with single JUMP
 command to the new batch. The the DBRI is forced to reread the last WAIT 
@@ -689,13 +689,13 @@ static void dbri_cmdsend(struct snd_dbri
 	*(dbri->cmdptr) = DBRI_CMD(D_JUMP, 0, 0);
 
 #ifdef DBRI_DEBUG
-	if (cmd > dbri->cmdptr )
+	if (cmd > dbri->cmdptr ) {
 		s32 *ptr;
 
 		for (ptr = dbri->cmdptr; ptr < cmd+2; ptr++) {
 			dprintk(D_CMD, "cmd: %lx:%08x\n", (unsigned long)ptr, *ptr);
 		}
-	else {
+	} else {
 		s32 *ptr = dbri->cmdptr;
 
 		dprintk(D_CMD, "cmd: %lx:%08x\n", (unsigned long)ptr, *ptr);
@@ -1141,13 +1141,9 @@ static int setup_descs(struct snd_dbri *
 		return -1;
 	}
 
-	if (streamno == DBRI_PLAY) {
-		dbri->dma->desc[last_desc].word1 |=
-		    DBRI_TD_F | DBRI_TD_B;
-		dbri->dma->desc[last_desc].nda =
-		    dbri->dma_dvma + dbri_dma_off(desc, first_desc);
-		dbri->next_desc[last_desc] = first_desc;
-	}
+	dbri->dma->desc[last_desc].nda =
+	    dbri->dma_dvma + dbri_dma_off(desc, first_desc);
+	dbri->next_desc[last_desc] = first_desc;
 	dbri->pipes[info->pipe].first_desc = first_desc;
 	dbri->pipes[info->pipe].desc = first_desc;
 
@@ -1639,7 +1635,6 @@ static void xmit_descs(struct snd_dbri *
 	if (dbri == NULL)
 		return;		/* Disabled */
 
-	/* First check the recording stream for buffer overflow */
 	info = &dbri->stream_info[DBRI_REC];
 	spin_lock_irqsave(&dbri->lock, flags);
 
@@ -1649,27 +1644,20 @@ static void xmit_descs(struct snd_dbri *
 		dprintk(D_DESC, "xmit_descs rec @ TD %d\n", first_td);
 
 		/* Stream could be closed by the time we run. */
-		if (first_td < 0) {
-			goto play;
-		}
-
-		cmd = dbri_cmdlock(dbri, 2);
-		*(cmd++) = DBRI_CMD(D_SDP, 0,
-				    dbri->pipes[info->pipe].sdp
-				    | D_SDP_P | D_SDP_EVERY | D_SDP_C);
-		*(cmd++) = dbri->dma_dvma + dbri_dma_off(desc, first_td);
-		dbri_cmdsend(dbri, cmd, 2);
+		if (first_td >= 0) {
+			cmd = dbri_cmdlock(dbri, 2);
+			*(cmd++) = DBRI_CMD(D_SDP, 0,
+					    dbri->pipes[info->pipe].sdp
+					    | D_SDP_P | D_SDP_EVERY | D_SDP_C);
+			*(cmd++) = dbri->dma_dvma + dbri_dma_off(desc, first_td);
+			dbri_cmdsend(dbri, cmd, 2);
 
-		/* Reset our admin of the pipe & bytes read. */
-		dbri->pipes[info->pipe].desc = first_td;
+			/* Reset our admin of the pipe. */
+			dbri->pipes[info->pipe].desc = first_td;
+		}
 	}
 
-play:
-	spin_unlock_irqrestore(&dbri->lock, flags);
-
-	/* Now check the playback stream for buffer underflow */
 	info = &dbri->stream_info[DBRI_PLAY];
-	spin_lock_irqsave(&dbri->lock, flags);
 
 	if (info->pipe >= 0) {
 		first_td = dbri->pipes[info->pipe].first_desc;
@@ -1685,7 +1673,7 @@ play:
 			*(cmd++) = dbri->dma_dvma + dbri_dma_off(desc, first_td);
 			dbri_cmdsend(dbri, cmd, 2);
 
-			/* Reset our admin of the pipe & bytes written. */
+			/* Reset our admin of the pipe. */
 			dbri->pipes[info->pipe].desc = first_td;
 		}
 	}
@@ -1755,7 +1743,6 @@ static void reception_complete_intr(stru
 		return;
 	}
 
-	dbri->dma->desc[rd].ba = 0;
 	dbri->pipes[pipe].desc = dbri->next_desc[rd];
 	status = dbri->dma->desc[rd].word1;
 	dbri->dma->desc[rd].word1 = 0;	/* Reset it for next time. */
@@ -1768,18 +1755,6 @@ static void reception_complete_intr(stru
 	dprintk(D_INT, "Recv RD %d, status 0x%02x, len %d\n",
 		rd, DBRI_RD_STATUS(status), DBRI_RD_CNT(status));
 
-	/* On the last TD, transmit them all again. */
-#if 0
-	if (dbri->next_desc[rd] == -1) {
-		if (info->left > info->size) {
-			printk(KERN_WARNING
-			       "%d bytes recorded in %d size buffer.\n",
-			       info->left, info->size);
-		}
-		tasklet_schedule(&xmit_descs_task);
-	}
-#endif
-
 	/* Notify ALSA */
 	if (spin_is_locked(&dbri->lock)) {
 		spin_unlock(&dbri->lock);
@@ -2159,7 +2139,7 @@ static snd_pcm_uframes_t snd_dbri_pointe
 	snd_pcm_uframes_t ret;
 
 	ret = bytes_to_frames(substream->runtime, info->offset)
-		% substream->runtime->buffer_size;
+		% (substream->runtime->buffer_size + 1);
 	dprintk(D_USR, "I/O pointer: %ld frames of %ld.\n",
 		ret, substream->runtime->buffer_size);
 	return ret;

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Alsa-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

#1 lore raw

At Wed, 23 Aug 2006 20:10:35 +0200,

sound/sparc/dbri.c static snd_pcm_uframes_t snd_dbri_pointe · line 2145

Quoted 10 lines · Krzysztof Helt
sound/sparc/dbri.c renamed from alsa-kernel/sparc/dbri.c +1 -1
@@ -2159,7 +2139,7 @@ static snd_pcm_uframes_t snd_dbri_pointe
 	snd_pcm_uframes_t ret;
 
 	ret = bytes_to_frames(substream->runtime, info->offset)
-		% substream->runtime->buffer_size;
+		% (substream->runtime->buffer_size + 1);
 	dprintk(D_USR, "I/O pointer: %ld frames of %ld.\n",
 		ret, substream->runtime->buffer_size);
 	return ret;

What is the reason of this change? The original code looks OK to me. The pointer callback must return a value between 0 and (buffer_size-1).

Takashi

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

#2 lore raw
In reply to Krzysztof Helt

Dnia 23-08-2006 o godz. 20:16 Takashi Iwai napisał(a):

Quoted 6 lines

At Wed, 23 Aug 2006 20:10:35 +0200,

Quoted 4 lines · Krzysztof Helt
sound/sparc/dbri.c renamed from alsa-kernel/sparc/dbri.c +0 -0
@@ -2159,7 +2139,7 @@ static snd_pcm_uframes_t snd_dbri_pointe
 	snd_pcm_uframes_t ret;
 
Quoted 8 lines

sound/sparc/dbri.c static snd_pcm_uframes_t snd_dbri_pointe · line 2145

Quoted 6 lines
sound/sparc/dbri.c renamed from alsa-kernel/sparc/dbri.c +1 -1
 	ret = bytes_to_frames(substream->runtime, info->offset)
-		% substream->runtime->buffer_size;
+		% (substream->runtime->buffer_size + 1);
 	dprintk(D_USR, "I/O pointer: %ld frames of %ld.\n",
 		ret, substream->runtime->buffer_size);
 	return ret;

What is the reason of this change? The original code looks OK

to me.

Quoted 4 lines

The pointer callback must return a value between 0 and (buffer_size-1).

I will recheck if recording works without this change. The last returned pointer value is equal to buffer_size. Your email implies that 0 means "I have full buffer filled with data".

Regards,
Krzysztof

----------------------------------------------------
Oglądaj -> Wydarzenia.wp.pl -> Wiesz, co najważniejsze! Najbardziej aktualne materiały filmowe - Kliknij:
http://klik.wp.pl/?adr=www.wydarzenia.wp.pl&sid=848

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

#3 lore raw

At Thu, 24 Aug 2006 08:09:26 +0200,

Quoted 19 lines · Krzysztof Helt

Dnia 23-08-2006 o godz. 20:16 Takashi Iwai napisał(a):

Quoted 6 lines

At Wed, 23 Aug 2006 20:10:35 +0200,

Quoted 4 lines · Krzysztof Helt
sound/sparc/dbri.c renamed from alsa-kernel/sparc/dbri.c +0 -0
@@ -2159,7 +2139,7 @@ static snd_pcm_uframes_t snd_dbri_pointe
 	snd_pcm_uframes_t ret;
 
Quoted 8 lines

sound/sparc/dbri.c static snd_pcm_uframes_t snd_dbri_pointe · line 2145

Quoted 6 lines
sound/sparc/dbri.c renamed from alsa-kernel/sparc/dbri.c +1 -1
 	ret = bytes_to_frames(substream->runtime, info->offset)
-		% substream->runtime->buffer_size;
+		% (substream->runtime->buffer_size + 1);
 	dprintk(D_USR, "I/O pointer: %ld frames of %ld.\n",
 		ret, substream->runtime->buffer_size);
 	return ret;

What is the reason of this change? The original code looks OK

to me.

Quoted 8 lines
Quoted 4 lines

The pointer callback must return a value between 0 and (buffer_size-1).

I will recheck if recording works without this change. The last returned pointer value is equal to buffer_size. Your email implies that 0 means "I have full buffer filled with data".

No, pointer callback returns the current processing DMA position in the ring buffer (called hw_ptr). It doesn't mean how many samples remain.

The amount of remaining sample is calculated in PCM core layer. The PCM layer remembers how many samples are put in the buffer (= appl_ptr), then can easily calculate the remaining samples by (appl_ptr - hw_ptr).

Takashi

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

#4 lore raw
In reply to Krzysztof Helt

<s5hirkjwc4w.wl%[email protected]>
<[email protected]> <s5hhd02v69h.wl%[email protected]>
In-reply-to: <[email protected]> <s5hirkjwc4w.wl%[email protected]>
<[email protected]> <s5hhd02v69h.wl%[email protected]>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="part44ef3a2db03f0"
X-Mailer: Interfejs WWW poczty Wirtualnej Polski
Organization: Poczta Wirtualnej Polski S.A. http://www.wp.pl/
X-User-Agent: Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4a) Gecko/20030401
X-WP-IP: 213.76.90.126
X-WP-AV: skaner antywirusowy poczty Wirtualnej Polski S. A.
X-WP-SPAM: NO AS1=NO AS2=NO(0.502872) AS3=NO AS4=NO AS5=NO

This is a multi-part message in MIME format.

--part44ef3a2db03f0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
Content-Disposition: inline

From: Krzysztof Helt ([email protected])

This patch fixes sound recording after the driver convertion to ring buffered version. It also contains small clean ups to the driver.

---

This is repost of the patch against current HG tree. It contains part of the 13th patch as it really belong to this one.

The 12th patch is the same as I posted it (there is no need to change it). Should I repost it as well?

Regards,
Krzysztof

----------------------------------------------------
Radio Zet Platinum - Blue Eyes to dwup�ytowy zestaw utwor�w przywo�uj�cy nastr�j wakacyjnego lenistwa. Ju� w sprzeda�y!!
http://klik.wp.pl/?adr=http%3A%2F%2Fadv.reklama.wp.pl%2Fas%2Fradio_zet_platinum.html&sid=855

--part44ef3a2db03f0
Content-Type: application/octet-stream; name="dbri-patch11.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dbri-patch11.diff"

LS0tIGFsc2EtZHJpdmVyLTEuMC4xMnJjMi9hbHNhLWtlcm5lbC9zcGFyYy9kYnJpLmMJMjAwNi0w OC0yNSAxOToyNDo0My4wMDAwMDAwMDAgKzAyMDAKKysrIGxpbnV4LTIuNi4xN2Evc291bmQvc3Bh cmMvZGJyaS5jCTIwMDYtMDgtMjUgMTk6Mjk6NDYuMDAwMDAwMDAwICswMjAwCkBAIC0xMDcsNyAr MTA3LDcgQEAgc3RhdGljIGNoYXIgKmNtZHNbXSA9IHsKICNkZWZpbmUgZHByaW50ayhhLCB4Li4u KSBpZihkYnJpX2RlYnVnICYgYSkgcHJpbnRrKEtFUk5fREVCVUcgeCkKIAogI2Vsc2UKLSNkZWZp bmUgZHByaW50ayhhLCB4Li4uKQorI2RlZmluZSBkcHJpbnRrKGEsIHguLi4pIGRvIHsgfSB3aGls ZSAoMCkKIAogI2VuZGlmCQkJCS8qIERCUklfREVCVUcgKi8KIApAQCAtNjEwLDEwICs2MTAsMTAg QEAgQ1BVIGludGVycnVwdCB0byBzaWduYWwgY29tcGxldGlvbi4KIAogU2luY2UgdGhlIERCUkkg Y2FuIHJ1biBpbiBwYXJhbGxlbCB3aXRoIHRoZSBDUFUsIHNldmVyYWwgbWVhbnMgb2YKIHN5bmNo cm9uaXphdGlvbiBwcmVzZW50IHRoZW1zZWx2ZXMuIFRoZSBtZXRob2QgaW1wbGVtZW50ZWQgaGVy ZSBpcyBvbmx5Ci10byB1c2UgdGhlIGRicmlfY21kd2FpdCgpIHRvIHdhaXQgZm9yIGV4ZWN1dGlv biBvZiBiYXRjaCBvZiBzZW50IGNvbW1hbmRzLgordXNlIG9mIHRoZSBkYnJpX2NtZHdhaXQoKSB0 byB3YWl0IGZvciBleGVjdXRpb24gb2YgYmF0Y2ggb2Ygc2VudCBjb21tYW5kcy4KIAogQSBjaXJj dWxhciBjb21tYW5kIGJ1ZmZlciBpcyB1c2VkIGhlcmUuIEEgbmV3IGNvbW1hbmQgaXMgYmVpbmcg YWRkZWQgCi13aGlsZSBvdGhlciBjYW4gYmUgZXhlY3V0ZWQuIFRoZSBzY2hlbWUgd29ya3MgYnkg YWRkaW5nIHR3byBXQUlUIGNvbW1hbmRzCit3aGlsZSBhbm90aGVyIGNhbiBiZSBleGVjdXRlZC4g VGhlIHNjaGVtZSB3b3JrcyBieSBhZGRpbmcgdHdvIFdBSVQgY29tbWFuZHMKIGFmdGVyIGVhY2gg c2VudCBiYXRjaCBvZiBjb21tYW5kcy4gV2hlbiB0aGUgbmV4dCBiYXRjaCBpcyBwcmVwYXJlZCBp dCBpcwogYWRkZWQgYWZ0ZXIgdGhlIFdBSVQgY29tbWFuZHMgdGhlbiB0aGUgV0FJVHMgYXJlIHJl cGxhY2VkIHdpdGggc2luZ2xlIEpVTVAKIGNvbW1hbmQgdG8gdGhlIG5ldyBiYXRjaC4gVGhlIHRo ZSBEQlJJIGlzIGZvcmNlZCB0byByZXJlYWQgdGhlIGxhc3QgV0FJVCAKQEAgLTYyOCw3ICs2Mjgs NyBAQCB0byBzZW5kIHRoZW0gdG8gdGhlIERCUkkuCiAKICovCiAKLSNkZWZpbmUgTUFYTE9PUFMg MTAKKyNkZWZpbmUgTUFYTE9PUFMgMjAKIC8qCiAgKiBXYWl0IGZvciB0aGUgY3VycmVudCBjb21t YW5kIHN0cmluZyB0byBleGVjdXRlCiAgKi8KQEAgLTY5Miw5ICs2OTIsOCBAQCBzdGF0aWMgdm9p ZCBkYnJpX2NtZHNlbmQoc3RydWN0IHNuZF9kYnJpCiAJaWYgKGNtZCA+IGRicmktPmNtZHB0cikg ewogCQlzMzIgKnB0cjsKIAotCQlmb3IgKHB0ciA9IGRicmktPmNtZHB0cjsgcHRyIDwgY21kKzI7 IHB0cisrKSB7CisJCWZvciAocHRyID0gZGJyaS0+Y21kcHRyOyBwdHIgPCBjbWQrMjsgcHRyKysp CiAJCQlkcHJpbnRrKERfQ01ELCAiY21kOiAlbHg6JTA4eFxuIiwgKHVuc2lnbmVkIGxvbmcpcHRy LCAqcHRyKTsKLQkJfQogCX0gZWxzZSB7CiAJCXMzMiAqcHRyID0gZGJyaS0+Y21kcHRyOwogCkBA IC0xMTQxLDEzICsxMTQwLDkgQEAgc3RhdGljIGludCBzZXR1cF9kZXNjcyhzdHJ1Y3Qgc25kX2Ri cmkgKgogCQlyZXR1cm4gLTE7CiAJfQogCi0JaWYgKHN0cmVhbW5vID09IERCUklfUExBWSkgewot CQlkYnJpLT5kbWEtPmRlc2NbbGFzdF9kZXNjXS53b3JkMSB8PQotCQkgICAgREJSSV9URF9GIHwg REJSSV9URF9COwotCQlkYnJpLT5kbWEtPmRlc2NbbGFzdF9kZXNjXS5uZGEgPQotCQkgICAgZGJy aS0+ZG1hX2R2bWEgKyBkYnJpX2RtYV9vZmYoZGVzYywgZmlyc3RfZGVzYyk7Ci0JCWRicmktPm5l eHRfZGVzY1tsYXN0X2Rlc2NdID0gZmlyc3RfZGVzYzsKLQl9CisJZGJyaS0+ZG1hLT5kZXNjW2xh c3RfZGVzY10ubmRhID0KKwkgICAgZGJyaS0+ZG1hX2R2bWEgKyBkYnJpX2RtYV9vZmYoZGVzYywg Zmlyc3RfZGVzYyk7CisJZGJyaS0+bmV4dF9kZXNjW2xhc3RfZGVzY10gPSBmaXJzdF9kZXNjOwog CWRicmktPnBpcGVzW2luZm8tPnBpcGVdLmZpcnN0X2Rlc2MgPSBmaXJzdF9kZXNjOwogCWRicmkt PnBpcGVzW2luZm8tPnBpcGVdLmRlc2MgPSBmaXJzdF9kZXNjOwogCkBAIC0xNjM5LDcgKzE2MzQs NiBAQCBzdGF0aWMgdm9pZCB4bWl0X2Rlc2NzKHN0cnVjdCBzbmRfZGJyaSAqCiAJaWYgKGRicmkg PT0gTlVMTCkKIAkJcmV0dXJuOwkJLyogRGlzYWJsZWQgKi8KIAotCS8qIEZpcnN0IGNoZWNrIHRo ZSByZWNvcmRpbmcgc3RyZWFtIGZvciBidWZmZXIgb3ZlcmZsb3cgKi8KIAlpbmZvID0gJmRicmkt PnN0cmVhbV9pbmZvW0RCUklfUkVDXTsKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZGJyaS0+bG9jaywg ZmxhZ3MpOwogCkBAIC0xNjQ5LDI3ICsxNjQzLDIwIEBAIHN0YXRpYyB2b2lkIHhtaXRfZGVzY3Mo c3RydWN0IHNuZF9kYnJpICoKIAkJZHByaW50ayhEX0RFU0MsICJ4bWl0X2Rlc2NzIHJlYyBAIFRE ICVkXG4iLCBmaXJzdF90ZCk7CiAKIAkJLyogU3RyZWFtIGNvdWxkIGJlIGNsb3NlZCBieSB0aGUg dGltZSB3ZSBydW4uICovCi0JCWlmIChmaXJzdF90ZCA8IDApIHsKLQkJCWdvdG8gcGxheTsKLQkJ fQotCi0JCWNtZCA9IGRicmlfY21kbG9jayhkYnJpLCAyKTsKLQkJKihjbWQrKykgPSBEQlJJX0NN RChEX1NEUCwgMCwKLQkJCQkgICAgZGJyaS0+cGlwZXNbaW5mby0+cGlwZV0uc2RwCi0JCQkJICAg IHwgRF9TRFBfUCB8IERfU0RQX0VWRVJZIHwgRF9TRFBfQyk7Ci0JCSooY21kKyspID0gZGJyaS0+ ZG1hX2R2bWEgKyBkYnJpX2RtYV9vZmYoZGVzYywgZmlyc3RfdGQpOwotCQlkYnJpX2NtZHNlbmQo ZGJyaSwgY21kLCAyKTsKKwkJaWYgKGZpcnN0X3RkID49IDApIHsKKwkJCWNtZCA9IGRicmlfY21k bG9jayhkYnJpLCAyKTsKKwkJCSooY21kKyspID0gREJSSV9DTUQoRF9TRFAsIDAsCisJCQkJCSAg ICBkYnJpLT5waXBlc1tpbmZvLT5waXBlXS5zZHAKKwkJCQkJICAgIHwgRF9TRFBfUCB8IERfU0RQ X0VWRVJZIHwgRF9TRFBfQyk7CisJCQkqKGNtZCsrKSA9IGRicmktPmRtYV9kdm1hICsgZGJyaV9k bWFfb2ZmKGRlc2MsIGZpcnN0X3RkKTsKKwkJCWRicmlfY21kc2VuZChkYnJpLCBjbWQsIDIpOwog Ci0JCS8qIFJlc2V0IG91ciBhZG1pbiBvZiB0aGUgcGlwZSAmIGJ5dGVzIHJlYWQuICovCi0JCWRi cmktPnBpcGVzW2luZm8tPnBpcGVdLmRlc2MgPSBmaXJzdF90ZDsKKwkJCS8qIFJlc2V0IG91ciBh ZG1pbiBvZiB0aGUgcGlwZS4gKi8KKwkJCWRicmktPnBpcGVzW2luZm8tPnBpcGVdLmRlc2MgPSBm aXJzdF90ZDsKKwkJfQogCX0KIAotcGxheToKLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkYnJp LT5sb2NrLCBmbGFncyk7Ci0KLQkvKiBOb3cgY2hlY2sgdGhlIHBsYXliYWNrIHN0cmVhbSBmb3Ig YnVmZmVyIHVuZGVyZmxvdyAqLwogCWluZm8gPSAmZGJyaS0+c3RyZWFtX2luZm9bREJSSV9QTEFZ XTsKLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGJyaS0+bG9jaywgZmxhZ3MpOwogCiAJaWYgKGluZm8t PnBpcGUgPj0gMCkgewogCQlmaXJzdF90ZCA9IGRicmktPnBpcGVzW2luZm8tPnBpcGVdLmZpcnN0 X2Rlc2M7CkBAIC0xNjg1LDcgKzE2NzIsNyBAQCBwbGF5OgogCQkJKihjbWQrKykgPSBkYnJpLT5k bWFfZHZtYSArIGRicmlfZG1hX29mZihkZXNjLCBmaXJzdF90ZCk7CiAJCQlkYnJpX2NtZHNlbmQo ZGJyaSwgY21kLCAyKTsKIAotCQkJLyogUmVzZXQgb3VyIGFkbWluIG9mIHRoZSBwaXBlICYgYnl0 ZXMgd3JpdHRlbi4gKi8KKwkJCS8qIFJlc2V0IG91ciBhZG1pbiBvZiB0aGUgcGlwZS4gKi8KIAkJ CWRicmktPnBpcGVzW2luZm8tPnBpcGVdLmRlc2MgPSBmaXJzdF90ZDsKIAkJfQogCX0KQEAgLTE3 NTUsNyArMTc0Miw2IEBAIHN0YXRpYyB2b2lkIHJlY2VwdGlvbl9jb21wbGV0ZV9pbnRyKHN0cnUK IAkJcmV0dXJuOwogCX0KIAotCWRicmktPmRtYS0+ZGVzY1tyZF0uYmEgPSAwOwogCWRicmktPnBp cGVzW3BpcGVdLmRlc2MgPSBkYnJpLT5uZXh0X2Rlc2NbcmRdOwogCXN0YXR1cyA9IGRicmktPmRt YS0+ZGVzY1tyZF0ud29yZDE7CiAJZGJyaS0+ZG1hLT5kZXNjW3JkXS53b3JkMSA9IDA7CS8qIFJl c2V0IGl0IGZvciBuZXh0IHRpbWUuICovCkBAIC0xNzY4LDE4ICsxNzU0LDYgQEAgc3RhdGljIHZv aWQgcmVjZXB0aW9uX2NvbXBsZXRlX2ludHIoc3RydQogCWRwcmludGsoRF9JTlQsICJSZWN2IFJE ICVkLCBzdGF0dXMgMHglMDJ4LCBsZW4gJWRcbiIsCiAJCXJkLCBEQlJJX1JEX1NUQVRVUyhzdGF0 dXMpLCBEQlJJX1JEX0NOVChzdGF0dXMpKTsKIAotCS8qIE9uIHRoZSBsYXN0IFRELCB0cmFuc21p dCB0aGVtIGFsbCBhZ2Fpbi4gKi8KLSNpZiAwCi0JaWYgKGRicmktPm5leHRfZGVzY1tyZF0gPT0g LTEpIHsKLQkJaWYgKGluZm8tPmxlZnQgPiBpbmZvLT5zaXplKSB7Ci0JCQlwcmludGsoS0VSTl9X QVJOSU5HCi0JCQkgICAgICAgIiVkIGJ5dGVzIHJlY29yZGVkIGluICVkIHNpemUgYnVmZmVyLlxu IiwKLQkJCSAgICAgICBpbmZvLT5sZWZ0LCBpbmZvLT5zaXplKTsKLQkJfQotCQl0YXNrbGV0X3Nj aGVkdWxlKCZ4bWl0X2Rlc2NzX3Rhc2spOwotCX0KLSNlbmRpZgotCiAJLyogTm90aWZ5IEFMU0Eg Ki8KIAlpZiAoc3Bpbl9pc19sb2NrZWQoJmRicmktPmxvY2spKSB7CiAJCXNwaW5fdW5sb2NrKCZk YnJpLT5sb2NrKTsKQEAgLTIxMTMsNiArMjA4Nyw3IEBAIHN0YXRpYyBpbnQgc25kX2RicmlfcHJl cGFyZShzdHJ1Y3Qgc25kX3AKIAkJaW5mby0+cGlwZSA9IDY7CS8qIFJlY2VpdmUgcGlwZSAqLwog CiAJc3Bpbl9sb2NrX2lycSgmZGJyaS0+bG9jayk7CisJaW5mby0+b2Zmc2V0ID0gMDsKIAogCS8q IFNldHVwIHRoZSBhbGwgdGhlIHRyYW5zbWl0L3JlY2VpdmUgZGVzY2lwdG9ycyB0byBjb3ZlciB0 aGUKIAkgKiB3aG9sZSBETUEgYnVmZmVyLgo=

--part44ef3a2db03f0--

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
Alsa-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-devel

Applied
#5 lore raw

At Fri, 25 Aug 2006 19:58:05 +0200,

Quoted 8 lines · Krzysztof Helt

From: Krzysztof Helt ([email protected])

This patch fixes sound recording after the driver convertion to ring buffered version. It also contains small clean ups to the driver.

Thanks, applied now.

Quoted 7 lines

---

This is repost of the patch against current HG tree. It contains part of the 13th patch as it really belong to this one.

The 12th patch is the same as I posted it (there is no need to change it). Should I repost it as well?

Already applied together with this patch.

Takashi

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642