blob: dff3a3fdfd5a93df2fdc2cf40292af3141c91442 [file] [log] [blame]
/* Copyright (c) 2012-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _IPA_HW_DEFS_H
#define _IPA_HW_DEFS_H
#include <linux/bitops.h>
/* This header defines various HW related data types */
#define IPA_A5_MUX_HDR_EXCP_FLAG_IP BIT(7)
#define IPA_A5_MUX_HDR_EXCP_FLAG_NAT BIT(6)
#define IPA_A5_MUX_HDR_EXCP_FLAG_SW_FLT BIT(5)
#define IPA_A5_MUX_HDR_EXCP_FLAG_TAG BIT(4)
#define IPA_A5_MUX_HDR_EXCP_FLAG_REPLICATED BIT(3)
#define IPA_A5_MUX_HDR_EXCP_FLAG_IHL BIT(2)
/**
* struct ipa3_a5_mux_hdr - A5 MUX header definition
* @interface_id: interface ID
* @src_pipe_index: source pipe index
* @flags: flags
* @metadata: metadata
*
* A5 MUX header is in BE, A5 runs in LE. This struct definition
* allows A5 SW to correctly parse the header
*/
struct ipa3_a5_mux_hdr {
u16 interface_id;
u8 src_pipe_index;
u8 flags;
u32 metadata;
};
#endif /* _IPA_HW_DEFS_H */