1. 14 5月, 2012 1 次提交
  2. 12 5月, 2012 2 次提交
  3. 10 5月, 2012 6 次提交
  4. 09 5月, 2012 1 次提交
    • A
      ARM: OMAP1: fix compilation issue in board-sx1.c · e54bdc18
      Artem Bityutskiy 提交于
      SX1 board requirese i2c, so select it in Kconfig, otherwise I have the
      following build error:
      
      arch/arm/mach-omap1/board-sx1.c: In function 'sx1_i2c_write_byte':
      arch/arm/mach-omap1/board-sx1.c:58:2: error: implicit declaration of function 'i2c_get_adapter' [-Werror=implicit-function-declaration]
      arch/arm/mach-omap1/board-sx1.c:58:7: warning: assignment makes pointer from integer without a cast [enabled by default]
      arch/arm/mach-omap1/board-sx1.c:67:2: error: implicit declaration of function 'i2c_transfer' [-Werror=implicit-function-declaration]
      arch/arm/mach-omap1/board-sx1.c:68:2: error: implicit declaration of function 'i2c_put_adapter' [-Werror=implicit-function-declaration]
      arch/arm/mach-omap1/board-sx1.c: In function 'sx1_i2c_read_byte':
      arch/arm/mach-omap1/board-sx1.c:82:7: warning: assignment makes pointer from integer without a cast [enabled by default]
      cc1: some warnings being treated as errors
      make[1]: *** [arch/arm/mach-omap1/board-sx1.o] Error 1
      make: *** [arch/arm/mach-omap1] Error 2
      make: *** Waiting for unfinished jobs....
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      e54bdc18
  5. 08 5月, 2012 1 次提交
  6. 05 5月, 2012 1 次提交
  7. 18 4月, 2012 2 次提交
    • P
      ARM: OMAP1: DMTIMER: fix broken timer clock source selection · 6aaec67d
      Paul Walmsley 提交于
      DMTIMER source selection on OMAP1 is broken.  omap1_dm_timer_set_src()
      tries to use __raw_{read,write}l() to read from and write to physical
      addresses, but those functions take virtual addresses.
      
      sparse caught this:
      
      arch/arm/mach-omap1/timer.c:50:13: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/timer.c:50:13:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/timer.c:50:13:    got unsigned int
      arch/arm/mach-omap1/timer.c:52:9: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/timer.c:52:9:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/timer.c:52:9:    got unsigned int
      
      Fix by using omap_{read,writel}(), just like the other users of the
      MOD_CONF_CTRL_1 register in the OMAP1 codebase.  Of course, in the long term,
      removing omap_{read,write}l() is the appropriate thing to do; but
      this will take some work to do this cleanly.
      
      Looks like this was caused by 97933d6c (ARM: OMAP1: dmtimer: conversion
      to platform devices) that dangerously moved code and changed it in
      the same patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tarun Kanti DebBarma <tarun.kanti@ti.com>
      Cc: stable@vger.kernel.org
      [tony@atomide.com: updated comments to include the breaking commit]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      6aaec67d
    • P
      ARM: OMAP2+: clean up some cppcheck warnings · eeb3711b
      Paul Walmsley 提交于
      Resolve some warnings identified by cppcheck in arch/arm/mach-omap2:
      
          [arch/arm/mach-omap2/usb-tusb6010.c:129]: (style) Checking if unsigned variable 'tmp' is less than zero.
          [arch/arm/mach-omap2/prm_common.c:241]: (error) Possible null pointer dereference: irq_setup - otherwise it is redundant to check if irq_setup is null at line 247
          [arch/arm/mach-omap2/pm34xx.c:790]: (style) Variable 'per_clkdm' is assigned a value that is never used
          [arch/arm/mach-omap2/pm34xx.c:790]: (style) Variable 'core_clkdm' is assigned a value that is never used
          [arch/arm/mach-omap2/pm24xx.c:185]: (style) Variable 'only_idle' is assigned a value that is never used
          [arch/arm/mach-omap2/mux.c:254]: (error) Possible null pointer dereference: mux
          [arch/arm/mach-omap2/mux.c:258]: (error) Possible null pointer dereference: mux
          [arch/arm/mach-omap2/gpmc-onenand.c:178]: (style) Variable 'tick_ns' is assigned a value that is never used
          [arch/arm/mach-omap2/gpio.c:56]: (error) Possible null pointer dereference: pdata - otherwise it is redundant to check if pdata is null at line 57
          [arch/arm/mach-omap2/devices.c:45]: (style) Variable 'l' is assigned a value that is never used
          [arch/arm/mach-omap2/board-omap3evm.c:641] -> [arch/arm/mach-omap2/board-omap3evm.c:639]: (style) Found duplicate branches for if and else.
          [arch/arm/mach-omap2/am35xx-emac.c:95]: (style) Variable 'regval' is assigned a value that is never used
          [arch/arm/mach-omap2/devices.c:74]: (style) Variable 'l' is assigned a value that is never used
          [arch/arm/mach-omap2/pm34xx.c:277]: (style) Variable 'per_prev_state' is assigned a value that is never used
          [arch/arm/plat-omap/dmtimer.c:352]: (error) Possible null pointer dereference: timer - otherwise it is redundant to check if timer is null at line 354
          [arch/arm/plat-omap/omap_device.c:478]: (style) Variable 'c' is assigned a value that is never used
          [arch/arm/plat-omap/usb.c:42]: (style) Variable 'status' is assigned a value that is never used
          [arch/arm/mach-omap1/clock.c:197]: (style) Variable 'dpll1_rate' is assigned a value that is never used
          [arch/arm/mach-omap1/lcd_dma.c:60]: (style) struct or union member 'lcd_dma_info::size' is never used
          [arch/arm/mach-omap1/pm.c:572]: (style) Variable 'entry' is assigned a value that is never used
      
      Some of them are pretty good catches, such as gpio.c:56 and
      usb-tusb6010.c:129.
      
      Thanks to Jarkko Nikula for some comments on the sscanf() warnings.
      It seems that the kernel sscanf() ignores the field width anyway for the
      %d format, so those changes have been dropped from this second version.
      
      Thanks to Daniel Marjamäki <daniel.marjamaki@gmail.com> for pointing
      out that a variable was unnecessarily marked static in the
      board-omap3evm.c change.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Cc: Jarkko Nikula <jarkko.nikula@bitmer.com>
      Cc: Charulatha Varadarajan <charu@ti.com>
      Cc: Daniel Marjamäki <daniel.marjamaki@gmail.com>
      Cc: Tarun Kanti DebBarma <tarun.kanti@ti.com>
      Reviewed-by: Charulatha Varadarajan <charu@ti.com> # for gpio.c
      eeb3711b
  8. 13 4月, 2012 7 次提交
    • P
      ARM: OMAP1: board files: deduplicate and clean some NAND-related code · 31cde044
      Paul Walmsley 提交于
      The H2, H3, Perseus2, and FSample board files all contain the same
      duplicated code to handle NAND commands.  That code is missing
      some casts around conversions from unsigned long to void __iomem *.
      
      Consolidate the duplicated code into a new file,
      arch/arm/mach-omap1/board-nand.c.  Resolve the sparse warnings by
      adding appropriate casts:
      
      arch/arm/mach-omap1/board-h2.c:193:9: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/board-h2.c:193:9:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/board-h2.c:193:9:    got unsigned long
      arch/arm/mach-omap1/board-perseus2.c:157:9: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/board-perseus2.c:157:9:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/board-perseus2.c:157:9:    got unsigned long
      arch/arm/mach-omap1/board-fsample.c:199:9: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/board-fsample.c:199:9:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/board-fsample.c:199:9:    got unsigned long
      arch/arm/mach-omap1/board-h3.c:195:9: warning: incorrect type in argument 1 (different base types)
      arch/arm/mach-omap1/board-h3.c:195:9:    expected void const volatile [noderef] <asn:2>*<noident>
      arch/arm/mach-omap1/board-h3.c:195:9:    got unsigned long
      
      Thanks to Arnd Bergmann <arnd@arndb.de> for suggesting a cleaner
      implementation of omap1_nand_cmd_ctl(), avoiding some casts.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Brian Swetland <swetland@google.com>
      Cc: Imre Deak <imre.deak@nokia.com>
      Cc: Greg Lonnon <glonnon@ridgerun.com>
      Cc: Kevin Hilman <kjh@hilman.org>
      Cc: Kevin Hilman <khilman@ti.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      31cde044
    • P
      ARM: OMAP: DMA: use constant array maximum, drop some LCD DMA code · bc4d8b5f
      Paul Walmsley 提交于
      gcc can apparently handle stack-allocated arrays that use a dynamic
      variable as the array maximum.  Rather than using a mutable quantity,
      simply use a constant maximum possible size.  To me, code clarity is
      improved; and it also avoids the following sparse warnings:
      
      arch/arm/plat-omap/dma.c:886:40: error: bad constant expression
      arch/arm/plat-omap/dma.c:892:17: error: cannot size expression
      arch/arm/plat-omap/dma.c:970:40: error: bad constant expression
      arch/arm/plat-omap/dma.c:972:17: error: cannot size expression
      
      Also drop some dead code from the OMAP1 LCD DMA code:
      
      arch/arm/mach-omap1/lcd_dma.c:80:6: warning: symbol 'omap_set_lcd_dma_src_port' was not declared. Should it be static?
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      bc4d8b5f
    • P
      ARM: OMAP: fix 'using plain integer as NULL pointer' sparse warnings · a7022d60
      Paul Walmsley 提交于
      sparse warns when 0 is passed to a function expecting a pointer argument.
      Resolve these warnings by replacing the 0 with NULL.
      
      arch/arm/plat-omap/include/plat/dmtimer.h:319:34: warning: Using plain integer as NULL pointer
      arch/arm/plat-omap/include/plat/dmtimer.h:324:35: warning: Using plain integer as NULL pointer
      arch/arm/mach-omap2/irq.c:294:22: warning: Using plain integer as NULL pointer
      arch/arm/mach-omap1/board-palmz71.c:292:50: warning: Using plain integer as NULL pointer
      arch/arm/mach-omap1/board-palmz71.c:295:73: warning: Using plain integer as NULL pointer
      arch/arm/mach-omap1/ams-delta-fiq.c:105:63: warning: Using plain integer as NULL pointer
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      a7022d60
    • P
      ARM: OMAP1: OHCI: use platform_data fn ptr to enable OCPI bus · d3645d39
      Paul Walmsley 提交于
      The OMAP1 OHCI driver needs to enable the OCPI IP block before it can
      work.  Previously, the driver was simply calling a symbol defined in
      the OMAP platform code, but this is incorrect: drivers should be fully
      decoupled from platform and architecture code.
      
      So instead, modify the driver to call through a platform_data function
      pointer instead.  We skip any DT aspect, since OMAP1 is not scheduled
      to be converted to DT in the near future.
      
      This resolves the following sparse warning:
      
      It also gets rid of a cpu_is_omap16xx() call in a driver.
      
      In the long term, it probably makes sense to move the OCPI bus code to
      somewhere under drivers/.  This should avoid the whole platform_data/DT
      issue with this function.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Felipe Balbi <balbi@ti.com>
      Cc: Anand Gadiyar <gadiyar@ti.com>
      Acked-by: NFelipe Balbi <balbi@ti.com>
      d3645d39
    • P
      ARM: OMAP1: OCPI: move to mach-omap1/ · 6f3c1af2
      Paul Walmsley 提交于
      Move the OMAP1 OCPI "bus" code to arch/arm/mach-omap1, since it is
      only used on OMAP1 devices.  In the long term, it probably makes sense
      to move the OCPI bus code to somewhere under drivers/.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Tony Lindgren <tony@atomide.com>
      6f3c1af2
    • P
      ARM: OMAP: add includes for missing prototypes · e2ed89fc
      Paul Walmsley 提交于
      Several C files in arch/arm/mach-omap* and arch/arm/plat-omap declare
      functions that are used by other files, but don't include the header
      file where the prototype is declared.  This results in the following
      warnings from sparse:
      
          arch/arm/mach-omap2/irq.c:114:5: warning: symbol 'omap_irq_pending' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:186:13: warning: symbol 'omap2_init_irq' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:191:13: warning: symbol 'omap3_init_irq' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:196:13: warning: symbol 'ti81xx_init_irq' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:233:39: warning: symbol 'omap2_intc_handle_irq' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:242:6: warning: symbol 'omap_intc_save_context' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:265:6: warning: symbol 'omap_intc_restore_context' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:291:6: warning: symbol 'omap3_intc_suspend' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:297:6: warning: symbol 'omap3_intc_prepare_idle' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:306:6: warning: symbol 'omap3_intc_resume_idle' was not declared. Should it be static?
          arch/arm/mach-omap2/irq.c:312:39: warning: symbol 'omap3_intc_handle_irq' was not declared. Should it be static?
          arch/arm/mach-omap2/omap-secure.c:59:12: warning: symbol 'omap_secure_ram_reserve_memblock' was not declared. Should it be static?
          arch/arm/mach-omap2/board-zoom-display.c:133:13: warning: symbol 'zoom_display_init' was not declared. Should it be static?
          arch/arm/plat-omap/common.c:73:13: warning: symbol 'omap_init_consistent_dma_size' was not declared. Should it be static?
          arch/arm/mach-omap1/irq.c:61:5: warning: symbol 'omap_irq_flags' was not declared. Should it be static?
          arch/arm/mach-omap1/irq.c:179:13: warning: symbol 'omap1_init_irq' was not declared. Should it be static?
          arch/arm/mach-omap1/reset.c:11:6: warning: symbol 'omap1_restart' was not declared. Should it be static?
      
      Fix by including the appropriate header files.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: Senthilvadivu Guruswamy <svadivu@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      
      e2ed89fc
    • P
      ARM: OMAP2+: declare file-local functions as static · 8c3d4534
      Paul Walmsley 提交于
      Several function declarations used only in the files in which they're
      declared should include the static keyword, but don't:
      
          arch/arm/mach-omap2/serial.c:248:6: warning: symbol 'cmdline_find_option' was not declared. Should it be static?
          arch/arm/mach-omap2/omap-wakeupgen.c:259:6: warning: symbol 'irq_sar_clear' was not declared. Should it be static?
          arch/arm/mach-omap2/board-rx51-peripherals.c:878:27: warning: symbol 'rx51_vibra_data' was not declared. Should it be static?
          arch/arm/mach-omap2/board-rx51-peripherals.c:882:27: warning: symbol 'rx51_audio_data' was not declared. Should it be static?
          arch/arm/mach-omap2/board-omap4panda.c:201:29: warning: symbol 'omap_panda_wlan_data' was not declared. Should it be static?
          arch/arm/mach-omap2/board-omap4panda.c:393:24: warning: symbol 'omap4_panda_dvi_device' was not declared. Should it be static?
          arch/arm/mach-omap2/board-omap4panda.c:403:12: warning: symbol 'omap4_panda_dvi_init' was not declared. Should it be static?
          arch/arm/mach-omap2/board-omap4panda.c:464:6: warning: symbol 'omap4_panda_display_init' was not declared. Should it be static?
          arch/arm/mach-omap2/hsmmc.c:434:6: warning: symbol 'omap_init_hsmmc' was not declared. Should it be static?
          arch/arm/mach-omap2/hwspinlock.c:31:12: warning: symbol 'hwspinlocks_init' was not declared. Should it be static?
          arch/arm/mach-omap1/timer.c:58:12: warning: symbol 'omap1_dm_timer_init' was not declared. Should it be static?
          arch/arm/mach-omap1/fpga.c:90:6: warning: symbol 'innovator_fpga_IRQ_demux' was not declared. Should it be static?
      
      Mark all of these as static.
      
      Thanks to Arnd Bergmann <arnd@arndb.de> for pointing out a typo in the
      original patch description.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Govindraj R <govindraj.raja@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: David Anders <x0132446@ti.com>
      Acked-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      8c3d4534
  9. 10 4月, 2012 1 次提交
  10. 06 4月, 2012 1 次提交
    • R
      ARM: fix __io macro for PCMCIA · 1ac02d79
      Rob Herring 提交于
      With commit c334bc15 (ARM: make mach/io.h include optional), PCMCIA was
      broken. PCMCIA depends on __io() returning a valid i/o address, and most
      ARM platforms require IO_SPACE_LIMIT be set to 0xffffffff for PCMCIA. This
      needs a better fix with a fixed i/o address mapping, but for now we just
      restore things to the previous behavior.
      
      This fixes at91, omap1, pxa and sa11xx. pxa needs io.h if PCI is enabled,
      but PCMCIA is not. sa11xx already has IO_SPACE_LIMIT set to 0xffffffff,
      so it doesn't need an io.h.
      Signed-off-by: NRob Herring <rob.herring@calxeda.com>
      Cc: Joachim Eastwood <joachim.eastwood@jotron.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Andrew Victor <linux@maxim.org.za>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
      Tested-by: Paul Parsons <lost.distance@yahoo.com> (pxa270)
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      1ac02d79
  11. 30 3月, 2012 1 次提交
    • G
      ARM: OMAP: pm: fix compilation break · 335aece5
      Govindraj.R 提交于
      Fix the compilation break observed on latest mainline caused
      by 9f97da78 (Disintegrate asm/system.h for ARM):
      
      arch/arm/mach-omap1/pm.c: In function 'omap_pm_prepare':
      arch/arm/mach-omap1/pm.c:587: error: implicit declaration of function 'disable_hlt'
      arch/arm/mach-omap1/pm.c: In function 'omap_pm_finish':
      arch/arm/mach-omap1/pm.c:624: error: implicit declaration of function 'enable_hlt'
      arch/arm/mach-omap1/pm.c: In function 'omap_pm_init':
      arch/arm/mach-omap1/pm.c:681: error: 'arm_pm_idle' undeclared (first use in this function)
      ...
      
      arch/arm/mach-omap2/pm.c: In function 'omap_pm_begin':
      arch/arm/mach-omap2/pm.c:239: error: implicit declaration of function 'disable_hlt'
      arch/arm/mach-omap2/pm.c: In function 'omap_pm_end':
      arch/arm/mach-omap2/pm.c:247: error: implicit declaration of function 'enable_hlt'
      Signed-off-by: NGovindraj.R <govindraj.raja@ti.com>
      Acked-by: NKevin Hilman <khilman@ti.com>
      [tony@atomide.com: updated to fix omap1 too]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      335aece5
  12. 29 3月, 2012 2 次提交
  13. 27 3月, 2012 1 次提交
  14. 14 3月, 2012 1 次提交
  15. 12 3月, 2012 4 次提交
  16. 07 3月, 2012 2 次提交
  17. 06 3月, 2012 5 次提交
    • T
      ARM: OMAP1: Fix section mismatch for omap1_init_early() · 8eaa7bb0
      Tony Lindgren 提交于
      Fix the following warning:
      
      WARNING: vmlinux.o(.text+0x1286c): Section mismatch in reference
      from the function omap1_init_early() to the function .init.text:omap1_clk_init()
      The function omap1_init_early() references
      the function __init omap1_clk_init().
      This is often because omap1_init_early lacks a __init 
      annotation or the annotation of omap1_clk_init is wrong.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      8eaa7bb0
    • M
      ARM: OMAP1: Fix typo in lcd_dma.c · 33c3f71c
      Masanari Iida 提交于
      Correct spelling "resulotion" to "resolution" in
      arch/arm/mach-omap1/lcd_dma.c
      Signed-off-by: NMasanari Iida <standby24x7@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      33c3f71c
    • J
      ASoC: OMAP: ams-delta: drop .set_bias_level callback · 0379c1f5
      Janusz Krzysztofik 提交于
      This functionality has already been implemented in the cx20442 codec
      driver (commit f75a8ff6, "ASoC: cx20442:
      add bias control over a platform provided regulator"), no need to keep
      it here duplicated.
      
      Once done, remove the no longer used AMS_DELTA_LATCH2_MODEM_NRESET
      symbol from the board header file and a call to the regulator_toggle()
      helper function from the old API wrapper found in the board file.  While
      being at it, simplify the way the modem .pm callback handles the
      regulator and drop that helper function and its related consumer setup
      completely.
      
      Depends on patches 1/3 and 2/3 for clean apply and keep things working.
      Signed-off-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0379c1f5
    • J
      ARM: OMAP1: ams-delta: update the modem to use regulator API · aabf3173
      Janusz Krzysztofik 提交于
      After the CX20442 codec driver already takes care of enabling the codec
      power for itself (commit f75a8ff6,
      "ASoC: cx20442: add bias control over a platform provided regulator"),
      but before dropping the old bias control method from the Amstrad Delta
      ASoC sound card file, which in fact keeps the modem power always on,
      even on the ASoC device close for now, extend the modem setup with a
      power management callback which toggles the regulator up to the modem's
      needs, reusing the previously set up regulator consumer for this. Also,
      drop the MODEM_NRESET pin setup from the modem initialization procedure,
      as this operation was already ineffective since patch 1/3, and not
      needed because the regulator is set up as initially enabled.
      
      Depends on patch 1/3 "ARM: OMAP1: ams-delta: set up regulator over modem
      reset GPIO pin" to apply cleanly.
      Signed-off-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      aabf3173
    • J
      ARM: OMAP1: ams-delta: set up regulator over modem reset GPIO pin · ac2885df
      Janusz Krzysztofik 提交于
      The Amstrad Delta on-board latch2 bit named MODEM_NRESET, now available
      as a GPIO pin AMS_DELTA_GPIO_PIN_NMODEM_RESET, is used to power up/down
      (bring into/out of a reset state) two distinct on-board devices
      simultaneously: the modem, and the voice codec. As a consequence, that
      bit is, or can be, manipulated concurrently by two drivers, or their
      platform provided hooks.
      
      Instead of updating those drivers to use the gpiolib API as a new method
      of controlling the MODEM_NRESET pin state, like it was done to other
      drivers accessing latch2 pins, and still being vulnerable to potential
      concurrency conflicts, or trying to solve that sharing issue with a
      custom piece of code, set up a fixed regulator device on top of that
      GPIO pin, with the intention of updating both drivers to manipulate that
      regulator, not the GPIO pin directly.
      
      Before the ASoC driver is updated and the modem platform data expanded
      with a power management callback for switching its power, the
      ams_delta_latch_write() function, which still provides the old API for
      accessing latch2 functionality from not updated drivers, is modified to
      toggle the regulator instead of the MODEM_NRESET GPIO pin.  A helper
      function provided for balancing the regulator enable/disable operations,
      together with the consumer data needed for tracking the regulator state,
      will be removed once the drivers are updated.
      
      Depends on patch series "ARM: OMAP1: ams-delta: replace custom I/O with
      GPIO".
      Signed-off-by: NJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      ac2885df
  18. 02 3月, 2012 1 次提交