All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai] ipipe bug in gpio/irq for mx6
@ 2016-03-18 10:43 Johann Obermayr
  2016-03-18 11:10 ` Gilles Chanteperdrix
  0 siblings, 1 reply; 6+ messages in thread
From: Johann Obermayr @ 2016-03-18 10:43 UTC (permalink / raw)
  To: xenomai

Hello,

in the the git branch ipipe-3.0-imx6q
in the file arch/arm/plat-mxc/gpio.c

there is follow function.

void __ipipe_mach_enable_irqdesc(struct ipipe_domain *ipd, unsigned irq)
{
     struct irq_desc *desc = irq_to_desc(irq);
     struct irq_data *idata = irq_desc_get_irq_data(desc);
     struct irq_chip *chip = irq_data_get_irq_chip(idata);

     if (chip == &gpio_irq_chip) {
         /* It is a gpio. */
         u32 gpio = irq_to_gpio(irq);
         struct mxc_gpio_port *port = &mxc_gpio_ports[gpio / 32];

         if (ipd != &ipipe_root) {
             port->nonroot_gpios |= (1 << (gpio % 32));
             if (port->nonroot_gpios == (1 << (gpio % 32))) {
                 __ipipe_irqbits[(port->irq / 32)]
                     &= ~(1 << (port->irq % 32));
                 set_irq_prio(port->irq, 1);
             }
         }
     } else
         set_irq_prio(irq, ipd != &ipipe_root);
}

But there is missing  set_irq_prio for the port->irq_high.
to add
                 if (port->irq_high > 0)
                     set_irq_prio(port->irq_high, 1);
is not my problem.

my problem is, that i don't known if  __ipipe_irqbits is handled correct.

regards
   Johann




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-23 11:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-18 10:43 [Xenomai] ipipe bug in gpio/irq for mx6 Johann Obermayr
2016-03-18 11:10 ` Gilles Chanteperdrix
2016-03-18 12:15   ` Johann Obermayr
2016-03-18 12:28     ` Gilles Chanteperdrix
2016-03-23 11:01       ` Johann Obermayr
2016-03-23 11:12         ` Gilles Chanteperdrix

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.