15 Aug, 2019

1 commit


03 May, 2019

1 commit


25 Sep, 2018

1 commit

  • iommu-map property is also used by devices with fsl-mc. This
    patch moves the of_pci_map_rid to generic location, so that it
    can be used by other busses too.

    'of_pci_map_rid' is renamed here to 'of_map_rid' and there is no
    functional change done in the API.

    Signed-off-by: Nipun Gupta
    Reviewed-by: Rob Herring
    Reviewed-by: Robin Murphy
    Acked-by: Bjorn Helgaas
    Signed-off-by: Joerg Roedel

    Nipun Gupta
     

08 Jan, 2018

1 commit

  • Convert remaining DT files to use SPDX-License-Identifier tags.

    Cc: Benjamin Herrenschmidt
    Cc: Guennadi Liakhovetski
    Cc: Paul Mackerras
    Cc: Pantelis Antoniou
    Reviewed-by: Frank Rowand
    Reviewed-by: Philippe Ombredanne
    Signed-off-by: Rob Herring

    Rob Herring
     

13 Dec, 2017

1 commit


08 Sep, 2017

1 commit

  • Pull DeviceTree updates from Rob Herring:
    "There's a few orphans in the conversion to %pOF printf specifiers
    included here that no one else picked up.

    Summary:

    - Convert more DT code to use of_property_read_* API.

    - Improve DT overlay support when adding multiple overlays

    - Convert printk's to %pOF format specifiers. Most went via subsystem
    trees, but picked up the remaining orphans

    - Correct unittests to use preferred "okay" for "status" property
    value

    - Add a KASLR seed property

    - Vendor prefixes for Mellanox, Theobroma System, Adaptrum, Moxa

    - Fix modalias buffer handling

    - Clean-up of include paths for building dtbs

    - Add bindings for amc6821, isl1208, tsl2x7x, srf02, and srf10
    devices

    - Add nvmem bindings for MediaTek MT7623 and MT7622 SoC

    - Add compatible string for Allwinner H5 Mali-450 GPU

    - Fix links to old OpenFirmware docs with new mirror on
    devicetree.org

    - Remove status property from binding doc examples"

    * tag 'devicetree-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (45 commits)
    devicetree: Adjust status "ok" -> "okay" under drivers/of/
    dt-bindings: Remove "status" from examples
    dt-bindings: pinctrl: sh-pfc: Use generic node name
    dt-bindings: Add vendor Mellanox
    dt-binding: net/phy: fix interrupts description
    virt: Convert to using %pOF instead of full_name
    macintosh: Convert to using %pOF instead of full_name
    ide: pmac: Convert to using %pOF instead of full_name
    microblaze: Convert to using %pOF instead of full_name
    dt-bindings: usb: musb: Grammar s/the/to/, s/is/are/
    of: Use PLATFORM_DEVID_NONE definition
    of/device: Fix of_device_get_modalias() buffer handling
    of/device: Prevent buffer overflow in of_device_modalias()
    dt-bindings: add amc6821, isl1208 trivial bindings
    dt-bindings: add vendor prefix for Theobroma Systems
    of: search scripts/dtc/include-prefixes path for both CPP and DTC
    of: remove arch/$(SRCARCH)/boot/dts from include search path for CPP
    of: remove drivers/of/testcase-data from include search path for CPP
    of: return of_get_cpu_node from of_cpu_device_node_get if CPUs are not registered
    iio: srf08: add device tree binding for srf02 and srf10
    ...

    Linus Torvalds
     

02 Aug, 2017

1 commit


22 Jul, 2017

1 commit

  • of_irq_to_resource() has recently been fixed to return negative error #'s
    along with 0, however of_irq_to_resource_table() still only regards 0 as
    invalid IRQ -- fix it up.

    Fixes: 7a4228bbff76 ("of: irq: use of_irq_get() in of_irq_to_resource()")
    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Rob Herring

    Sergei Shtylyov
     

21 Jul, 2017

