1. 09 7月, 2019 1 次提交
  2. 08 9月, 2018 1 次提交
  3. 02 9月, 2018 1 次提交
    • L
      of/platform: initialise AMBA default DMA masks · 8c89ef7b
      Linus Walleij 提交于
      This addresses a v4.19-rc1 regression in the PL111 DRM driver in
      drivers/gpu/pl111/*
      
      The driver uses the CMA KMS helpers and will thus at some point call
      down to dma_alloc_attrs() to allocate a chunk of contigous DMA memory
      for the framebuffer.
      
      It appears that in v4.18, it was OK that this (and other DMA mastering
      AMBA devices) left dev->coherent_dma_mask blank (zero).
      
      In v4.19-rc1 the WARN_ON_ONCE(dev && !dev->coherent_dma_mask) in
      dma_alloc_attrs() in include/linux/dma-mapping.h is triggered.  The
      allocation later fails when get_coherent_dma_mask() is called from
      __dma_alloc() and __dma_alloc() returns NULL:
      
      drm-clcd-pl111 dev:20: coherent DMA mask is unset
      drm-clcd-pl111 dev:20: [drm:drm_fb_helper_fbdev_setup] *ERROR*
       	       	        Failed to set fbdev configuration
      
      It turns out that in commit 4d8bde88 ("OF: Don't set default
      coherent DMA mask") the OF core stops setting the default DMA mask on
      new devices, especially those lines of the patch:
      
      - if (!dev->coherent_dma_mask)
      -               dev->coherent_dma_mask = DMA_BIT_MASK(32);
      
      Robin Murphy solved a similar problem in a5516219 ("of/platform:
      Initialise default DMA masks") by simply assigning dev.coherent_dma_mask
      and the dev.dma_mask to point to the same when creating devices from the
      device tree, and introducing the same code into the code path creating
      AMBA/PrimeCell devices solved my problem, graphics now come up.
      
      The code simply assumes that the device can access all of the system
      memory by setting the coherent DMA mask to 0xffffffff when creating a
      device from the device tree, which is crude, but seems to be what kernel
      v4.18 assumed.
      
      The AMBA PrimeCells do not differ between coherent and streaming DMA so
      we can just assign the same to any DMA mask.
      
      Possibly drivers should augment their coherent DMA mask in accordance
      with "dma-ranges" from the device tree if more finegranular masking is
      needed.
      Reported-by: NRussell King <linux@armlinux.org.uk>
      Fixes: 4d8bde88 ("OF: Don't set default coherent DMA mask")
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      8c89ef7b
  4. 28 7月, 2018 1 次提交
    • R
      of/platform: Initialise default DMA masks · a5516219
      Robin Murphy 提交于
      When of_dma_configure() was first born in 591c1ee4 ("of: configure
      the platform device dma parameters"), everything DMA-related was
      factored out of of_platform_device_create_pdata() as seemed appropriate
      at the time. However, now that of_dma_configure() has grown into the
      generic handler for processing DMA-related properties from DT for all
      kinds of devices, it is no longer an appropriate place to be doing
      OF-platform-specific business. Since there are still plenty of platform
      drivers not setting their own masks and depending on the bus default,
      let's reinstate that inialisation in the OF-platform code itself, and
      restore the long-standing status quo from 0589342c ("of: set
      dma_mask to point to coherent_dma_mask")
      Signed-off-by: NRobin Murphy <robin.murphy@arm.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      a5516219
  5. 13 6月, 2018 1 次提交
    • K
      treewide: kzalloc() -> kcalloc() · 6396bb22
      Kees Cook 提交于
      The kzalloc() function has a 2-factor argument form, kcalloc(). This
      patch replaces cases of:
      
              kzalloc(a * b, gfp)
      
      with:
              kcalloc(a * b, gfp)
      
      as well as handling cases of:
      
              kzalloc(a * b * c, gfp)
      
      with:
      
              kzalloc(array3_size(a, b, c), gfp)
      
      as it's slightly less ugly than:
      
              kzalloc_array(array_size(a, b), c, gfp)
      
      This does, however, attempt to ignore constant size factors like:
      
              kzalloc(4 * 1024, gfp)
      
      though any constants defined via macros get caught up in the conversion.
      
      Any factors with a sizeof() of "unsigned char", "char", and "u8" were
      dropped, since they're redundant.
      
      The Coccinelle script used for this was:
      
      // Fix redundant parens around sizeof().
      @@
      type TYPE;
      expression THING, E;
      @@
      
      (
        kzalloc(
      -	(sizeof(TYPE)) * E
      +	sizeof(TYPE) * E
        , ...)
      |
        kzalloc(
      -	(sizeof(THING)) * E
      +	sizeof(THING) * E
        , ...)
      )
      
      // Drop single-byte sizes and redundant parens.
      @@
      expression COUNT;
      typedef u8;
      typedef __u8;
      @@
      
      (
        kzalloc(
      -	sizeof(u8) * (COUNT)
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(__u8) * (COUNT)
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(char) * (COUNT)
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(unsigned char) * (COUNT)
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(u8) * COUNT
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(__u8) * COUNT
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(char) * COUNT
      +	COUNT
        , ...)
      |
        kzalloc(
      -	sizeof(unsigned char) * COUNT
      +	COUNT
        , ...)
      )
      
      // 2-factor product with sizeof(type/expression) and identifier or constant.
      @@
      type TYPE;
      expression THING;
      identifier COUNT_ID;
      constant COUNT_CONST;
      @@
      
      (
      - kzalloc
      + kcalloc
        (
      -	sizeof(TYPE) * (COUNT_ID)
      +	COUNT_ID, sizeof(TYPE)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(TYPE) * COUNT_ID
      +	COUNT_ID, sizeof(TYPE)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(TYPE) * (COUNT_CONST)
      +	COUNT_CONST, sizeof(TYPE)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(TYPE) * COUNT_CONST
      +	COUNT_CONST, sizeof(TYPE)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(THING) * (COUNT_ID)
      +	COUNT_ID, sizeof(THING)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(THING) * COUNT_ID
      +	COUNT_ID, sizeof(THING)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(THING) * (COUNT_CONST)
      +	COUNT_CONST, sizeof(THING)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(THING) * COUNT_CONST
      +	COUNT_CONST, sizeof(THING)
        , ...)
      )
      
      // 2-factor product, only identifiers.
      @@
      identifier SIZE, COUNT;
      @@
      
      - kzalloc
      + kcalloc
        (
      -	SIZE * COUNT
      +	COUNT, SIZE
        , ...)
      
      // 3-factor product with 1 sizeof(type) or sizeof(expression), with
      // redundant parens removed.
      @@
      expression THING;
      identifier STRIDE, COUNT;
      type TYPE;
      @@
      
      (
        kzalloc(
      -	sizeof(TYPE) * (COUNT) * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        kzalloc(
      -	sizeof(TYPE) * (COUNT) * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        kzalloc(
      -	sizeof(TYPE) * COUNT * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        kzalloc(
      -	sizeof(TYPE) * COUNT * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(TYPE))
        , ...)
      |
        kzalloc(
      -	sizeof(THING) * (COUNT) * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      |
        kzalloc(
      -	sizeof(THING) * (COUNT) * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      |
        kzalloc(
      -	sizeof(THING) * COUNT * (STRIDE)
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      |
        kzalloc(
      -	sizeof(THING) * COUNT * STRIDE
      +	array3_size(COUNT, STRIDE, sizeof(THING))
        , ...)
      )
      
      // 3-factor product with 2 sizeof(variable), with redundant parens removed.
      @@
      expression THING1, THING2;
      identifier COUNT;
      type TYPE1, TYPE2;
      @@
      
      (
        kzalloc(
      -	sizeof(TYPE1) * sizeof(TYPE2) * COUNT
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
        , ...)
      |
        kzalloc(
      -	sizeof(TYPE1) * sizeof(THING2) * (COUNT)
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(TYPE2))
        , ...)
      |
        kzalloc(
      -	sizeof(THING1) * sizeof(THING2) * COUNT
      +	array3_size(COUNT, sizeof(THING1), sizeof(THING2))
        , ...)
      |
        kzalloc(
      -	sizeof(THING1) * sizeof(THING2) * (COUNT)
      +	array3_size(COUNT, sizeof(THING1), sizeof(THING2))
        , ...)
      |
        kzalloc(
      -	sizeof(TYPE1) * sizeof(THING2) * COUNT
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
        , ...)
      |
        kzalloc(
      -	sizeof(TYPE1) * sizeof(THING2) * (COUNT)
      +	array3_size(COUNT, sizeof(TYPE1), sizeof(THING2))
        , ...)
      )
      
      // 3-factor product, only identifiers, with redundant parens removed.
      @@
      identifier STRIDE, SIZE, COUNT;
      @@
      
      (
        kzalloc(
      -	(COUNT) * STRIDE * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	COUNT * (STRIDE) * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	COUNT * STRIDE * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	(COUNT) * (STRIDE) * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	COUNT * (STRIDE) * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	(COUNT) * STRIDE * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	(COUNT) * (STRIDE) * (SIZE)
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      |
        kzalloc(
      -	COUNT * STRIDE * SIZE
      +	array3_size(COUNT, STRIDE, SIZE)
        , ...)
      )
      
      // Any remaining multi-factor products, first at least 3-factor products,
      // when they're not all constants...
      @@
      expression E1, E2, E3;
      constant C1, C2, C3;
      @@
      
      (
        kzalloc(C1 * C2 * C3, ...)
      |
        kzalloc(
      -	(E1) * E2 * E3
      +	array3_size(E1, E2, E3)
        , ...)
      |
        kzalloc(
      -	(E1) * (E2) * E3
      +	array3_size(E1, E2, E3)
        , ...)
      |
        kzalloc(
      -	(E1) * (E2) * (E3)
      +	array3_size(E1, E2, E3)
        , ...)
      |
        kzalloc(
      -	E1 * E2 * E3
      +	array3_size(E1, E2, E3)
        , ...)
      )
      
      // And then all remaining 2 factors products when they're not all constants,
      // keeping sizeof() as the second factor argument.
      @@
      expression THING, E1, E2;
      type TYPE;
      constant C1, C2, C3;
      @@
      
      (
        kzalloc(sizeof(THING) * C2, ...)
      |
        kzalloc(sizeof(TYPE) * C2, ...)
      |
        kzalloc(C1 * C2 * C3, ...)
      |
        kzalloc(C1 * C2, ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(TYPE) * (E2)
      +	E2, sizeof(TYPE)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(TYPE) * E2
      +	E2, sizeof(TYPE)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(THING) * (E2)
      +	E2, sizeof(THING)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	sizeof(THING) * E2
      +	E2, sizeof(THING)
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	(E1) * E2
      +	E1, E2
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	(E1) * (E2)
      +	E1, E2
        , ...)
      |
      - kzalloc
      + kcalloc
        (
      -	E1 * E2
      +	E1, E2
        , ...)
      )
      Signed-off-by: NKees Cook <keescook@chromium.org>
      6396bb22
  6. 04 6月, 2018 1 次提交
    • S
      of: platform: stop accessing invalid dev in of_platform_device_destroy · 522811e9
      Srinivas Kandagatla 提交于
      Immediately after the platform_device_unregister() the device will be
      cleaned up. Accessing the freed pointer immediately after that will
      crash the system.
      
      Found this bug when kernel is built with CONFIG_PAGE_POISONING and testing
      loading/unloading audio drivers in a loop on Qcom platforms.
      
      Fix this by moving of_node_clear_flag() just before the unregister calls.
      
      Below is the crash trace:
      
      Unable to handle kernel paging request at virtual address 6b6b6b6b6b6c03
      Mem abort info:
        ESR = 0x96000021
        Exception class = DABT (current EL), IL = 32 bits
        SET = 0, FnV = 0
        EA = 0, S1PTW = 0
      Data abort info:
        ISV = 0, ISS = 0x00000021
        CM = 0, WnR = 0
      [006b6b6b6b6b6c03] address between user and kernel address ranges
      Internal error: Oops: 96000021 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 2 PID: 1784 Comm: sh Tainted: G        W         4.17.0-rc7-02230-ge3a63a7ef641-dirty #204
      Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
      pstate: 80000005 (Nzcv daif -PAN -UAO)
      pc : clear_bit+0x18/0x2c
      lr : of_platform_device_destroy+0x64/0xb8
      sp : ffff00000c9c3930
      x29: ffff00000c9c3930 x28: ffff80003d39b200
      x27: ffff000008bb1000 x26: 0000000000000040
      x25: 0000000000000124 x24: ffff80003a9a3080
      x23: 0000000000000060 x22: ffff00000939f518
      x21: ffff80003aa79e98 x20: ffff80003aa3dae0
      x19: ffff80003aa3c890 x18: ffff800009feb794
      x17: 0000000000000000 x16: 0000000000000000
      x15: ffff800009feb790 x14: 0000000000000000
      x13: ffff80003a058778 x12: ffff80003a058728
      x11: ffff80003a058750 x10: 0000000000000000
      x9 : 0000000000000006 x8 : ffff80003a825988
      x7 : bbbbbbbbbbbbbbbb x6 : 0000000000000001
      x5 : 0000000000000000 x4 : 0000000000000001
      x3 : 0000000000000008 x2 : 0000000000000001
      x1 : 6b6b6b6b6b6b6c03 x0 : 0000000000000000
      Process sh (pid: 1784, stack limit = 0x        (ptrval))
      Call trace:
       clear_bit+0x18/0x2c
       q6afe_remove+0x20/0x38
       apr_device_remove+0x30/0x70
       device_release_driver_internal+0x170/0x208
       device_release_driver+0x14/0x20
       bus_remove_device+0xcc/0x150
       device_del+0x10c/0x310
       device_unregister+0x1c/0x70
       apr_remove_device+0xc/0x18
       device_for_each_child+0x50/0x80
       apr_remove+0x18/0x20
       rpmsg_dev_remove+0x38/0x68
       device_release_driver_internal+0x170/0x208
       device_release_driver+0x14/0x20
       bus_remove_device+0xcc/0x150
       device_del+0x10c/0x310
       device_unregister+0x1c/0x70
       qcom_smd_remove_device+0xc/0x18
       device_for_each_child+0x50/0x80
       qcom_smd_unregister_edge+0x3c/0x70
       smd_subdev_remove+0x18/0x28
       rproc_stop+0x48/0xd8
       rproc_shutdown+0x60/0xe8
       state_store+0xbc/0xf8
       dev_attr_store+0x18/0x28
       sysfs_kf_write+0x3c/0x50
       kernfs_fop_write+0x118/0x1e0
       __vfs_write+0x18/0x110
       vfs_write+0xa4/0x1a8
       ksys_write+0x48/0xb0
       sys_write+0xc/0x18
       el0_svc_naked+0x30/0x34
      Code: d2800022 8b400c21 f9800031 9ac32043 (c85f7c22)
      ---[ end trace 32020935775616a2 ]---
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: NRob Herring <robh@kernel.org>
      522811e9
  7. 26 5月, 2018 1 次提交
  8. 24 4月, 2018 1 次提交
  9. 23 1月, 2018 1 次提交
  10. 08 1月, 2018 1 次提交
  11. 05 1月, 2018 1 次提交
  12. 22 10月, 2017 2 次提交
  13. 25 8月, 2017 1 次提交
  14. 19 7月, 2017 1 次提交
  15. 23 6月, 2017 1 次提交
  16. 23 5月, 2017 1 次提交
  17. 20 4月, 2017 2 次提交
  18. 28 2月, 2017 1 次提交
  19. 09 2月, 2017 1 次提交
  20. 15 11月, 2016 2 次提交
  21. 06 10月, 2016 1 次提交
    • P
      of/platform: Probe "isa" busses by default · ecd76ede
      Paul Burton 提交于
      Since commit 44a7185c ("of/platform: Add common method to populate
      default bus") platforms calling of_platform_bus_probe from an initcall
      is either a rather unsafe race with of_platform_default_populate_init or
      a no-op. The MIPS Malta board needs to probe devices under an ISA bus,
      which we do support in the of_busses array but until now haven't
      included in of_default_bus_match_table.
      
      Add an "isa" entry to of_default_bus_match_table such that we can just
      accept use of of_platform_default_populate_init & remove the
      Malta-specific match table in a later patch.
      Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Cc: linux-mips@linux-mips.org
      Cc: devicetree@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      Patchwork: https://patchwork.linux-mips.org/patch/14275/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      ecd76ede
  22. 15 9月, 2016 1 次提交
    • R
      of/platform: Initialise dev->fwnode appropriately · f94277af
      Robin Murphy 提交于
      Whilst we're some of the way towards a universal firmware property
      interface, drivers which deal with both OF and ACPI probing end up
      having to do things like this:
      
          dev->of_node ? &dev->of_node->fwnode : dev->fwnode
      
      This seems unnecessary, when the OF code could instead simply fill in
      the device's fwnode when binding the of_node, and let the drivers use
      dev->fwnode either way. Let's give it a go and see what falls out.
      Signed-off-by: NRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      f94277af
  23. 13 8月, 2016 1 次提交
    • K
      of/platform: disable the of_platform_default_populate_init() for all the ppc boards · fc520f8b
      Kevin Hao 提交于
      With the commit 44a7185c ("of/platform: Add common method to
      populate default bus"), a default function is introduced to populate
      the default bus and this function is invoked at the arch_initcall_sync
      level. But a lot of ppc boards use machine_device_initcall() to
      populate the default bus. This means that the default populate function
      has higher priority and would override the arch specific population of
      the bus. The side effect is that some arch specific bus are not probed,
      then cause various malfunction due to the miss of some devices. Since
      it is very possible to introduce bugs if we simply change the initcall
      level for all these boards(about 30+). This just disable this default
      function for all the ppc boards.
      Signed-off-by: NKevin Hao <haokexin@gmail.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      fc520f8b
  24. 06 8月, 2016 1 次提交
  25. 19 7月, 2016 1 次提交
  26. 24 6月, 2016 2 次提交
    • K
      Revert "of/platform: export of_default_bus_match_table" · e1bcbee6
      Kefeng Wang 提交于
      This reverts commit b80443c2.
      
      After covering to use helper of_platform_default_populate() to populate
      the default bus, no need to export of_default_bus_match_table anymore.
      Reviewed-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Signed-off-by: NKefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      e1bcbee6
    • K
      of/platform: Add common method to populate default bus · 44a7185c
      Kefeng Wang 提交于
      The arch code calls of_platform_populate() with default match table
      when it wants to populate default bus.
      
      This patch introduce a new of_platform_default_populate_init() and make it
      arch_initcall_sync(it should be later than some iommu configration, eg,
      of_iommu_init() and swiotlb_late_init in arm64), then we can finish above
      job in common method.
      
      In order to avoid the default bus being populated twice, simply checking
      the flag of bus node whether has be set OF_POPULATED_BUS or not.
      
      After that, we can safely remove the caller in arch code.
      
      Btw, add debug print in of_platform_populate(), and use __func__ to
      print function's name of of_platform_bus_create().
      
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Frank Rowand <frowand.list@gmail.com>
      Cc: Grant Likely <grant.likely@linaro.org>
      Signed-off-by: NKefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      44a7185c
  27. 15 4月, 2016 1 次提交
    • T
      of/platform: Allow secondary compatible match in of_dev_lookup · fc5cf80a
      Tony Lindgren 提交于
      We currently try to match of_dev_auxdata based on compatible,
      IO address, and device name. But in some cases we have multiple
      instances of drivers that can use the same auxdata.
      
      Let's add an additional secondary lookup for generic compatible
      match for auxdata if no device specific match is found. This does
      not change the existing matching, and still allows adding device
      specific auxdata.
      
      This simplifies things as specifying the IO address and device
      name is prone errors as it requires maintaining an in kernel
      database for each SoC.
      
      To specify a generic match, all that is needed is to add a
      OF_DEV_AUXDATA entry with no device instance specified:
      
      OF_DEV_AUXDATA("pinctrl-single", 0, NULL, &pcs_pdata),
      
      As the auxdata is already initialized only for the booted SoC,
      there's not much of a chance of getting things wrong.
      
      Let's also fix two checkpatch warnings while at it to add a
      space before parenthesis in the for loop, and remove a comparison
      to NULL by using !auxdata->compatible.
      Acked-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      fc5cf80a
  28. 05 1月, 2016 1 次提交
  29. 22 10月, 2015 1 次提交
  30. 26 8月, 2015 1 次提交
  31. 30 7月, 2015 1 次提交
  32. 10 6月, 2015 1 次提交
  33. 01 6月, 2015 1 次提交
  34. 11 5月, 2015 1 次提交
  35. 04 3月, 2015 2 次提交