Skip to content

Commit c233398

Browse files
committed
intr/powerpc: remove architecture copy of PIC device
Now that the value is on the event, there is no need for PowerPC to duplicate the value on the powerpc_intr structure.
1 parent 8c20d57 commit c233398

File tree

1 file changed

+31
-33
lines changed

1 file changed

+31
-33
lines changed

sys/powerpc/powerpc/intr_machdep.c

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ struct powerpc_intr {
9191
struct intr_event event;
9292
long *cntp;
9393
void *priv; /* PIC-private data */
94-
device_t pic;
9594
u_int irq;
9695
u_int intline;
9796
u_int vector;
@@ -242,8 +241,8 @@ smp_intr_init(void *dummy __unused)
242241
for (vector = 0; vector < nvectors; vector++) {
243242
i = powerpc_intrs[vector];
244243
if (i != NULL && !CK_SLIST_EMPTY(&i->event.ie_handlers) &&
245-
i->pic == root_pic)
246-
PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv);
244+
i->event.ie_pic == root_pic)
245+
PIC_BIND(i->event.ie_pic, i->intline, i->pi_cpuset, &i->priv);
247246
}
248247

249248
root = device_lookup_by_name("root0");
@@ -300,7 +299,6 @@ intr_lookup(u_int irq)
300299
i->trig = INTR_TRIGGER_CONFORM;
301300
i->pol = INTR_POLARITY_CONFORM;
302301
i->irq = irq;
303-
i->pic = NULL;
304302
i->vector = -1;
305303
i->fwcode = 0;
306304
i->ipi = 0;
@@ -322,7 +320,7 @@ intr_lookup(u_int irq)
322320
}
323321

