From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752760AbcHAJyz (ORCPT ); Mon, 1 Aug 2016 05:54:55 -0400 Received: from foss.arm.com ([217.140.101.70]:32804 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752687AbcHAJyk (ORCPT ); Mon, 1 Aug 2016 05:54:40 -0400 From: Marc Zyngier To: Thomas Gleixner , Daniel Lezcano , arm@kernel.org Cc: Mark Rutland , Jon Hunter , Dinh Nguyen , Carlo Caione , Kevin Hilman , Duc Dang , Florian Fainelli , Ray Jui , Scott Branden , Kukjin Kim , Jason Cooper , Andrew Lunn , Gregory Clement , Sebastian Hesselbarth , Masahiro Yamada , Michal Simek , soren.brinkmann@xilinx.com, Tirumalesh Chalamarla , Jan Glauber , "Hou Zhiqiang" , Wenbin Song , Yuan Yao , Liu Gang , Mingkai Hu , Rajesh Bhagat , , , , , Subject: [PATCH v2 0/2] Fix arch timer trigger Date: Mon, 1 Aug 2016 10:54:14 +0100 Message-Id: <1470045256-9032-1-git-send-email-marc.zyngier@arm.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Recent fixes in the IRQ layer (properly propagating the trigger settings in the interrupt controler instead of silently failing) uncovered a number of cases where DTs are describing the timer trigger wrong (edge, while the interrupt is definitely level). The result is a kernel that doesn't boot anymore (forever waiting for an interrupt that can't trigger) or behave erratically (missing interrupts). This very small series addresses the issue in two ways: (1) enforcing level triggered in the driver and spitting out a nastygram so that the user can find out about the issue (2) fix the existing issue by repainting the broken device trees. (1) makes sure that a new kernel can run with an old DT, and (2) addresses the issue properly. Note that the two patches can be applied independently. Tested on APM Mustang, which is one of the broken platforms. Thanks, M. * From v1: - Make GICv3-based platforms use the level triggered setting even if the HW actually precisly describes high or low settings. - Rebased on top of linux/master as of today. Marc Zyngier (2): clocksource/arm_arch_timer: Force per-CPU interrupt to be level-triggered arm64: dts: Fix broken architected timer interrupt trigger arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi | 8 +++---- arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi | 8 +++---- arch/arm64/boot/dts/apm/apm-storm.dtsi | 8 +++---- arch/arm64/boot/dts/broadcom/ns2.dtsi | 8 +++---- arch/arm64/boot/dts/cavium/thunder-88xx.dtsi | 8 +++---- arch/arm64/boot/dts/exynos/exynos7.dtsi | 8 +++---- arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 8 +++---- arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi | 8 +++---- arch/arm64/boot/dts/marvell/armada-ap806.dtsi | 8 +++---- .../boot/dts/socionext/uniphier-ph1-ld20.dtsi | 8 +++---- arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 8 +++---- drivers/clocksource/arm_arch_timer.c | 26 +++++++++++++++++++--- 12 files changed, 67 insertions(+), 47 deletions(-) -- 2.1.4