Loading drivers/gpu/msm/adreno.c +0 −27 Original line number Diff line number Diff line Loading @@ -614,7 +614,6 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device) struct adreno_irq *irq_params = gpudev->irq; irqreturn_t ret = IRQ_NONE; unsigned int status = 0, fence = 0, fence_retries = 0, tmp, int_bit; unsigned int status_retries = 0; int i; atomic_inc(&adreno_dev->pending_irq_refcnt); Loading Loading @@ -653,32 +652,6 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device) adreno_readreg(adreno_dev, ADRENO_REG_RBBM_INT_0_STATUS, &status); /* * Read status again to make sure the bits aren't transitory. * Transitory bits mean that they are spurious interrupts and are * seen while preemption is on going. Empirical experiments have * shown that the transitory bits are a timing thing and they * go away in the small time window between two or three consecutive * reads. If they don't go away, log the message and return. */ while (status_retries < STATUS_RETRY_MAX) { unsigned int new_status; adreno_readreg(adreno_dev, ADRENO_REG_RBBM_INT_0_STATUS, &new_status); if (status == new_status) break; status = new_status; status_retries++; } if (status_retries == STATUS_RETRY_MAX) { KGSL_DRV_CRIT_RATELIMIT(device, "STATUS bits are not stable\n"); return ret; } /* * Clear all the interrupt bits but ADRENO_INT_RBBM_AHB_ERROR. Because * even if we clear it here, it will stay high until it is cleared Loading drivers/gpu/msm/adreno.h +1 −4 Original line number Diff line number Diff line /* Copyright (c) 2008-2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2008-2018, The Linux Foundation. All rights reserved. * * 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 Loading Loading @@ -175,9 +175,6 @@ /* Number of times to poll the AHB fence in ISR */ #define FENCE_RETRY_MAX 100 /* Number of times to see if INT_0_STATUS changed or not */ #define STATUS_RETRY_MAX 3 /* One cannot wait forever for the core to idle, so set an upper limit to the * amount of time to wait for the core to go idle */ Loading Loading
drivers/gpu/msm/adreno.c +0 −27 Original line number Diff line number Diff line Loading @@ -614,7 +614,6 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device) struct adreno_irq *irq_params = gpudev->irq; irqreturn_t ret = IRQ_NONE; unsigned int status = 0, fence = 0, fence_retries = 0, tmp, int_bit; unsigned int status_retries = 0; int i; atomic_inc(&adreno_dev->pending_irq_refcnt); Loading Loading @@ -653,32 +652,6 @@ static irqreturn_t adreno_irq_handler(struct kgsl_device *device) adreno_readreg(adreno_dev, ADRENO_REG_RBBM_INT_0_STATUS, &status); /* * Read status again to make sure the bits aren't transitory. * Transitory bits mean that they are spurious interrupts and are * seen while preemption is on going. Empirical experiments have * shown that the transitory bits are a timing thing and they * go away in the small time window between two or three consecutive * reads. If they don't go away, log the message and return. */ while (status_retries < STATUS_RETRY_MAX) { unsigned int new_status; adreno_readreg(adreno_dev, ADRENO_REG_RBBM_INT_0_STATUS, &new_status); if (status == new_status) break; status = new_status; status_retries++; } if (status_retries == STATUS_RETRY_MAX) { KGSL_DRV_CRIT_RATELIMIT(device, "STATUS bits are not stable\n"); return ret; } /* * Clear all the interrupt bits but ADRENO_INT_RBBM_AHB_ERROR. Because * even if we clear it here, it will stay high until it is cleared Loading
drivers/gpu/msm/adreno.h +1 −4 Original line number Diff line number Diff line /* Copyright (c) 2008-2017, The Linux Foundation. All rights reserved. /* Copyright (c) 2008-2018, The Linux Foundation. All rights reserved. * * 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 Loading Loading @@ -175,9 +175,6 @@ /* Number of times to poll the AHB fence in ISR */ #define FENCE_RETRY_MAX 100 /* Number of times to see if INT_0_STATUS changed or not */ #define STATUS_RETRY_MAX 3 /* One cannot wait forever for the core to idle, so set an upper limit to the * amount of time to wait for the core to go idle */ Loading