2 commits

  • The DT interrupt parsing code predates of_property_read_u32(), so it has to
    basically open-code it. Using the modern DT API saves several LoCs and also
    adds some prop sanity checks as a bonus...

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Rob Herring

    Sergei Shtylyov
     
  • The "interrupt-controller" property is boolean, i.e. has no value. The DT
    interrupt parsing code predates of_property_read_bool(), so it uses either
    of_get_property() or of_find_property() -- the former isn't quite correct
    for the boolean props (but works somehow). Use the modern boolean prop API
    instead.

    Signed-off-by: Sergei Shtylyov
    Signed-off-by: Rob Herring

    Sergei Shtylyov
     

19 Jul, 2017

1 commit


16 May, 2017

1 commit

  • of_irq_to_resource() currently uses irq_of_parse_and_map() to
    translate a DT interrupt specification into a Linux virtual interrupt
    number. While this works in most cases, irq_of_parse_and_map() doesn't
    properly handle the case where the interrupt controller is not yet
    available (due to deferred probing for example).

    So instead, use of_irq_get(), which is implemented exactly like
    irq_of_parse_and_map(), with the exception that if the interrupt
    controller is not yet available, it returns -EPROBE_DEFER. Obviously,
    we also handle this error and bail out from of_irq_to_resource() when
    of_irq_get() returns an error.

    This allows to avoid silly error messages at boot time caused by
    irq_create_of_mapping() when the interrupt controller is not
    available:

    [ 0.153168] irq: no irq domain found for /ap806/config-space@f0000000/interrupt-controller@3f0100 !
    [ 0.154041] irq: no irq domain found for /cp110-master/config-space@f2000000/interrupt-controller@1e0000 !
    [ 0.154124] irq: no irq domain found for /cp110-master/config-space@f2000000/interrupt-controller@1e0000 !
    [ 0.154207] irq: no irq domain found for /cp110-master/config-space@f2000000/interrupt-controller@1e0000 !
    [ 0.154437] irq: no irq domain found for /cp110-master/config-space@f2000000/interrupt-controller@1e0000 !
    [ 0.154518] irq: no irq domain found for /cp110-master/config-space@f2000000/interrupt-controller@1e0000 !

    Signed-off-by: Thomas Petazzoni
    Signed-off-by: Rob Herring

    Thomas Petazzoni
     

05 May, 2017

1 commit

  • sparse generates the following warnings in drivers/of/:

    ../drivers/of/fdt.c:63:36: warning: cast to restricted __be32
    ../drivers/of/fdt.c:68:33: warning: cast to restricted __be32
    ../drivers/of/irq.c:105:88: warning: incorrect type in initializer (different base types)
    ../drivers/of/irq.c:105:88: expected restricted __be32
    ../drivers/of/irq.c:105:88: got int
    ../drivers/of/irq.c:526:35: warning: incorrect type in assignment (different modifiers)
    ../drivers/of/irq.c:526:35: expected int ( *const [usertype] irq_init_cb )( ... )
    ../drivers/of/irq.c:526:35: got void const *const data
    ../drivers/of/of_reserved_mem.c:200:50: warning: incorrect type in initializer (different modifiers)
    ../drivers/of/of_reserved_mem.c:200:50: expected int ( *[usertype] initfn )( ... )
    ../drivers/of/of_reserved_mem.c:200:50: got void const *const data
    ../drivers/of/resolver.c:95:42: warning: incorrect type in assignment (different base types)
    ../drivers/of/resolver.c:95:42: expected unsigned int [unsigned] [usertype]
    ../drivers/of/resolver.c:95:42: got restricted __be32 [usertype]

    All these are harmless type mismatches fixed by adjusting the types.

    Signed-off-by: Rob Herring

    Rob Herring
     

09 Jan, 2017

1 commit

  • On PowerPC machines some PCI slots might not have level triggered
    interrupts capability (also know as level signaled interrupts),
    leading of_irq_parse_pci() to complain by presenting error messages
    on the kernel log - in this case, the properties "interrupt-map" and
    "interrupt-map-mask" are not present on device's node in the device
    tree.

    This patch introduces a different message for this specific case,
    and also reduces its level from error to warning. Besides, we warn
    (once) that possibly some PCI slots on the system have no level
    triggered interrupts available.
    We changed some error return codes too on function of_irq_parse_raw()
    in order other failure's cases can be presented in a more precise way.

    Before this patch, when an adapter was plugged in a slot without level
    interrupts capabilitiy on PowerPC, we saw a generic error message
    like this:

    [54.239] pci 002d:70:00.0: of_irq_parse_pci() failed with rc=-22

    Now, with this applied, we see the following specific message:

    [16.154] pci 0014:60:00.1: of_irq_parse_pci: no interrupt-map found,
    INTx interrupts not available

    Finally, we standardize the error path in of_irq_parse_raw() by always
    taking the fail path instead of returning directly from the loop.

    Signed-off-by: Guilherme G. Piccoli
    Signed-off-by: Rob Herring

    Guilherme G. Piccoli
     

