ath79: add support for COMFAST CF-E130N v2
[oweals/openwrt.git] / target / linux / bcm27xx / patches-4.19 / 950-0509-drm-v3d-Update-to-upstream-IRQ-code.patch
1 From 50088003d803f04e536eb09ac2635df35b5c8ae4 Mon Sep 17 00:00:00 2001
2 From: Eric Anholt <eric@anholt.net>
3 Date: Tue, 12 Mar 2019 09:08:10 -0700
4 Subject: [PATCH] drm/v3d: Update to upstream IRQ code.
5
6 ---
7  drivers/gpu/drm/v3d/v3d_irq.c | 25 +++++++++++++++----------
8  1 file changed, 15 insertions(+), 10 deletions(-)
9
10 --- a/drivers/gpu/drm/v3d/v3d_irq.c
11 +++ b/drivers/gpu/drm/v3d/v3d_irq.c
12 @@ -168,7 +168,7 @@ v3d_hub_irq(int irq, void *arg)
13  int
14  v3d_irq_init(struct v3d_dev *v3d)
15  {
16 -       int ret, core;
17 +       int irq1, ret, core;
18  
19         INIT_WORK(&v3d->overflow_mem_work, v3d_overflow_mem_work);
20  
21 @@ -179,24 +179,29 @@ v3d_irq_init(struct v3d_dev *v3d)
22                 V3D_CORE_WRITE(core, V3D_CTL_INT_CLR, V3D_CORE_IRQS);
23         V3D_WRITE(V3D_HUB_INT_CLR, V3D_HUB_IRQS);
24  
25 -       if (platform_get_irq(v3d->pdev, 1) < 0) {
26 -               ret = devm_request_irq(v3d->dev, platform_get_irq(v3d->pdev, 0),
27 +       irq1 = platform_get_irq(v3d->pdev, 1);
28 +       if (irq1 == -EPROBE_DEFER)
29 +               return irq1;
30 +       if (irq1 > 0) {
31 +               ret = devm_request_irq(v3d->dev, irq1,
32                                        v3d_irq, IRQF_SHARED,
33 -                                      "v3d", v3d);
34 -               v3d->single_irq_line = true;
35 -       } else {
36 +                                      "v3d_core0", v3d);
37 +               if (ret)
38 +                       goto fail;
39                 ret = devm_request_irq(v3d->dev, platform_get_irq(v3d->pdev, 0),
40                                        v3d_hub_irq, IRQF_SHARED,
41                                        "v3d_hub", v3d);
42                 if (ret)
43                         goto fail;
44 +       } else {
45 +               v3d->single_irq_line = true;
46  
47 -               ret = devm_request_irq(v3d->dev, platform_get_irq(v3d->pdev, 1),
48 +               ret = devm_request_irq(v3d->dev, platform_get_irq(v3d->pdev, 0),
49                                        v3d_irq, IRQF_SHARED,
50 -                                      "v3d_core0", v3d);
51 +                                      "v3d", v3d);
52 +               if (ret)
53 +                       goto fail;
54         }
55 -       if (ret)
56 -               goto fail;
57  
58         v3d_irq_enable(v3d);
59         return 0;