summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/ipu-v3/ipu-prv.h
diff options
context:
space:
mode:
authorPhilipp Zabel <p.zabel@pengutronix.de>2017-05-08 12:45:52 +0200
committerPhilipp Zabel <p.zabel@pengutronix.de>2017-06-08 08:57:19 +0200
commit93adc8b5705c14d16be382d43699d2ba71248a4b (patch)
tree22324a2cf6b2948a903e609b80d7741aa88b3ae6 /drivers/gpu/ipu-v3/ipu-prv.h
parente1e9733cd37908a9ba61e29154561f0c81420e06 (diff)
downloadop-kernel-dev-93adc8b5705c14d16be382d43699d2ba71248a4b.zip
op-kernel-dev-93adc8b5705c14d16be382d43699d2ba71248a4b.tar.gz
gpu: ipu-v3: allocate ipuv3_channels as needed
Most of the 64 IPUv3 DMA channels are never used, some of them (channels 16, 30, 32, 34-39, and 53-63) are even marked as reserved. Allocate the channel control structure only when a channel is actually requested, replace the fixed size array with a list, and remove the unused enabled and busy fields from the ipuv3_channel structure. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Diffstat (limited to 'drivers/gpu/ipu-v3/ipu-prv.h')
-rw-r--r--drivers/gpu/ipu-v3/ipu-prv.h8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/gpu/ipu-v3/ipu-prv.h b/drivers/gpu/ipu-v3/ipu-prv.h
index ca2a223..b6e22d6 100644
--- a/drivers/gpu/ipu-v3/ipu-prv.h
+++ b/drivers/gpu/ipu-v3/ipu-prv.h
@@ -157,11 +157,8 @@ enum ipu_modules {
struct ipuv3_channel {
unsigned int num;
-
- bool enabled;
- bool busy;
-
struct ipu_soc *ipu;
+ struct list_head list;
};
struct ipu_cpmem;
@@ -184,6 +181,7 @@ struct ipu_soc {
enum ipuv3_type ipu_type;
spinlock_t lock;
struct mutex channel_lock;
+ struct list_head channels;
void __iomem *cm_reg;
void __iomem *idmac_reg;
@@ -193,8 +191,6 @@ struct ipu_soc {
struct clk *clk;
- struct ipuv3_channel channel[64];
-
int irq_sync;
int irq_err;
struct irq_domain *domain;
OpenPOWER on IntegriCloud