1. 02 2月, 2013 1 次提交
  2. 04 1月, 2013 2 次提交
    • G
      ARM: drivers: remove __dev* attributes. · 351a102d
      Greg Kroah-Hartman 提交于
      CONFIG_HOTPLUG is going away as an option.  As a result, the __dev*
      markings need to be removed.
      
      This change removes the use of __devinit, __devexit_p, __devinitdata,
      and __devexit from these drivers.
      
      Based on patches originally written by Bill Pemberton, but redone by me
      in order to handle some of the coding style issues better, by hand.
      
      Cc: Bill Pemberton <wfp5p@virginia.edu>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      351a102d
    • A
      ARM: OMAP1: fix USB configuration use-after-release · 07fd296d
      Aaro Koskinen 提交于
      All boards, except Amstrad E3, mark USB config with __initdata.
      
      As a result, when you compile USB into modules, they will try to refer
      already released platform data and the behaviour is undefined. For example
      on Nokia 770, I get the following kernel panic when modprobing ohci-hcd:
      
      [    3.462158] Unable to handle kernel paging request at virtual address e7fddef0
      [    3.477050] pgd = c3434000
      [    3.487365] [e7fddef0] *pgd=00000000
      [    3.498535] Internal error: Oops: 80000005 [#1] ARM
      [    3.510955] Modules linked in: ohci_hcd(+)
      [    3.522705] CPU: 0    Not tainted  (3.7.0-770_tiny+ #5)
      [    3.535552] PC is at 0xe7fddef0
      [    3.546508] LR is at ohci_omap_init+0x5c/0x144 [ohci_hcd]
      [    3.560272] pc : [<e7fddef0>]    lr : [<bf003140>]    psr: a0000013
      [    3.560272] sp : c344bdb0  ip : c344bce0  fp : c344bdcc
      [    3.589782] r10: 00000001  r9 : 00000000  r8 : 00000000
      [    3.604553] r7 : 00000026  r6 : 000000de  r5 : c0227300  r4 : c342d620
      [    3.621032] r3 : e7fddef0  r2 : c048b880  r1 : 00000000  r0 : 0000000a
      [    3.637786] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
      [    3.655822] Control: 0005317f  Table: 13434000  DAC: 00000015
      [    3.672790] Process modprobe (pid: 425, stack limit = 0xc344a1b8)
      [    3.690643] Stack: (0xc344bdb0 to 0xc344c000)
      [    3.707031] bda0:                                     bf0030e4 c342d620 00000000 c049e62c
      [    3.727905] bdc0: c344be04 c344bdd0 c0150ff0 bf0030f4 bf001b88 00000000 c048a4ac c345b020
      [    3.748870] bde0: c342d620 00000000 c048a468 bf003968 00000001 bf006000 c344be34 c344be08
      [    3.769836] be00: bf001bf0 c0150e48 00000000 c344be18 c00b9bfc c048a478 c048a4ac bf0037f8
      [    3.790985] be20: c012ca04 c000e024 c344be44 c344be38 c012d968 bf001a84 c344be64 c344be48
      [    3.812164] be40: c012c8ac c012d95c 00000000 c048a478 c048a4ac bf0037f8 c344be84 c344be68
      [    3.833740] be60: c012ca74 c012c80c 20000013 00000000 c344be88 bf0037f8 c344beac c344be88
      [    3.855468] be80: c012b038 c012ca14 c38093cc c383ee10 bf0037f8 c35be5a0 c049d5e8 00000000
      [    3.877166] bea0: c344bebc c344beb0 c012c40c c012aff4 c344beec c344bec0 c012bfc0 c012c3fc
      [    3.898834] bec0: bf00378c 00000000 c344beec bf0037f8 00067f39 00000000 00005c44 c000e024
      [    3.920837] bee0: c344bf14 c344bef0 c012cd54 c012befc c04ce080 00067f39 00000000 00005c44
      [    3.943023] bf00: c000e024 bf006000 c344bf24 c344bf18 c012db14 c012ccc0 c344bf3c c344bf28
      [    3.965423] bf20: bf00604c c012dad8 c344a000 bf003834 c344bf7c c344bf40 c00087ac bf006010
      [    3.987976] bf40: 0000000f bf003834 00067f39 00000000 00005c44 bf003834 00067f39 00000000
      [    4.010711] bf60: 00005c44 c000e024 c344a000 00000000 c344bfa4 c344bf80 c004c35c c0008720
      [    4.033569] bf80: c344bfac c344bf90 01422192 01427ea0 00000000 00000080 00000000 c344bfa8
      [    4.056518] bfa0: c000dec0 c004c2f0 01422192 01427ea0 01427ea0 00005c44 00067f39 00000000
      [    4.079406] bfc0: 01422192 01427ea0 00000000 00000080 b6e11008 014221aa be941fcc b6e1e008
      [    4.102569] bfe0: b6ef6300 be941758 0000e93c b6ef6310 60000010 01427ea0 00000000 00000000
      [    4.125946] Backtrace:
      [    4.143463] [<bf0030e4>] (ohci_omap_init+0x0/0x144 [ohci_hcd]) from [<c0150ff0>] (usb_add_hcd+0x1b8/0x61c)
      [    4.183898]  r6:c049e62c r5:00000000 r4:c342d620 r3:bf0030e4
      [    4.205596] [<c0150e38>] (usb_add_hcd+0x0/0x61c) from [<bf001bf0>] (ohci_hcd_omap_drv_probe+0x17c/0x224 [ohci_hcd])
      [    4.248138] [<bf001a74>] (ohci_hcd_omap_drv_probe+0x0/0x224 [ohci_hcd]) from [<c012d968>] (platform_drv_probe+0x1c/0x20)
      [    4.292144]  r8:c000e024 r7:c012ca04 r6:bf0037f8 r5:c048a4ac r4:c048a478
      [    4.316192] [<c012d94c>] (platform_drv_probe+0x0/0x20) from [<c012c8ac>] (driver_probe_device+0xb0/0x208)
      [    4.360168] [<c012c7fc>] (driver_probe_device+0x0/0x208) from [<c012ca74>] (__driver_attach+0x70/0x94)
      [    4.405548]  r6:bf0037f8 r5:c048a4ac r4:c048a478 r3:00000000
      [    4.429809] [<c012ca04>] (__driver_attach+0x0/0x94) from [<c012b038>] (bus_for_each_dev+0x54/0x90)
      [    4.475708]  r6:bf0037f8 r5:c344be88 r4:00000000 r3:20000013
      [    4.500366] [<c012afe4>] (bus_for_each_dev+0x0/0x90) from [<c012c40c>] (driver_attach+0x20/0x28)
      [    4.528442]  r7:00000000 r6:c049d5e8 r5:c35be5a0 r4:bf0037f8
      [    4.553466] [<c012c3ec>] (driver_attach+0x0/0x28) from [<c012bfc0>] (bus_add_driver+0xd4/0x228)
      [    4.581878] [<c012beec>] (bus_add_driver+0x0/0x228) from [<c012cd54>] (driver_register+0xa4/0x134)
      [    4.629730]  r8:c000e024 r7:00005c44 r6:00000000 r5:00067f39 r4:bf0037f8
      [    4.656738] [<c012ccb0>] (driver_register+0x0/0x134) from [<c012db14>] (platform_driver_register+0x4c/0x60)
      [    4.706542] [<c012dac8>] (platform_driver_register+0x0/0x60) from [<bf00604c>] (ohci_hcd_mod_init+0x4c/0x8c [ohci_hcd])
      [    4.757843] [<bf006000>] (ohci_hcd_mod_init+0x0/0x8c [ohci_hcd]) from [<c00087ac>] (do_one_initcall+0x9c/0x174)
      [    4.808990]  r4:bf003834 r3:c344a000
      [    4.832641] [<c0008710>] (do_one_initcall+0x0/0x174) from [<c004c35c>] (sys_init_module+0x7c/0x194)
      [    4.881530] [<c004c2e0>] (sys_init_module+0x0/0x194) from [<c000dec0>] (ret_fast_syscall+0x0/0x2c)
      [    4.930664]  r7:00000080 r6:00000000 r5:01427ea0 r4:01422192
      [    4.956481] Code: bad PC value
      [    4.978729] ---[ end trace 58280240f08342c4 ]---
      [    5.002258] Kernel panic - not syncing: Fatal exception
      
      Fix this by taking a copy of the data. Also mark Amstrad E3's data with
      __initdata to save some memory with multi-board kernels.
      Signed-off-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      07fd296d
  3. 18 12月, 2012 1 次提交
    • T
      ARM: OMAP: Split fb.c to remove last remaining cpu_is_omap usage · 16d60bb8
      Tony Lindgren 提交于
      Looks like we missed plat-omap/fb.c for cpu_is_omap usage
      mach-omap2. This is the last user of cpu_is_omap, so let's
      quickly fix it up so we can finally remove plat/cpu.h for
      omap2lus.
      
      We want to limit cpu_is_omap macro usage to mach-omap2 only so
      we can make plat/cpu.h private. After this we can finally drop
      plat/cpu.h for omap2+.
      
      Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      16d60bb8
  4. 01 12月, 2012 1 次提交
    • T
      ARM: OMAP: Move plat-omap/dma-omap.h to include/linux/omap-dma.h · 45c3eb7d
      Tony Lindgren 提交于
      Based on earlier discussions[1] we attempted to find a suitable
      location for the omap DMA header in commit 2b6c4e73 (ARM: OMAP:
      DMA: Move plat/dma.h to plat-omap/dma-omap.h) until the conversion
      to dmaengine is complete.
      
      Unfortunately that was before I was able to try to test compile
      of the ARM multiplatform builds for omap2+, and the end result
      was not very good.
      
      So I'm creating yet another all over the place patch to cut the
      last dependency for building omap2+ for ARM multiplatform. After
      this, we have finally removed the driver dependencies to the
      arch/arm code, except for few drivers that are being worked on.
      
      The other option was to make the <plat-omap/dma-omap.h> path
      to work, but we'd have to add some new header directory to for
      multiplatform builds.
      
      Or we would have to manually include arch/arm/plat-omap/include
      again from arch/arm/Makefile for omap2+.
      
      Neither of these alternatives sound appealing as they will
      likely lead addition of various other headers exposed to the
      drivers, which we want to avoid for the multiplatform kernels.
      
      Since we already have a minimal include/linux/omap-dma.h,
      let's just use that instead and add a note to it to not
      use the custom omap DMA functions any longer where possible.
      
      Note that converting omap DMA to dmaengine depends on
      dmaengine supporting automatically incrementing the FIFO
      address at the device end, and converting all the remaining
      legacy drivers. So it's going to be few more merge windows.
      
      [1] https://patchwork.kernel.org/patch/1519591/#
      
      cc: Russell King <linux@arm.linux.org.uk>
      cc: Kevin Hilman <khilman@ti.com>
      cc: "Benoît Cousson" <b-cousson@ti.com>
      cc: Herbert Xu <herbert@gondor.apana.org.au>
      cc: "David S. Miller" <davem@davemloft.net>
      cc: Vinod Koul <vinod.koul@intel.com>
      cc: Dan Williams <djbw@fb.com>
      cc: Mauro Carvalho Chehab <mchehab@infradead.org>
      cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
      cc: David Woodhouse <dwmw2@infradead.org>
      cc: Kyungmin Park <kyungmin.park@samsung.com>
      cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
      cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
      cc: Hans Verkuil <hans.verkuil@cisco.com>
      cc: Vaibhav Hiremath <hvaibhav@ti.com>
      cc: Lokesh Vutla <lokeshvutla@ti.com>
      cc: Rusty Russell <rusty@rustcorp.com.au>
      cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
      cc: Afzal Mohammed <afzal@ti.com>
      cc: linux-crypto@vger.kernel.org
      cc: linux-media@vger.kernel.org
      cc: linux-mtd@lists.infradead.org
      cc: linux-usb@vger.kernel.org
      cc: linux-fbdev@vger.kernel.org
      Acked-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      45c3eb7d
  5. 22 11月, 2012 1 次提交
  6. 17 11月, 2012 2 次提交
  7. 13 11月, 2012 1 次提交
  8. 09 11月, 2012 1 次提交
  9. 07 11月, 2012 1 次提交
  10. 03 11月, 2012 1 次提交
  11. 01 11月, 2012 8 次提交
  12. 30 10月, 2012 2 次提交
    • P
      ARM: OMAP2+: WDT: move init; add read_reset_sources pdata function pointer · 37c67d03
      Paul Walmsley 提交于
      The OMAP watchdog timer driver directly calls a function exported by
      code in arch/arm/mach-omap2.  This is not good; it tightly couples
      this driver to the mach-omap2 integration code.  Instead, add a
      temporary platform_data function pointer to abstract this function
      call.  A subsequent patch will convert the watchdog driver to use this
      function pointer.
      
      This patch also moves the device creation code out of
      arch/arm/mach-omap2/devices.c and into arch/arm/mach-omap2/wd_timer.c.
      This is another step towards the removal of
      arch/arm/mach-omap2/devices.c.
      
      Cc: Wim Van Sebroeck <wim@iguana.be>
      Acked-by: NWim Van Sebroeck <wim@iguana.be>
      [paul@pwsan.com: skip wd_timer device creation when DT blob is present]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      37c67d03
    • P
      ARM: OMAP1: CGRM: fix omap1_get_reset_sources() return type · 508c0d47
      Paul Walmsley 提交于
      An older version of the patch "ARM: OMAP1: create read_reset_sources()
      function (for initial use by watchdog)" was sent upstream, which used
      the wrong return type for the omap1_get_reset_sources() function.
      Fix it to return a u32, which is what the WDTIMER platform_data
      function pointer read_reset_sources() expects.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      508c0d47
  13. 27 10月, 2012 3 次提交
    • P
      ARM: OMAP1: usb: fix sparse warnings · eba36d77
      Paul Walmsley 提交于
      
      Resolve the following sparse warnings:
      
      arch/arm/mach-omap1/usb.c:304:12: warning: symbol 'omap1_usb0_init' was not declared. Should it be static?
      arch/arm/mach-omap1/usb.c:412:12: warning: symbol 'omap1_usb1_init' was not declared. Should it be static?
      arch/arm/mach-omap1/usb.c:478:12: warning: symbol 'omap1_usb2_init' was not declared. Should it be static?
      
      by declaring those functions as static.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Felipe Balbi <balbi@ti.com>
      [tony@atomide.com: this was missed with plat/usb.h removal]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      eba36d77
    • P
      ARM: OMAP1: fix sparse warning added by commit 4c98dc6b · 97af08b6
      Paul Walmsley 提交于
      Commit 4c98dc6b ("ARM: OMAP: Make
      plat/fpga.h local to arch/arm/plat-omap") results in a new warning from
      sparse:
      
      arch/arm/mach-omap1/fpga.c:147:6: warning: symbol 'omap1510_fpga_init_irq' was not declared. Should it be static?
      
      Fix by adding a missing include.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      97af08b6
    • P
      ARM: OMAP1: fix build breakage introduced by commit 25c7d49e · 47ba7099
      Paul Walmsley 提交于
      Commit 25c7d49e ("ARM: OMAP: Make
      omap_device local to mach-omap2") broke an OMAP5912-only build here:
      
      arch/arm/mach-omap1/pm_bus.c: In function 'omap1_pm_runtime_init':
      arch/arm/mach-omap1/pm_bus.c:69:2: error: implicit declaration of function
      'cpu_class_is_omap1'
      make[1]: *** [arch/arm/mach-omap1/pm_bus.o] Error 1
      
      Fix by adding a missing include.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      47ba7099
  14. 25 10月, 2012 3 次提交
  15. 21 10月, 2012 1 次提交
    • P
      ARM: OMAP1: create read_reset_sources() function (for initial use by watchdog) · b5c5353d
      Paul Walmsley 提交于
      On OMAP1, the existing OMAP watchdog driver reads a register directly
      from a non-watchdog IP block.  It also does not convert the register's
      contents into the standard WDIOF_* bits expected from the
      GETBOOTSTATUS ioctl().
      
      To move towards fixing these problems, create an function in
      arch/arm/mach-omap1 to return the reset source data.  A subsequent
      patch will provide this function to the watchdog driver via
      platform_data.
      
      In the long term, the best approach would be to move this function
      to a new OMAP1 driver that handles access to the OMAP1 Clock
      Generation and Reset Management IP block.  Then no platform_data would
      be needed.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      b5c5353d
  16. 19 10月, 2012 6 次提交
  17. 18 10月, 2012 5 次提交