19 Oct, 2016

1 commit

  • The of_msi_configure routine is only accessible by the built-in
    kernel drivers. Export this function so that modules can use it
    too.

    This function is useful for configuring MSI on child device tree
    nodes on hierarchical objects.

    Acked-by: Rob Herring
    Signed-off-by: Sinan Kaya
    Signed-off-by: Vinod Koul

    Sinan Kaya
     

16 Sep, 2016

1 commit

  • The PCI msi-map code is already doing double-duty translating IDs and
    retrieving MSI parents, which unsurprisingly is the same functionality
    we need for the identically-formatted PCI iommu-map property. Drag the
    core parsing routine up yet another layer into the general OF-PCI code,
    and further generalise it for either kind of lookup in either flavour
    of map property.

    Acked-by: Rob Herring
    Acked-by: Marc Zyngier
    Tested-by: Lorenzo Pieralisi
    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     

10 Aug, 2016

1 commit


19 Jul, 2016

1 commit


25 Jun, 2016

1 commit

  • For interrupt controllers successfully initialised early via device-tree,
    mark these interrupt controllers as populated so we don't unnecessarily
    create a device and populate any platform data later on in the boot
    sequence when we populate all the various platform devices.

    Signed-off-by: Jon Hunter
    Signed-off-by: Rob Herring

    Jon Hunter
     

03 Jun, 2016

1 commit

  • The kernel-doc for the of_irq_get[_byname]() is clearly inadequate in
    describing the return values -- of_irq_get_byname() is documented better
    than of_irq_get() but it still doesn't mention that 0 is returned iff
    irq_create_of_mapping() fails (it doesn't return an error code in this
    case). Document all possible return value variants, making the writing
    of the word "IRQ" consistent, while at it...

    Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
    Fixes: ad69674e73a1 ("of/irq: do irq resolution in platform_get_irq_byname()")
    Signed-off-by: Sergei Shtylyov
    CC: stable@vger.kernel.org
    Signed-off-by: Rob Herring

    Sergei Shtylyov
     

12 Feb, 2016

1 commit

  • The existing msi-map code is fine for shifting the entire RID space
    upwards, but attempting finer-grained remapping reveals a bug. It turns
    out that we are mistakenly treating the msi-base part as an offset, not
    as a new base to remap onto, so things get squiffy when rid-base is
    nonzero. Fix this, and at the same time add a sanity check against
    having msi-map-mask clash with a nonzero rid-base, as that's another
    thing one can easily get wrong.

    CC:
    Signed-off-by: Robin Murphy
    Reviewed-by: Marc Zyngier
    Tested-by: Stuart Yoder
    Acked-by: Mark Rutland
    Acked-by: David Daney
    Signed-off-by: Rob Herring

    Robin Murphy
     

01 Feb, 2016

1 commit

  • Pull IRQ fixes from Ingo Molnar:
    "Mostly irqchip driver fixes, but also an irq core crash fix and a
    build fix"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    irqchip/mxs: Add missing set_handle_irq()
    irqchip/atmel-aic: Fix wrong bit operation for IRQ priority
    irqchip/gic-v3-its: Recompute the number of pages on page size change
    base: Export platform_msi_domain_[alloc,free]_irqs
    of: MSI: Simplify irqdomain lookup
    irqdomain: Allow domain lookup with DOMAIN_BUS_WIRED token
    irqchip: Fix dependencies for archs w/o HAS_IOMEM
    irqchip/s3c24xx: Mark init_eint as __maybe_unused
    genirq: Validate action before dereferencing it in handle_irq_event_percpu()

    Linus Torvalds
     

26 Jan, 2016

