| Index: arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_message.h
|
| diff --git a/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_message.h b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_message.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e32033f6aa056b950bf34cbf880a5b4f00702e67
|
| --- /dev/null
|
| +++ b/arch/arm/mach-tegra/nv/nvrm/core/common/nvrm_message.h
|
| @@ -0,0 +1,270 @@
|
| +/*
|
| + * Copyright (c) 2010 NVIDIA Corporation.
|
| + * All rights reserved.
|
| + *
|
| + * Redistribution and use in source and binary forms, with or without
|
| + * modification, are permitted provided that the following conditions are met:
|
| + *
|
| + * Redistributions of source code must retain the above copyright notice,
|
| + * this list of conditions and the following disclaimer.
|
| + *
|
| + * Redistributions in binary form must reproduce the above copyright notice,
|
| + * this list of conditions and the following disclaimer in the documentation
|
| + * and/or other materials provided with the distribution.
|
| + *
|
| + * Neither the name of the NVIDIA Corporation nor the names of its contributors
|
| + * may be used to endorse or promote products derived from this software
|
| + * without specific prior written permission.
|
| + *
|
| + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
| + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
| + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
| + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
| + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
| + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
| + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
| + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
| + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
| + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
| + * POSSIBILITY OF SUCH DAMAGE.
|
| + *
|
| + */
|
| +
|
| +#ifndef INCLUDED_NVRM_MESSAGE_H
|
| +#define INCLUDED_NVRM_MESSAGE_H
|
| +
|
| +#include "nvrm_memmgr.h"
|
| +#include "nvrm_module.h"
|
| +#include "nvrm_transport.h"
|
| +#include "nvrm_power.h"
|
| +
|
| +#ifdef __cplusplus
|
| +extern "C"
|
| +{
|
| +#endif /* __cplusplus */
|
| +
|
| +// Maximum message queue depth
|
| +enum {MAX_QUEUE_DEPTH = 5};
|
| +// Maximum message length
|
| +enum {MAX_MESSAGE_LENGTH = 256};
|
| +// Maximum argument size
|
| +enum {MAX_ARGS_SIZE = 220};
|
| +// Max String length
|
| +enum {MAX_STRING_LENGTH = 200};
|
| +
|
| +typedef struct NvRmRPCRec
|
| +{
|
| + NvRmTransportHandle svcTransportHandle;
|
| + NvOsSemaphoreHandle TransportRecvSemId;
|
| + NvOsMutexHandle RecvLock;
|
| + NvRmDeviceHandle hRmDevice;
|
| + NvBool isConnected;
|
| +} NvRmRPC;
|
| +
|
| +typedef struct NvRmRPCRec *NvRmRPCHandle;
|
| +
|
| +void NvRmPrivProcessMessage(NvRmRPCHandle hRPCHandle, char *pRecvMessage, int messageLength);
|
| +
|
| +typedef enum
|
| +{
|
| + NvRmMsg_MemHandleCreate = 0x0,
|
| + NvRmMsg_MemHandleCreate_Response,
|
| + NvRmMsg_MemHandleOpen,
|
| + NvRmMsg_MemHandleFree,
|
| + NvRmMsg_MemAlloc,
|
| + NvRmMsg_MemAlloc_Response,
|
| + NvRmMsg_MemPin,
|
| + NvRmMsg_MemPin_Response,
|
| + NvRmMsg_MemUnpin,
|
| + NvRmMsg_MemUnpin_Response,
|
| + NvRmMsg_MemGetAddress,
|
| + NvRmMsg_MemGetAddress_Response,
|
| + NvRmMsg_HandleFromId,
|
| + NvRmMsg_HandleFromId_Response,
|
| + NvRmMsg_PowerModuleClockControl,
|
| + NvRmMsg_PowerModuleClockControl_Response,
|
| + NvRmMsg_ModuleReset,
|
| + NvRmMsg_ModuleReset_Response,
|
| + NvRmMsg_PowerRegister,
|
| + NvRmMsg_PowerUnRegister,
|
| + NvRmMsg_PowerStarvationHint,
|
| + NvRmMsg_PowerBusyHint,
|
| + NvRmMsg_PowerBusyMultiHint,
|
| + NvRmMsg_PowerDfsGetState,
|
| + NvRmMsg_PowerDfsGetState_Response,
|
| + NvRmMsg_PowerResponse,
|
| + NvRmMsg_PowerModuleGetMaxFreq,
|
| + NvRmMsg_InitiateLP0,
|
| + NvRmMsg_InitiateLP0_Response,
|
| + NvRmMsg_RemotePrintf,
|
| + NvRmMsg_AttachModule,
|
| + NvRmMsg_AttachModule_Response,
|
| + NvRmMsg_DetachModule,
|
| + NvRmMsg_DetachModule_Response,
|
| + NvRmMsg_AVP_Reset,
|
| + NvRmMsg_Force32 = 0x7FFFFFFF
|
| +}NvRmMsg;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 size;
|
| +}NvRmMessage_HandleCreat;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmMemHandle hMem;
|
| + NvError error;
|
| +}NvRmMessage_HandleCreatResponse;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmMemHandle hMem;
|
| +}NvRmMessage_HandleFree;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvError error;
|
| +}NvRmMessage_Response;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmMemHandle hMem;
|
| + NvRmHeap Heaps[NvRmHeap_Num];
|
| + NvU32 NumHeaps;
|
| + NvU32 Alignment;
|
| + NvOsMemAttribute Coherency;
|
| +}NvRmMessage_MemAlloc;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmMemHandle hMem;
|
| + NvU32 Offset;
|
| +}NvRmMessage_GetAddress;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 address;
|
| +}NvRmMessage_GetAddressResponse;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 id;
|
| +}NvRmMessage_HandleFromId;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmMemHandle hMem;
|
| +}NvRmMessage_Pin;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 address;
|
| +}NvRmMessage_PinResponse;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmModuleID ModuleId;
|
| + NvU32 ClientId;
|
| + NvBool Enable;
|
| +}NvRmMessage_Module;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 clientId;
|
| + NvOsSemaphoreHandle eventSema;
|
| +}NvRmMessage_PowerRegister;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 clientId;
|
| +}NvRmMessage_PowerUnRegister;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmDfsClockId clockId;
|
| + NvU32 clientId;
|
| + NvBool starving;
|
| +}NvRmMessage_PowerStarvationHint;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmDfsClockId clockId;
|
| + NvU32 clientId;
|
| + NvU32 boostDurationMS;
|
| + NvRmFreqKHz boostKHz;
|
| +}NvRmMessage_PowerBusyHint;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 numHints;
|
| + NvU8 busyHints[MAX_STRING_LENGTH];
|
| +}NvRmMessage_PowerBusyMultiHint;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| +}NvRmMessage_PowerDfsGetState;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvError error;
|
| + NvU32 clientId;
|
| +}NvRmMessage_PowerRegister_Response;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmDfsRunState state;
|
| +}NvRmMessage_PowerDfsGetState_Response;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmModuleID moduleID;
|
| +}NvRmMessage_PowerModuleGetMaxFreq;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvRmFreqKHz freqKHz;
|
| +}NvRmMessage_PowerModuleGetMaxFreq_Response;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 sourceAddr;
|
| + NvU32 bufferAddr;
|
| + NvU32 bufferSize;
|
| +} NvRmMessage_InitiateLP0;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + const char string[MAX_STRING_LENGTH];
|
| +} NvRmMessage_RemotePrintf;
|
| +
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 entryAddress;
|
| + NvU32 size;
|
| + char args[MAX_ARGS_SIZE];
|
| + NvU32 reason;
|
| +}NvRmMessage_AttachModule;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvError error;
|
| +}NvRmMessage_AttachModuleResponse;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvU32 reason;
|
| + NvU32 entryAddress;
|
| +}NvRmMessage_DetachModule;
|
| +
|
| +typedef struct{
|
| + NvRmMsg msg;
|
| + NvError error;
|
| +}NvRmMessage_DetachModuleResponse;
|
| +
|
| +#ifdef __cplusplus
|
| +}
|
| +#endif /* __cplusplus */
|
| +
|
| +
|
| +#endif
|
|
|