324322
if (iscan == NULL && i->vector != -1) {
325-
error = intr_event_init(&i->event, i->pic, irq, 0,
323+
error = intr_event_init(&i->event, pic, irq, 0,
326324
"irq%u:", irq);
327325
if (error == 0) {
328326
powerpc_intrs[i->vector] = i;
@@ -361,11 +359,11 @@ powerpc_map_irq(struct powerpc_intr *i)
361359
return (EINVAL);
362360

363361
i->intline = i->irq - p->base;
364-
i->pic = p->dev;
362+
i->event.ie_pic = p->dev;
365363

366364
/* Try a best guess if that failed */
367-
if (i->pic == NULL)
368-
i->pic = root_pic;
365+
if (i->event.ie_pic == NULL)
366+
i->event.ie_pic = root_pic;
369367

370368
return (0);
371369
}
@@ -374,22 +372,22 @@ static void
374372
powerpc_intr_eoi(device_t pic, interrupt_t *i)
375373
{
376374

377-
PIC_EOI(i->pic, i->intline, i->priv);
375+
PIC_EOI(i->event.ie_pic, i->intline, i->priv);
378376
}
379377

380378
static void
381379
powerpc_intr_pre_ithread(device_t pic, interrupt_t *i)
382380
{
383381

384-
PIC_MASK(i->pic, i->intline, i->priv);
385-
PIC_EOI(i->pic, i->intline, i->priv);
382+
PIC_MASK(i->event.ie_pic, i->intline, i->priv);
383+
PIC_EOI(i->event.ie_pic, i->intline, i->priv);
386384
}
387385

388386
static void
389387
powerpc_intr_post_ithread(device_t pic, interrupt_t *i)
390388
{
391389

392-
PIC_UNMASK(i->pic, i->intline, i->priv);
390+
PIC_UNMASK(i->event.ie_pic, i->intline, i->priv);
393391
}
394392

395393
static int
@@ -402,8 +400,8 @@ powerpc_assign_intr_cpu(device_t pic, interrupt_t *i, u_int cpu)
402400
else
403401
CPU_SETOF(cpu, &i->pi_cpuset);
404402

405-
if (!cold && i->pic != NULL && i->pic == root_pic)
406-
PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv);
403+
if (!cold && i->event.ie_pic != NULL && i->event.ie_pic == root_pic)
404+
PIC_BIND(i->event.ie_pic, i->intline, i->pi_cpuset, &i->priv);
407405

408406
return (0);
409407
#else
@@ -562,14 +560,14 @@ powerpc_enable_intr(void)
562560
continue;
563561

564562
if (i->trig == INTR_TRIGGER_INVALID)
565-
PIC_TRANSLATE_CODE(i->pic, i->intline, i->fwcode,
563+
PIC_TRANSLATE_CODE(i->event.ie_pic, i->intline, i->fwcode,
566564
&i->trig, &i->pol);
567565
if (i->trig != INTR_TRIGGER_CONFORM ||
568566
i->pol != INTR_POLARITY_CONFORM)
569-
PIC_CONFIG(i->pic, i->intline, i->trig, i->pol);
567+
PIC_CONFIG(i->event.ie_pic, i->intline, i->trig, i->pol);
570568

571569
if (!CK_SLIST_EMPTY(&i->event.ie_handlers))
572-
PIC_ENABLE(i->pic, i->intline, vector, &i->priv);
570+
PIC_ENABLE(i->event.ie_pic, i->intline, vector, &i->priv);
573571
}
574572

575573
return (0);
@@ -608,18 +606,18 @@ powerpc_setup_intr(const char *name, u_int irq, driver_filter_t filter,
608606

609607
if (!error) {
610608
if (i->trig == INTR_TRIGGER_INVALID)
611-
PIC_TRANSLATE_CODE(i->pic, i->intline,
609+
PIC_TRANSLATE_CODE(i->event.ie_pic, i->intline,
612610
i->fwcode, &i->trig, &i->pol);
613611

614612
if (i->trig != INTR_TRIGGER_CONFORM ||
615613
i->pol != INTR_POLARITY_CONFORM)
616-
PIC_CONFIG(i->pic, i->intline, i->trig, i->pol);
614+
PIC_CONFIG(i->event.ie_pic, i->intline, i->trig, i->pol);
617615

618-
if (i->pic == root_pic)
619-
PIC_BIND(i->pic, i->intline, i->pi_cpuset, &i->priv);
616+
if (i->event.ie_pic == root_pic)
617+
PIC_BIND(i->event.ie_pic, i->intline, i->pi_cpuset, &i->priv);
620618

621619
if (enable)
622-
PIC_ENABLE(i->pic, i->intline, i->vector,
620+
PIC_ENABLE(i->event.ie_pic, i->intline, i->vector,
623621
&i->priv);
624622
}
625623
}
@@ -660,10 +658,10 @@ powerpc_fw_config_intr(int irq, int sense_code)
660658
i->pol = INTR_POLARITY_CONFORM;
661659
i->fwcode = sense_code;
662660

663-
if (!cold && i->pic != NULL) {
664-
PIC_TRANSLATE_CODE(i->pic, i->intline, i->fwcode, &i->trig,
661+
if (!cold && i->event.ie_pic != NULL) {
662+
PIC_TRANSLATE_CODE(i->event.ie_pic, i->intline, i->fwcode, &i->trig,
665663
&i->pol);
666-
PIC_CONFIG(i->pic, i->intline, i->trig, i->pol);
664+
PIC_CONFIG(i->event.ie_pic, i->intline, i->trig, i->pol);
667665
}
668666

669667
return (0);
@@ -681,8 +679,8 @@ powerpc_config_intr(int irq, enum intr_trigger trig, enum intr_polarity pol)
681679
i->trig = trig;
682680
i->pol = pol;
683681

684-
if (!cold && i->pic != NULL)
685-
PIC_CONFIG(i->pic, i->intline, trig, pol);
682+
if (!cold && i->event.ie_pic != NULL)
683+
PIC_CONFIG(i->event.ie_pic, i->intline, trig, pol);
686684

687685
return (0);
688686
}
@@ -706,7 +704,7 @@ powerpc_dispatch_intr(u_int vector, struct trapframe *tf)
706704
* This prevents races in IPI handling.
707705
*/
708706
if (i->ipi)
709-
PIC_EOI(i->pic, i->intline, i->priv);
707+
PIC_EOI(i->event.ie_pic, i->intline, i->priv);
710708

711709
if (intr_event_handle(ie, tf) != 0) {
712710
goto stray;
@@ -723,7 +721,7 @@ powerpc_dispatch_intr(u_int vector, struct trapframe *tf)
723721
}
724722
}
725723
if (i != NULL)
726-
PIC_MASK(i->pic, i->intline, i->priv);
724+
PIC_MASK(i->event.ie_pic, i->intline, i->priv);
727725
}
728726

729727
void
@@ -732,10 +730,10 @@ powerpc_intr_mask(u_int irq)
732730
struct powerpc_intr *i;
733731

734732
i = intr_lookup(irq);
735-
if (i == NULL || i->pic == NULL)
733+
if (i == NULL || i->event.ie_pic == NULL)
736734
return;
737735

738-
PIC_MASK(i->pic, i->intline, i->priv);
736+
PIC_MASK(i->event.ie_pic, i->intline, i->priv);
739737
}
740738

741739
void
@@ -744,8 +742,8 @@ powerpc_intr_unmask(u_int irq)
744742
struct powerpc_intr *i;
745743

746744
i = intr_lookup(irq);
747-
if (i == NULL || i->pic == NULL)
745+
if (i == NULL || i->event.ie_pic == NULL)
748746
return;
749747

750-
PIC_UNMASK(i->pic, i->intline, i->priv);
748+
PIC_UNMASK(i->event.ie_pic, i->intline, i->priv);
751749
}

0 commit comments

Comments
 (0)