diff --git a/arch/arm/mach-tegra/io.c b/arch/arm/mach-tegra/io.c index 0f7fe54..85ab330 100644 --- a/arch/arm/mach-tegra/io.c +++ b/arch/arm/mach-tegra/io.c @@ -34,9 +34,11 @@ #include "nvos.h" #include "mach/nvrm_linux.h" #include "ap15/arapbpm.h" +#include extern void __init tegra_nvos_kernel_init(void); NvRmDeviceHandle s_hRmGlobal = NULL; +EXPORT_SYMBOL(s_hRmGlobal); #define declare_aperture(_name, _pa, _size) \ { \ diff --git a/arch/arm/mach-tegra/nvodm/nvodm_services.c b/arch/arm/mach-tegra/nvodm/nvodm_services.c index c965cdd..c9b4809 100755 --- a/arch/arm/mach-tegra/nvodm/nvodm_services.c +++ b/arch/arm/mach-tegra/nvodm/nvodm_services.c @@ -30,6 +30,7 @@ * */ +#include #include "nvodm_services.h" #include "nvrm_gpio.h" #include "nvrm_spi.h" @@ -301,6 +302,7 @@ NvOdmExternalClockConfig( NvRmClose(hRmDev); return result; } +EXPORT_SYMBOL(NvOdmExternalClockConfig); NvBool NvOdmGetStraps(NvOdmStrapGroup StrapGroup, NvU32* pStrapValue) { diff --git a/arch/arm/mach-tegra/nvrm/core/common/nvrm_transport.c b/arch/arm/mach-tegra/nvrm/core/common/nvrm_transport.c index 6f376e7..8e42437 100644 --- a/arch/arm/mach-tegra/nvrm/core/common/nvrm_transport.c +++ b/arch/arm/mach-tegra/nvrm/core/common/nvrm_transport.c @@ -48,6 +48,7 @@ #include "nvcommon.h" #include "avp.h" #include +#include #define LOOPBACK_PROFILE 0 @@ -981,6 +982,7 @@ fail: return err; } +EXPORT_SYMBOL(NvRmTransportOpen); /** @@ -1050,6 +1052,7 @@ void NvRmTransportClose(NvRmTransportHandle hPort) NvOsMutexUnlock(s_TransportInfo.mutex); } +EXPORT_SYMBOL(NvRmTransportClose); /** @@ -1363,6 +1366,7 @@ NvError NvRmTransportConnect(NvRmTransportHandle hPort, NvU32 TimeoutMS) NvOsMutexUnlock(s_TransportInfo.mutex); return NvSuccess; } +EXPORT_SYMBOL(NvRmTransportConnect); /** @@ -1588,8 +1592,7 @@ NvRmTransportSendMsg( return err; } - - +EXPORT_SYMBOL(NvRmTransportSendMsg); /** * Receive the message from the other end port. @@ -1668,6 +1671,7 @@ NvRmTransportRecvMsg( return NvSuccess; } +EXPORT_SYMBOL(NvRmTransportRecvMsg); void NvRmTransportGetPortName( @@ -1688,3 +1692,4 @@ NvRmTransportGetPortName( NvOsStrncpy((char *)PortName, hPort->PortName, PortNameSize); } +EXPORT_SYMBOL(NvRmTransportGetPortName); diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 8892161..b1ce080 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1773,6 +1773,23 @@ static int add_versions(struct buffer *b, struct module *mod) for (s = mod->unres; s; s = s->next) { if (!s->module) continue; + if(strcmp(s->name, "usbnet_skb_return")==0) { + s->crc=0x6C6B733C; + } else if(strcmp(s->name, "usbnet_generic_cdc_bind")==0) { + s->crc=0x2CF9D761; + } else if(strcmp(s->name, "usbnet_cdc_unbind")==0) { + s->crc=0x2B474795; + } else if(strcmp(s->name, "NvOsSemaphoreCreate")==0) { + s->crc=0xBD2A7DC; + } else if(strcmp(s->name, "NvOsThreadCreate")==0) { + s->crc=0xCF1B91C6; + } else if(strcmp(s->name, "NvRmMemMap")==0) { + s->crc=0x4D172067; + } else if(strcmp(s->name, "NvRmMemHandleCreate")==0) { + s->crc=0x8C74C700; + } else if(strcmp(s->name, "NvRmMemAlloc")==0) { + s->crc=0x3bcf4193; + } if (!s->crc_valid) { warn("\"%s\" [%s.ko] has no CRC!\n", s->name, mod->name); diff --git a/sound/soc/tegra/tegra_soc_audio.c b/sound/soc/tegra/tegra_soc_audio.c index 951920d..b707ea2 100644 --- a/sound/soc/tegra/tegra_soc_audio.c +++ b/sound/soc/tegra/tegra_soc_audio.c @@ -39,6 +39,24 @@ #include "nvodm_query_discovery.h" #include "tegra_transport.h" +NvBool +NvOdmExternalClockConfig( + NvU64 Guid, + NvBool EnableTristate, + NvU32 *pInstances, + NvU32 *pFrequencies, + NvU32 *pNum) { + static NvBool (*func)( + NvU64 Guid, + NvBool EnableTristate, + NvU32 *pInstances, + NvU32 *pFrequencies, + NvU32 *pNum)=(void*)0xc0075fcc; + return (*func)(Guid, EnableTristate, pInstances, pFrequencies, pNum); + +} + + struct codec_setup_data { unsigned dem0_pin; unsigned dem1_pin; diff --git a/sound/soc/tegra/tegra_transport.c b/sound/soc/tegra/tegra_transport.c index 84de440..a5e7a88 100644 --- a/sound/soc/tegra/tegra_transport.c +++ b/sound/soc/tegra/tegra_transport.c @@ -22,6 +22,7 @@ #include "tegra_transport.h" #include +#include #define transport_send_message(msg_type) \ message.Semaphore = 0; \ @@ -37,6 +38,83 @@ wait_for_completion(&comp); \ +NvError NvRmTransportSendMsg( + NvRmTransportHandle hTransport, + void* pMessageBuffer, + NvU32 MessageSize, + NvU32 TimeoutMS ) { + static NvError (*func)( + NvRmTransportHandle hTransport, + void* pMessageBuffer, + NvU32 MessageSize, + NvU32 TimeoutMS )=(void*)0xc005ed28; + return (*func)(hTransport, pMessageBuffer, MessageSize, TimeoutMS); + +} +EXPORT_SYMBOL(NvRmTransportSendMsg); + +NvError NvRmTransportRecvMsg( + NvRmTransportHandle hTransport, + void* pMessageBuffer, + NvU32 MaxSize, + NvU32 * pMessageSize ) { + static NvError (*func)( + NvRmTransportHandle hTransport, + void* pMessageBuffer, + NvU32 MaxSize, + NvU32 * pMessageSize )=(void*)0xc005eb08; + return (*func)(hTransport, pMessageBuffer, MaxSize, pMessageSize); + +} +EXPORT_SYMBOL(NvRmTransportRecvMsg); + +NvRmDeviceHandle s_hRmGlobal=(void*)0xC0436A28; +EXPORT_SYMBOL(s_hRmGlobal); + +void NvRmTransportGetPortName( + NvRmTransportHandle hTransport, + NvU8 * PortName, + NvU32 PortNameSize ) { + static void (*func)( + NvRmTransportHandle hTransport, + NvU8 * PortName, + NvU32 PortNameSize )=(void*)0xc005e9f8; + (*func)(hTransport, PortName, PortNameSize); + +} +EXPORT_SYMBOL(NvRmTransportGetPortName); + +NvError NvRmTransportOpen( + NvRmDeviceHandle hRmDevice, + char * pPortName, + NvOsSemaphoreHandle RecvMessageSemaphore, + NvRmTransportHandle * phTransport ) { + static NvError (*func)( + NvRmDeviceHandle hRmDevice, + char * pPortName, + NvOsSemaphoreHandle RecvMessageSemaphore, + NvRmTransportHandle * phTransport )=(void*)0xc005f4fc; + return (*func)(hRmDevice, pPortName, RecvMessageSemaphore, phTransport); +} +EXPORT_SYMBOL(NvRmTransportOpen); + +NvError NvRmTransportConnect( + NvRmTransportHandle hTransport, + NvU32 TimeoutMS ) { + static NvError (*func)( + NvRmTransportHandle hTransport, + NvU32 TimeoutMS )=(void*)0xc005f01c; + return (*func)(hTransport, TimeoutMS); + +} +EXPORT_SYMBOL(NvRmTransportConnect); + +void NvRmTransportClose( + NvRmTransportHandle hTransport ) { + static void (*func)(NvRmTransportHandle hTransport )=(void*)0xc005f254; + (*func)(hTransport); +} + static AlsaTransport* atrans = 0; @@ -436,6 +514,7 @@ EXIT_WITH_ERROR: EXIT: return status; } +EXPORT_SYMBOL(tegra_transport_init); void tegra_transport_deinit(void) { @@ -476,6 +555,7 @@ void tegra_transport_deinit(void) EXIT: return; } +EXPORT_SYMBOL(tegra_transport_deinit); static void tegra_audiofx_notifier_thread(void *arg) { @@ -607,6 +687,7 @@ EXIT_WITH_ERROR: EXIT: return e; } +EXPORT_SYMBOL(tegra_audiofx_createfx); void tegra_audiofx_destroyfx(struct tegra_audio_data *audio_context) { @@ -642,6 +723,7 @@ void tegra_audiofx_destroyfx(struct tegra_audio_data *audio_context) return; } +EXPORT_SYMBOL(tegra_audiofx_destroyfx); #define audiofx_create_object(path_object, FxId) \ path_object = tegra_transport_mixer_create_object(hMixer, FxId); \ @@ -710,6 +792,7 @@ EXIT: return e; } +EXPORT_SYMBOL(tegra_audiofx_create_output); NvError tegra_audiofx_destroy_output(StandardPath* pPath) { @@ -740,6 +823,7 @@ NvError tegra_audiofx_destroy_output(StandardPath* pPath) return NvSuccess; } +EXPORT_SYMBOL(tegra_audiofx_destroy_output); NvError tegra_audiofx_create_input(NvRmDeviceHandle hRmDevice, NvAudioFxMixerHandle hMixer, @@ -811,6 +895,7 @@ EXIT: return e; } +EXPORT_SYMBOL(tegra_audiofx_create_input); NvError tegra_audiofx_destroy_input(StandardPath* pInput) @@ -837,4 +922,5 @@ NvError tegra_audiofx_destroy_input(StandardPath* pInput) return NvSuccess; } +EXPORT_SYMBOL(tegra_audiofx_destroy_input);