123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- /*
- * Copyright (c) 2022-2023 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 _CDP_TXRX_PPE_H_
- #define _CDP_TXRX_PPE_H_
- /**
- * cdp_ppesds_vp_setup_fw_recovery() - Setup DS VP on FW recovery.
- * @soc: data path soc handle
- * @vdev_id: vdev id
- * @profile_idx: DS profile index.
- *
- * return: qdf_status where DS VP setup is done or not.
- */
- static inline
- QDF_STATUS cdp_ppesds_vp_setup_fw_recovery(struct cdp_soc_t *soc,
- uint8_t vdev_id,
- uint16_t profile_idx)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return QDF_STATUS_E_NOSUPPORT;
- }
- if (soc->ops->ppeds_ops->ppeds_vp_setup_recovery)
- return soc->ops->ppeds_ops->ppeds_vp_setup_recovery(soc,
- vdev_id,
- profile_idx);
- return QDF_STATUS_E_INVAL;
- }
- /*
- * cdp_ppesds_update_dev_stats() - Update dev stats for PPE-DS mode.
- * @soc: data path soc handle
- * @vp_params: VP params
- * @vdev_id: vdev id
- * @stats: stats pointer from ppe
- *
- * return: void
- */
- static inline
- void cdp_ppesds_update_dev_stats(struct cdp_soc_t *soc,
- struct cdp_ds_vp_params *vp_params,
- uint16_t vdev_id, void *stats)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return;
- }
- if (soc->ops->ppeds_ops->ppeds_stats_sync)
- return soc->ops->ppeds_ops->ppeds_stats_sync(soc,
- vdev_id,
- vp_params,
- stats);
- }
- /**
- * cdp_ppesds_entry_attach() - attach the ppe vp interface.
- * @soc: data path soc handle
- * @vdev_id: vdev id
- * @vpai: PPE VP opaque
- * @ppe_vp_num: Allocated VP Port number
- * @vp_params: VP params
- *
- * return: qdf_status where vp entry got allocated or not.
- */
- static inline
- QDF_STATUS cdp_ppesds_entry_attach(struct cdp_soc_t *soc, uint8_t vdev_id,
- void *vpai, int32_t *ppe_vp_num,
- struct cdp_ds_vp_params *vp_params)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return QDF_STATUS_E_NOSUPPORT;
- }
- if (soc->ops->ppeds_ops->ppeds_entry_attach)
- return soc->ops->ppeds_ops->ppeds_entry_attach(soc, vdev_id,
- vpai,
- ppe_vp_num,
- vp_params);
- return QDF_STATUS_E_INVAL;
- }
- /**
- * cdp_ppesds_entry_detach() - Detach the PPE VP interface.
- * @soc: data path soc handle
- * @vdev_id: vdev ID
- * @vp_params: VP params
- *
- * return: void
- */
- static inline
- void cdp_ppesds_entry_detach(struct cdp_soc_t *soc, uint8_t vdev_id,
- struct cdp_ds_vp_params *vp_params)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return;
- }
- if (soc->ops->ppeds_ops->ppeds_entry_detach)
- return soc->ops->ppeds_ops->ppeds_entry_detach(soc,
- vdev_id,
- vp_params);
- }
- /**
- * cdp_ppeds_attached() - Check whether ppeds attached
- * @soc: data path soc handle
- *
- * return: true for ppeds attached otherwise false.
- */
- static inline
- QDF_STATUS cdp_ppeds_attached(struct cdp_soc_t *soc)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops)
- return false;
- return true;
- }
- /**
- * cdp_ppesds_set_int_pri2tid() - Set the INT_PRI to TID
- * @soc: data path soc handle
- * @pri2tid: PRI2TID table
- *
- * return: void
- */
- static inline
- void cdp_ppesds_set_int_pri2tid(struct cdp_soc_t *soc,
- uint8_t *pri2tid)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return;
- }
- if (soc->ops->ppeds_ops->ppeds_set_int_pri2tid)
- return soc->ops->ppeds_ops->ppeds_set_int_pri2tid(soc, pri2tid);
- }
- /**
- * cdp_ppesds_update_int_pri2tid() - Update the INT_PRI to TID
- * @soc: data path soc handle
- * @pri: Priority index
- * @tid: TID mapped to the input priority
- *
- * return: void
- */
- static inline
- void cdp_ppesds_update_int_pri2tid(struct cdp_soc_t *soc,
- uint8_t pri, uint8_t tid)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- }
- if (soc->ops->ppeds_ops->ppeds_update_int_pri2tid)
- return soc->ops->ppeds_ops->ppeds_update_int_pri2tid(soc, pri,
- tid);
- }
- /**
- * cdp_ppesds_entry_dump() - Dump the PPE VP entries
- * @soc: data path soc handle
- *
- * return: void
- */
- static inline
- void cdp_ppesds_entry_dump(struct cdp_soc_t *soc)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return;
- }
- if (soc->ops->ppeds_ops->ppeds_entry_dump)
- soc->ops->ppeds_ops->ppeds_entry_dump(soc);
- }
- /**
- * cdp_ppesds_enable_pri2tid() - Enable PPE VP PRI2TID table
- * @soc: data path soc handle
- * @vdev_id: vdev id
- * @val: Boolean value to enable/disable
- *
- * return: QDF_STATUS
- */
- static inline
- QDF_STATUS cdp_ppesds_enable_pri2tid(struct cdp_soc_t *soc,
- uint8_t vdev_id, bool val)
- {
- if (!soc || !soc->ops || !soc->ops->ppeds_ops) {
- QDF_TRACE(QDF_MODULE_ID_DP, QDF_TRACE_LEVEL_FATAL,
- "%s invalid instance", __func__);
- return QDF_STATUS_E_INVAL;
- }
- if (soc->ops->ppeds_ops->ppeds_enable_pri2tid)
- return soc->ops->ppeds_ops->ppeds_enable_pri2tid(soc, vdev_id,
- val);
- return QDF_STATUS_E_NOSUPPORT;
- }
- #endif /* _CDP_TXRX_PPE_H_ */
|