1*262f27b2SOleksandr Tymoshenko /** 2*262f27b2SOleksandr Tymoshenko * Copyright (c) 2010-2012 Broadcom. All rights reserved. 3*262f27b2SOleksandr Tymoshenko * 4*262f27b2SOleksandr Tymoshenko * Redistribution and use in source and binary forms, with or without 5*262f27b2SOleksandr Tymoshenko * modification, are permitted provided that the following conditions 6*262f27b2SOleksandr Tymoshenko * are met: 7*262f27b2SOleksandr Tymoshenko * 1. Redistributions of source code must retain the above copyright 8*262f27b2SOleksandr Tymoshenko * notice, this list of conditions, and the following disclaimer, 9*262f27b2SOleksandr Tymoshenko * without modification. 10*262f27b2SOleksandr Tymoshenko * 2. Redistributions in binary form must reproduce the above copyright 11*262f27b2SOleksandr Tymoshenko * notice, this list of conditions and the following disclaimer in the 12*262f27b2SOleksandr Tymoshenko * documentation and/or other materials provided with the distribution. 13*262f27b2SOleksandr Tymoshenko * 3. The names of the above-listed copyright holders may not be used 14*262f27b2SOleksandr Tymoshenko * to endorse or promote products derived from this software without 15*262f27b2SOleksandr Tymoshenko * specific prior written permission. 16*262f27b2SOleksandr Tymoshenko * 17*262f27b2SOleksandr Tymoshenko * ALTERNATIVELY, this software may be distributed under the terms of the 18*262f27b2SOleksandr Tymoshenko * GNU General Public License ("GPL") version 2, as published by the Free 19*262f27b2SOleksandr Tymoshenko * Software Foundation. 20*262f27b2SOleksandr Tymoshenko * 21*262f27b2SOleksandr Tymoshenko * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 22*262f27b2SOleksandr Tymoshenko * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 23*262f27b2SOleksandr Tymoshenko * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24*262f27b2SOleksandr Tymoshenko * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 25*262f27b2SOleksandr Tymoshenko * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 26*262f27b2SOleksandr Tymoshenko * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 27*262f27b2SOleksandr Tymoshenko * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 28*262f27b2SOleksandr Tymoshenko * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 29*262f27b2SOleksandr Tymoshenko * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 30*262f27b2SOleksandr Tymoshenko * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 31*262f27b2SOleksandr Tymoshenko * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32*262f27b2SOleksandr Tymoshenko */ 33*262f27b2SOleksandr Tymoshenko 34*262f27b2SOleksandr Tymoshenko #ifndef VCHIQ_MEMDRV_H 35*262f27b2SOleksandr Tymoshenko #define VCHIQ_MEMDRV_H 36*262f27b2SOleksandr Tymoshenko 37*262f27b2SOleksandr Tymoshenko /* ---- Include Files ----------------------------------------------------- */ 38*262f27b2SOleksandr Tymoshenko 39*262f27b2SOleksandr Tymoshenko #include <linux/kernel.h> 40*262f27b2SOleksandr Tymoshenko #include "vchiq_if.h" 41*262f27b2SOleksandr Tymoshenko 42*262f27b2SOleksandr Tymoshenko /* ---- Constants and Types ---------------------------------------------- */ 43*262f27b2SOleksandr Tymoshenko 44*262f27b2SOleksandr Tymoshenko typedef struct { 45*262f27b2SOleksandr Tymoshenko void *armSharedMemVirt; 46*262f27b2SOleksandr Tymoshenko dma_addr_t armSharedMemPhys; 47*262f27b2SOleksandr Tymoshenko size_t armSharedMemSize; 48*262f27b2SOleksandr Tymoshenko 49*262f27b2SOleksandr Tymoshenko void *vcSharedMemVirt; 50*262f27b2SOleksandr Tymoshenko dma_addr_t vcSharedMemPhys; 51*262f27b2SOleksandr Tymoshenko size_t vcSharedMemSize; 52*262f27b2SOleksandr Tymoshenko } VCHIQ_SHARED_MEM_INFO_T; 53*262f27b2SOleksandr Tymoshenko 54*262f27b2SOleksandr Tymoshenko /* ---- Variable Externs ------------------------------------------------- */ 55*262f27b2SOleksandr Tymoshenko 56*262f27b2SOleksandr Tymoshenko /* ---- Function Prototypes ---------------------------------------------- */ 57*262f27b2SOleksandr Tymoshenko 58*262f27b2SOleksandr Tymoshenko void vchiq_get_shared_mem_info(VCHIQ_SHARED_MEM_INFO_T *info); 59*262f27b2SOleksandr Tymoshenko 60*262f27b2SOleksandr Tymoshenko VCHIQ_STATUS_T vchiq_memdrv_initialise(void); 61*262f27b2SOleksandr Tymoshenko 62*262f27b2SOleksandr Tymoshenko VCHIQ_STATUS_T vchiq_userdrv_create_instance( 63*262f27b2SOleksandr Tymoshenko const VCHIQ_PLATFORM_DATA_T * platform_data); 64*262f27b2SOleksandr Tymoshenko 65*262f27b2SOleksandr Tymoshenko VCHIQ_STATUS_T vchiq_userdrv_suspend( 66*262f27b2SOleksandr Tymoshenko const VCHIQ_PLATFORM_DATA_T * platform_data); 67*262f27b2SOleksandr Tymoshenko 68*262f27b2SOleksandr Tymoshenko VCHIQ_STATUS_T vchiq_userdrv_resume( 69*262f27b2SOleksandr Tymoshenko const VCHIQ_PLATFORM_DATA_T * platform_data); 70*262f27b2SOleksandr Tymoshenko 71*262f27b2SOleksandr Tymoshenko #endif 72