25 Aug, 2020

1 commit

  • It has become obvious that switching a number of irqchip drivers
    to being platform drivers without considering the platform was a
    mistake. We have multiple reports of end-point drivers not
    probing because the irqchip driver isn't there yet, breaking
    the expectations of the users.

    This patch reverts:

    920ecb8c35cb ("irqchip/mtk-cirq: Convert to a platform driver")
    f97dbf48ca43 ("irqchip/mtk-sysirq: Convert to a platform driver")
    5be57099d445 ("irqchip/qcom-pdc: Switch to using IRQCHIP_PLATFORM_DRIVER helper macros")
    95bf9305d2e3 ("irqchip/qcom-pdc: Allow QCOM_PDC to be loadable as a permanent module")

    and leave QCOM PDC, MTK sysrq and cirq drivers as built-in, special purpose
    drivers for the time being until we have worked out a better solution.

    Reported-by: Enric Balletbo i Serra
    Reported-by: Frank Wunderlich
    Signed-off-by: Marc Zyngier
    Link: https://lore.kernel.org/r/93debe6a0308b66d3f307af67ba7ec2c@kernel.org

    Marc Zyngier
     

27 Jul, 2020

1 commit


27 Jun, 2020

1 commit

  • This driver may take a regular spinlock when a raw spinlock
    (irq_desc->lock) is already taken which results in the following
    lockdep splat:

    =============================
    [ BUG: Invalid wait context ]
    5.7.0-rc7 #1 Not tainted
    -----------------------------
    swapper/0/0 is trying to lock:
    ffffff800303b798 (&chip_data->lock){....}-{3:3}, at: mtk_sysirq_set_type+0x48/0xc0
    other info that might help us debug this:
    context-{5:5}
    2 locks held by swapper/0/0:
    #0: ffffff800302ee68 (&desc->request_mutex){....}-{4:4}, at: __setup_irq+0xc4/0x8a0
    #1: ffffff800302ecf0 (&irq_desc_lock_class){....}-{2:2}, at: __setup_irq+0xe4/0x8a0
    stack backtrace:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.7.0-rc7 #1
    Hardware name: Pumpkin MT8516 (DT)
    Call trace:
    dump_backtrace+0x0/0x180
    show_stack+0x14/0x20
    dump_stack+0xd0/0x118
    __lock_acquire+0x8c8/0x2270
    lock_acquire+0xf8/0x470
    _raw_spin_lock_irqsave+0x50/0x78
    mtk_sysirq_set_type+0x48/0xc0
    __irq_set_trigger+0x58/0x170
    __setup_irq+0x420/0x8a0
    request_threaded_irq+0xd8/0x190
    timer_of_init+0x1e8/0x2c4
    mtk_gpt_init+0x5c/0x1dc
    timer_probe+0x74/0xf4
    time_init+0x14/0x44
    start_kernel+0x394/0x4f0

    Replace the spinlock_t with raw_spinlock_t to avoid this warning.

    Signed-off-by: Bartosz Golaszewski
    Signed-off-by: Marc Zyngier
    Link: https://lore.kernel.org/r/20200615074445.3579-1-brgl@bgdev.pl

    Bartosz Golaszewski
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of merchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 655 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Kate Stewart
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

23 Aug, 2017

1 commit

  • Now that we have a custom printf format specifier, convert users of
    full_name to use %pOF instead. This is preparation to remove storing
    of the full path string for each node.

    Cc: Thomas Gleixner
    Cc: Jason Cooper
    Cc: Lee Jones
    Cc: Stefan Wahren
    Cc: Florian Fainelli
    Cc: Ray Jui
    Cc: Scott Branden
    Cc: bcm-kernel-feedback-list@broadcom.com
    Cc: Sylvain Lemieux
    Cc: Maxime Coquelin
    Cc: Chen-Yu Tsai
    Cc: Thierry Reding
    Cc: Jonathan Hunter
    Cc: Michal Simek
    Cc: "Sören Brinkmann"
    Cc: linux-rpi-kernel@lists.infradead.org
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-mediatek@lists.infradead.org
    Cc: linux-tegra@vger.kernel.org
    Acked-by: Eric Anholt
    Acked-by: Baruch Siach
    Acked-by: Vladimir Zapolskiy
    Acked-by: Matthias Brugger
    Acked-by: Alexandre Torgue
    Acked-by: Maxime Ripard
    Signed-off-by: Rob Herring
    Signed-off-by: Marc Zyngier

    Rob Herring
     

07 Apr, 2017

2 commits


14 Oct, 2015

