aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKumar Sanghvi <kumar.sanghvi@stericsson.com>2011-05-26 14:38:19 +0530
committersaid m bagheri <ebgheri@steludxu2848.(none)>2011-06-29 10:30:27 +0200
commit0c8d1423c81fe6e875155fbf453f42074e6e614d (patch)
treec0ebb0224d22cdc47d1c1a4d5495624744e1f4d7 /arch
parentdb58fe9e1e19d882d1a626d487c2744a0d4aef26 (diff)
u8500: shrm: Move shrm to drivers/modem
Moves shrm specific files from arch/arm/mach-ux500/mach/include and drivers/misc to include/linux/modem/shrm and drivers/modem/shrm respectively ST-Ericsson ID: CR329459 Change-Id: I3a08f83e5302429d51eb865ee1c5e4e0ec73e31b Signed-off-by: Kumar Sanghvi <kumar.sanghvi@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23980 Reviewed-by: QATEST Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-ux500/include/mach/shrm.h23
-rw-r--r--arch/arm/mach-ux500/include/mach/shrm_config.h111
-rw-r--r--arch/arm/mach-ux500/include/mach/shrm_driver.h204
-rw-r--r--arch/arm/mach-ux500/include/mach/shrm_net.h44
-rw-r--r--arch/arm/mach-ux500/include/mach/shrm_private.h181
5 files changed, 0 insertions, 563 deletions
diff --git a/arch/arm/mach-ux500/include/mach/shrm.h b/arch/arm/mach-ux500/include/mach/shrm.h
deleted file mode 100644
index 6deeeb16ba8..00000000000
--- a/arch/arm/mach-ux500/include/mach/shrm.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * Author: Biju Das <biju.das@stericsson.com> for ST-Ericsson
- * Author: Kumar Sanghavi <kumar.sanghvi@stericsson.com> for ST-Ericsson
- * Author: Arun Murthy <arun.murthy@stericsson.com> for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef __SHM_DRIVER_IF_H__
-#define __SHM_DRIVER_IF_H__
-
-#include <linux/device.h>
-
-/* forward declaration */
-struct shrm_dev;
-
-typedef void (*rx_cb)(void *data, unsigned int length);
-typedef void (*received_msg_handler)(unsigned char l2_header,
- void *msg_ptr, unsigned int length,
- struct shrm_dev *shrm);
-
-#endif
diff --git a/arch/arm/mach-ux500/include/mach/shrm_config.h b/arch/arm/mach-ux500/include/mach/shrm_config.h
deleted file mode 100644
index a82b35ef77b..00000000000
--- a/arch/arm/mach-ux500/include/mach/shrm_config.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * Author: Biju Das <biju.das@stericsson.com> for ST-Ericsson
- * Author: Kumar Sanghavi <kumar.sanghvi@stericsson.com> for ST-Ericsson
- * Author: Arun Murthy <arun.murthy@stericsson.com> for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef __SHRM_CONFIG_H
-#define __SHRM_CONFIG_H
-
-
-/*
-Note: modem need to define IPC as a non-cacheable area.
-In Cortex R4 MPU requires that base address of NC area is aligned on a
-region-sized boundary.On modem side, only 1 NC area can be defined, hence
-the whole IPC area must be defined as NC (at least).
-
-*/
-
-/* cache line size = 32bytes*/
-#define SHM_CACHE_LINE 32
-#define SHM_PTR_SIZE 4
-
-/* FIFO 0 address configuration */
-/* ---------------------------- */
-/* 128KB */
-#define SHM_FIFO_0_SIZE (128*1024)
-
-
-/* == APE addresses == */
-#ifdef CONFIG_SHRM_V1_UPDATES_VERSION
-#define SHM_IPC_BASE_AMCU 0x06F80000
-#else
-#define SHM_IPC_BASE_AMCU 0x06000000
-#endif
-
-/* offset pointers */
-#define SHM_ACFIFO_0_WRITE_AMCU SHM_IPC_BASE_AMCU
-#define SHM_ACFIFO_0_READ_AMCU (SHM_ACFIFO_0_WRITE_AMCU + SHM_PTR_SIZE)
-#define SHM_CAFIFO_0_WRITE_AMCU (SHM_ACFIFO_0_WRITE_AMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_0_READ_AMCU (SHM_CAFIFO_0_WRITE_AMCU + SHM_PTR_SIZE)
-/* FIFO start */
-#define SHM_ACFIFO_0_START_AMCU (SHM_CAFIFO_0_WRITE_AMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_0_START_AMCU (SHM_ACFIFO_0_START_AMCU + SHM_FIFO_0_SIZE)
-
-
-/* == CMT addresses ==*/
-#define SHM_IPC_BASE_CMCU (SHM_IPC_BASE_AMCU+0x08000000)
-/* offset pointers */
-#define SHM_ACFIFO_0_WRITE_CMCU SHM_IPC_BASE_CMCU
-#define SHM_ACFIFO_0_READ_CMCU (SHM_ACFIFO_0_WRITE_CMCU + SHM_PTR_SIZE)
-#define SHM_CAFIFO_0_WRITE_CMCU (SHM_ACFIFO_0_WRITE_CMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_0_READ_CMCU (SHM_CAFIFO_0_WRITE_CMCU + SHM_PTR_SIZE)
-/* FIFO*/
-#define SHM_ACFIFO_0_START_CMCU (SHM_CAFIFO_0_WRITE_CMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_0_START_CMCU (SHM_ACFIFO_0_START_CMCU + SHM_FIFO_0_SIZE)
-
-
-/* ADSP addresses*/
-#define SHM_ACFIFO_0_START_ADSP 0x0
-#define SHM_CAFIFO_0_START_ADSP 0x0
-#define SHM_ACFIFO_0_WRITE_ADSP 0x0
-#define SHM_ACFIFO_0_READ_ADSP 0x0
-#define SHM_CAFIFO_0_WRITE_ADSP 0x0
-#define SHM_CAFIFO_0_READ_ADSP 0x0
-
-/* FIFO 1 address configuration */
-/* ---------------------------- */
-
-
-/* FIFO 1 - 4K */
-#define SHM_FIFO_1_SIZE (4*1024)
-
-
-/* == APE addresses == */
-#define SHM_ACFIFO_1_WRITE_AMCU (SHM_CAFIFO_0_START_AMCU + SHM_FIFO_0_SIZE)
-#define SHM_ACFIFO_1_READ_AMCU (SHM_ACFIFO_1_WRITE_AMCU + SHM_PTR_SIZE)
-#define SHM_CAFIFO_1_WRITE_AMCU (SHM_ACFIFO_1_WRITE_AMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_1_READ_AMCU (SHM_CAFIFO_1_WRITE_AMCU + SHM_PTR_SIZE)
-/* FIFO*/
-#define SHM_ACFIFO_1_START_AMCU (SHM_CAFIFO_1_WRITE_AMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_1_START_AMCU (SHM_ACFIFO_1_START_AMCU + SHM_FIFO_1_SIZE)
-
-
-/* == CMT addresses ==*/
-#define SHM_ACFIFO_1_WRITE_CMCU (SHM_CAFIFO_0_START_CMCU + SHM_FIFO_0_SIZE)
-#define SHM_ACFIFO_1_READ_CMCU (SHM_ACFIFO_1_WRITE_CMCU + SHM_PTR_SIZE)
-#define SHM_CAFIFO_1_WRITE_CMCU (SHM_ACFIFO_1_WRITE_CMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_1_READ_CMCU (SHM_CAFIFO_1_WRITE_CMCU + SHM_PTR_SIZE)
-/* FIFO1 start */
-#define SHM_ACFIFO_1_START_CMCU (SHM_CAFIFO_1_WRITE_CMCU + SHM_CACHE_LINE)
-#define SHM_CAFIFO_1_START_CMCU (SHM_ACFIFO_1_START_CMCU + SHM_FIFO_1_SIZE)
-
-
-/* ADSP addresses*/
-#define SHM_ACFIFO_1_START_ADSP 0x0
-#define SHM_CAFIFO_1_START_ADSP 0x0
-#define SHM_ACFIFO_1_WRITE_ADSP 0x0
-#define SHM_ACFIFO_1_READ_ADSP 0x0
-#define SHM_CAFIFO_1_WRITE_ADSP 0x0
-#define SHM_CAFIFO_1_READ_ADSP 0x0
-
-
-#define U8500_SHM_FIFO_APE_COMMON_BASE (SHM_ACFIFO_0_START_AMCU)
-#define U8500_SHM_FIFO_CMT_COMMON_BASE (SHM_CAFIFO_0_START_AMCU)
-#define U8500_SHM_FIFO_APE_AUDIO_BASE (SHM_ACFIFO_1_START_AMCU)
-#define U8500_SHM_FIFO_CMT_AUDIO_BASE (SHM_CAFIFO_1_START_AMCU)
-
-#endif /* __SHRM_CONFIG_H */
diff --git a/arch/arm/mach-ux500/include/mach/shrm_driver.h b/arch/arm/mach-ux500/include/mach/shrm_driver.h
deleted file mode 100644
index 71b3fbcf229..00000000000
--- a/arch/arm/mach-ux500/include/mach/shrm_driver.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * Author: Biju Das <biju.das@stericsson.com> for ST-Ericsson
- * Author: Kumar Sanghavi <kumar.sanghvi@stericsson.com> for ST-Ericsson
- * Author: Arun Murthy <arun.murthy@stericsson.com> for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef __SHRM_DRIVER_H__
-#define __SHRM_DRIVER_H__
-
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/clk.h>
-#include <linux/ioport.h>
-#include <linux/interrupt.h>
-#include <linux/irq.h>
-#include <linux/spinlock.h>
-#include <linux/io.h>
-#include <linux/platform_device.h>
-#include <linux/sysfs.h>
-#include <linux/modem/modem_client.h>
-
-#include <mach/shrm.h>
-
-#include <linux/cdev.h>
-
-#define ISA_DEVICES 6
-
-#define BOOT_INIT (0)
-#define BOOT_INFO_SYNC (1)
-#define BOOT_DONE (2)
-#define BOOT_UNKNOWN (3)
-
-/**
- * struct shrm_dev - shrm device information
- * @ca_wake_irq: CMT wake interrupt number
- * @ac_read_notif_0_irq: ape-cmt common channel read notify interrupt
- * @ac_read_notif_1_irq: ape-cmt audio channel read notify interrupt
- * @ca_msg_pending_notif_0_irq: cmt-ape common channel msg pending interrupt
- * @ca_msg_pending_notif_1_irq: cmt-ape audio channel msg pending interrupt
- * @intr_base: interrupt base register address
- * @ape_common_fifo_base: ape side common channel fifo base addr
- * @ape_audio_fifo_base: ape side audio channel fifo base addr
- * @cmt_common_fifo_base: cmt side common channel fifo base addr
- * @cmt_audio_fifo_base: cmt side audio channel fifo base addr
- * @ape_common_fifo_base_phy: physical addr of ape common fifo
- * @ape_audio_fifo_base_phy: physical addr of ape audio fifo
- * @cmt_common_fifo_base_phy: physical addr of cmt common fifo
- * @cmt_audio_fifo_base_phy: physical addr of cmt audio fifo
- * @ape_common_fifo_size: ape side common channel fifo size
- * @ape_audio_fifo_size: ape side audio channel fifo size
- * @cmt_common_fifo_size: cmt side common channel fifo size
- * @cmt_audio_fifo_size: cmt side audio channel fifo size
- * @netdev_flag_up: flag to indicate up/down of netwok device
- * @msr_flag: flag to check on-going MSR sequence
- * @ac_common_shared_wptr: ape-cmt common channel write pointer
- * @ac_common_shared_rptr: ape-cmt common channel read pointer
- * @ca_common_shared_wptr: cmt-ape common channel write pointer
- * @ca_common_shared_rptr: cmt-ape common channel read pointer
- * @ac_audio_shared_wptr: ape-cmt audio channel write pointer
- * @ac_audio_shared_rptr: ape-cmt audio channel read pointer
- * @ca_audio_shared_wptr: cmt-ape audio channel write pointer
- * @ca_audio_shared_rptr: cmt-ape audio channel read pointer
- * @dev: pointer to the driver device
- * @ndev: pointer to the network device structure
- * @isa_context: pointer to t_isa_driver_sontext dtructure
- * @shm_common_ch_wr_wq: work queue for writing to common channel
- * @shm_audio_ch_wr_wq: workqueue for writing to audio channel
- * @shm_ac_wake_wq: workqueue for receiving ape-cmt wake requests
- * @shm_ca_wake_wq: workqueue for receiving cmt-ape wake requests
- * @shm_ac_sleep_wq: workqueue for recieving ape-cmt sleep requests
- * @send_ac_msg_pend_notify_0: work for handling pending message on common
- * channel
- * @send_ac_msg_pend_notify_1: work for handling pending message on audio
- * channel
- * @shm_ac_wake_req: work to send ape-cmt wake request
- * @shm_ca_wake_req: work to send cmt-ape wake request
- * @shm_ca_sleep_req: work to send cmt-ape sleep request
- * @shm_ac_sleep_req: work to send ape-cmt sleep request
- */
-struct shrm_dev {
- u8 ca_wake_irq;
- u8 ac_read_notif_0_irq;
- u8 ac_read_notif_1_irq;
- u8 ca_msg_pending_notif_0_irq;
- u8 ca_msg_pending_notif_1_irq;
- void __iomem *intr_base;
- void __iomem *ape_common_fifo_base;
- void __iomem *ape_audio_fifo_base;
- void __iomem *cmt_common_fifo_base;
- void __iomem *cmt_audio_fifo_base;
-
- u32 *ape_common_fifo_base_phy;
- u32 *ape_audio_fifo_base_phy;
- u32 *cmt_common_fifo_base_phy;
- u32 *cmt_audio_fifo_base_phy;
-
- int ape_common_fifo_size;
- int ape_audio_fifo_size;
- int cmt_common_fifo_size;
- int cmt_audio_fifo_size;
- int netdev_flag_up;
- int msr_flag;
-
- void __iomem *ac_common_shared_wptr;
- void __iomem *ac_common_shared_rptr;
- void __iomem *ca_common_shared_wptr;
- void __iomem *ca_common_shared_rptr;
-
- void __iomem *ac_audio_shared_wptr;
- void __iomem *ac_audio_shared_rptr;
- void __iomem *ca_audio_shared_wptr;
- void __iomem *ca_audio_shared_rptr;
-
- struct device *dev;
- struct net_device *ndev;
- struct modem *modem;
- struct isa_driver_context *isa_context;
- struct workqueue_struct *shm_common_ch_wr_wq;
- struct workqueue_struct *shm_audio_ch_wr_wq;
- struct workqueue_struct *shm_ac_wake_wq;
- struct workqueue_struct *shm_ca_wake_wq;
- struct workqueue_struct *shm_ac_sleep_wq;
- struct work_struct send_ac_msg_pend_notify_0;
- struct work_struct send_ac_msg_pend_notify_1;
- struct work_struct shm_ac_wake_req;
- struct work_struct shm_ca_wake_req;
- struct work_struct shm_ca_sleep_req;
- struct work_struct shm_ac_sleep_req;
-};
-
-/**
- * struct queue_element - information to add an element to queue
- * @entry: list entry
- * @offset: message offset
- * @size: message size
- * @no: total number of messages
- */
-struct queue_element {
- struct list_head entry;
- u32 offset;
- u32 size;
- u32 no;
-};
-
-/**
- * struct message_queue - ISI, RPC, AUDIO, SECURITY message queue information
- * @fifo_base: pointer to the respective fifo base
- * @size: size of the data to be read
- * @readptr: fifo read pointer
- * @writeptr: fifo write pointer
- * @no: total number of messages
- * @update_lock: spinlock for protecting the queue read operation
- * @q_rp: queue write pointer
- * @wq_readable: wait queue head
- * @msg_list: message list
- * @shrm: pointer to shrm device information structure
- */
-struct message_queue {
- u8 *fifo_base;
- u32 size;
- u32 readptr;
- u32 writeptr;
- u32 no;
- spinlock_t update_lock;
- atomic_t q_rp;
- wait_queue_head_t wq_readable;
- struct list_head msg_list;
- struct shrm_dev *shrm;
-};
-
-/**
- * struct isadev_context - shrm char interface context
- * @dl_queue: structre to store the queue related info
- * @device_id: message id(ISI, RPC, AUDIO, SECURITY)
- * @addr: device addresses.
- */
-struct isadev_context {
- struct message_queue dl_queue;
- u8 device_id;
- void *addr;
-};
-
-/**
- * struct isa_driver_context - shrm char interface device information
- * @is_open: flag to check the usage of queue
- * @isadev: pointer to struct t_isadev_context
- * @common_tx: spinlock for protecting common channel
- * @tx_audio_mutex: mutex for protecting audio channel
- * @cdev: character device structre
- * @shm_class: pointer to the class structure
- */
-struct isa_driver_context {
- atomic_t is_open[ISA_DEVICES];
- struct isadev_context *isadev;
- spinlock_t common_tx;
- struct mutex tx_audio_mutex;
- struct cdev cdev;
- struct class *shm_class;
-};
-
-#endif
diff --git a/arch/arm/mach-ux500/include/mach/shrm_net.h b/arch/arm/mach-ux500/include/mach/shrm_net.h
deleted file mode 100644
index a97b276ee15..00000000000
--- a/arch/arm/mach-ux500/include/mach/shrm_net.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2009
- *
- * Author: Kumar Sanghvi <kumar.sanghvi@stericsson.com> for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef __SHRM_NET_H
-#define __SHRM_NET_H
-
-#define SHRM_HLEN 1
-#define PHONET_ALEN 1
-
-#define PN_PIPE 0xD9
-#define PN_DEV_HOST 0x00
-#define PN_LINK_ADDR 0x26
-#define PN_TX_QUEUE_LEN 3
-
-#define RESOURCE_ID_INDEX 3
-#define SRC_OBJ_INDEX 7
-#define MSG_ID_INDEX 9
-#define PIPE_HDL_INDEX 10
-#define NETLINK_SHRM 20
-
-/**
- * struct shrm_net_iface_priv - shrm net interface device information
- * @shrm_device: pointer to the shrm device information structure
- * @iface_num: flag used to indicate the up/down of netdev
- */
-struct shrm_net_iface_priv {
- struct shrm_dev *shrm_device;
- unsigned int iface_num;
-};
-
-int shrm_register_netdev(struct shrm_dev *shrm_dev_data);
-int shrm_net_receive(struct net_device *dev);
-int shrm_suspend_netdev(struct net_device *dev);
-int shrm_resume_netdev(struct net_device *dev);
-int shrm_stop_netdev(struct net_device *dev);
-int shrm_restart_netdev(struct net_device *dev);
-int shrm_start_netdev(struct net_device *dev);
-void shrm_unregister_netdev(struct shrm_dev *shrm_dev_data);
-
-#endif /* __SHRM_NET_H */
diff --git a/arch/arm/mach-ux500/include/mach/shrm_private.h b/arch/arm/mach-ux500/include/mach/shrm_private.h
deleted file mode 100644
index 1f09e7bef94..00000000000
--- a/arch/arm/mach-ux500/include/mach/shrm_private.h
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright (C) ST-Ericsson SA 2010
- *
- * Author: Biju Das <biju.das@stericsson.com> for ST-Ericsson
- * Author: Kumar Sanghavi <kumar.sanghvi@stericsson.com> for ST-Ericsson
- * Author: Arun Murthy <arun.murthy@stericsson.com> for ST-Ericsson
- * License terms: GNU General Public License (GPL) version 2
- */
-
-#ifndef __SHRM_PRIVATE_INCLUDED
-#define __SHRM_PRIVATE_INCLUDED
-
-#include <linux/io.h>
-#include <linux/ioport.h>
-#include <linux/interrupt.h>
-#include <mach/shrm.h>
-
-#define GOP_OUTPUT_REGISTER_BASE (0x0)
-#define GOP_SET_REGISTER_BASE (0x4)
-#define GOP_CLEAR_REGISTER_BASE (0x8)
-#define GOP_TOGGLE_REGISTER_BASE (0xc)
-
-
-#define GOP_AUDIO_AC_READ_NOTIFICATION_BIT (0)
-#define GOP_AUDIO_CA_MSG_PENDING_NOTIFICATION_BIT (1)
-#define GOP_COMMON_AC_READ_NOTIFICATION_BIT (2)
-#define GOP_COMMON_CA_MSG_PENDING_NOTIFICATION_BIT (3)
-#define GOP_CA_WAKE_REQ_BIT (7)
-#define GOP_AUDIO_CA_READ_NOTIFICATION_BIT (23)
-#define GOP_AUDIO_AC_MSG_PENDING_NOTIFICATION_BIT (24)
-#define GOP_COMMON_CA_READ_NOTIFICATION_BIT (25)
-#define GOP_COMMON_AC_MSG_PENDING_NOTIFICATION_BIT (26)
-#define GOP_CA_WAKE_ACK_BIT (27)
-
-#define L2_MSG_MAPID_OFFSET (24)
-#define L1_MSG_MAPID_OFFSET (28)
-
-#define SHRM_SLEEP_STATE (0)
-#define SHRM_PTR_FREE (1)
-#define SHRM_PTR_BUSY (2)
-#define SHRM_IDLE (3)
-
-#define ISI_MESSAGING (0)
-#define RPC_MESSAGING (1)
-#define AUDIO_MESSAGING (2)
-#define SECURITY_MESSAGING (3)
-#define COMMON_LOOPBACK_MESSAGING (0xC0)
-#define AUDIO_LOOPBACK_MESSAGING (0x80)
-
-#define COMMON_CHANNEL 0
-#define AUDIO_CHANNEL 1
-
-typedef void (*MSG_PENDING_NOTIF)(const u32 Wptr);
-
-/**
- * struct fifo_write_params - parameters used for FIFO write operation.
- * @writer_local_rptr: pointer to local read buffer
- * @writer_local_wptr: pointer to local write buffer
- * @shared_wptr: write pointer shared by cmt and ape
- * @shared_rptr: read pointer shared by cmt and ape
- * @availablesize: available memory in fifo
- * @end_addr_fifo: fifo end addr
- * @fifo_virtual_addr: fifo virtual addr
- * @fifo_update_lock: spin lock to update fifo.
- *
- * On writting a message to FIFO the same has to be read by the modem before
- * writing the next message to the FIFO. In oder to over come this a local
- * write and read pointer is used for internal purpose.
- */
-struct fifo_write_params {
- u32 writer_local_rptr;
- u32 writer_local_wptr;
- u32 shared_wptr;
- u32 shared_rptr;
- u32 availablesize;
- u32 end_addr_fifo;
- u32 *fifo_virtual_addr;
- spinlock_t fifo_update_lock;
-} ;
-
-/**
- * struct fifo_read_params - parameters used for FIFO read operation
- * @reader_local_rptr: pointer to local read buffer
- * @reader_local_wptr: pointer to local write buffer
- * @shared_wptr: write pointer shared by cmt and ape
- * @shared_rptr: read pointer shared by cmt and ape
- * @availablesize: available memory in fifo
- * @end_addr_fifo: fifo end add
- * @fifo_virtual_addr: fifo virtual addr
- */
-struct fifo_read_params{
- u32 reader_local_rptr;
- u32 reader_local_wptr;
- u32 shared_wptr;
- u32 shared_rptr;
- u32 availablesize;
- u32 end_addr_fifo;
- u32 *fifo_virtual_addr;
-
-} ;
-
-int shrm_protocol_init(struct shrm_dev *shrm,
- received_msg_handler common_rx_handler,
- received_msg_handler audio_rx_handler);
-void shrm_protocol_deinit(struct shrm_dev *shrm);
-void shm_fifo_init(struct shrm_dev *shrm);
-int shm_write_msg_to_fifo(struct shrm_dev *shrm, u8 channel,
- u8 l2header, void *addr, u32 length);
-int shm_write_msg(struct shrm_dev *shrm,
- u8 l2_header, void *addr, u32 length);
-
-u8 is_the_only_one_unread_message(struct shrm_dev *shrm,
- u8 channel, u32 length);
-u8 read_remaining_messages_common(void);
-u8 read_remaining_messages_audio(void);
-u8 read_one_l2msg_audio(struct shrm_dev *shrm,
- u8 *p_l2_msg, u32 *p_len);
-u8 read_one_l2msg_common(struct shrm_dev *shrm,
- u8 *p_l2_msg, u32 *p_len);
-void receive_messages_common(struct shrm_dev *shrm);
-void receive_messages_audio(struct shrm_dev *shrm);
-
-void update_ac_common_local_rptr(struct shrm_dev *shrm);
-void update_ac_audio_local_rptr(struct shrm_dev *shrm);
-void update_ca_common_local_wptr(struct shrm_dev *shrm);
-void update_ca_audio_local_wptr(struct shrm_dev *shrm);
-void update_ac_common_shared_wptr(struct shrm_dev *shrm);
-void update_ac_audio_shared_wptr(struct shrm_dev *shrm);
-void update_ca_common_shared_rptr(struct shrm_dev *shrm);
-void update_ca_audio_shared_rptr(struct shrm_dev *shrm);
-
-
-void get_writer_pointers(u8 msg_type, u32 *WriterLocalRptr, \
- u32 *WriterLocalWptr, u32 *SharedWptr);
-void get_reader_pointers(u8 msg_type, u32 *ReaderLocalRptr, \
- u32 *ReaderLocalWptr, u32 *SharedRptr);
-u8 read_boot_info_req(struct shrm_dev *shrm,
- u32 *pConfig,
- u32 *pVersion);
-void write_boot_info_resp(struct shrm_dev *shrm, u32 Config,
- u32 Version);
-
-void send_ac_msg_pending_notification_0(struct shrm_dev *shrm);
-void send_ac_msg_pending_notification_1(struct shrm_dev *shrm);
-void ca_msg_read_notification_0(struct shrm_dev *shrm);
-void ca_msg_read_notification_1(struct shrm_dev *shrm);
-
-void set_ca_msg_0_read_notif_send(u8 val);
-u8 get_ca_msg_0_read_notif_send(void);
-void set_ca_msg_1_read_notif_send(u8 val);
-u8 get_ca_msg_1_read_notif_send(void);
-
-irqreturn_t ca_wake_irq_handler(int irq, void *ctrlr);
-irqreturn_t ac_read_notif_0_irq_handler(int irq, void *ctrlr);
-irqreturn_t ac_read_notif_1_irq_handler(int irq, void *ctrlr);
-irqreturn_t ca_msg_pending_notif_0_irq_handler(int irq, void *ctrlr);
-irqreturn_t ca_msg_pending_notif_1_irq_handler(int irq, void *ctrlr);
-
-void shm_ca_msgpending_0_tasklet(unsigned long);
-void shm_ca_msgpending_1_tasklet(unsigned long);
-void shm_ac_read_notif_0_tasklet(unsigned long);
-void shm_ac_read_notif_1_tasklet(unsigned long);
-void shm_ca_wake_req_tasklet(unsigned long);
-
-u8 get_boot_state(void);
-
-int get_ca_wake_req_state(void);
-
-/* shrm character interface */
-int isa_init(struct shrm_dev *shrm);
-void isa_exit(struct shrm_dev *shrm);
-int add_msg_to_queue(struct message_queue *q, u32 size);
-ssize_t isa_read(struct file *filp, char __user *buf, size_t len,
- loff_t *ppos);
-int get_size_of_new_msg(struct message_queue *q);
-int remove_msg_from_queue(struct message_queue *q);
-void shrm_char_reset_queues(struct shrm_dev *shrm);
-int shrm_get_cdev_index(u8 l2_header);
-int shrm_get_cdev_l2header(u8 idx);
-
-#endif