1 commit

  • So far, when trying to associate a device with its MSI domain,
    we first lookup the domain using a MSI token, and if this
    doesn't return anything useful, we pick up any domain matching
    the same node.

    This logic is broken for two reasons:
    1) Only the generic MSI code (PCI or platform) sets this token
    to PCI/MSI or platform MSI. So we're guaranteed that if there
    is something to be found, we will find it with the first call.
    2) If we have a convoluted situation where:
    - a single node implements both wired and MSI interrupts
    - MSI support for that HW hasn't been compiled in
    we'll end up using the wired domain for MSIs anyway, and things
    break badly.

    So let's just remove __of_get_msi_domain, and replace it by a direct
    call to irq_find_matching_host, because that's what we really want.

    Signed-off-by: Marc Zyngier
    Acked-by: Rob Herring
    Cc: Greg Kroah-Hartman
    Cc: Frank Rowand
    Cc: Grant Likely
    Cc: Thomas Petazzoni
    Cc: Jiang Liu
    Link: http://lkml.kernel.org/r/1453816347-32720-3-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

15 Jan, 2016

1 commit

  • Pull DeviceTree updates from Rob Herring:

    - Rework and export the changeset API to make it available to users
    other than DT overlays

    - ARM secure devices binding

    - OCTEON USB binding

    - Clean-up of various SRAM binding docs

    - Various other binding doc updates

    * tag 'devicetree-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (21 commits)
    drivers/of: Export OF changeset functions
    Fix documentation for adp1653 DT
    ARM: psci: Fix indentation in DT bindings
    of/platform: export of_default_bus_match_table
    of/unittest: Show broken behaviour in the platform bus
    of: fix declaration of of_io_request_and_map
    of/address: replace printk(KERN_ERR ...) with pr_err(...)
    of/irq: optimize device node matching loop in of_irq_init()
    dt-bindings: tda998x: Document the required 'port' node.
    net/macb: bindings doc: Merge cdns-emac to macb
    dt-bindings: Misc fix for the ATH79 DDR controllers
    dt-bindings: Misc fix for the ATH79 MISC interrupt controllers
    Documentation: dt: Add bindings for Secure-only devices
    dt-bindings: ARM: add arm,cortex-a72 compatible string
    ASoC: Atmel: ClassD: add GCK's parent clock in DT binding
    DT: add Olimex to vendor prefixes
    Documentation: fsl-quadspi: Add fsl,ls1021-qspi compatible string
    Documentation/devicetree: document OCTEON USB bindings
    usb: misc: usb3503: Describe better how to bind clock to the hub
    dt-bindings: Consolidate SRAM bindings from all vendors
    ...

    Linus Torvalds
     

10 Dec, 2015

1 commit

  • Currently, of_irq_init() iterates over interrupt controller nodes
    with for_each_matching_node(), and then gets each init function with
    of_match_node() later.

    This routine can be optimized with for_each_matching_node_and_match().
    It allows to get the interrupt controller node and its init function
    at the same time, saving __of_match_node() callings.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Rob Herring

    Masahiro Yamada
     

09 Dec, 2015

1 commit

  • of_irq_find_parent was made static since it had no users outside of
    of_irq.c. Export it again since we are going to use it again.

    Signed-off-by: Carlo Caione
    [robh: move of_irq_find_parent to correct ifdef section]
    Signed-off-by: Rob Herring

    Carlo Caione
     

07 Nov, 2015

1 commit

  • Pull DeviceTree updates from Rob Herring:
    "A fairly large (by DT standards) pull request this time with the
    majority being some overdue moving DT binding docs around to
    consolidate similar bindings.

    - DT binding doc consolidation moving similar bindings to common
    locations. The majority of these are display related which were
    scattered in video/, fb/, drm/, gpu/, and panel/ directories.

    - Add new config option, CONFIG_OF_ALL_DTBS, to enable building all
    dtbs in the tree for most arches with dts files (except powerpc for
    now).

    - OF_IRQ=n fixes for user enabled CONFIG_OF.

    - of_node_put ref counting fixes from Julia Lawall.

    - Common DT binding for wakeup-source and deprecation of all similar
    bindings.

    - DT binding for PXA LCD controller.

    - Allow ignoring failed PCI resource translations in order to ignore
    64-bit addresses on non-LPAE 32-bit kernels.

    - Support setting the NUMA node from DT instead of only from parent
    device.

    - Couple of earlycon DT parsing fixes for address and options"

    * tag 'devicetree-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (45 commits)
    MAINTAINERS: update DT binding doc locations
    devicetree: add Sigma Designs vendor prefix
    of: simplify arch_find_n_match_cpu_physical_id() function
    Documentation: arm: Fixed typo in socfpga fpga mgr example
    Documentation: devicetree: fix reference to legacy wakeup properties
    Documentation: devicetree: standardize/consolidate on "wakeup-source" property
    drivers: of: removing assignment of 0 to static variable
    xtensa: enable building of all dtbs
    mips: enable building of all dtbs
    metag: enable building of all dtbs
    metag: use common make variables for dtb builds
    h8300: enable building of all dtbs
    arm64: enable building of all dtbs
    arm: enable building of all dtbs
    arc: enable building of all dtbs
    arc: use common make variables for dtb builds
    of: add config option to enable building of all dtbs
    of/fdt: fix error checking for earlycon address
    of/overlay: add missing of_node_put
    of/platform: add missing of_node_put
    ...

    Linus Torvalds
     

