Skip to content

Commit d28b615

Browse files
committed
emsdp: ss_gpio: fix interrupt bug
Signed-off-by: Yuguo Zou <[email protected]>
1 parent 57d38c3 commit d28b615

File tree

1 file changed

+36
-24
lines changed

1 file changed

+36
-24
lines changed

board/emsdp/drivers/ip/subsystem/gpio/dfss_gpio_obj.c

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@
3838

3939
#if (USE_DFSS_GPIO_0)
4040

41+
#define DFSS_GPIO_0_LEN 21
4142
static void gpio_int_cb0(void *param);
4243
static DEV_GPIO gpio_0;
43-
static DEV_GPIO_HANDLER gpio_int_handlers0[8];
44+
static DEV_GPIO_HANDLER gpio_int_handlers0[DFSS_GPIO_0_LEN];
4445
static SS_GPIO_DEV_CONTEXT gpio_context0 = {
4546
AR_IO_GPIO0_SWPORTA_DR,
46-
(DFSS_GPIO_0_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO0_INT_INTR_FLAG,
47+
(DFSS_GPIO_0_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_0_LEN, IO_GPIO0_INT_INTR_FLAG,
4748
0, gpio_int_cb0, gpio_int_handlers0, 0
4849
};
4950

@@ -100,12 +101,13 @@ static void dfss_gpio_0_install(void)
100101

101102
#if (USE_DFSS_GPIO_1)
102103

104+
#define DFSS_GPIO_1_LEN 23
103105
static void gpio_int_cb1(void *param);
104106
static DEV_GPIO gpio_1;
105-
static DEV_GPIO_HANDLER gpio_int_handlers1[8];
107+
static DEV_GPIO_HANDLER gpio_int_handlers1[DFSS_GPIO_1_LEN];
106108
static SS_GPIO_DEV_CONTEXT gpio_context1 = {
107109
AR_IO_GPIO1_SWPORTA_DR,
108-
(DFSS_GPIO_1_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO1_INT_INTR_FLAG,
110+
(DFSS_GPIO_1_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_1_LEN, IO_GPIO1_INT_INTR_FLAG,
109111
0, gpio_int_cb1, gpio_int_handlers1, 0
110112
};
111113

@@ -162,12 +164,13 @@ static void dfss_gpio_1_install(void)
162164

163165
#if (USE_DFSS_GPIO_2)
164166

167+
#define DFSS_GPIO_2_LEN 32
165168
static void gpio_int_cb2(void *param);
166169
static DEV_GPIO gpio_2;
167-
static DEV_GPIO_HANDLER gpio_int_handlers2[8];
170+
static DEV_GPIO_HANDLER gpio_int_handlers2[DFSS_GPIO_2_LEN];
168171
static SS_GPIO_DEV_CONTEXT gpio_context2 = {
169172
AR_IO_GPIO2_SWPORTA_DR,
170-
(DFSS_GPIO_2_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO2_INT_INTR_FLAG,
173+
(DFSS_GPIO_2_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_2_LEN, IO_GPIO2_INT_INTR_FLAG,
171174
0, gpio_int_cb2, gpio_int_handlers2, 0
172175
};
173176

@@ -224,12 +227,13 @@ static void dfss_gpio_2_install(void)
224227

225228
#if (USE_DFSS_GPIO_3)
226229

230+
#define DFSS_GPIO_3_LEN 8
227231
static void gpio_int_cb3(void *param);
228232
static DEV_GPIO gpio_3;
229-
static DEV_GPIO_HANDLER gpio_int_handlers3[8];
233+
static DEV_GPIO_HANDLER gpio_int_handlers3[DFSS_GPIO_3_LEN];
230234
static SS_GPIO_DEV_CONTEXT gpio_context3 = {
231235
AR_IO_GPIO3_SWPORTA_DR,
232-
(DFSS_GPIO_3_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO3_INT_INTR_FLAG,
236+
(DFSS_GPIO_3_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_3_LEN, IO_GPIO3_INT_INTR_FLAG,
233237
0, gpio_int_cb3, gpio_int_handlers3, 0
234238
};
235239

@@ -286,12 +290,13 @@ static void dfss_gpio_3_install(void)
286290

287291
#if (USE_DFSS_GPIO_8B0)
288292

293+
#define DFSS_GPIO_8B0_LEN 8
289294
static void gpio_int_cb4(void *param);
290295
static DEV_GPIO gpio_4;
291-
static DEV_GPIO_HANDLER gpio_int_handlers4[8];
296+
static DEV_GPIO_HANDLER gpio_int_handlers4[DFSS_GPIO_8B0_LEN];
292297
static SS_GPIO_DEV_CONTEXT gpio_context4 = {
293298
AR_IO_GPIO_8B0_SWPORTA_DR,
294-
(DFSS_GPIO_8B0_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO_8B0_INT_INTR_FLAG,
299+
(DFSS_GPIO_8B0_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_8B0_LEN, IO_GPIO_8B0_INT_INTR_FLAG,
295300
0, gpio_int_cb4, gpio_int_handlers4, 0
296301
};
297302

@@ -348,12 +353,13 @@ static void dfss_gpio_4_install(void)
348353

349354
#if USE_DFSS_GPIO_8B1
350355

356+
#define DFSS_GPIO_8B1_LEN 8
351357
static void gpio_int_cb5(void *param);
352358
static DEV_GPIO gpio_5;
353-
static DEV_GPIO_HANDLER gpio_int_handlers5[8];
359+
static DEV_GPIO_HANDLER gpio_int_handlers5[DFSS_GPIO_8B1_LEN];
354360
static SS_GPIO_DEV_CONTEXT gpio_context5 = {
355361
AR_IO_GPIO_8B1_SWPORTA_DR,
356-
(DFSS_GPIO_8B1_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO_8B1_INT_INTR_FLAG,
362+
(DFSS_GPIO_8B1_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_8B1_LEN, IO_GPIO_8B1_INT_INTR_FLAG,
357363
0, gpio_int_cb5, gpio_int_handlers5, 0
358364
};
359365

@@ -410,12 +416,13 @@ static void dfss_gpio_5_install(void)
410416

411417
#if USE_DFSS_GPIO_8B2
412418

419+
#define DFSS_GPIO_8B2_LEN 8
413420
static void gpio_int_cb6(void *param);
414421
static DEV_GPIO gpio_6;
415-
static DEV_GPIO_HANDLER gpio_int_handlers6[8];
422+
static DEV_GPIO_HANDLER gpio_int_handlers6[DFSS_GPIO_8B2_LEN];
416423
static SS_GPIO_DEV_CONTEXT gpio_context6 = {
417424
AR_IO_GPIO_8B2_SWPORTA_DR,
418-
(DFSS_GPIO_8B2_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO_8B2_INT_INTR_FLAG,
425+
(DFSS_GPIO_8B2_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_8B2_LEN, IO_GPIO_8B2_INT_INTR_FLAG,
419426
0, gpio_int_cb6, gpio_int_handlers6, 0
420427
};
421428

@@ -471,12 +478,13 @@ static void dfss_gpio_6_install(void)
471478

472479
#if USE_DFSS_GPIO_8B3
473480

481+
#define DFSS_GPIO_8B3_LEN 8
474482
static void gpio_int_cb7(void *param);
475483
static DEV_GPIO gpio_7;
476-
static DEV_GPIO_HANDLER gpio_int_handlers7[8];
484+
static DEV_GPIO_HANDLER gpio_int_handlers7[DFSS_GPIO_8B3_LEN];
477485
static SS_GPIO_DEV_CONTEXT gpio_context7 = {
478486
AR_IO_GPIO_8B3_SWPORTA_DR,
479-
(DFSS_GPIO_8B3_ID-DFSS_GPIO_BASE_ID), 8, IO_GPIO_8B3_INT_INTR_FLAG,
487+
(DFSS_GPIO_8B3_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_8B3_LEN, IO_GPIO_8B3_INT_INTR_FLAG,
480488
0, gpio_int_cb7, gpio_int_handlers7, 0
481489
};
482490

@@ -532,12 +540,13 @@ static void dfss_gpio_7_install(void)
532540

533541
#if USE_DFSS_GPIO_4B0
534542

543+
#define DFSS_GPIO_4B0_LEN 4
535544
static void gpio_int_cb8(void *param);
536545
static DEV_GPIO gpio_8;
537-
static DEV_GPIO_HANDLER gpio_int_handlers8[4];
546+
static DEV_GPIO_HANDLER gpio_int_handlers8[DFSS_GPIO_4B0_LEN];
538547
static SS_GPIO_DEV_CONTEXT gpio_context8 = {
539548
AR_IO_GPIO_4B0_SWPORTA_DR,
540-
(DFSS_GPIO_4B0_ID-DFSS_GPIO_BASE_ID), 4, IO_GPIO_4B0_INT_INTR_FLAG,
549+
(DFSS_GPIO_4B0_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_4B0_LEN, IO_GPIO_4B0_INT_INTR_FLAG,
541550
0, gpio_int_cb8, gpio_int_handlers8, 0
542551
};
543552

@@ -594,12 +603,13 @@ static void dfss_gpio_8_install(void)
594603

595604
#if USE_DFSS_GPIO_4B1
596605

606+
#define DFSS_GPIO_4B1_LEN 4
597607
static void gpio_int_cb9(void *param);
598608
static DEV_GPIO gpio_9;
599-
static DEV_GPIO_HANDLER gpio_int_handlers9[4];
609+
static DEV_GPIO_HANDLER gpio_int_handlers9[DFSS_GPIO_4B1_LEN];
600610
static SS_GPIO_DEV_CONTEXT gpio_context9 = {
601611
AR_IO_GPIO_4B1_SWPORTA_DR,
602-
(DFSS_GPIO_4B1_ID-DFSS_GPIO_BASE_ID), 4, IO_GPIO_4B1_INT_INTR_FLAG,
612+
(DFSS_GPIO_4B1_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_4B1_LEN, IO_GPIO_4B1_INT_INTR_FLAG,
603613
0, gpio_int_cb9, gpio_int_handlers9, 0
604614
};
605615

@@ -657,12 +667,13 @@ static void dfss_gpio_9_install(void)
657667

658668
#if USE_DFSS_GPIO_4B2
659669

670+
#define DFSS_GPIO_4B2_LEN 4
660671
static void gpio_int_cb10(void *param);
661672
static DEV_GPIO gpio_10;
662-
static DEV_GPIO_HANDLER gpio_int_handlers10[4];
673+
static DEV_GPIO_HANDLER gpio_int_handlers10[DFSS_GPIO_4B2_LEN];
663674
static SS_GPIO_DEV_CONTEXT gpio_context10 = {
664675
AR_IO_GPIO_4B2_SWPORTA_DR,
665-
(DFSS_GPIO_4B2_ID-DFSS_GPIO_BASE_ID), 4, IO_GPIO_4B2_INT_INTR_FLAG,
676+
(DFSS_GPIO_4B2_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_4B2_LEN, IO_GPIO_4B2_INT_INTR_FLAG,
666677
0, gpio_int_cb10, gpio_int_handlers10, 0
667678
};
668679

@@ -718,12 +729,13 @@ static void dfss_gpio_10_install(void)
718729

719730
#if USE_DFSS_GPIO_4B3
720731

732+
#define DFSS_GPIO_4B3_LEN 4
721733
static void gpio_int_cb11(void *param);
722734
static DEV_GPIO gpio_11;
723-
static DEV_GPIO_HANDLER gpio_int_handlers11[4];
735+
static DEV_GPIO_HANDLER gpio_int_handlers11[DFSS_GPIO_4B3_LEN];
724736
static SS_GPIO_DEV_CONTEXT gpio_context11 = {
725737
AR_IO_GPIO_4B3_SWPORTA_DR,
726-
(DFSS_GPIO_4B3_ID-DFSS_GPIO_BASE_ID), 4, IO_GPIO_4B3_INT_INTR_FLAG,
738+
(DFSS_GPIO_4B3_ID-DFSS_GPIO_BASE_ID), DFSS_GPIO_4B3_LEN, IO_GPIO_4B3_INT_INTR_FLAG,
727739
0, gpio_int_cb11, gpio_int_handlers11, 0
728740
};
729741

0 commit comments

Comments
 (0)