2 commits

  • Since we now have a generic data structure to express an
    interrupt specifier, convert all hierarchical irqchips that
    are OF based to use a fwnode_handle as part of their alloc
    and xlate (which becomes translate) callbacks.

    As most of these drivers have dependencies (they exchange IRQ
    specifiers), change them all in a single, massive patch...

    Signed-off-by: Marc Zyngier
    Reviewed-and-tested-by: Hanjun Guo
    Tested-by: Lorenzo Pieralisi
    Cc:
    Cc: Tomasz Nowicki
    Cc: Suravee Suthikulpanit
    Cc: Graeme Gregory
    Cc: Jake Oshins
    Cc: Jiang Liu
    Cc: Jason Cooper
    Cc: Rafael J. Wysocki
    Link: http://lkml.kernel.org/r/1444737105-31573-6-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     
  • The struct irq_domain contains a "struct device_node *" field
    (of_node) that is almost the only link between the irqdomain
    and the device tree infrastructure.

    In order to prepare for the removal of that field, convert all
    users to use irq_domain_get_of_node() instead.

    Signed-off-by: Marc Zyngier
    Reviewed-and-tested-by: Hanjun Guo
    Tested-by: Lorenzo Pieralisi
    Cc:
    Cc: Tomasz Nowicki
    Cc: Suravee Suthikulpanit
    Cc: Graeme Gregory
    Cc: Jake Oshins
    Cc: Jiang Liu
    Cc: Jason Cooper
    Cc: Rafael J. Wysocki
    Link: http://lkml.kernel.org/r/1444737105-31573-2-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

12 Jul, 2015

1 commit

  • The IRQCHIP_DECLARE macro moved to to 'include/linux/irqchip.h', so
    the local irqchip.h became an empty shell, which solely includes
    include/linux/irqchip.h

    Include the global header in all irqchip drivers instead of the local
    header, so we can remove it.

    Signed-off-by: Joel Porquet
    Cc: vgupta@synopsys.com
    Cc: monstr@monstr.eu
    Cc: ralf@linux-mips.org
    Cc: jason@lakedaemon.net
    Link: http://lkml.kernel.org/r/1882096.X39jVG8e0D@joel-zenbook
    Signed-off-by: Thomas Gleixner

    Joel Porquet
     

22 May, 2015

1 commit


05 May, 2015

1 commit

  • The irq_domain_ops are not modified by the driver and the irqdomain core
    code accepts pointer to a const data.

    Signed-off-by: Krzysztof Kozlowski
    Cc: Jason Cooper
    Cc: Kukjin Kim
    Cc: Stephen Warren
    Cc: Lee Jones
    Cc: Matthias Brugger
    Cc: Maxime Ripard
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-rpi-kernel@lists.infradead.org
    Cc: linux-mediatek@lists.infradead.org
    Link: http://lkml.kernel.org/r/1430139264-4362-2-git-send-email-k.kozlowski.k@gmail.com
    Signed-off-by: Thomas Gleixner

    Krzysztof Kozlowski
     

26 Jan, 2015

1 commit

  • Originally mtk-sysirq hardcoded supported irq number to 224. This
    was fine since all SoCs before support the same number of irqs for
    intpol.

    However MT8173 intpol support 32 more irq pins, changes to get
    irq number from register resource size to suppor MT8173 properly.

    Signed-off-by: Yingjoe Chen
    Signed-off-by: Eddie Huang
    Cc:
    Cc: Pawel Moll
    Cc: Mark Rutland
    Cc: Ian Campbell
    Cc: Kumar Gala
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Olof Johansson
    Cc: Robert Richter
    Cc: Mark Brown
    Cc:
    Cc: Sascha Hauer
    Cc:
    Cc:
    Cc: Matthias Brugger
    Cc: Rob Herring
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/1421054073-43468-3-git-send-email-eddie.huang@mediatek.com
    Signed-off-by: Thomas Gleixner

    Yingjoe Chen
     

07 Jan, 2015

1 commit

  • Beniamino noticed a bug that an invalid DT file for the mediatek interrupt
    polarity extension will cause kernel oops.

    The reason is that the interrupt polarity support for mediatek chips
    merely checks for NULL pointer instead of a casted error return
    value in mtk_sysirq_of_init() so any other casted error value passes
    the NULL pointer check and causes a kernel panic when dereferenced.

    Use IS_ERR() and return the error value via PTR_ERR().

    [ jac: took V2 over V3 for diff formatting, hand-added V3 changes,
    tweaked subject line. ]

    Reported-by: Beniamino Galvani
    Signed-off-by: Yingjoe Chen
    Link: https://lkml.kernel.org/r/1418205302-22531-1-git-send-email-yingjoe.chen@mediatek.com
    Signed-off-by: Jason Cooper

    Yingjoe Chen
     

26 Nov, 2014

1 commit