Lines Matching +full:0 +full:x32000

34 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
75 #define HDSP_resetPointer 0
76 #define HDSP_freqReg 0
91 #define HDSP_statusRegister 0
132 #define HDSP_TMS 0x01
133 #define HDSP_TCK 0x02
134 #define HDSP_TDI 0x04
135 #define HDSP_JTAG 0x08
136 #define HDSP_PWDN 0x10
137 #define HDSP_PROGRAM 0x020
138 #define HDSP_CONFIG_MODE_0 0x040
139 #define HDSP_CONFIG_MODE_1 0x080
140 #define HDSP_VERSION_BIT (0x100 | HDSP_S_LOAD)
141 #define HDSP_BIGENDIAN_MODE 0x200
142 #define HDSP_RD_MULTIPLE 0x400
143 #define HDSP_9652_ENABLE_MIXER 0x800
144 #define HDSP_S200 0x800
145 #define HDSP_S300 (0x100 | HDSP_S200) /* dummy, purpose of 0x100 unknown */
146 #define HDSP_CYCLIC_MODE 0x1000
147 #define HDSP_TDO 0x10000000
154 #define HDSP_Start (1<<0) /* start engine */
155 #define HDSP_Latency0 (1<<1) /* buffer size = 2^n where n is defined by Latency{2,1,0}…
158 #define HDSP_ClockModeMaster (1<<4) /* 1=Master, 0=Slave/Autosync */
160 #define HDSP_Frequency0 (1<<6) /* 0=44.1kHz/88.2kHz/176.4kHz 1=48kHz/96kHz/192kHz */
161 #define HDSP_Frequency1 (1<<7) /* 0=32kHz/64kHz/128kHz */
162 #define HDSP_DoubleSpeed (1<<8) /* 0=normal speed, 1=double speed */
163 #define HDSP_SPDIFProfessional (1<<9) /* 0=consumer, 1=professional */
164 #define HDSP_SPDIFEmphasis (1<<10) /* 0=none, 1=on */
165 #define HDSP_SPDIFNonAudio (1<<11) /* 0=off, 1=on */
166 #define HDSP_SPDIFOpticalOut (1<<12) /* 1=use 1st ADAT connector for SPDIF, 0=do not */
186 #define HDSP_RPM_Inp12 0x04A00
187 #define HDSP_RPM_Inp12_Phon_6dB 0x00800 /* Dolby */
188 #define HDSP_RPM_Inp12_Phon_0dB 0x00000 /* .. */
189 #define HDSP_RPM_Inp12_Phon_n6dB 0x04000 /* inp_0 */
190 #define HDSP_RPM_Inp12_Line_0dB 0x04200 /* Dolby+PRO */
191 #define HDSP_RPM_Inp12_Line_n6dB 0x00200 /* PRO */
193 #define HDSP_RPM_Inp34 0x32000
194 #define HDSP_RPM_Inp34_Phon_6dB 0x20000 /* SyncRef1 */
195 #define HDSP_RPM_Inp34_Phon_0dB 0x00000 /* .. */
196 #define HDSP_RPM_Inp34_Phon_n6dB 0x02000 /* SyncRef2 */
197 #define HDSP_RPM_Inp34_Line_0dB 0x30000 /* SyncRef1+SyncRef0 */
198 #define HDSP_RPM_Inp34_Line_n6dB 0x10000 /* SyncRef0 */
200 #define HDSP_RPM_Bypass 0x01000
202 #define HDSP_RPM_Disconnect 0x00001
207 #define HDSP_ADGainLowGain 0
212 #define HDSP_DAGainMinus10dBV 0
217 #define HDSP_PhoneGainMinus12dB 0
223 #define HDSP_SPDIFInputADAT1 0
229 #define HDSP_SyncRef_ADAT1 0
238 #define HDSP_CLOCK_SOURCE_AUTOSYNC 0
251 #define HDSP_SYNC_FROM_WORD 0
260 #define HDSP_SYNC_CHECK_NO_LOCK 0
266 #define HDSP_AUTOSYNC_FROM_WORD 0
276 #define HDSP_SPDIFIN_OPTICAL 0 /* optical (ADAT1) */
300 #define hdsp_encode_spdif_in(x) (((x)&0x3)<<14)
301 #define hdsp_decode_spdif_in(x) (((x)>>14)&0x3)
305 #define HDSP_audioIRQPending (1<<0)
312 #define HDSP_BufferPositionMask 0x000FFC0 /* Bit 6..15 : h/w buffer pointer */
326 #define HDSP_AEBI (1<<29) /* 0 = present, 1 = absent */
353 #define HDSP_version0 (1<<0)
377 #define HDSP_SelSyncRef_ADAT1 0
386 #define HDSP_InitializationComplete (1<<0)
396 #define MINUS_INFINITY_GAIN 0
505 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
511 0, 1, 2, 3, 4, 5, 6, 7,
530 0, 1, 2, 3, 4, 5, 6, 7,
589 { 0, },
612 if (hdsp->firmware_rev == 0xa) in hdsp_playback_to_output_key()
630 if (hdsp->firmware_rev == 0xa) in hdsp_input_to_output_key()
655 if (hdsp->io_type == H9652 || hdsp->io_type == H9632) return 0; in hdsp_check_for_iobox()
656 for (i = 0; i < 500; i++) { in hdsp_check_for_iobox()
657 if (0 == (hdsp_read(hdsp, HDSP_statusRegister) & in hdsp_check_for_iobox()
664 return 0; in hdsp_check_for_iobox()
679 return 0; in hdsp_wait_for_iobox()
681 for (i = 0; i != loops; ++i) { in hdsp_wait_for_iobox()
687 return 0; in hdsp_wait_for_iobox()
712 if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { in snd_hdsp_load_firmware_from_cache()
717 hdsp_write (hdsp, HDSP_fifoData, 0); in snd_hdsp_load_firmware_from_cache()
719 if (hdsp_fifo_wait (hdsp, 0, HDSP_LONG_WAIT)) { in snd_hdsp_load_firmware_from_cache()
728 for (i = 0; i < HDSP_FIRMWARE_SIZE / 4; ++i) { in snd_hdsp_load_firmware_from_cache()
745 hdsp->control2_register = 0; in snd_hdsp_load_firmware_from_cache()
761 return 0; in snd_hdsp_load_firmware_from_cache()
766 if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { in hdsp_get_iobox_version()
769 hdsp_write(hdsp, HDSP_fifoData, 0); in hdsp_get_iobox_version()
771 if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT) < 0) { in hdsp_get_iobox_version()
777 hdsp_write (hdsp, HDSP_fifoData, 0); in hdsp_get_iobox_version()
778 if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT) < 0) in hdsp_get_iobox_version()
782 hdsp_write(hdsp, HDSP_fifoData, 0); in hdsp_get_iobox_version()
783 if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT) == 0) { in hdsp_get_iobox_version()
786 return 0; in hdsp_get_iobox_version()
791 hdsp_write(hdsp, HDSP_fifoData, 0); in hdsp_get_iobox_version()
792 if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT) == 0) in hdsp_get_iobox_version()
797 hdsp_write(hdsp, HDSP_fifoData, 0); in hdsp_get_iobox_version()
798 if (hdsp_fifo_wait(hdsp, 0, HDSP_SHORT_WAIT) < 0) in hdsp_get_iobox_version()
803 return 0; in hdsp_get_iobox_version()
813 return 0; in hdsp_get_iobox_version()
818 return 0; in hdsp_get_iobox_version()
827 return 0; in hdsp_check_for_firmware()
828 if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { in hdsp_check_for_firmware()
836 return 0; in hdsp_check_for_firmware()
841 if (snd_hdsp_load_firmware_from_cache(hdsp) != 0) { in hdsp_check_for_firmware()
847 return 0; in hdsp_check_for_firmware()
859 for (i = 0; i < timeout; i++) { in hdsp_fifo_wait()
861 if ((int)(hdsp_read (hdsp, HDSP_fifoStatus) & 0xff) <= count) in hdsp_fifo_wait()
862 return 0; in hdsp_fifo_wait()
880 return 0; in hdsp_read_gain()
900 value 0 you have to read value 1 in hdsp_write_gain()
907 return 0; in hdsp_write_gain()
910 return 0; in hdsp_write_gain()
918 varies from 0 to 1351, but to access the in hdsp_write_gain()
920 to access 0 to 2703 ... in hdsp_write_gain()
925 (hdsp->mixer_matrix[(addr&0x7fe)+1] << 16) + in hdsp_write_gain()
926 hdsp->mixer_matrix[addr&0x7fe]); in hdsp_write_gain()
928 return 0; in hdsp_write_gain()
942 return 0; in hdsp_write_gain()
952 (hdsp->playback_pid >= 0) && (hdsp->capture_pid >= 0)) in snd_hdsp_use_is_exclusive()
953 ret = 0; in snd_hdsp_use_is_exclusive()
968 return 0; in hdsp_spdif_sample_rate()
990 "unknown spdif frequency status; bits = 0x%x, status = 0x%x\n", in hdsp_spdif_sample_rate()
992 return 0; in hdsp_spdif_sample_rate()
1016 return 0; in hdsp_external_sample_rate()
1032 return (position & HDSP_BufferID) ? (hdsp->period_bytes / 4) : 0; in hdsp_hw_pointer()
1042 hdsp_write (hdsp, HDSP_resetPointer, 0); in hdsp_reset_hw_pointer()
1064 memset(hdsp->playback_buffer, 0, HDSP_DMA_AREA_BYTES); in hdsp_silence_playback()
1074 n = 0; in hdsp_set_interrupt_interval()
1089 return 0; in hdsp_set_interrupt_interval()
1113 int reject_if_open = 0; in hdsp_set_rate()
1212 if (reject_if_open && (hdsp->capture_pid >= 0 || hdsp->playback_pid >= 0)) { in hdsp_set_rate()
1256 return 0; in hdsp_set_rate()
1265 /* the hardware already does the relevant bit-mask with 0xff */ in snd_hdsp_midi_read_byte()
1274 /* the hardware already does the relevant bit-mask with 0xff */ in snd_hdsp_midi_write_byte()
1284 return (hdsp_read(hdsp, HDSP_midiStatusIn1) & 0xff); in snd_hdsp_midi_input_available()
1286 return (hdsp_read(hdsp, HDSP_midiStatusIn0) & 0xff); in snd_hdsp_midi_input_available()
1294 fifo_bytes_used = hdsp_read(hdsp, HDSP_midiStatusOut1) & 0xff; in snd_hdsp_midi_output_possible()
1296 fifo_bytes_used = hdsp_read(hdsp, HDSP_midiStatusOut0) & 0xff; in snd_hdsp_midi_output_possible()
1301 return 0; in snd_hdsp_midi_output_possible()
1323 if ((n_pending = snd_hdsp_midi_output_possible (hmidi->hdsp, hmidi->id)) > 0) { in snd_hdsp_midi_output_write()
1327 if ((to_write = snd_rawmidi_transmit (hmidi->output, buf, n_pending)) > 0) { in snd_hdsp_midi_output_write()
1328 for (i = 0; i < to_write; ++i) in snd_hdsp_midi_output_write()
1335 return 0; in snd_hdsp_midi_output_write()
1346 if ((n_pending = snd_hdsp_midi_input_available (hmidi->hdsp, hmidi->id)) > 0) { in snd_hdsp_midi_input_read()
1350 for (i = 0; i < n_pending; ++i) in snd_hdsp_midi_input_read()
1360 hmidi->pending = 0; in snd_hdsp_midi_input_read()
1424 0); in snd_hdsp_midi_output_trigger()
1429 if (hmidi->istimer && --hmidi->istimer <= 0) in snd_hdsp_midi_output_trigger()
1447 return 0; in snd_hdsp_midi_input_open()
1459 return 0; in snd_hdsp_midi_output_open()
1466 snd_hdsp_midi_input_trigger (substream, 0); in snd_hdsp_midi_input_close()
1473 return 0; in snd_hdsp_midi_input_close()
1480 snd_hdsp_midi_output_trigger (substream, 0); in snd_hdsp_midi_output_close()
1487 return 0; in snd_hdsp_midi_output_close()
1513 hdsp->midi[id].istimer = 0; in snd_hdsp_create_midi()
1514 hdsp->midi[id].pending = 0; in snd_hdsp_create_midi()
1518 if (snd_rawmidi_new (card, buf, id, 1, 1, &hdsp->midi[id].rmidi) < 0) in snd_hdsp_create_midi()
1531 return 0; in snd_hdsp_create_midi()
1540 u32 val = 0; in snd_hdsp_convert_from_aes()
1541 val |= (aes->status[0] & IEC958_AES0_PROFESSIONAL) ? HDSP_SPDIFProfessional : 0; in snd_hdsp_convert_from_aes()
1542 val |= (aes->status[0] & IEC958_AES0_NONAUDIO) ? HDSP_SPDIFNonAudio : 0; in snd_hdsp_convert_from_aes()
1544 val |= (aes->status[0] & IEC958_AES0_PRO_EMPHASIS_5015) ? HDSP_SPDIFEmphasis : 0; in snd_hdsp_convert_from_aes()
1546 val |= (aes->status[0] & IEC958_AES0_CON_EMPHASIS_5015) ? HDSP_SPDIFEmphasis : 0; in snd_hdsp_convert_from_aes()
1552 aes->status[0] = ((val & HDSP_SPDIFProfessional) ? IEC958_AES0_PROFESSIONAL : 0) | in snd_hdsp_convert_to_aes()
1553 ((val & HDSP_SPDIFNonAudio) ? IEC958_AES0_NONAUDIO : 0); in snd_hdsp_convert_to_aes()
1555 aes->status[0] |= (val & HDSP_SPDIFEmphasis) ? IEC958_AES0_PRO_EMPHASIS_5015 : 0; in snd_hdsp_convert_to_aes()
1557 aes->status[0] |= (val & HDSP_SPDIFEmphasis) ? IEC958_AES0_CON_EMPHASIS_5015 : 0; in snd_hdsp_convert_to_aes()
1564 return 0; in snd_hdsp_control_spdif_info()
1572 return 0; in snd_hdsp_control_spdif_get()
1593 return 0; in snd_hdsp_control_spdif_stream_info()
1601 return 0; in snd_hdsp_control_spdif_stream_get()
1624 return 0; in snd_hdsp_control_spdif_mask_info()
1629 ucontrol->value.iec958.status[0] = kcontrol->private_value; in snd_hdsp_control_spdif_mask_get()
1630 return 0; in snd_hdsp_control_spdif_mask_get()
1651 return 0; in hdsp_set_spdif_input()
1669 ucontrol->value.enumerated.item[0] = hdsp_spdif_in(hdsp); in snd_hdsp_get_spdif_in()
1670 return 0; in snd_hdsp_get_spdif_in()
1681 val = ucontrol->value.enumerated.item[0] % ((hdsp->io_type == H9632) ? 4 : 3); in snd_hdsp_put_spdif_in()
1701 return (hdsp->control_register & regmask) ? 1 : 0; in hdsp_toggle_setting()
1712 return 0; in hdsp_set_toggle_setting()
1724 ucontrol->value.integer.value[0] = hdsp_toggle_setting(hdsp, regmask); in snd_hdsp_get_toggle_setting()
1726 return 0; in snd_hdsp_get_toggle_setting()
1739 val = ucontrol->value.integer.value[0] & 1; in snd_hdsp_put_toggle_setting()
1775 ucontrol->value.enumerated.item[0] = 0; in snd_hdsp_get_spdif_sample_rate()
1778 ucontrol->value.enumerated.item[0] = 1; in snd_hdsp_get_spdif_sample_rate()
1781 ucontrol->value.enumerated.item[0] = 2; in snd_hdsp_get_spdif_sample_rate()
1784 ucontrol->value.enumerated.item[0] = 3; in snd_hdsp_get_spdif_sample_rate()
1787 ucontrol->value.enumerated.item[0] = 4; in snd_hdsp_get_spdif_sample_rate()
1790 ucontrol->value.enumerated.item[0] = 5; in snd_hdsp_get_spdif_sample_rate()
1793 ucontrol->value.enumerated.item[0] = 7; in snd_hdsp_get_spdif_sample_rate()
1796 ucontrol->value.enumerated.item[0] = 8; in snd_hdsp_get_spdif_sample_rate()
1799 ucontrol->value.enumerated.item[0] = 9; in snd_hdsp_get_spdif_sample_rate()
1802 ucontrol->value.enumerated.item[0] = 6; in snd_hdsp_get_spdif_sample_rate()
1804 return 0; in snd_hdsp_get_spdif_sample_rate()
1820 return 0; in snd_hdsp_info_system_sample_rate()
1827 ucontrol->value.enumerated.item[0] = hdsp->system_sample_rate; in snd_hdsp_get_system_sample_rate()
1828 return 0; in snd_hdsp_get_system_sample_rate()
1858 ucontrol->value.enumerated.item[0] = 0; in snd_hdsp_get_autosync_sample_rate()
1861 ucontrol->value.enumerated.item[0] = 1; in snd_hdsp_get_autosync_sample_rate()
1864 ucontrol->value.enumerated.item[0] = 2; in snd_hdsp_get_autosync_sample_rate()
1867 ucontrol->value.enumerated.item[0] = 3; in snd_hdsp_get_autosync_sample_rate()
1870 ucontrol->value.enumerated.item[0] = 4; in snd_hdsp_get_autosync_sample_rate()
1873 ucontrol->value.enumerated.item[0] = 5; in snd_hdsp_get_autosync_sample_rate()
1876 ucontrol->value.enumerated.item[0] = 7; in snd_hdsp_get_autosync_sample_rate()
1879 ucontrol->value.enumerated.item[0] = 8; in snd_hdsp_get_autosync_sample_rate()
1882 ucontrol->value.enumerated.item[0] = 9; in snd_hdsp_get_autosync_sample_rate()
1885 ucontrol->value.enumerated.item[0] = 6; in snd_hdsp_get_autosync_sample_rate()
1887 return 0; in snd_hdsp_get_autosync_sample_rate()
1902 return 0; in hdsp_system_clock_mode()
1904 return 0; in hdsp_system_clock_mode()
1919 ucontrol->value.enumerated.item[0] = hdsp_system_clock_mode(hdsp); in snd_hdsp_get_system_clock_mode()
1920 return 0; in snd_hdsp_get_system_clock_mode()
1958 return 0; in hdsp_clock_source()
1967 if (hdsp_external_sample_rate(hdsp) != 0) { in hdsp_set_clock_source()
1971 return 0; in hdsp_set_clock_source()
2008 return 0; in hdsp_set_clock_source()
2029 ucontrol->value.enumerated.item[0] = hdsp_clock_source(hdsp); in snd_hdsp_get_clock_source()
2030 return 0; in snd_hdsp_get_clock_source()
2041 val = ucontrol->value.enumerated.item[0]; in snd_hdsp_put_clock_source()
2042 if (val < 0) val = 0; in snd_hdsp_put_clock_source()
2052 change = (hdsp_set_clock_source(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_clock_source()
2054 change = 0; in snd_hdsp_put_clock_source()
2065 ucontrol->value.integer.value[0] = hdsp->clock_source_locked; in snd_hdsp_get_clock_source_lock()
2066 return 0; in snd_hdsp_get_clock_source_lock()
2074 change = (int)ucontrol->value.integer.value[0] != hdsp->clock_source_locked; in snd_hdsp_put_clock_source_lock()
2076 hdsp->clock_source_locked = !!ucontrol->value.integer.value[0]; in snd_hdsp_put_clock_source_lock()
2093 return 0; in hdsp_da_gain()
2107 case 0: in hdsp_set_da_gain()
2121 return 0; in hdsp_set_da_gain()
2135 ucontrol->value.enumerated.item[0] = hdsp_da_gain(hdsp); in snd_hdsp_get_da_gain()
2136 return 0; in snd_hdsp_get_da_gain()
2147 val = ucontrol->value.enumerated.item[0]; in snd_hdsp_put_da_gain()
2148 if (val < 0) val = 0; in snd_hdsp_put_da_gain()
2152 change = (hdsp_set_da_gain(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_da_gain()
2154 change = 0; in snd_hdsp_put_da_gain()
2172 return 0; in hdsp_ad_gain()
2186 case 0: in hdsp_set_ad_gain()
2200 return 0; in hdsp_set_ad_gain()
2214 ucontrol->value.enumerated.item[0] = hdsp_ad_gain(hdsp); in snd_hdsp_get_ad_gain()
2215 return 0; in snd_hdsp_get_ad_gain()
2226 val = ucontrol->value.enumerated.item[0]; in snd_hdsp_put_ad_gain()
2227 if (val < 0) val = 0; in snd_hdsp_put_ad_gain()
2231 change = (hdsp_set_ad_gain(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_ad_gain()
2233 change = 0; in snd_hdsp_put_ad_gain()
2251 return 0; in hdsp_phone_gain()
2257 return 0; in hdsp_phone_gain()
2265 case 0: in hdsp_set_phone_gain()
2279 return 0; in hdsp_set_phone_gain()
2284 static const char * const texts[] = {"0 dB", "-6 dB", "-12 dB"}; in snd_hdsp_info_phone_gain()
2293 ucontrol->value.enumerated.item[0] = hdsp_phone_gain(hdsp); in snd_hdsp_get_phone_gain()
2294 return 0; in snd_hdsp_get_phone_gain()
2305 val = ucontrol->value.enumerated.item[0]; in snd_hdsp_put_phone_gain()
2306 if (val < 0) val = 0; in snd_hdsp_put_phone_gain()
2310 change = (hdsp_set_phone_gain(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_phone_gain()
2312 change = 0; in snd_hdsp_put_phone_gain()
2348 return 0; in hdsp_pref_sync_ref()
2377 return 0; in hdsp_set_pref_sync_ref()
2410 ucontrol->value.enumerated.item[0] = hdsp_pref_sync_ref(hdsp); in snd_hdsp_get_pref_sync_ref()
2411 return 0; in snd_hdsp_get_pref_sync_ref()
2438 val = ucontrol->value.enumerated.item[0] % max; in snd_hdsp_put_pref_sync_ref()
2478 return 0; in hdsp_autosync_ref()
2494 ucontrol->value.enumerated.item[0] = hdsp_autosync_ref(hdsp); in snd_hdsp_get_autosync_ref()
2495 return 0; in snd_hdsp_get_autosync_ref()
2512 hdsp->precise_ptr = 0; in hdsp_set_precise_pointer()
2513 return 0; in hdsp_set_precise_pointer()
2523 ucontrol->value.integer.value[0] = hdsp->precise_ptr; in snd_hdsp_get_precise_pointer()
2525 return 0; in snd_hdsp_get_precise_pointer()
2536 val = ucontrol->value.integer.value[0] & 1; in snd_hdsp_put_precise_pointer()
2558 hdsp->use_midi_work = 0; in hdsp_set_use_midi_work()
2559 return 0; in hdsp_set_use_midi_work()
2569 ucontrol->value.integer.value[0] = hdsp->use_midi_work; in snd_hdsp_get_use_midi_work()
2571 return 0; in snd_hdsp_get_use_midi_work()
2582 val = ucontrol->value.integer.value[0] & 1; in snd_hdsp_put_use_midi_work()
2594 .device = 0, \
2606 uinfo->value.integer.min = 0; in snd_hdsp_info_mixer()
2609 return 0; in snd_hdsp_info_mixer()
2619 source = ucontrol->value.integer.value[0]; in snd_hdsp_get_mixer()
2630 return 0; in snd_hdsp_get_mixer()
2645 source = ucontrol->value.integer.value[0]; in snd_hdsp_put_mixer()
2688 return 0; in hdsp_wc_sync_check()
2689 return 0; in hdsp_wc_sync_check()
2696 ucontrol->value.enumerated.item[0] = hdsp_wc_sync_check(hdsp); in snd_hdsp_get_wc_sync_check()
2697 return 0; in snd_hdsp_get_wc_sync_check()
2713 return 0; in hdsp_spdif_sync_check()
2720 return 0; in hdsp_spdif_sync_check()
2727 ucontrol->value.enumerated.item[0] = hdsp_spdif_sync_check(hdsp); in snd_hdsp_get_spdif_sync_check()
2728 return 0; in snd_hdsp_get_spdif_sync_check()
2749 return 0; in hdsp_adatsync_sync_check()
2756 ucontrol->value.enumerated.item[0] = hdsp_adatsync_sync_check(hdsp); in snd_hdsp_get_adatsync_sync_check()
2757 return 0; in snd_hdsp_get_adatsync_sync_check()
2777 return 0; in hdsp_adat_sync_check()
2786 if (snd_BUG_ON(offset < 0)) in snd_hdsp_get_adat_sync_check()
2804 ucontrol->value.enumerated.item[0] = hdsp_adat_sync_check(hdsp, offset); in snd_hdsp_get_adat_sync_check()
2805 return 0; in snd_hdsp_get_adat_sync_check()
2824 return 0; in hdsp_dds_offset()
2843 return 0; in hdsp_set_dds_offset()
2852 return 0; in snd_hdsp_info_dds_offset()
2859 ucontrol->value.integer.value[0] = hdsp_dds_offset(hdsp); in snd_hdsp_get_dds_offset()
2860 return 0; in snd_hdsp_get_dds_offset()
2871 val = ucontrol->value.integer.value[0]; in snd_hdsp_put_dds_offset()
2874 change = (hdsp_set_dds_offset(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_dds_offset()
2876 change = 0; in snd_hdsp_put_dds_offset()
2882 HDSP_DA_GAIN("DA Gain", 0),
2883 HDSP_AD_GAIN("AD Gain", 0),
2884 HDSP_PHONE_GAIN("Phones Gain", 0),
2886 HDSP_DDS_OFFSET("DDS Sample Rate Offset", 0)
2925 HDSP_MIXER("Mixer", 0),
2926 HDSP_SPDIF_IN("IEC958 Input Connector", 0),
2932 HDSP_CLOCK_SOURCE("Sample Clock Source", 0),
2940 HDSP_SYSTEM_CLOCK_MODE("System Clock Mode", 0),
2941 HDSP_PREF_SYNC_REF("Preferred Sync Reference", 0),
2942 HDSP_AUTOSYNC_REF("AutoSync Reference", 0),
2943 HDSP_SPDIF_SAMPLE_RATE("SPDIF Sample Rate", 0),
2944 HDSP_SYSTEM_SAMPLE_RATE("System Sample Rate", 0),
2946 HDSP_AUTOSYNC_SAMPLE_RATE("External Rate", 0),
2947 HDSP_WC_SYNC_CHECK("Word Clock Lock Status", 0),
2948 HDSP_SPDIF_SYNC_CHECK("SPDIF Lock Status", 0),
2949 HDSP_ADATSYNC_SYNC_CHECK("ADAT Sync Lock Status", 0),
2951 HDSP_PRECISE_POINTER("Precise Pointer", 0),
2952 HDSP_USE_MIDI_WORK("Use Midi Tasklet", 0),
2960 return 0; in hdsp_rpm_input12()
2976 ucontrol->value.enumerated.item[0] = hdsp_rpm_input12(hdsp); in snd_hdsp_get_rpm_input12()
2977 return 0; in snd_hdsp_get_rpm_input12()
2985 case 0: in hdsp_set_rpm_input12()
3004 return 0; in hdsp_set_rpm_input12()
3016 val = ucontrol->value.enumerated.item[0]; in snd_hdsp_put_rpm_input12()
3017 if (val < 0) in snd_hdsp_put_rpm_input12()
3018 val = 0; in snd_hdsp_put_rpm_input12()
3023 change = (hdsp_set_rpm_input12(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_rpm_input12()
3025 change = 0; in snd_hdsp_put_rpm_input12()
3034 "Phono +6dB", "Phono 0dB", "Phono -6dB", "Line 0dB", "Line -6dB" in snd_hdsp_info_rpm_input()
3045 return 0; in hdsp_rpm_input34()
3061 ucontrol->value.enumerated.item[0] = hdsp_rpm_input34(hdsp); in snd_hdsp_get_rpm_input34()
3062 return 0; in snd_hdsp_get_rpm_input34()
3070 case 0: in hdsp_set_rpm_input34()
3089 return 0; in hdsp_set_rpm_input34()
3101 val = ucontrol->value.enumerated.item[0]; in snd_hdsp_put_rpm_input34()
3102 if (val < 0) in snd_hdsp_put_rpm_input34()
3103 val = 0; in snd_hdsp_put_rpm_input34()
3108 change = (hdsp_set_rpm_input34(hdsp, val) == 0) ? 1 : 0; in snd_hdsp_put_rpm_input34()
3110 change = 0; in snd_hdsp_put_rpm_input34()
3119 return (hdsp->control_register & HDSP_RPM_Bypass) ? 1 : 0; in hdsp_rpm_bypass()
3127 ucontrol->value.integer.value[0] = hdsp_rpm_bypass(hdsp); in snd_hdsp_get_rpm_bypass()
3128 return 0; in snd_hdsp_get_rpm_bypass()
3139 return 0; in hdsp_set_rpm_bypass()
3151 val = ucontrol->value.integer.value[0] & 1; in snd_hdsp_put_rpm_bypass()
3171 return (hdsp->control_register & HDSP_RPM_Disconnect) ? 1 : 0; in hdsp_rpm_disconnect()
3179 ucontrol->value.integer.value[0] = hdsp_rpm_disconnect(hdsp); in snd_hdsp_get_rpm_disconnect()
3180 return 0; in snd_hdsp_get_rpm_disconnect()
3191 return 0; in hdsp_set_rpm_disconnect()
3203 val = ucontrol->value.integer.value[0] & 1; in snd_hdsp_put_rpm_disconnect()
3247 HDSP_SYSTEM_SAMPLE_RATE("System Sample Rate", 0),
3248 HDSP_MIXER("Mixer", 0)
3264 for (idx = 0; idx < ARRAY_SIZE(snd_hdsp_rpm_controls); idx++) { in snd_hdsp_create_controls()
3266 if (err < 0) in snd_hdsp_create_controls()
3269 return 0; in snd_hdsp_create_controls()
3272 for (idx = 0; idx < ARRAY_SIZE(snd_hdsp_controls); idx++) { in snd_hdsp_create_controls()
3273 if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_hdsp_controls[idx], hdsp))) < 0) in snd_hdsp_create_controls()
3294 for (idx = 0; idx < ARRAY_SIZE(snd_hdsp_9632_controls); idx++) { in snd_hdsp_create_controls()
3295 if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_hdsp_9632_controls[idx], hdsp))) < 0) in snd_hdsp_create_controls()
3302 if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_hdsp_96xx_aeb, hdsp))) < 0) in snd_hdsp_create_controls()
3306 return 0; in snd_hdsp_create_controls()
3332 snd_iprintf(buffer, "IRQ: %d Registers bus: 0x%lx VM: 0x%lx\n", in snd_hdsp_proc_read()
3334 snd_iprintf(buffer, "Control register: 0x%x\n", hdsp->control_register); in snd_hdsp_proc_read()
3335 snd_iprintf(buffer, "Control2 register: 0x%x\n", in snd_hdsp_proc_read()
3337 snd_iprintf(buffer, "Status register: 0x%x\n", status); in snd_hdsp_proc_read()
3338 snd_iprintf(buffer, "Status2 register: 0x%x\n", status2); in snd_hdsp_proc_read()
3346 if (hdsp_check_for_firmware(hdsp, 0)) { in snd_hdsp_proc_read()
3348 if (snd_hdsp_load_firmware_from_cache(hdsp) != 0) { in snd_hdsp_proc_read()
3358 if (err < 0) { in snd_hdsp_proc_read()
3367 snd_iprintf(buffer, "FIFO status: %d\n", hdsp_read(hdsp, HDSP_fifoStatus) & 0xff); in snd_hdsp_proc_read()
3368 snd_iprintf(buffer, "MIDI1 Output status: 0x%x\n", hdsp_read(hdsp, HDSP_midiStatusOut0)); in snd_hdsp_proc_read()
3369 snd_iprintf(buffer, "MIDI1 Input status: 0x%x\n", hdsp_read(hdsp, HDSP_midiStatusIn0)); in snd_hdsp_proc_read()
3370 snd_iprintf(buffer, "MIDI2 Output status: 0x%x\n", hdsp_read(hdsp, HDSP_midiStatusOut1)); in snd_hdsp_proc_read()
3371 snd_iprintf(buffer, "MIDI2 Input status: 0x%x\n", hdsp_read(hdsp, HDSP_midiStatusIn1)); in snd_hdsp_proc_read()
3525 snd_iprintf(buffer, "Input 1/2: Phono, 0dB\n"); in snd_hdsp_proc_read()
3531 snd_iprintf(buffer, "Input 1/2: Line, 0dB\n"); in snd_hdsp_proc_read()
3545 snd_iprintf(buffer, "Input 3/4: Phono, 0dB\n"); in snd_hdsp_proc_read()
3551 snd_iprintf(buffer, "Input 3/4: Line, 0dB\n"); in snd_hdsp_proc_read()
3581 if (x != 0) in snd_hdsp_proc_read()
3639 case 0: in snd_hdsp_proc_read()
3652 case 0: in snd_hdsp_proc_read()
3665 case 0: in snd_hdsp_proc_read()
3666 tmp = "0 dB"; in snd_hdsp_proc_read()
3705 if (snd_hammerfall_get_buffer(hdsp->pci, &hdsp->capture_dma_buf, HDSP_DMA_AREA_BYTES) < 0 || in snd_hdsp_initialize_memory()
3706 snd_hammerfall_get_buffer(hdsp->pci, &hdsp->playback_dma_buf, HDSP_DMA_AREA_BYTES) < 0) { in snd_hdsp_initialize_memory()
3716 cb_bus = ALIGN(hdsp->capture_dma_buf.addr, 0x10000ul); in snd_hdsp_initialize_memory()
3717 pb_bus = ALIGN(hdsp->playback_dma_buf.addr, 0x10000ul); in snd_hdsp_initialize_memory()
3727 return 0; in snd_hdsp_initialize_memory()
3759 hdsp->control2_register = 0; in snd_hdsp_set_defaults()
3771 for (i = 0; i < HDSP_MATRIX_MIXER_SIZE; ++i) in snd_hdsp_set_defaults()
3774 …for (i = 0; i < ((hdsp->io_type == H9652 || hdsp->io_type == H9632) ? 1352 : HDSP_MATRIX_MIXER_SIZ… in snd_hdsp_set_defaults()
3790 return 0; in snd_hdsp_set_defaults()
3797 if (hdsp->midi[0].pending) in hdsp_midi_work()
3798 snd_hdsp_midi_input_read (&hdsp->midi[0]); in hdsp_midi_work()
3812 int schedule = 0; in snd_hdsp_interrupt()
3823 hdsp_write(hdsp, HDSP_interruptConfirmation, 0); in snd_hdsp_interrupt()
3825 midi0status = hdsp_read (hdsp, HDSP_midiStatusIn0) & 0xff; in snd_hdsp_interrupt()
3826 midi1status = hdsp_read (hdsp, HDSP_midiStatusIn1) & 0xff; in snd_hdsp_interrupt()
3844 hdsp->midi[0].pending = 1; in snd_hdsp_interrupt()
3847 snd_hdsp_midi_input_read (&hdsp->midi[0]); in snd_hdsp_interrupt()
3879 if (snd_BUG_ON(channel < 0 || channel >= hdsp->max_channels)) in hdsp_channel_buffer_location()
3882 if ((mapped_channel = hdsp->channel_map[channel]) < 0) in hdsp_channel_buffer_location()
3906 return 0; in snd_hdsp_playback_copy()
3920 return 0; in snd_hdsp_playback_copy_kernel()
3938 return 0; in snd_hdsp_capture_copy()
3952 return 0; in snd_hdsp_capture_copy_kernel()
3965 memset(channel_buf + pos, 0, count); in snd_hdsp_hw_silence()
3966 return 0; in snd_hdsp_hw_silence()
3981 runtime->status->hw_ptr = 0; in snd_hdsp_reset()
3992 return 0; in snd_hdsp_reset()
4021 if ((other_pid > 0) && (this_pid != other_pid)) { in snd_hdsp_hw_params()
4043 return 0; in snd_hdsp_hw_params()
4054 if ((err = hdsp_set_rate(hdsp, params_rate(params), 0)) < 0) { in snd_hdsp_hw_params()
4062 if ((err = hdsp_set_interrupt_interval(hdsp, params_period_size(params))) < 0) { in snd_hdsp_hw_params()
4067 return 0; in snd_hdsp_hw_params()
4080 if (hdsp->channel_map[channel] < 0) in snd_hdsp_channel_info()
4084 info->first = 0; in snd_hdsp_channel_info()
4086 return 0; in snd_hdsp_channel_info()
4113 if (hdsp_check_for_firmware(hdsp, 0)) /* no auto-loading in trigger */ in snd_hdsp_trigger()
4169 return 0; in snd_hdsp_trigger()
4175 int result = 0; in snd_hdsp_prepare()
4217 .fifo_size = 0
4246 .fifo_size = 0
4254 .mask = 0
4262 .mask = 0
4272 list[0] = hdsp->qs_in_channels; in snd_hdsp_hw_rule_in_channels()
4275 return snd_interval_list(c, 3, list, 0); in snd_hdsp_hw_rule_in_channels()
4278 list[0] = hdsp->ds_in_channels; in snd_hdsp_hw_rule_in_channels()
4280 return snd_interval_list(c, 2, list, 0); in snd_hdsp_hw_rule_in_channels()
4291 list[0] = hdsp->qs_out_channels; in snd_hdsp_hw_rule_out_channels()
4294 return snd_interval_list(c, 3, list, 0); in snd_hdsp_hw_rule_out_channels()
4296 list[0] = hdsp->ds_out_channels; in snd_hdsp_hw_rule_out_channels()
4299 return snd_interval_list(c, 2, list, 0); in snd_hdsp_hw_rule_out_channels()
4330 return 0; in snd_hdsp_hw_rule_in_channels_rate()
4361 return 0; in snd_hdsp_hw_rule_out_channels_rate()
4392 return 0; in snd_hdsp_hw_rule_rate_out_channels()
4423 return 0; in snd_hdsp_hw_rule_rate_in_channels()
4450 snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24); in snd_hdsp_playback_open()
4451 …snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, &hdsp_hw_constraints_period… in snd_hdsp_playback_open()
4457 …snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hdsp_hw_constraints_9632_sample_r… in snd_hdsp_playback_open()
4464 snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, in snd_hdsp_playback_open()
4467 snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, in snd_hdsp_playback_open()
4470 snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, in snd_hdsp_playback_open()
4476 hdsp->spdif_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; in snd_hdsp_playback_open()
4480 return 0; in snd_hdsp_playback_open()
4495 hdsp->spdif_ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE; in snd_hdsp_playback_release()
4499 return 0; in snd_hdsp_playback_release()
4527 snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24); in snd_hdsp_capture_open()
4528 …snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_SIZE, &hdsp_hw_constraints_period… in snd_hdsp_capture_open()
4534 …snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hdsp_hw_constraints_9632_sample_r… in snd_hdsp_capture_open()
4536 snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, in snd_hdsp_capture_open()
4539 snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_CHANNELS, in snd_hdsp_capture_open()
4542 snd_pcm_hw_rule_add(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, in snd_hdsp_capture_open()
4545 return 0; in snd_hdsp_capture_open()
4558 return 0; in snd_hdsp_capture_release()
4582 rms_low = readl(src_low) & 0xffffff00; in copy_u48_le()
4583 rms_high = readl(src_high) & 0xffffff00; in copy_u48_le()
4590 int doublespeed = 0; in hdsp_9652_get_peak()
4596 for (i = 0, j = 0; i < 26; ++i) { in hdsp_9652_get_peak()
4622 return 0; in hdsp_9652_get_peak()
4629 int doublespeed = 0; in hdsp_9632_get_peak()
4634 for (i = 0, j = 0; i < 16; ++i, ++j) { in hdsp_9632_get_peak()
4652 return 0; in hdsp_9632_get_peak()
4659 for (i = 0; i < 26; i++) { in hdsp_get_peak()
4667 for (i = 0; i < 28; i++) { in hdsp_get_peak()
4672 for (i = 0; i < 26; ++i) { in hdsp_get_peak()
4682 return 0; in hdsp_get_peak()
4696 if (err < 0) in snd_hdsp_hwdep_ioctl()
4700 if (err < 0) in snd_hdsp_hwdep_ioctl()
4724 if (err < 0) in snd_hdsp_hwdep_ioctl()
4728 if (err < 0) in snd_hdsp_hwdep_ioctl()
4731 memset(&info, 0, sizeof(info)); in snd_hdsp_hwdep_ioctl()
4738 …for (i = 0; i < ((hdsp->io_type != Multiface && hdsp->io_type != RPM && hdsp->io_type != H9632) ? … in snd_hdsp_hwdep_ioctl()
4794 if ((err = hdsp_get_iobox_version(hdsp)) < 0) in snd_hdsp_hwdep_ioctl()
4797 memset(&hdsp_version, 0, sizeof(hdsp_version)); in snd_hdsp_hwdep_ioctl()
4840 if ((err = snd_hdsp_load_firmware_from_cache(hdsp)) < 0) in snd_hdsp_hwdep_ioctl()
4844 if ((err = snd_hdsp_enable_io(hdsp)) < 0) in snd_hdsp_hwdep_ioctl()
4850 if ((err = snd_hdsp_create_alsa_devices(hdsp->card, hdsp)) < 0) { in snd_hdsp_hwdep_ioctl()
4867 return 0; in snd_hdsp_hwdep_ioctl()
4900 if ((err = snd_hwdep_new(card, "HDSP hwdep", 0, &hw)) < 0) in snd_hdsp_create_hwdep()
4910 return 0; in snd_hdsp_create_hwdep()
4918 if ((err = snd_pcm_new(card, hdsp->card_name, 0, 1, 1, &pcm)) < 0) in snd_hdsp_create_pcm()
4930 return 0; in snd_hdsp_create_pcm()
4943 if (hdsp_fifo_wait (hdsp, 0, 100)) { in snd_hdsp_enable_io()
4949 for (i = 0; i < hdsp->max_channels; ++i) { in snd_hdsp_enable_io()
4954 return 0; in snd_hdsp_enable_io()
4977 aebi_channels = (status & HDSP_AEBI) ? 0 : 4; in snd_hdsp_initialize_channels()
4978 aebo_channels = (status & HDSP_AEBO) ? 0 : 4; in snd_hdsp_initialize_channels()
5010 snd_hdsp_flush_midi_input (hdsp, 0); in snd_hdsp_initialize_midi_flush()
5018 if ((err = snd_hdsp_create_pcm(card, hdsp)) < 0) { in snd_hdsp_create_alsa_devices()
5025 if ((err = snd_hdsp_create_midi(card, hdsp, 0)) < 0) { in snd_hdsp_create_alsa_devices()
5032 if ((err = snd_hdsp_create_midi(card, hdsp, 1)) < 0) { in snd_hdsp_create_alsa_devices()
5039 if ((err = snd_hdsp_create_controls(card, hdsp)) < 0) { in snd_hdsp_create_alsa_devices()
5053 if ((err = snd_hdsp_set_defaults(hdsp)) < 0) { in snd_hdsp_create_alsa_devices()
5061 sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name, in snd_hdsp_create_alsa_devices()
5064 if ((err = snd_card_register(card)) < 0) { in snd_hdsp_create_alsa_devices()
5072 return 0; in snd_hdsp_create_alsa_devices()
5083 return 0; in hdsp_request_fw_loader()
5085 if ((err = hdsp_get_iobox_version(hdsp)) < 0) in hdsp_request_fw_loader()
5088 return 0; in hdsp_request_fw_loader()
5097 if (hdsp->firmware_rev == 0xa) in hdsp_request_fw_loader()
5103 if (hdsp->firmware_rev == 0xa) in hdsp_request_fw_loader()
5131 if ((err = snd_hdsp_load_firmware_from_cache(hdsp)) < 0) in hdsp_request_fw_loader()
5135 if ((err = snd_hdsp_enable_io(hdsp)) < 0) in hdsp_request_fw_loader()
5138 if ((err = snd_hdsp_create_hwdep(hdsp->card, hdsp)) < 0) { in hdsp_request_fw_loader()
5145 if ((err = snd_hdsp_create_alsa_devices(hdsp->card, hdsp)) < 0) { in hdsp_request_fw_loader()
5151 return 0; in hdsp_request_fw_loader()
5159 int is_9652 = 0; in snd_hdsp_create()
5160 int is_9632 = 0; in snd_hdsp_create()
5163 hdsp->state = 0; in snd_hdsp_create()
5164 hdsp->midi[0].rmidi = NULL; in snd_hdsp_create()
5166 hdsp->midi[0].input = NULL; in snd_hdsp_create()
5168 hdsp->midi[0].output = NULL; in snd_hdsp_create()
5170 hdsp->midi[0].pending = 0; in snd_hdsp_create()
5171 hdsp->midi[1].pending = 0; in snd_hdsp_create()
5172 spin_lock_init(&hdsp->midi[0].lock); in snd_hdsp_create()
5175 hdsp->control_register = 0; in snd_hdsp_create()
5176 hdsp->control2_register = 0; in snd_hdsp_create()
5187 hdsp->firmware_rev &= 0xff; in snd_hdsp_create()
5192 than 0 by the computer's BIOS or the driver. in snd_hdsp_create()
5196 pci_write_config_byte(hdsp->pci, PCI_LATENCY_TIMER, 0xFF); in snd_hdsp_create()
5201 if (hdsp->firmware_rev < 0xa) in snd_hdsp_create()
5203 else if (hdsp->firmware_rev < 0x64) in snd_hdsp_create()
5205 else if (hdsp->firmware_rev < 0x96) { in snd_hdsp_create()
5214 if ((err = pci_enable_device(pci)) < 0) in snd_hdsp_create()
5219 if ((err = pci_request_regions(pci, "hdsp")) < 0) in snd_hdsp_create()
5221 hdsp->port = pci_resource_start(pci, 0); in snd_hdsp_create()
5223 dev_err(hdsp->card->dev, "unable to remap region 0x%lx-0x%lx\n", in snd_hdsp_create()
5236 hdsp->precise_ptr = 0; in snd_hdsp_create()
5238 hdsp->dds_value = 0; in snd_hdsp_create()
5240 if ((err = snd_hdsp_initialize_memory(hdsp)) < 0) in snd_hdsp_create()
5248 if (err < 0) in snd_hdsp_create()
5251 if ((hdsp_read (hdsp, HDSP_statusRegister) & HDSP_DllError) != 0) { in snd_hdsp_create()
5252 if ((err = hdsp_request_fw_loader(hdsp)) < 0) in snd_hdsp_create()
5261 return 0; in snd_hdsp_create()
5265 if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0) in snd_hdsp_create()
5267 return 0; in snd_hdsp_create()
5280 if ((err = snd_hdsp_enable_io(hdsp)) != 0) in snd_hdsp_create()
5289 if ((err = snd_hdsp_create_hwdep(card, hdsp)) < 0) in snd_hdsp_create()
5297 if ((err = snd_hdsp_create_alsa_devices(card, hdsp)) < 0) in snd_hdsp_create()
5300 return 0; in snd_hdsp_create()
5312 if (hdsp->irq >= 0) in snd_hdsp_free()
5325 return 0; in snd_hdsp_free()
5353 if (err < 0) in snd_hdsp_probe()
5365 sprintf(card->longname, "%s at 0x%lx, irq %d", hdsp->card_name, in snd_hdsp_probe()
5375 return 0; in snd_hdsp_probe()