linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ALSA update [10/10] - 2002/08/05
@ 2002-09-29 19:02 Jaroslav Kysela
  2002-09-30  0:56 ` David S. Miller
  0 siblings, 1 reply; 8+ messages in thread
From: Jaroslav Kysela @ 2002-09-29 19:02 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: LKML

You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


ChangeSet@1.605.2.21, 2002-09-26 16:20:01+02:00, perex@pnote.perex-int.cz
  ALSA update 2002/08/05 :
    - CS46xx
      - fixed capture with new DSP firmware
      - multiple pcm playback streams
      - pcm playback instance is allocated dynamically
      - fixed detection of secondary codec
    - changed ctl/rawmidi/timer read() code to follow POSIX standard - when some data are ready, return immediately
    - RME96 - added 32 bit sample formats for ADAT


 include/sound/cs46xx.h              |   80 ++++++++++++++++++++++-
 include/sound/version.h             |    2 
 sound/core/control.c                |    2 
 sound/core/rawmidi.c                |    2 
 sound/core/timer.c                  |    5 -
 sound/pci/cs46xx/cs46xx_lib.c       |  124 +++++++++++++++++++++++++++++++++---
 sound/pci/cs46xx/dsp_spos.c         |   35 +++++-----
 sound/pci/cs46xx/dsp_spos_scb_lib.c |    4 -
 sound/pci/rme96.c                   |    6 +
 9 files changed, 225 insertions(+), 35 deletions(-)


diff -Nru a/include/sound/cs46xx.h b/include/sound/cs46xx.h
--- a/include/sound/cs46xx.h	Sun Sep 29 20:24:05 2002
+++ b/include/sound/cs46xx.h	Sun Sep 29 20:24:05 2002
@@ -195,6 +195,81 @@
 #define BA1_FRSC                                0x00030038
 #define BA1_OMNI_MEM                            0x000E0000
 
+
+
+
+/*
+ * The following define the offsets of the AC97 shadow registers, which appear
+ * as a virtual extension to the base address register zero memory range.
+ */
+#define AC97_REG_OFFSET_MASK                    0x0000007EL
+#define AC97_CODEC_NUMBER_MASK                  0x00003000L
+
+#define BA0_AC97_RESET                          0x00001000L
+#define BA0_AC97_MASTER_VOLUME                  0x00001002L
+#define BA0_AC97_HEADPHONE_VOLUME               0x00001004L
+#define BA0_AC97_MASTER_VOLUME_MONO             0x00001006L
+#define BA0_AC97_MASTER_TONE                    0x00001008L
+#define BA0_AC97_PC_BEEP_VOLUME                 0x0000100AL
+#define BA0_AC97_PHONE_VOLUME                   0x0000100CL
+#define BA0_AC97_MIC_VOLUME                     0x0000100EL
+#define BA0_AC97_LINE_IN_VOLUME                 0x00001010L
+#define BA0_AC97_CD_VOLUME                      0x00001012L
+#define BA0_AC97_VIDEO_VOLUME                   0x00001014L
+#define BA0_AC97_AUX_VOLUME                     0x00001016L
+#define BA0_AC97_PCM_OUT_VOLUME                 0x00001018L
+#define BA0_AC97_RECORD_SELECT                  0x0000101AL
+#define BA0_AC97_RECORD_GAIN                    0x0000101CL
+#define BA0_AC97_RECORD_GAIN_MIC                0x0000101EL
+#define BA0_AC97_GENERAL_PURPOSE                0x00001020L
+#define BA0_AC97_3D_CONTROL                     0x00001022L
+#define BA0_AC97_MODEM_RATE                     0x00001024L
+#define BA0_AC97_POWERDOWN                      0x00001026L
+#define BA0_AC97_EXT_AUDIO_ID                   0x00001028L
+#define BA0_AC97_EXT_AUDIO_POWER                0x0000102AL
+#define BA0_AC97_PCM_FRONT_DAC_RATE             0x0000102CL
+#define BA0_AC97_PCM_SURR_DAC_RATE              0x0000102EL
+#define BA0_AC97_PCM_LFE_DAC_RATE               0x00001030L
+#define BA0_AC97_PCM_LR_ADC_RATE                0x00001032L
+#define BA0_AC97_MIC_ADC_RATE                   0x00001034L
+#define BA0_AC97_6CH_VOL_C_LFE                  0x00001036L
+#define BA0_AC97_6CH_VOL_SURROUND               0x00001038L
+#define BA0_AC97_RESERVED_3A                    0x0000103AL
+#define BA0_AC97_EXT_MODEM_ID                   0x0000103CL
+#define BA0_AC97_EXT_MODEM_POWER                0x0000103EL
+#define BA0_AC97_LINE1_CODEC_RATE               0x00001040L
+#define BA0_AC97_LINE2_CODEC_RATE               0x00001042L
+#define BA0_AC97_HANDSET_CODEC_RATE             0x00001044L
+#define BA0_AC97_LINE1_CODEC_LEVEL              0x00001046L
+#define BA0_AC97_LINE2_CODEC_LEVEL              0x00001048L
+#define BA0_AC97_HANDSET_CODEC_LEVEL            0x0000104AL
+#define BA0_AC97_GPIO_PIN_CONFIG                0x0000104CL
+#define BA0_AC97_GPIO_PIN_TYPE                  0x0000104EL
+#define BA0_AC97_GPIO_PIN_STICKY                0x00001050L
+#define BA0_AC97_GPIO_PIN_WAKEUP                0x00001052L
+#define BA0_AC97_GPIO_PIN_STATUS                0x00001054L
+#define BA0_AC97_MISC_MODEM_AFE_STAT            0x00001056L
+#define BA0_AC97_RESERVED_58                    0x00001058L
+#define BA0_AC97_CRYSTAL_REV_N_FAB_ID           0x0000105AL
+#define BA0_AC97_TEST_AND_MISC_CTRL             0x0000105CL
+#define BA0_AC97_AC_MODE                        0x0000105EL
+#define BA0_AC97_MISC_CRYSTAL_CONTROL           0x00001060L
+#define BA0_AC97_LINE1_HYPRID_CTRL              0x00001062L
+#define BA0_AC97_VENDOR_RESERVED_64             0x00001064L
+#define BA0_AC97_VENDOR_RESERVED_66             0x00001066L
+#define BA0_AC97_SPDIF_CONTROL                  0x00001068L
+#define BA0_AC97_VENDOR_RESERVED_6A             0x0000106AL
+#define BA0_AC97_VENDOR_RESERVED_6C             0x0000106CL
+#define BA0_AC97_VENDOR_RESERVED_6E             0x0000106EL
+#define BA0_AC97_VENDOR_RESERVED_70             0x00001070L
+#define BA0_AC97_VENDOR_RESERVED_72             0x00001072L
+#define BA0_AC97_VENDOR_RESERVED_74             0x00001074L
+#define BA0_AC97_CAL_ADDRESS                    0x00001076L
+#define BA0_AC97_CAL_DATA                       0x00001078L
+#define BA0_AC97_VENDOR_RESERVED_7A             0x0000107AL
+#define BA0_AC97_VENDOR_ID1                     0x0000107CL
+#define BA0_AC97_VENDOR_ID2                     0x0000107EL
+
 /*
  *  The following defines are for the flags in the host interrupt status
  *  register.
@@ -1629,10 +1704,11 @@
 #define POWER_DOWN_ALL         0x7f0f
 
 /* maxinum number of AC97 codecs connected, AC97 2.0 defined 4 */
-#define MAX_NR_AC97				4
-#define CS46XX_PRIMARY_CODEC_INDEX		0
+#define MAX_NR_AC97				            4
+#define CS46XX_PRIMARY_CODEC_INDEX          0
 #define CS46XX_SECONDARY_CODEC_INDEX		1
 #define CS46XX_SECONDARY_CODEC_OFFSET		0x80
+#define CS46XX_DSP_CAPTURE_CHANNEL          1
 
 /*
  *
diff -Nru a/include/sound/version.h b/include/sound/version.h
--- a/include/sound/version.h	Sun Sep 29 20:24:05 2002
+++ b/include/sound/version.h	Sun Sep 29 20:24:05 2002
@@ -1,3 +1,3 @@
 /* include/version.h.  Generated automatically by configure.  */
 #define CONFIG_SND_VERSION "0.9.0rc2"
-#define CONFIG_SND_DATE " (Thu Aug 01 15:59:56 2002 UTC)"
+#define CONFIG_SND_DATE " (Mon Aug 05 14:24:05 2002 UTC)"
diff -Nru a/sound/core/control.c b/sound/core/control.c
--- a/sound/core/control.c	Sun Sep 29 20:24:05 2002
+++ b/sound/core/control.c	Sun Sep 29 20:24:05 2002
@@ -660,7 +660,7 @@
 		snd_kctl_event_t *kev;
 		while (list_empty(&ctl->events)) {
 			wait_queue_t wait;
-			if (file->f_flags & O_NONBLOCK) {
+			if ((file->f_flags & O_NONBLOCK) != 0 || result > 0) {
 				err = -EAGAIN;
 				goto __end;
 			}
diff -Nru a/sound/core/rawmidi.c b/sound/core/rawmidi.c
--- a/sound/core/rawmidi.c	Sun Sep 29 20:24:05 2002
+++ b/sound/core/rawmidi.c	Sun Sep 29 20:24:05 2002
@@ -943,7 +943,7 @@
 		spin_lock_irq(&runtime->lock);
 		while (!snd_rawmidi_ready(substream)) {
 			wait_queue_t wait;
-			if (file->f_flags & O_NONBLOCK) {
+			if ((file->f_flags & O_NONBLOCK) != 0 || result > 0) {
 				spin_unlock_irq(&runtime->lock);
 				return result > 0 ? result : -EAGAIN;
 			}
diff -Nru a/sound/core/timer.c b/sound/core/timer.c
--- a/sound/core/timer.c	Sun Sep 29 20:24:06 2002
+++ b/sound/core/timer.c	Sun Sep 29 20:24:06 2002
@@ -1270,7 +1270,7 @@
 		while (!tu->qused) {
 			wait_queue_t wait;
 
-			if (file->f_flags & O_NONBLOCK) {
+			if ((file->f_flags & O_NONBLOCK) != 0 || result > 0) {
 				spin_unlock_irq(&tu->qlock);
 				err = -EAGAIN;
 				break;
@@ -1285,6 +1285,7 @@
 			spin_lock_irq(&tu->qlock);
 
 			remove_wait_queue(&tu->qchange_sleep, &wait);
+			set_current_state(TASK_RUNNING);
 
 			if (signal_pending(current)) {
 				err = -ERESTARTSYS;
@@ -1307,7 +1308,7 @@
 		result += sizeof(snd_timer_read_t);
 		buffer += sizeof(snd_timer_read_t);
 	}
-	return err? err: result;
+	return result > 0 ? result : err;
 }
 
 static unsigned int snd_timer_user_poll(struct file *file, poll_table * wait)
diff -Nru a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
--- a/sound/pci/cs46xx/cs46xx_lib.c	Sun Sep 29 20:24:05 2002
+++ b/sound/pci/cs46xx/cs46xx_lib.c	Sun Sep 29 20:24:05 2002
@@ -8,11 +8,12 @@
  *    --
  *
  *  TODO:
- *    We need a DSP code to support multichannel outputs and S/PDIF.
- *    Unfortunately, it seems that Cirrus Logic, Inc. is not willing
- *    to provide us sufficient information about the DSP processor,
- *    so we can't update the driver.
+ *    SPDIF input.
+ *    Secondary CODEC on some soundcards
  *
+ *  NOTE: with CONFIG_SND_CS46XX_NEW_DSP unset uses old DSP image (which
+ *        is default configuration), no SPDIF, no secondary codec, no
+ *        multi channel PCM.  But known to work.
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -334,7 +335,6 @@
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 
-// #include "imgs/cwcemb80.h"
 #include "imgs/cwc4630.h"
 #include "imgs/cwcasync.h"
 #include "imgs/cwcsnoop.h"
@@ -880,12 +880,14 @@
 	switch (cmd) {
 	case SNDRV_PCM_TRIGGER_START:
 	case SNDRV_PCM_TRIGGER_RESUME:
-		if (substream->runtime->periods != CS46XX_FRAGS)
-			snd_cs46xx_playback_transfer(substream, 0);
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 		if (cpcm->pcm_channel->unlinked)
 			cs46xx_dsp_pcm_link(chip,cpcm->pcm_channel);
+		if (substream->runtime->periods != CS46XX_FRAGS)
+			snd_cs46xx_playback_transfer(substream, 0);
 #else
+		if (substream->runtime->periods != CS46XX_FRAGS)
+			snd_cs46xx_playback_transfer(substream, 0);
 		{ unsigned int tmp;
 		tmp = snd_cs46xx_peek(chip, BA1_PCTL);
 		tmp &= 0x0000ffff;
@@ -1165,7 +1167,7 @@
 	for (i = 0; i < DSP_MAX_PCM_CHANNELS; ++i) {
 		if (i <= 15) {
 			if ( status1 & (1 << i) ) {
-				if (i == 1) {
+				if (i == CS46XX_DSP_CAPTURE_CHANNEL) {
 					if (chip->capt.substream)
 						snd_pcm_period_elapsed(chip->capt.substream);
 				} else {
@@ -2447,6 +2449,106 @@
 {	
 }
 
+
+#ifdef CONFIG_SND_CS46XX_NEW_DSP
+static int voyetra_setup_eapd_slot(cs46xx_t *chip)
+{
+	int i;
+    u32 idx;
+    u16 modem_power,pin_config,logic_type,valid_slots,status;
+
+	snd_printd ("cs46xx: cs46xx_setup_eapd_slot()+\n");
+	/*
+	* Clear PRA.  The Bonzo chip will be used for GPIO not for modem
+	* stuff.
+	*/
+	if(chip->nr_ac97_codecs != 2)
+	{
+      snd_printk (KERN_ERR "cs46xx: cs46xx_setup_eapd_slot() - no secondary codec configured\n");
+      return -EINVAL;
+	}
+
+	modem_power = snd_cs46xx_codec_read (chip, 
+                                         BA0_AC97_EXT_MODEM_POWER,
+                                         CS46XX_SECONDARY_CODEC_INDEX);
+	modem_power &=0xFEFF;
+
+	snd_cs46xx_codec_write(chip, 
+                           BA0_AC97_EXT_MODEM_POWER, modem_power,
+                           CS46XX_SECONDARY_CODEC_INDEX);
+
+    /*
+     * Set GPIO pin's 7 and 8 so that they are configured for output.
+     */
+	pin_config = snd_cs46xx_codec_read (chip, 
+                                        BA0_AC97_GPIO_PIN_CONFIG,
+                                        CS46XX_SECONDARY_CODEC_INDEX);
+	pin_config &=0x27F;
+
+	snd_cs46xx_codec_write(chip, 
+                           BA0_AC97_GPIO_PIN_CONFIG, pin_config,
+                           CS46XX_SECONDARY_CODEC_INDEX);
+    
+    /*
+     * Set GPIO pin's 7 and 8 so that they are compatible with CMOS logic.
+     */
+
+	logic_type = snd_cs46xx_codec_read(chip, BA0_AC97_GPIO_PIN_TYPE,
+                                       CS46XX_SECONDARY_CODEC_INDEX);
+	logic_type &=0x27F;
+	snd_cs46xx_codec_write (chip, BA0_AC97_GPIO_PIN_TYPE, logic_type,
+                            CS46XX_SECONDARY_CODEC_INDEX);
+
+	valid_slots = snd_cs46xx_peekBA0(chip, BA0_ACOSV);
+	valid_slots |= 0x200;
+	snd_cs46xx_pokeBA0(chip, BA0_ACOSV, valid_slots);
+
+    /*
+     * Fill slots 12 with the correct value for the GPIO pins. 
+     */
+	for(idx = 0x90; idx <= 0x9F; idx++) {
+
+      /*
+       * Initialize the fifo so that bits 7 and 8 are on.
+       *
+       * Remember that the GPIO pins in bonzo are shifted by 4 bits to
+       * the left.  0x1800 corresponds to bits 7 and 8.
+       */
+      snd_cs46xx_pokeBA0(chip, BA0_SERBWP, 0x1800);
+      
+      /*
+       * Make sure the previous FIFO write operation has completed.
+       */
+      for(i = 0; i < 5; i++){
+        status = snd_cs46xx_peekBA0(chip, BA0_SERBST);
+
+        if( !(status & SERBST_WBSY) ) {
+          break;
+        }
+        mdelay(100);
+      }
+
+      if(status & SERBST_WBSY) {
+        snd_printk( KERN_ERR "cs46xx: cs46xx_setup_eapd_slot() " \
+                             "Failure to write the GPIO pins for slot 12.\n");
+         return -EINVAL;
+      }
+      
+      /*
+       * Write the serial port FIFO index.
+       */
+      snd_cs46xx_pokeBA0(chip, BA0_SERBAD, idx);
+      
+      /*
+       * Tell the serial port to load the new value into the FIFO location.
+       */
+      snd_cs46xx_pokeBA0(chip, BA0_SERBCM, SERBCM_WRC);
+	}
+
+	return 0;
+}
+#endif
+
 /*
  *	Crystal EAPD mode
  */
@@ -2477,6 +2579,12 @@
 			snd_ctl_notify(chip->card, SNDRV_CTL_EVENT_MASK_VALUE,
 				       &chip->eapd_switch->id);
 	}
+
+#ifdef CONFIG_SND_CS46XX_NEW_DSP
+    if (chip->amplifier && !old) {
+      voyetra_setup_eapd_slot(chip);
+    }
+#endif
 }
 
 
diff -Nru a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
--- a/sound/pci/cs46xx/dsp_spos.c	Sun Sep 29 20:24:06 2002
+++ b/sound/pci/cs46xx/dsp_spos.c	Sun Sep 29 20:24:06 2002
@@ -735,7 +735,7 @@
 
 	snd_iprintf(buffer,"\nOUTPUT_SNOOP:\n");
 	col = 0;
-	for (i = 0x1200;i < 0x1240; i += sizeof(u32),col ++) {
+	for (i = OUTPUT_SNOOP_BUFFER;i < OUTPUT_SNOOP_BUFFER + 0x40; i += sizeof(u32),col ++) {
 		if (col == 4) {
 			snd_iprintf(buffer,"\n");
 			col = 0;
@@ -748,9 +748,9 @@
 		snd_iprintf(buffer,"%08X ",readl(dst + i));
 	}
 
-	snd_iprintf(buffer,"\n...\n");
+	snd_iprintf(buffer,"\nCODEC_INPUT_BUF1: \n");
 	col = 0;
-	for (i = 0x12D0;i < 0x1310; i += sizeof(u32),col ++) {
+	for (i = CODEC_INPUT_BUF1;i < CODEC_INPUT_BUF1 + 0x40; i += sizeof(u32),col ++) {
 		if (col == 4) {
 			snd_iprintf(buffer,"\n");
 			col = 0;
@@ -763,20 +763,23 @@
 		snd_iprintf(buffer,"%08X ",readl(dst + i));
 	}
 
-	snd_iprintf(buffer,"\n");
-}
+	snd_iprintf(buffer,"\nWRITE_BACK_BUF1: \n");
+	col = 0;
+	for (i = WRITE_BACK_BUF1;i < WRITE_BACK_BUF1 + 0x40; i += sizeof(u32),col ++) {
+		if (col == 4) {
+			snd_iprintf(buffer,"\n");
+			col = 0;
+		}
 
-#if 0
-static void snd_ac97_proc_regs_read_main(ac97_t *ac97, snd_info_buffer_t * buffer, int subidx)
-{
-	int reg, val;
+		if (col == 0) {
+			snd_iprintf(buffer, "%04X ",i);
+		}
 
-	for (reg = 0; reg < 0x80; reg += 2) {
-		val = snd_ac97_read(ac97, reg);
-		snd_iprintf(buffer, "%i:%02x = %04x\n", subidx, reg, val);
+		snd_iprintf(buffer,"%08X ",readl(dst + i));
 	}
+
+	snd_iprintf(buffer,"\n");
 }
-#endif
 
 int cs46xx_dsp_proc_init (snd_card_t * card, cs46xx_t *chip)
 {
@@ -1349,9 +1352,9 @@
 
 	/* create codec in */
 	codec_in_scb = cs46xx_dsp_create_codec_in_scb(chip,"CodecInSCB",0x0010,0x00A0,
-						       MIX_SAMPLE_BUF1,
-						       CODECIN_SCB_ADDR,codec_out_scb,
-						       SCB_ON_PARENT_NEXT_SCB);
+                                                  CODEC_INPUT_BUF1,
+                                                  CODECIN_SCB_ADDR,codec_out_scb,
+                                                  SCB_ON_PARENT_NEXT_SCB);
 	if (!codec_in_scb) goto _fail_end;
   
 	/* create write back scb */
diff -Nru a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c
--- a/sound/pci/cs46xx/dsp_spos_scb_lib.c	Sun Sep 29 20:24:05 2002
+++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c	Sun Sep 29 20:24:05 2002
@@ -697,7 +697,7 @@
 			DMA_RQ_C2_AC_NONE +
 			DMA_RQ_C2_SIGNAL_DEST_PINGPONG + 
       
-			1,                                 
+			CS46XX_DSP_CAPTURE_CHANNEL,                                 
 			DMA_RQ_SD_SP_SAMPLE_ADDR + 
 			mix_buffer_addr, 
 			0x0                   
@@ -1108,7 +1108,7 @@
 
 		/* virtual channel reserved 
 		   for capture */
-		if (i == 1) continue;
+		if (i == CS46XX_DSP_CAPTURE_CHANNEL) continue;
 
 		if (ins->pcm_channels[i].active) {
 			if (!src_scb && ins->pcm_channels[i].sample_rate == sample_rate) {
diff -Nru a/sound/pci/rme96.c b/sound/pci/rme96.c
--- a/sound/pci/rme96.c	Sun Sep 29 20:24:05 2002
+++ b/sound/pci/rme96.c	Sun Sep 29 20:24:05 2002
@@ -437,7 +437,8 @@
 			      SNDRV_PCM_INFO_MMAP_VALID |
 			      SNDRV_PCM_INFO_INTERLEAVED |
 			      SNDRV_PCM_INFO_PAUSE),
-	formats:             SNDRV_PCM_FMTBIT_S16_LE,
+	formats:	     (SNDRV_PCM_FMTBIT_S16_LE |
+			      SNDRV_PCM_FMTBIT_S32_LE),
 	rates:	             (SNDRV_PCM_RATE_44100 | 
 			      SNDRV_PCM_RATE_48000),
 	rate_min:            44100,
@@ -461,7 +462,8 @@
 			      SNDRV_PCM_INFO_MMAP_VALID |
 			      SNDRV_PCM_INFO_INTERLEAVED |
 			      SNDRV_PCM_INFO_PAUSE),
-	formats:             SNDRV_PCM_FMTBIT_S16_LE,
+	formats:	     (SNDRV_PCM_FMTBIT_S16_LE |
+			      SNDRV_PCM_FMTBIT_S32_LE),
 	rates:	             (SNDRV_PCM_RATE_44100 | 
 			      SNDRV_PCM_RATE_48000),
 	rate_min:            44100,

===================================================================


This BitKeeper patch contains the following changesets:
1.605.2.21
## Wrapped with gzip_uu ##


begin 664 bkpatch2608
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
BA,OU9N1T^0=>['MB/X2SR9EC#45-'&F%_P7#$GX$248`````
`
end

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com


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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-09-29 19:02 [PATCH] ALSA update [10/10] - 2002/08/05 Jaroslav Kysela
@ 2002-09-30  0:56 ` David S. Miller
  2002-09-30 16:20   ` Jaroslav Kysela
  0 siblings, 1 reply; 8+ messages in thread
From: David S. Miller @ 2002-09-30  0:56 UTC (permalink / raw)
  To: perex; +Cc: torvalds, linux-kernel


And where are my SBUS DMA support and sparc build fixes? :-(

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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-09-30  0:56 ` David S. Miller
@ 2002-09-30 16:20   ` Jaroslav Kysela
  2002-09-30 20:52     ` David S. Miller
  0 siblings, 1 reply; 8+ messages in thread
