コード例 #1
0
static void set_default_priorities(void)
{
  unsigned int i;

  for (i = 0; i < ARRAY_SIZE(default_irq_prio); i++)
    {
      uint16_t val;
      uint8_t prio = default_irq_prio[i];

      if (prio > 31)
        {
          prio = 31;
        }

      val = getreg16(IRQ_REG(ILR_IRQ(i)));
      val &= ~(0x1f << 2);
      val |= prio << 2;

      /* Make edge mode default. Hopefully causes less trouble */

      val |= 0x02;

      putreg16(val, IRQ_REG(ILR_IRQ(i)));
    }
}
コード例 #2
0
ファイル: calypso_irq.c プロジェクト: l--putt/nuttx-bb
static void set_default_priorities(void)
{
	unsigned int i;

	for (i = 0; i < ARRAY_SIZE(default_irq_prio); i++) {
		uint16_t val;
		uint8_t prio = default_irq_prio[i];
		if (prio > 31)
			prio = 31;

		val = readw(IRQ_REG(ILR_IRQ(i)));
		val &= ~(0x1f << 2);
		val |= prio << 2;
		writew(val, IRQ_REG(ILR_IRQ(i)));
	}
}
コード例 #3
0
void irq_config(enum irq_nr nr, int fiq, int edge, int8_t prio)
{
	uint16_t val;

	if (prio == -1)
		prio = default_irq_prio[nr];

	if (prio > 31)
		prio = 31;

	val = prio << 2;
	if (edge)
		val |= 0x02;
	if (fiq)
		val |= 0x01;

	writew(val, IRQ_REG(ILR_IRQ(nr)));
}
コード例 #4
0
int up_prioritize_irq(int nr, int prio)
{
  uint16_t val;

  if (prio == -1)
    {
      prio = default_irq_prio[nr];
    }

  if (prio > 31)
    {
      prio = 31;
    }

  val = prio << 2;
  putreg16(val, IRQ_REG(ILR_IRQ(nr)));

  return 0;
}
コード例 #5
0
ファイル: calypso_irq.c プロジェクト: l--putt/nuttx-bb
int up_prioritize_irq(int nr, int prio)
{
	uint16_t val;

	if (prio == -1)
		prio = default_irq_prio[nr];

	if (prio > 31)
		prio = 31;

	val = prio << 2;
/*
	if (edge)
		val |= 0x02;
	if (fiq)
		val |= 0x01;
*/
	writew(val, IRQ_REG(ILR_IRQ(nr)));
	
	return 0; // XXX: what's the return???
}