fsi: sbefifo: Use specified value of start of response timeout
For some of the chip-ops where sbe needs to collect trace information, sbe can take a long time (>30s) to respond. Currently these chip-ops will timeout as the start of response timeout defaults to 10s. Instead of default value, use specified value. The require timeout value will be set using ioctl. Signed-off-by: Amitay Isaacs <amitay@ozlabs.org> Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Eddie James <eajames@linux.ibm.com> Link: https://lore.kernel.org/r/20220121053816.82253-2-joel@jms.id.au Signed-off-by: Joel Stanley <joel@jms.id.au>
This commit is contained in:
parent
3dcf3c84f5
commit
b8d536d277
@ -125,6 +125,7 @@ struct sbefifo {
|
|||||||
bool dead;
|
bool dead;
|
||||||
bool async_ffdc;
|
bool async_ffdc;
|
||||||
bool timed_out;
|
bool timed_out;
|
||||||
|
u32 timeout_start_rsp_ms;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sbefifo_user {
|
struct sbefifo_user {
|
||||||
@ -549,7 +550,7 @@ static int sbefifo_read_response(struct sbefifo *sbefifo, struct iov_iter *respo
|
|||||||
|
|
||||||
dev_vdbg(dev, "reading response, buflen = %zd\n", iov_iter_count(response));
|
dev_vdbg(dev, "reading response, buflen = %zd\n", iov_iter_count(response));
|
||||||
|
|
||||||
timeout = msecs_to_jiffies(SBEFIFO_TIMEOUT_START_RSP);
|
timeout = msecs_to_jiffies(sbefifo->timeout_start_rsp_ms);
|
||||||
for (;;) {
|
for (;;) {
|
||||||
/* Grab FIFO status (this will handle parity errors) */
|
/* Grab FIFO status (this will handle parity errors) */
|
||||||
rc = sbefifo_wait(sbefifo, false, &status, timeout);
|
rc = sbefifo_wait(sbefifo, false, &status, timeout);
|
||||||
@ -972,6 +973,7 @@ static int sbefifo_probe(struct device *dev)
|
|||||||
sbefifo->fsi_dev = fsi_dev;
|
sbefifo->fsi_dev = fsi_dev;
|
||||||
dev_set_drvdata(dev, sbefifo);
|
dev_set_drvdata(dev, sbefifo);
|
||||||
mutex_init(&sbefifo->lock);
|
mutex_init(&sbefifo->lock);
|
||||||
|
sbefifo->timeout_start_rsp_ms = SBEFIFO_TIMEOUT_START_RSP;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Try cleaning up the FIFO. If this fails, we still register the
|
* Try cleaning up the FIFO. If this fails, we still register the
|
||||||
|
Loading…
Reference in New Issue
Block a user