diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h
index f06ecee51c2b..0832f95bd995 100644
--- a/include/sound/emu10k1.h
+++ b/include/sound/emu10k1.h
@@ -1,2 +1,11 @@
 #include <alsa/sound/type_compat.h>
 #include <alsa/sound/uapi/emu10k1.h>
+#ifndef __emu10k1_type_defined
+#define __emu10k1_type_defined
+typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
+typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
+typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
+typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
+typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
+typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
+#endif
diff --git a/include/sound/hdsp.h b/include/sound/hdsp.h
index 78fb745b607a..e8f931569548 100644
--- a/include/sound/hdsp.h
+++ b/include/sound/hdsp.h
@@ -1,2 +1,12 @@
 #include <alsa/sound/type_compat.h>
 #include <alsa/sound/uapi/hdsp.h>
+#ifndef __hdsp_type_defined
+#define __hdsp_type_defined
+typedef enum HDSP_IO_Type HDSP_IO_Type;
+typedef struct hdsp_peak_rms hdsp_peak_rms_t;
+typedef struct hdsp_config_info hdsp_config_info_t;
+typedef struct hdsp_firmware hdsp_firmware_t;
+typedef struct hdsp_version hdsp_version_t;
+typedef struct hdsp_mixer hdsp_mixer_t;
+typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
+#endif
diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h
index af6d19eda87f..d9095d9f10bb 100644
--- a/include/sound/hdspm.h
+++ b/include/sound/hdspm.h
@@ -1,2 +1,10 @@
 #include <alsa/sound/type_compat.h>
 #include <alsa/sound/uapi/hdspm.h>
+#ifndef __hdspm_type_defined
+#define __hdspm_type_defined
+typedef struct hdspm_peak_rms hdspm_peak_rms_t;
+typedef struct hdspm_config_info hdspm_config_info_t;
+typedef struct hdspm_version hdspm_version_t;
+typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
+typedef struct hdspm_mixer hdspm_mixer_t;
+#endif
diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h
index 24121fcbd888..fd02bc565e21 100644
--- a/include/sound/sb16_csp.h
+++ b/include/sound/sb16_csp.h
@@ -1 +1,5 @@
 #include <alsa/sound/uapi/sb16_csp.h>
+#ifndef __sb16_csp_type_defined
+#define __sb16_csp_type_defined
+typedef struct snd_sb_csp_microcode snd_sb_csp_microcode_t;
+#endif
diff --git a/include/sound/uapi/emu10k1.h b/include/sound/uapi/emu10k1.h
index c1150e4d0231..6bcd76f64c1c 100644
--- a/include/sound/uapi/emu10k1.h
+++ b/include/sound/uapi/emu10k1.h
@@ -382,14 +382,4 @@ struct snd_emu10k1_fx8010_pcm_rec {
 #define SNDRV_EMU10K1_IOCTL_SINGLE_STEP	_IOW ('H', 0x83, int)
 #define SNDRV_EMU10K1_IOCTL_DBG_READ	_IOR ('H', 0x84, int)
 
-#ifndef __KERNEL__
-/* typedefs for compatibility to user-space */
-typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
-typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
-typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
-typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
-typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
-typedef struct emu10k1_ctl_elem_id emu10k1_ctl_elem_id_t;
-#endif
-
 #endif /* _UAPI__SOUND_EMU10K1_H */
diff --git a/include/sound/uapi/hdsp.h b/include/sound/uapi/hdsp.h
index 88c92a3fb477..7ac2d3f2a9b3 100644
--- a/include/sound/uapi/hdsp.h
+++ b/include/sound/uapi/hdsp.h
@@ -97,13 +97,4 @@ struct hdsp_9632_aeb {
 
 #define SNDRV_HDSP_IOCTL_GET_9632_AEB _IOR('H', 0x45, struct hdsp_9632_aeb)
 
-/* typedefs for compatibility to user-space */
-typedef enum HDSP_IO_Type HDSP_IO_Type;
-typedef struct hdsp_peak_rms hdsp_peak_rms_t;
-typedef struct hdsp_config_info hdsp_config_info_t;
-typedef struct hdsp_firmware hdsp_firmware_t;
-typedef struct hdsp_version hdsp_version_t;
-typedef struct hdsp_mixer hdsp_mixer_t;
-typedef struct hdsp_9632_aeb hdsp_9632_aeb_t;
-
 #endif /* __SOUND_HDSP_H */
diff --git a/include/sound/uapi/hdspm.h b/include/sound/uapi/hdspm.h
index 2d91f90eb5e1..3fbfd9dc5f51 100644
--- a/include/sound/uapi/hdspm.h
+++ b/include/sound/uapi/hdspm.h
@@ -219,12 +219,4 @@ struct hdspm_mixer_ioctl {
 /* use indirect access due to the limit of ioctl bit size */
 #define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct hdspm_mixer_ioctl)
 
-/* typedefs for compatibility to user-space */
-typedef struct hdspm_peak_rms hdspm_peak_rms_t;
-typedef struct hdspm_config_info hdspm_config_info_t;
-typedef struct hdspm_version hdspm_version_t;
-typedef struct hdspm_channelfader snd_hdspm_channelfader_t;
-typedef struct hdspm_mixer hdspm_mixer_t;
-
-
 #endif
