summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Mali <vmali@nvidia.com>2010-04-20 14:20:58 +0530
committerGary King <gking@nvidia.com>2010-04-20 08:45:48 -0700
commitf1801279d7f8480cb8643bf23b8306d2ea07219d (patch)
tree314e504b939cf85c22af9cc6f4ba38bb6a974d0d
parentd76bfff19bc436f58fe97e906107dfc2878a236a (diff)
[tegra ALSA] Updating sndfx header file
In order to keep sndfx file in sync with audiofx header file updating tegra_sndfx.h with structures and definitions, made the corresponding changes in code. Verified both playback and record are working fine. For bug 676616 synopsis: ALSA is Broken Change-Id: Ic3eca9e88c861169bcbcc829a621adc40ea2bea7 Reviewed-on: http://git-master/r/1158 Reviewed-by: Vijay Mali <vmali@nvidia.com> Tested-by: Vijay Mali <vmali@nvidia.com> Reviewed-by: Manjula Gupta <magupta@nvidia.com> Tested-by: Manjula Gupta <magupta@nvidia.com> Reviewed-by: Gary King <gking@nvidia.com>
-rw-r--r--sound/soc/tegra/tegra_sndfx.h51
-rw-r--r--sound/soc/tegra/tegra_transport.c105
2 files changed, 30 insertions, 126 deletions
diff --git a/sound/soc/tegra/tegra_sndfx.h b/sound/soc/tegra/tegra_sndfx.h
index 6a6f720d859d..d5295a4a0c90 100644
--- a/sound/soc/tegra/tegra_sndfx.h
+++ b/sound/soc/tegra/tegra_sndfx.h
@@ -92,27 +92,27 @@ typedef NvS32 NvObjectId;
#define NvAudioFxSrcId (0x1100000a)
#define NvAudioFxSwitchId (0x1100000b)
#define NvAudioFxVolumeId (0x1100000c)
-#define NvAudioFxStreamId (0x11100001)
-#define NvAudioFxI2sId (0x11100002)
-#define NvAudioFxI2s2Id (0x11100002)
-#define NvAudioFxSpdifId (0x11100003)
-#define NvAudioFxSilenceId (0x11100004)
-#define NvAudioFxDefaultPlaybackMixId (0x11300001)
-#define NvAudioFxDefaultPlaybackSplitId (0x11300002)
-#define NvAudioFxDefaultRecordMixId (0x11300003)
-#define NvAudioFxDefaultRecordSplitId (0x11300004)
-#define NvAudioFxI2sPlaybackMixId (0x11300005)
-#define NvAudioFxI2sRecordSplitId (0x11300006)
-#define NvAudioFxI2sLoopbackSplitId (0x11300007)
-#define NvAudioFxI2s2PlaybackMixId (0x11300008)
-#define NvAudioFxI2s2RecordSplitId (0x11300009)
-#define NvAudioFxI2s2LoopbackSplitId (0x1130000a)
-#define NvAudioFxSpdifPlaybackMixId (0x1130000b)
-#define NvAudioFxSpdifRecordSplitId (0x1130000c)
-#define NvAudioFxSpdifLoopbackSplitId (0x1130000d)
-#define NvAudioFxMusicMixId (0x1130000e)
-#define NvAudioFxMusicSplitId (0x1130000f)
-#define NvAudioFxRingtoneMixId (0x11300010)
+#define NvAudioFxStreamId (0x11100000)
+#define NvAudioFxSpdifId (0x11100001)
+#define NvAudioFxSilenceId (0x11100002)
+#define NvAudioFxI2s1Id (0x11110000)
+#define NvAudioFxI2s2Id (0x11110001)
+#define NvAudioFxPlaybackMixId (0x11300000)
+#define NvAudioFxPlaybackSplitId (0x11300001)
+#define NvAudioFxRecordMixId (0x11300002)
+#define NvAudioFxRecordSplitId (0x11300003)
+#define NvAudioFxSpdifPlaybackMixId (0x11300004)
+#define NvAudioFxSpdifRecordSplitId (0x11300005)
+#define NvAudioFxSpdifLoopbackSplitId (0x11300006)
+#define NvAudioFxMusicMixId (0x11300007)
+#define NvAudioFxMusicSplitId (0x11300008)
+#define NvAudioFxRingtoneMixId (0x11300009)
+#define NvAudioFxI2s1PlaybackMixId (0x11310000)
+#define NvAudioFxI2s1RecordSplitId (0x11310001)
+#define NvAudioFxI2s1LoopbackSplitId (0x11310002)
+#define NvAudioFxI2s2PlaybackMixId (0x11311000)
+#define NvAudioFxI2s2RecordSplitId (0x11311001)
+#define NvAudioFxI2s2LoopbackSplitId (0x11311002)
//
// Mixer
@@ -150,6 +150,7 @@ typedef NvS32 NvAudioFxProperty;
#define NvAudioFxDrcProperty_Drc (0x3000)
#define NvAudioFxEqProperty_Eq (0x4000)
#define NvAudioFxI2sProperty_InputSelect (0x4a00)
+#define NvAudioFxI2sProperty_AllocChannel (0x4a01)
#define NvAudioFxIoProperty_AddEvent (0x5000)
#define NvAudioFxIoProperty_Position (0x5010)
#define NvAudioFxIoProperty_RemoveEvent (0x5020)
@@ -266,6 +267,14 @@ typedef NvS32 NvAudioFxI2sInputSelect;
#define NvAudioFxI2sInputSelect_Phone (0x5)
#define NvAudioFxI2sInputSelect_Radio (0x6)
+// Description of the NvAudioFxI2sProperty_AllocChannel property.
+
+typedef struct NvAudioFxI2sChannelDescriptorRec
+{
+ NvAudioFxPin Pin;
+ NvU32 Id;
+} NvAudioFxI2sChannelDescriptor;
+
// Parameteric EQ Filter types.
typedef enum
diff --git a/sound/soc/tegra/tegra_transport.c b/sound/soc/tegra/tegra_transport.c
index e9a630785050..15a348edcc6a 100644
--- a/sound/soc/tegra/tegra_transport.c
+++ b/sound/soc/tegra/tegra_transport.c
@@ -537,111 +537,6 @@ EXIT:
return;
}
-GlobalFxList* tegra_audiofx_create_topology(NvAudioFxMixerHandle hMixer)
-{
- NvError e = NvSuccess;
- NvAudioFxConnectionDescriptor connection;
- GlobalFxList* pFxList = 0;
-
- memset(&connection, 0, sizeof(NvAudioFxConnectionDescriptor));
- pFxList = (GlobalFxList*)kzalloc(sizeof(GlobalFxList), GFP_KERNEL);
- if (!pFxList) {
- snd_printk(KERN_ERR "kzalloc failed!\n");
- goto EXIT_WITH_ERROR;
- }
- memset(pFxList, 0, sizeof(GlobalFxList));
-
-#define audiofx_create_path(list_index, FxId) \
- pFxList->hFx[list_index] = tegra_transport_mixer_create_object(hMixer,FxId); \
- if(!pFxList->hFx[list_index]) { \
- snd_printk(KERN_ERR "audiofx_create_path failed!\n"); \
- goto EXIT_WITH_ERROR; \
- }
-
-#define audiofx_connect(src_index, sink_index) \
- connection.SourcePin = NvAudioFxSourcePin; \
- connection.SinkPin = NvAudioFxSinkPin; \
- connection.hSink = (NvAudioFxHandle)pFxList->hFx[sink_index]; \
- e = tegra_transport_set_property(pFxList->hFx[src_index], \
- NvAudioFxProperty_Attach, \
- sizeof(NvAudioFxConnectionDescriptor), \
- &connection); \
- if(e != NvSuccess) { \
- snd_printk(KERN_ERR "audiofx_connect failed!\n"); \
- }
-
- /* Default Playback Path */
- audiofx_create_path(GlobalFx_DefaultPlaybackMix,
- NvAudioFxDefaultPlaybackMixId);
-
- audiofx_create_path(GlobalFx_DefaultPlaybackSplit,
- NvAudioFxDefaultPlaybackSplitId);
-
- /* I2S Playback Path */
- audiofx_create_path(GlobalFx_I2sPlaybackMix, NvAudioFxI2sPlaybackMixId);
- audiofx_create_path(GlobalFx_I2sPlaybackVolume, NvAudioFxVolumeId);
- audiofx_create_path(GlobalFx_I2s, NvAudioFxI2sId);
-
- /* Default Record Path */
- audiofx_create_path(GlobalFx_DefaultRecordMix,
- NvAudioFxDefaultRecordMixId);
-
- audiofx_create_path(GlobalFx_DefaultRecordSplit,
- NvAudioFxDefaultRecordSplitId);
-
- /* I2S Record Path */
- audiofx_create_path(GlobalFx_I2sRecordVolume, NvAudioFxVolumeId);
- audiofx_create_path(GlobalFx_I2sRecordSplit, NvAudioFxI2sRecordSplitId);
-
-#if (0)
- /* Simple Playback */
- audiofx_connect(GlobalFx_DefaultPlaybackMix, GlobalFx_I2s);
-#else
- /* Playback */
- audiofx_connect(GlobalFx_DefaultPlaybackMix, GlobalFx_DefaultPlaybackSplit);
- audiofx_connect(GlobalFx_DefaultPlaybackSplit, GlobalFx_I2sPlaybackMix);
-
- /* Wire SPDIF on HDMI connection and unwire it when not connected. */
- audiofx_connect(GlobalFx_I2sPlaybackMix, GlobalFx_I2sPlaybackVolume);
- audiofx_connect(GlobalFx_I2sPlaybackVolume, GlobalFx_I2s);
-#endif
-
- /*Record*/
- audiofx_connect(GlobalFx_I2s, GlobalFx_I2sRecordVolume);
- audiofx_connect(GlobalFx_I2sRecordVolume, GlobalFx_I2sRecordSplit);
-
- audiofx_connect(GlobalFx_I2sRecordSplit, GlobalFx_DefaultRecordMix);
- audiofx_connect(GlobalFx_DefaultRecordMix, GlobalFx_DefaultRecordSplit);
-
- goto EXIT;
-
-EXIT_WITH_ERROR:
- /* tegra_audiofx_destroy_topology(pFxList); */
- pFxList = 0;
-
-EXIT:
- return pFxList;
-}
-
-void tegra_audiofx_destroy_topology(GlobalFxList* pFxList)
-{
- NvS32 i;
-
- if (pFxList) {
- for (i = 0; i < GlobalFx_Num; i++) {
- if (pFxList->hFx[i]) {
- /*
- TODO
- NvddkAudioFxMixerDestroyObject(pFxList->hFx[i]);
- Add code to destory
- */
- }
- }
-
- kfree(pFxList);
- }
-}
-
NvError tegra_audiofx_createfx(struct tegra_audio_data *audio_context)
{
NvAudioFxMixerHandle m_hMixer =