1. 18 6月, 2013 3 次提交
  2. 12 6月, 2013 3 次提交
    • S
      mailbox/omap: move the OMAP mailbox framework to drivers · c869c75c
      Suman Anna 提交于
      The mailbox hardware (in OMAP) uses a queued mailbox interrupt
      mechanism that provides a communication channel between processors
      through a set of registers and their associated interrupt signals
      by sending and receiving messages.
      
      The OMAP mailbox framework/driver code is moved to be under
      drivers/mailbox, in preparation for adapting to a common mailbox
      driver framework. This allows the build for OMAP mailbox to be
      enabled (it was disabled during the multi-platform support).
      
      As part of the migration from plat and mach code:
      - Kconfig symbols have been renamed to build OMAP1 or OMAP2+ drivers.
      - mailbox.h under plat-omap/plat/include has been split into a public
        and private header files. The public header has only the API related
        functions and types.
      - The module name mailbox.ko from plat-omap is changed to
        omap-mailbox.ko
      - The module name mailbox_mach.ko from mach-omapX is changed as
          mailbox_omap1.ko for OMAP1
          mailbox_omap2.ko for OMAP2+
      
      Cc: Tony Lindgren <tony@atomide.com>
      [gregkh@linuxfoundation.org: ack for staging part]
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NOmar Ramirez Luna <omar.ramirez@copitl.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      c869c75c
    • S
      ARM: OMAP2+: mbox: remove dependencies with soc.h · b8a7cf8e
      Suman Anna 提交于
      The OMAP mailbox platform driver code has been cleaned up to
      remove the dependencies with soc.h in preparation for moving
      the mailbox code to drivers folder.
      
      The code relied on cpu_is_xxx/soc_is_xxx macros previously to
      pick the the right set of mailbox devices and register with the
      mailbox driver. This data is now represented in a concise format
      and moved to the respective omap_hwmod data files and published
      to the driver through the platform data.
      
      Cc: Paul Walmsley <paul@pwsan.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      b8a7cf8e
    • S
      omap: mailbox: call request_irq after mbox queues are allocated · ecf305cf
      Suman Anna 提交于
      The OMAP mailbox startup code is enabling the interrupt before any
      of the associated mailbox queues are allocated. Move this code so
      that the interrupt configuration for a mailbox is together.
      Signed-off-by: NFernando Guzman Lugo <lugo.fernando@gmail.com>
      Signed-off-by: NSuman Anna <s-anna@ti.com>
      ecf305cf
  3. 03 5月, 2013 1 次提交
    • R
      ARM: OMAP: use consistent error checking · c48cd659
      Russell King 提交于
      Consistently check errors using the usual method used in the kernel
      for much of its history.  For instance:
      
      int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t)
      {
      	int div;
      	div = gpmc_calc_divider(t->sync_clk);
      	if (div < 0)
      		return div;
      static int gpmc_set_async_mode(int cs, struct gpmc_timings *t)
      {
      ...
      	return gpmc_cs_set_timings(cs, t);
      
      .....
      	ret = gpmc_set_async_mode(gpmc_onenand_data->cs, &t);
      	if (IS_ERR_VALUE(ret))
      		return ret;
      
      So, gpmc_cs_set_timings() thinks any negative return value is an error,
      but where we check that in higher levels, only a limited range are
      errors...
      
      There is only _one_ use of IS_ERR_VALUE() in arch/arm which is really
      appropriate, and that is in arch/arm/include/asm/syscall.h:
      
      static inline long syscall_get_error(struct task_struct *task,
      				     struct pt_regs *regs)
      {
      	unsigned long error = regs->ARM_r0;
      	return IS_ERR_VALUE(error) ? error : 0;
      }
      
      because this function really does have to differentiate between error
      return values and addresses which look like negative numbers (eg, from
      mmap()).
      
      So, here's a patch to remove them from OMAP, except for the above.
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c48cd659
  4. 09 4月, 2013 5 次提交
  5. 14 3月, 2013 1 次提交
    • R
      ARM: OMAP: use consistent error checking · 71856843
      Russell King 提交于
      Consistently check errors using the usual method used in the kernel
      for much of its history.  For instance:
      
      int gpmc_cs_set_timings(int cs, const struct gpmc_timings *t)
      {
      	int div;
      	div = gpmc_calc_divider(t->sync_clk);
      	if (div < 0)
      		return div;
      static int gpmc_set_async_mode(int cs, struct gpmc_timings *t)
      {
      ...
      	return gpmc_cs_set_timings(cs, t);
      
      .....
      	ret = gpmc_set_async_mode(gpmc_onenand_data->cs, &t);
      	if (IS_ERR_VALUE(ret))
      		return ret;
      
      So, gpmc_cs_set_timings() thinks any negative return value is an error,
      but where we check that in higher levels, only a limited range are
      errors...
      
      There is only _one_ use of IS_ERR_VALUE() in arch/arm which is really
      appropriate, and that is in arch/arm/include/asm/syscall.h:
      
      static inline long syscall_get_error(struct task_struct *task,
      				     struct pt_regs *regs)
      {
      	unsigned long error = regs->ARM_r0;
      	return IS_ERR_VALUE(error) ? error : 0;
      }
      
      because this function really does have to differentiate between error
      return values and addresses which look like negative numbers (eg, from
      mmap()).
      
      So, here's a patch to remove them from OMAP, except for the above.
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      71856843
  6. 24 2月, 2013 1 次提交
  7. 02 2月, 2013 2 次提交
  8. 26 1月, 2013 1 次提交
  9. 12 1月, 2013 3 次提交
    • T
      ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support · a0694861
      Tony Lindgren 提交于
      Flip on multiplatform support for omap2+.
      
      No changes to omap2plus_defconfig needed, but please note
      that you may need to update your custom config files to
      make sure you have:
      
      CONFIG_ARCH_MULTIPLATFORM=y
      CONFIG_ARCH_MULTI_V7=y
      CONFIG_ARCH_OMAP2PLUS=y
      
      And may need CONFIG_ARCH_MULTI_V6=y if booting omap2 boards.
      
      Cc: Russell King <linux@arm.linux.org.uk>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      a0694861
    • T
      ARM: OMAP2+: Disable code that currently does not work with multiplaform · a62a6e98
      Tony Lindgren 提交于
      We still need to fix up few places for multiplatform support,
      but that can proceed separately. Fix the issue by making the
      problem drivers depends !ARCH_MULTIPLATFORM for now.
      
      The remaining pieces that are not multiplatform compatible
      for omap2+ SoCs are:
      
      1. Some drivers are using custom omap_dm_timer calls
      
      There are two drivers that are directly usign omap hardware
      timers for PWM and DSP clocking: drivers/media/rc/ir-rx51.c and
      drivers/staging/tidspbridge/core/dsp-clock.c. These can be
      fixed for multiplatform by allowing a minimal set of hardware
      timers to be accessed, and for some functionality by using the
      hrtimer framework.
      
      2. Hardware OMAP4_ERRATA_I688 needs to be fixed up
      
      This can't be enabled for multiplatform configurations in
      it's current form. It may be possible to fix it up to do
      instruction replacement early on during init. Luckily it
      looks like this errata does not seem to get hit with
      mainline kernel code alone at least currently.
      
      3. Legacy header needed for omap-sham.c
      
      Looks like it still needs mach/irqs.h for omap1 that
      does not exist for multiplatform systems. Just ifdef
      it for now.
      
      4. Mailbox is waiting to get moved to drivers
      
      Disable it for now to avoid adding a dependency to the
      mailbox patches.
      
      Cc: Timo Kokkonen <timo.t.kokkonen@iki.fi>
      Cc: Sean Young <sean@mess.org>
      Cc: "Víctor Manuel Jáquez Leal" <vjaquez@igalia.com>
      Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
      Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
      Cc: Omar Ramirez Luna <omar.ramirez@ti.com>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      [tony@atomide.com: updated to disable mailbox]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      a62a6e98
    • T
      ARM: OMAP: Fix i2c cmdline initcall for multiplatform · a6cf912c
      Tony Lindgren 提交于
      We only want this initcall to run when the kernel is
      booted on omap SoCs. Fix the issue by initializing the
      the initcall from separately for omap1 and omap2+.
      
      This fixes the issue for omap2+ multiplatform configs
      as we are using omap_subsys_initcall there.
      Tested-by: NEzequiel Garcia <ezequiel.garcia@free-electrons.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      a6cf912c
  10. 04 1月, 2013 1 次提交
    • 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
  11. 02 1月, 2013 1 次提交
    • P
      ARM: OMAP: SRAM: resolve sparse warnings · 9fbe7c24
      Paul Walmsley 提交于
      Commit bb772094 ("ARM: OMAP: Move
      omap2+ specific parts of sram.c to mach-omap2") adds some new sparse
      warnings:
      
      arch/arm/plat-omap/sram.c:43:6: warning: symbol 'omap_sram_push_address' was not declared. Should it be static?
      arch/arm/plat-omap/sram.c:65:6: warning: symbol 'omap_sram_reset' was not declared. Should it be static?
      arch/arm/plat-omap/sram.c:73:13: warning: symbol 'omap_map_sram' was not declared. Should it be static?
      
      This second version fixes the warnings by including <plat/sram.h>, at
      Tony's request.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      9fbe7c24
  12. 28 12月, 2012 1 次提交
    • P
      ARM: OMAP: 32k counter: resolve sparse warnings · 6ccc432f
      Paul Walmsley 提交于
      Commit 1fe97c8f ("ARM: OMAP: Make OMAP
      clocksource source selection using kernel param") results in a new warning
      from sparse:
      
      arch/arm/plat-omap/counter_32k.c:86:12: warning: symbol 'omap_init_clocksource_32k' was not declared. Should it be static?
      
      This second version fixes this warning by including <plat/counter-32k.h>,
      at Tony's request.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Vaibhav Hiremath <hvaibhav@ti.com>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      6ccc432f
  13. 18 12月, 2012 3 次提交
  14. 15 12月, 2012 2 次提交
  15. 07 12月, 2012 1 次提交
    • H
      mmc: omap_hsmmc: Enable HSPE bit for high speed cards · cd587096
      Hebbar, Gururaja 提交于
      HSMMC IP on AM33xx need a special setting to handle High-speed cards.
      Other platforms like TI81xx, OMAP4 may need this as-well. This depends
      on the HSMMC IP timing closure done for the high speed cards.
      
      From AM335x TRM (SPRUH73F - 18.3.12 Output Signals Generation):
      
      The MMC/SD/SDIO output signals can be driven on either falling edge or
      rising edge depending on the SD_HCTL[2] HSPE bit. This feature allows
      to reach better timing performance, and thus to increase data transfer
      frequency.
      
      There are few pre-requisites for enabling the HSPE bit
      - Controller should support High-Speed-Enable Bit and
      - Controller should not be using DDR Mode and
      - Controller should advertise that it supports High Speed in
        capabilities register and
      - MMC/SD clock coming out of controller > 25MHz
      Signed-off-by: NHebbar, Gururaja <gururaja.hebbar@ti.com>
      Signed-off-by: NVenkatraman S <svenkatr@ti.com>
      Signed-off-by: NChris Ball <cjb@laptop.org>
      cd587096
  16. 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
  17. 22 11月, 2012 1 次提交
    • I
      ARM: OMAP2+: timer: remove CONFIG_OMAP_32K_TIMER · 6f80b3bb
      Igor Grinberg 提交于
      CONFIG_OMAP_32K_TIMER is kind of standing on the single zImage way.
      Make OMAP2+ timer code independant from the CONFIG_OMAP_32K_TIMER
      setting.
      To remove the dependancy, several conversions/additions had to be done:
      1) Timer initialization functions are named by the platform
         name and the clock source in use.
         This also makes it possible to define and use the GPTIMER as the
         clock source instead of the 32K timer on platforms that do not have
         the 32K timer ip block or the 32K timer is not wired on the board.
         Currently, the the timer is chosen in the machine_desc structure on
         per board basis. Later, DT should be used to choose the timer.
      2) Settings under the CONFIG_OMAP_32K_TIMER option are used as defaults
         and those under !CONFIG_OMAP_32K_TIMER are removed.
         This removes the CONFIG_OMAP_32K_TIMER on OMAP2+ timer code.
      3) Since we have all the timers defined inside machine_desc structure
         and we no longer need the fallback to gp_timer clock source in case
         32k_timer clock source is unavailable (namely on AM33xx), we no
         longer need the #ifdef around omap2_sync32k_clocksource_init()
         function. Remove the #ifdef CONFIG_OMAP_32K_TIMER around the
         omap2_sync32k_clocksource_init() function.
      Signed-off-by: NIgor Grinberg <grinberg@compulab.co.il>
      Cc: Jon Hunter <jon-hunter@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Vaibhav Hiremath <hvaibhav@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Reviewed-by: NJon Hunter <jon-hunter@ti.com>
      6f80b3bb
  18. 21 11月, 2012 5 次提交
  19. 17 11月, 2012 4 次提交