From: Jaroslav Kysela @ 2002-09-30 16:20 UTC (permalink / raw)
  To: David S. Miller; +Cc: torvalds, linux-kernel

On Sun, 29 Sep 2002, David S. Miller wrote:

> And where are my SBUS DMA support and sparc build fixes? :-(

It's not lost. I've sent ALSA patches up to date CVS 2002/08/05. Your 
code will be in second set of ALSA update patches. Sorry for delay.

						Jaroslav

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com


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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-09-30 16:20   ` Jaroslav Kysela
@ 2002-09-30 20:52     ` David S. Miller
  2002-09-30 21:29       ` Jaroslav Kysela
  0 siblings, 1 reply; 8+ messages in thread
From: David S. Miller @ 2002-09-30 20:52 UTC (permalink / raw)
  To: perex; +Cc: torvalds, linux-kernel

   From: Jaroslav Kysela <perex@suse.cz>
   Date: Mon, 30 Sep 2002 18:20:24 +0200 (CEST)

   On Sun, 29 Sep 2002, David S. Miller wrote:
   
   > And where are my SBUS DMA support and sparc build fixes? :-(
   
   It's not lost. I've sent ALSA patches up to date CVS 2002/08/05. Your 
   code will be in second set of ALSA update patches. Sorry for delay.
   
I sent this stuff to Linus seperately last night to save time.

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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-09-30 20:52     ` David S. Miller
@ 2002-09-30 21:29       ` Jaroslav Kysela
  2002-09-30 21:41         ` David S. Miller
  2002-10-01 23:22         ` Linus Torvalds
  0 siblings, 2 replies; 8+ messages in thread
From: Jaroslav Kysela @ 2002-09-30 21:29 UTC (permalink / raw)
  To: David S. Miller; +Cc: torvalds, linux-kernel

On Mon, 30 Sep 2002, David S. Miller wrote:

>    From: Jaroslav Kysela <perex@suse.cz>
>    Date: Mon, 30 Sep 2002 18:20:24 +0200 (CEST)
> 
>    On Sun, 29 Sep 2002, David S. Miller wrote:
>    
>    > And where are my SBUS DMA support and sparc build fixes? :-(
>    
>    It's not lost. I've sent ALSA patches up to date CVS 2002/08/05. Your 
>    code will be in second set of ALSA update patches. Sorry for delay.
>    
> I sent this stuff to Linus seperately last night to save time.

I need to redo next 7 patches because your update :-(
My fault, I should be faster.

						Jaroslav

-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project  http://www.alsa-project.org
SuSE Linux    http://www.suse.com


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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-09-30 21:29       ` Jaroslav Kysela
@ 2002-09-30 21:41         ` David S. Miller
  2002-10-01 23:22         ` Linus Torvalds
  1 sibling, 0 replies; 8+ messages in thread
From: David S. Miller @ 2002-09-30 21:41 UTC (permalink / raw)
  To: perex; +Cc: torvalds, linux-kernel

   From: Jaroslav Kysela <perex@suse.cz>
   Date: Mon, 30 Sep 2002 23:29:30 +0200 (CEST)

   On Mon, 30 Sep 2002, David S. Miller wrote:
   
   > I sent this stuff to Linus seperately last night to save time.
   
   I need to redo next 7 patches because your update :-(
   My fault, I should be faster.

Sorry for the conflict, but I have been waiting for almost 2 months
for my SBUS diffs to show up in the tree so I could merge in my
Sparc drivers.

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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-10-01 23:22         ` Linus Torvalds
@ 2002-10-01 23:18           ` David S. Miller
  0 siblings, 0 replies; 8+ messages in thread
From: David S. Miller @ 2002-10-01 23:18 UTC (permalink / raw)
  To: torvalds; +Cc: perex, linux-kernel

   From: Linus Torvalds <torvalds@transmeta.com>
   Date: Tue, 1 Oct 2002 16:22:33 -0700 (PDT)
   
   Talk to David about the problems with an external CVS tree, he had many of
   the same problems with his sparc/networking tree a long time ago. David, 
   maybe you can talk about how you solved them.
   
I basically tried to send patches on a daily basis.
If that failed... then I ended up with this huge diff
that I had to pick apart by hand like Alan does when merging
-ac bits.

Then I started to use bitkeeper, and I didn't have to go
through the pain of importing a new set of 2.5.x vanilla
changes before a merge.

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

* Re: [PATCH] ALSA update [10/10] - 2002/08/05
  2002-09-30 21:29       ` Jaroslav Kysela
  2002-09-30 21:41         ` David S. Miller
@ 2002-10-01 23:22         ` Linus Torvalds
  2002-10-01 23:18           ` David S. Miller
  1 sibling, 1 reply; 8+ messages in thread
From: Linus Torvalds @ 2002-10-01 23:22 UTC (permalink / raw)
  To: Jaroslav Kysela; +Cc: David S. Miller, linux-kernel


On Mon, 30 Sep 2002, Jaroslav Kysela wrote:
> 
> I need to redo next 7 patches because your update :-(
> My fault, I should be faster.

You should be _timely_.

The big patches also means that it is damn painful for me to merge your
patches. In fact, of _all_ the subsystems in the whole kernel, right now
the ALSA code is absolutely the worst by a big marging when it comes to
merging. 

And your changeset names are just dates, for chrissake! 

Please, fix this up. Your CVS tree means that nobody else can comment
sanely on the changes, it makes _your_ merges harder (not just mine), and
we've several times lost real work that went into the standard tree
because of that.

Right now some audio drivers don't compile, apparently because their
makefiles are broken etc etc. Getting huge drops with totally unrelated 
changes every two months is _not_ acceptable.

Talk to David about the problems with an external CVS tree, he had many of
the same problems with his sparc/networking tree a long time ago. David, 
maybe you can talk about how you solved them.

This is worse than the ACPI stuff, which is saying something. The ACPI
tree has actually tried to merge in sane chunks lately, and make a clean
BK tree available (in contrast, your BK patches don't even apply, since
there are missing chunks etc small "details").

There's a strong hint in the fact that the patches are so big that you 
can't post them. And that hint says that something is WRONG.

			Linus


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

end of thread, other threads:[~2002-10-01 23:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-29 19:02 [PATCH] ALSA update [10/10] - 2002/08/05 Jaroslav Kysela
2002-09-30  0:56 ` David S. Miller
2002-09-30 16:20   ` Jaroslav Kysela
2002-09-30 20:52     ` David S. Miller
2002-09-30 21:29       ` Jaroslav Kysela
2002-09-30 21:41         ` David S. Miller
2002-10-01 23:22         ` Linus Torvalds
2002-10-01 23:18           ` David S. Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).