Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Apr 2017 18:31:33 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r316659 - head/sys/arm/freescale/imx
Message-ID:  <201704091831.v39IVX2D079243@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Sun Apr  9 18:31:33 2017
New Revision: 316659
URL: https://svnweb.freebsd.org/changeset/base/316659

Log:
  Remove some old interrupt handling workaround code from the pre-INTRNG days.
  
  At this point, INTRNG is not going away (the option may go away, but the
  code is not), so we no longer need code to support workarounds that handled
  the lack of INTRNG functionality.

Modified:
  head/sys/arm/freescale/imx/imx6_machdep.c

Modified: head/sys/arm/freescale/imx/imx6_machdep.c
==============================================================================
--- head/sys/arm/freescale/imx/imx6_machdep.c	Sun Apr  9 15:27:04 2017	(r316658)
+++ head/sys/arm/freescale/imx/imx6_machdep.c	Sun Apr  9 18:31:33 2017	(r316659)
@@ -54,49 +54,11 @@ __FBSDID("$FreeBSD$");
 
 #include "platform_if.h"
 
-static uint32_t gpio1_node;
-
 static platform_attach_t imx6_attach;
 static platform_devmap_init_t imx6_devmap_init;
 static platform_late_init_t imx6_late_init;
 static platform_cpu_reset_t imx6_cpu_reset;
 
-#ifndef INTRNG
-/*
- * Work around the linux workaround for imx6 erratum 006687, in which some
- * ethernet interrupts don't go to the GPC and thus won't wake the system from
- * Wait mode. We don't use Wait mode (which halts the GIC, leaving only GPC
- * interrupts able to wake the system), so we don't experience the bug at all.
- * The linux workaround is to reconfigure GPIO1_6 as the ENET interrupt by
- * writing magic values to an undocumented IOMUX register, then letting the gpio
- * interrupt driver notify the ethernet driver.  We'll be able to do all that
- * (even though we don't need to) once the INTRNG project is committed and the
- * imx_gpio driver becomes an interrupt driver.  Until then, this crazy little
- * workaround watches for requests to map an interrupt 6 with the interrupt
- * controller node referring to gpio1, and it substitutes the proper ffec
- * interrupt number.
- */
-static int
-imx6_decode_fdt(uint32_t iparent, uint32_t *intr, int *interrupt,
-    int *trig, int *pol)
-{
-
-	if (fdt32_to_cpu(intr[0]) == 6 && 
-	    OF_node_from_xref(iparent) == gpio1_node) {
-		*interrupt = 150;
-		*trig = INTR_TRIGGER_CONFORM;
-		*pol  = INTR_POLARITY_CONFORM;
-		return (0);
-	}
-	return (gic_decode_fdt(iparent, intr, interrupt, trig, pol));
-}
-
-fdt_pic_decode_t fdt_pic_table[] = {
-	&imx6_decode_fdt,
-	NULL
-};
-#endif
-
 /*
  * Fix FDT data related to interrupts.
  *
@@ -184,10 +146,6 @@ imx6_late_init(platform_t plat)
 	const uint32_t IMX6_WDOG_SR_PHYS = 0x020bc004;
 
 	imx_wdog_init_last_reset(IMX6_WDOG_SR_PHYS);
-
-	/* Cache the gpio1 node handle for imx6_decode_fdt() workaround code. */
-	gpio1_node = OF_node_from_xref(
-	    OF_finddevice("/soc/aips-bus@02000000/gpio@0209c000"));
 }
 
 /*



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