Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 May 2018 20:04:25 +0000 (UTC)
From:      Oleksandr Tymoshenko <gonzo@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r333177 - head/sys/arm/broadcom/bcm2835
Message-ID:  <201805022004.w42K4PMf053662@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: gonzo
Date: Wed May  2 20:04:25 2018
New Revision: 333177
URL: https://svnweb.freebsd.org/changeset/base/333177

Log:
  Unbreak RaspberryPi 2 boot after r332839
  
  r332839 changed number of cells per interrupt for local_intc from 1 to 2
  to pass type of IRQ. Driver expected only 1 cell so after r332839
  all interrupt children of local_intc failed to allocate IRQ resource.
  
  Fix this regression by relaxing check for number of cells in interrupt
  property to be either 1 or 2.
  
  PR:		227904

Modified:
  head/sys/arm/broadcom/bcm2835/bcm2836.c

Modified: head/sys/arm/broadcom/bcm2835/bcm2836.c
==============================================================================
--- head/sys/arm/broadcom/bcm2835/bcm2836.c	Wed May  2 19:36:46 2018	(r333176)
+++ head/sys/arm/broadcom/bcm2835/bcm2836.c	Wed May  2 20:04:25 2018	(r333177)
@@ -454,8 +454,10 @@ bcm_lintc_map_intr(device_t dev, struct intr_map_data 
 		return (ENOTSUP);
 
 	daf = (struct intr_map_data_fdt *)data;
-	if (daf->ncells != 1 || daf->cells[0] >= BCM_LINTC_NIRQS)
+	if (daf->ncells > 2 || daf->cells[0] >= BCM_LINTC_NIRQS)
 		return (EINVAL);
+
+	/* TODO: handle IRQ type here */
 
 	sc = device_get_softc(dev);
 	*isrcp = &sc->bls_isrcs[daf->cells[0]].bli_isrc;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201805022004.w42K4PMf053662>