/* SPDX-License-Identifier: GPL-2.0 */ /* * This file is part of the QM35 UCI stack for linux. * * Copyright (c) 2022 Qorvo US, Inc. * * This software is provided under the GNU General Public License, version 2 * (GPLv2), as well as under a Qorvo commercial license. * * You may choose to use this software under the terms of the GPLv2 License, * version 2 ("GPLv2"), as published by the Free Software Foundation. * You should have received a copy of the GPLv2 along with this program. If * not, see . * * This program is distributed under the GPLv2 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 GPLv2 for more * details. * * If you cannot meet the requirements of the GPLv2, you may not use this * software for any purpose without first obtaining a commercial license from * Qorvo. * Please contact Qorvo to inquire about licensing terms. * * QM35 LOG layer HSSPI Protocol */ #ifndef __HSSPI_LOG_H__ #define __HSSPI_LOG_H__ #include "hsspi.h" #include "debug.h" #include "qm35_rb.h" struct log_packet { struct hsspi_block blk; struct completion *write_done; }; struct log_layer { struct hsspi_layer hlayer; uint8_t log_modules_count; struct log_module *log_modules; struct rb rb; bool enabled; }; /** * log_packet_alloc() - Allocate an LOG packet * @length: length of the LOG packet * * Allocate an LOG packet that can be used by the HSSPI driver in * order to send or receive an LOG packet. * * Return: a newly allocated &struct log_packet or NULL */ struct log_packet *log_packet_alloc(u16 length); /** * log_packet_free() - Free an LOG packet * @p: pointer to the &struct log_packet to free * */ void log_packet_free(struct log_packet *p); int log_layer_init(struct log_layer *log, struct debug *debug); void log_layer_deinit(struct log_layer *log); #endif // __HSSPI_LOG_H__