gpu: host1x: Continue CDMA execution starting with a next job
Currently gathers of a hung job are getting NOP'ed and a restarted CDMA executes the NOP'ed gathers. There shouldn't be a reason to not restart CDMA execution starting with a next job, avoiding the unnecessary churning with gathers NOP'ing. Signed-off-by: Dmitry Osipenko <digetx@gmail.com> Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:

کامیت شده توسط
Thierry Reding

والد
5d6f043685
کامیت
79930bafe2
@@ -39,8 +39,6 @@ static void push_buffer_init(struct push_buffer *pb)
|
||||
static void cdma_timeout_cpu_incr(struct host1x_cdma *cdma, u32 getptr,
|
||||
u32 syncpt_incrs, u32 syncval, u32 nr_slots)
|
||||
{
|
||||
struct host1x *host1x = cdma_to_host1x(cdma);
|
||||
struct push_buffer *pb = &cdma->push_buffer;
|
||||
unsigned int i;
|
||||
|
||||
for (i = 0; i < syncpt_incrs; i++)
|
||||
@@ -48,18 +46,6 @@ static void cdma_timeout_cpu_incr(struct host1x_cdma *cdma, u32 getptr,
|
||||
|
||||
/* after CPU incr, ensure shadow is up to date */
|
||||
host1x_syncpt_load(cdma->timeout.syncpt);
|
||||
|
||||
/* NOP all the PB slots */
|
||||
while (nr_slots--) {
|
||||
u32 *p = (u32 *)(pb->mapped + getptr);
|
||||
*(p++) = HOST1X_OPCODE_NOP;
|
||||
*(p++) = HOST1X_OPCODE_NOP;
|
||||
dev_dbg(host1x->dev, "%s: NOP at %pad+%#x\n", __func__,
|
||||
&pb->dma, getptr);
|
||||
getptr = (getptr + 8) & (pb->size - 1);
|
||||
}
|
||||
|
||||
wmb();
|
||||
}
|
||||
|
||||
/*
|
||||
|
مرجع در شماره جدید
Block a user