hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/drivers/gpu/drm/omapdrm/dss/dsi.c
....@@ -1444,22 +1444,26 @@
14441444 {
14451445 struct dsi_data *dsi = s->private;
14461446 unsigned long flags;
1447
- struct dsi_irq_stats stats;
1447
+ struct dsi_irq_stats *stats;
1448
+
1449
+ stats = kmalloc(sizeof(*stats), GFP_KERNEL);
1450
+ if (!stats)
1451
+ return -ENOMEM;
14481452
14491453 spin_lock_irqsave(&dsi->irq_stats_lock, flags);
14501454
1451
- stats = dsi->irq_stats;
1455
+ *stats = dsi->irq_stats;
14521456 memset(&dsi->irq_stats, 0, sizeof(dsi->irq_stats));
14531457 dsi->irq_stats.last_reset = jiffies;
14541458
14551459 spin_unlock_irqrestore(&dsi->irq_stats_lock, flags);
14561460
14571461 seq_printf(s, "period %u ms\n",
1458
- jiffies_to_msecs(jiffies - stats.last_reset));
1462
+ jiffies_to_msecs(jiffies - stats->last_reset));
14591463
1460
- seq_printf(s, "irqs %d\n", stats.irq_count);
1464
+ seq_printf(s, "irqs %d\n", stats->irq_count);
14611465 #define PIS(x) \
1462
- seq_printf(s, "%-20s %10d\n", #x, stats.dsi_irqs[ffs(DSI_IRQ_##x)-1]);
1466
+ seq_printf(s, "%-20s %10d\n", #x, stats->dsi_irqs[ffs(DSI_IRQ_##x)-1]);
14631467
14641468 seq_printf(s, "-- DSI%d interrupts --\n", dsi->module_id + 1);
14651469 PIS(VC0);
....@@ -1483,10 +1487,10 @@
14831487
14841488 #define PIS(x) \
14851489 seq_printf(s, "%-20s %10d %10d %10d %10d\n", #x, \
1486
- stats.vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \
1487
- stats.vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \
1488
- stats.vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \
1489
- stats.vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]);
1490
+ stats->vc_irqs[0][ffs(DSI_VC_IRQ_##x)-1], \
1491
+ stats->vc_irqs[1][ffs(DSI_VC_IRQ_##x)-1], \
1492
+ stats->vc_irqs[2][ffs(DSI_VC_IRQ_##x)-1], \
1493
+ stats->vc_irqs[3][ffs(DSI_VC_IRQ_##x)-1]);
14901494
14911495 seq_printf(s, "-- VC interrupts --\n");
14921496 PIS(CS);
....@@ -1502,7 +1506,7 @@
15021506
15031507 #define PIS(x) \
15041508 seq_printf(s, "%-20s %10d\n", #x, \
1505
- stats.cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]);
1509
+ stats->cio_irqs[ffs(DSI_CIO_IRQ_##x)-1]);
15061510
15071511 seq_printf(s, "-- CIO interrupts --\n");
15081512 PIS(ERRSYNCESC1);
....@@ -1527,6 +1531,8 @@
15271531 PIS(ULPSACTIVENOT_ALL1);
15281532 #undef PIS
15291533
1534
+ kfree(stats);
1535
+
15301536 return 0;
15311537 }
15321538 #endif