mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 02:50:43 +00:00
![Bjorn Andersson](/assets/img/avatar_default.png)
To fully read the received rx data from FIFO both the command and data has to be read. Currently we read command, data separately and process them. By adding an offset parameter to RX FIFO peak accessor, command and data can be read together, simplifying things. So introduce this. Acked-by: Arun Kumar Neelakantam <aneela@codeaurora.org> Signed-off-by: Sricharan R <sricharan@codeaurora.org> Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
/*
|
|
* Copyright (c) 2016-2017, Linaro Ltd
|
|
*
|
|
* 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 __QCOM_GLINK_NATIVE_H__
|
|
#define __QCOM_GLINK_NATIVE_H__
|
|
|
|
#define GLINK_FEATURE_INTENT_REUSE BIT(0)
|
|
#define GLINK_FEATURE_MIGRATION BIT(1)
|
|
#define GLINK_FEATURE_TRACER_PKT BIT(2)
|
|
|
|
struct qcom_glink_pipe {
|
|
size_t length;
|
|
|
|
size_t (*avail)(struct qcom_glink_pipe *glink_pipe);
|
|
|
|
void (*peak)(struct qcom_glink_pipe *glink_pipe, void *data,
|
|
unsigned int offset, size_t count);
|
|
void (*advance)(struct qcom_glink_pipe *glink_pipe, size_t count);
|
|
|
|
void (*write)(struct qcom_glink_pipe *glink_pipe,
|
|
const void *hdr, size_t hlen,
|
|
const void *data, size_t dlen);
|
|
};
|
|
|
|
struct qcom_glink;
|
|
|
|
struct qcom_glink *qcom_glink_native_probe(struct device *dev,
|
|
unsigned long features,
|
|
struct qcom_glink_pipe *rx,
|
|
struct qcom_glink_pipe *tx,
|
|
bool intentless);
|
|
void qcom_glink_native_remove(struct qcom_glink *glink);
|
|
|
|
void qcom_glink_native_unregister(struct qcom_glink *glink);
|
|
#endif
|