22 Oct, 2015

1 commit

  • for_each_matching_node performs an of_node_get on each iteration, so
    a break out of the loop requires an of_node_put.

    A simplified version of the semantic patch that fixes this problem is as
    follows (http://coccinelle.lip6.fr):

    //
    @@
    local idexpression n;
    expression e;
    identifier l;
    @@

    for_each_matching_node(n,...) {
    ...
    (
    of_node_put(n);
    |
    e = n
    |
    + of_node_put(n);
    ? goto l;
    )
    ...
    }
    ...
    l: ... when != n
    //

    Besides the issue found by the semantic patch, this code also stores the
    device_node value in a list, which requires an of_node_get, and then cleans
    up the list on exit from the function, which requires an of_node_put.

    Signed-off-by: Julia Lawall
    Signed-off-by: Rob Herring

    Julia Lawall
     

16 Oct, 2015

5 commits

  • While msi-parent is used to point to the MSI controller that
    works for all the devices behind a root complex, it doesn't
    allow configurations where each individual device can be routed
    to a separate MSI controller.

    The msi-map property provides this flexibility (and much more),
    so let's add a utility function that parses it, and return the
    corresponding MSI domain.

    Acked-by: Rob Herring
    Signed-off-by: Marc Zyngier

    Marc Zyngier
     
  • The msi-map property is also used to identify the MSI controller
    as a form of grown-up msi-parent property.

    Looking it up is complicated enough, and since of_msi_map_rid
    already implements this, let's turn it into an internal utility
    function. We'll put that to good use later on.

    Acked-by: Rob Herring
    Signed-off-by: Marc Zyngier

    Marc Zyngier
     
  • Now that we have a function that implements the complexity of the
    "msi-parent" property parsing, switch to that.

    Acked-by: Rob Herring
    Signed-off-by: Marc Zyngier

    Marc Zyngier
     
  • Since 126b16e2ad98 ("Docs: dt: add generic MSI bindings"),
    the definition of "msi-parent" has evolved, while maintaining
    some degree of compatibility. It can now express multiple MSI
    controllers as parents, as well as some sideband data being
    communicated to the controller.

    This patch adds the parsing of the property, iterating over
    the multiple parents until a suitable irqdomain is found.
    It can also fallback to the original parsing if the old
    binding is detected.

    This support code gets used in the subsequent patches.

    Suggested-by: Robin Murphy
    Acked-by: Rob Herring
    Signed-off-by: Marc Zyngier

    Marc Zyngier
     
  • The device tree property "msi-map" specifies how to create the PCI
    requester id used in some MSI controllers. Add a new function
    of_msi_map_rid() that finds the msi-map property and applies its
    translation to a given requester id.

    Reviewed-by: Marc Zyngier
    Acked-by: Rob Herring
    Signed-off-by: David Daney
    Signed-off-by: Marc Zyngier

    David Daney
     

14 Oct, 2015

1 commit

  • of_irq_find_parent has no users outside of of_irq.c, so it does not make
    sense to expose it in of_irq.h. Therefore remove the prototype and dummy
    implmeentation and make the function static instead.

    Signed-off-by: Jonas Gorski
    Signed-off-by: Rob Herring

    Jonas Gorski
     

09 Sep, 2015

1 commit

  • Pull i2c updates from Wolfram Sang:
    "Features:

    - new drivers: Renesas EMEV2, register based MUX, NXP LPC2xxx
    - core: scans DT and assigns wakeup interrupts. no driver changes needed.
    - core: some refcouting issues fixed and better API for that
    - core: new helper function for best effort block read emulation
    - slave framework: proper DT bindings and userspace instantiation
    - some bigger work for xiic, pxa, omap drivers

    .. and quite a number of smaller driver fixes, cleanups, improvements"

    * 'i2c/for-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (65 commits)
    i2c: mux: reg Change ioread endianness for readback
    i2c: mux: reg: fix compilation warnings
    i2c: mux: reg: simplify register size checking
    i2c: muxes: fix leaked i2c adapter device node references
    i2c: allow specifying separate wakeup interrupt in device tree
    of/irq: export of_get_irq_byname()
    i2c: xgene-slimpro: dma_mapping_error() doesn't return an error code
    i2c: Replace I2C_CROS_EC_TUNNEL dependency
    eeprom: at24: use i2c_smbus_read_i2c_block_data_or_emulated
    i2c: core: Add support for best effort block read emulation
    i2c: lpc2k: add driver
    i2c: mux: Add register-based mux i2c-mux-reg
    i2c: dt: describe generic bindings
    i2c: slave: print warning if slave flag not set
    i2c: support 10 bit and slave addresses in sysfs 'new_device'
    i2c: take address space into account when checking for used addresses
    i2c: apply DT flags when probing
    i2c: make address check indpendent from client struct
    i2c: rename address check functions
    i2c: apply address offset for slaves, too
    ...

    Linus Torvalds
     

27 Aug, 2015

1 commit

  • Similarly to of_get_irq(), let's export of_irq_get_byname(), so if a bus core
    can be compiled as a module (such as I2C) it can have access to the symbol.

    Reported-by: Stephen Rothwell
    Reported-by: kbuild test robot
    Signed-off-by: Dmitry Torokhov
    Acked-by: Rob Herring
    Signed-off-by: Wolfram Sang

    Dmitry Torokhov
     

30 Jul, 2015

1 commit

  • As for PCI, we're able to populate the msi_domain field at probe time,
    provided that the device tree has an "msi-parent" property.

    Signed-off-by: Marc Zyngier
    Cc:
    Cc: Yijing Wang
    Cc: Ma Jun
    Cc: Lorenzo Pieralisi
    Cc: Duc Dang
    Cc: Hanjun Guo
    Cc: Bjorn Helgaas
    Cc: Jiang Liu
    Cc: Jason Cooper
    Link: http://lkml.kernel.org/r/1438091186-10244-9-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

01 Jul, 2015

1 commit

  • Now CONFIG_OF can be enabled on sh:

    drivers/of/irq.c:472:8: error: redefinition of 'struct intc_desc'
    include/linux/sh_intc.h:109:8: note: originally defined here

    As "intc_desc" is used all over the place in sh platform code, while
    drivers/of/irq.c has a local definition used in a single function,
    rename the latter by prefixing it with "of_".

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Grant Likely

    Geert Uytterhoeven
     

30 Jun, 2015

1 commit

  • of_irq_parse_raw() needs to return the correct interrupt controller
    node when an interrupt-map property doesn't exist.

    It allows of_irq_parse_raw() to return the node pointer of the interrupt
    controller, rather than the parent bus. This allows ics_rtas_host_match()
    to detect that the controller is a legacy 8259 and avoid using xics.
    This avoids an RTAS assertion/crash during early kernel bootstrapping.

    Signed-off-by: Jeremy Linton
    Reviewed-by: Benjamin Herrenschmidt
    Signed-off-by: Grant Likely

    Jeremy Linton
     

19 Mar, 2015

1 commit

  • The error code paths that require cleanup use a goto to jump to the
    cleanup code and return an error code. However, the error code variable
    res, which is initialized to -EINVAL when declared, is then overwritten
    with the return value of of_parse_phandle_with_args(), and reused as the
    return code from of_irq_parse_one(). This leads to an undetermined error
    being returned instead of the expected -EINVAL value. Fix it.

    Signed-off-by: Laurent Pinchart
    Cc: stable@vger.kernel.org # 3.13+
    Signed-off-by: Rob Herring

    Laurent Pinchart