123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- /*
- * Copyright (c) 2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
- *
- * Permission to use, copy, modify, and/or distribute this software for
- * any purpose with or without fee is hereby granted, provided that the
- * above copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
- #ifndef __DP_LI_H
- #define __DP_LI_H
- #include <dp_types.h>
- #include <dp_mon.h>
- #include <hal_li_tx.h>
- #include <hal_li_rx.h>
- #include <qdf_pkt_add_timestamp.h>
- /* WBM2SW ring id for rx release */
- #define WBM2SW_REL_ERR_RING_NUM 3
- /**
- * struct dp_soc_li - Extended DP soc for LI targets
- * @soc: dp soc structure
- */
- struct dp_soc_li {
- struct dp_soc soc;
- };
- /**
- * struct dp_pdev_li - Extended DP pdev for LI targets
- * @pdev: dp_pdev structure
- */
- struct dp_pdev_li {
- struct dp_pdev pdev;
- };
- /**
- * struct dp_vdev_li - Extended DP vdev for LI targets
- * @vdev: dp_vdev structure
- */
- struct dp_vdev_li {
- struct dp_vdev vdev;
- };
- /**
- * struct dp_peer_li - Extended DP peer for LI targets
- * @peer: dp_peer structure
- */
- struct dp_peer_li {
- struct dp_peer peer;
- };
- /**
- * struct dp_mon_soc_li - Extended DP mon soc for LI targets
- * @mon_soc: dp_mon_soc structure
- */
- struct dp_mon_soc_li {
- struct dp_mon_soc mon_soc;
- };
- /**
- * struct dp_mon_pdev_li - Extended DP mon pdev for LI targets
- * @mon_pdev: dp_mon_pdev structure
- */
- struct dp_mon_pdev_li {
- struct dp_mon_pdev mon_pdev;
- };
- /**
- * dp_get_soc_context_size_LI() - get context size for dp_soc_li
- *
- * Return: value in bytes for LI specific soc structure
- */
- qdf_size_t dp_get_soc_context_size_li(void);
- /**
- * dp_initialize_arch_ops_li() - initialize LI specific arch ops
- * @arch_ops: arch ops pointer
- *
- * Return: none
- */
- void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops);
- /**
- * dp_get_context_size_li() - get LI specific size for peer/vdev/pdev/soc
- * @arch_ops: arch ops pointer
- *
- * Return: size in bytes for the context_type
- */
- qdf_size_t dp_get_context_size_li(enum dp_context_type context_type);
- /**
- * dp_mon_get_context_size_li() - get LI specific size for mon pdev/soc
- * @arch_ops: arch ops pointer
- *
- * Return: size in bytes for the context_type
- */
- qdf_size_t dp_mon_get_context_size_li(enum dp_context_type context_type);
- #ifdef CONFIG_DP_PKT_ADD_TIMESTAMP
- /**
- * dp_pkt_add_timestamp() - add timestamp in data payload
- *
- * @vdev: dp vdev
- * @index: index to decide offset in payload
- * @time: timestamp to add in data payload
- * @nbuf: network buffer
- *
- * Return: none
- */
- void dp_pkt_add_timestamp(struct dp_vdev *vdev,
- enum qdf_pkt_timestamp_index index, uint64_t time,
- qdf_nbuf_t nbuf);
- /**
- * dp_pkt_get_timestamp() - get current system time
- *
- * @time: return current system time
- *
- * Return: none
- */
- void dp_pkt_get_timestamp(uint64_t *time);
- #else
- #define dp_pkt_add_timestamp(vdev, index, time, nbuf)
- static inline
- void dp_pkt_get_timestamp(uint64_t *time)
- {
- }
- #endif
- #endif
|