| /* 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 */ |