+static void set_sbpro_stereo(void)\r
+{\r
+}\r
+\r
+static int start_dsp4(int rate, int bits, unsigned int mode, int num_samples)\r
+{\r
+ unsigned char cmd = bits == 8 ? DSP4_START_DMA8 : DSP4_START_DMA16;\r
+ if(auto_init) {\r
+ cmd |= DSP4_AUTO | DSP4_FIFO;\r
+ }\r
+\r
+ /* set output rate */\r
+ write_dsp(DSP4_OUT_RATE);\r
+ write_dsp(rate >> 8);\r
+ write_dsp(rate & 0xff);\r
+\r
+ /* program the DSP to start the DMA transfer */\r
+ write_dsp(cmd);\r
+ write_dsp(mode);\r
+ num_samples--;\r
+ write_dsp(num_samples & 0xff);\r
+ write_dsp((num_samples >> 8) & 0xff);\r
+\r
+ return 0;\r
+}\r
+\r
+static int start_dsp(int rate, int nchan, int num_samples)\r
+{\r
+ /* set time constant */\r
+ int tcon = 256 - 1000000 / rate;\r
+ write_dsp(DSP_RATE);\r
+ write_dsp(tcon);\r
+\r
+ if(nchan > 1) {\r
+ /* stereo */\r
+ if(dsp_ver < 0x300) return -1; /* need a sb pro for stereo */\r
+\r
+ set_sbpro_stereo();\r
+ high_speed = rate >= 11025;\r
+ } else {\r
+ /* mono */\r
+ high_speed = rate >= 23000;\r
+ }\r
+\r
+ /* program the DSP to start the DMA transfer */\r
+ return -1; /* TODO */\r
+}\r
+\r
+\r