1. 07 3月, 2012 1 次提交
  2. 10 2月, 2012 1 次提交
    • R
      ARM: omap: fix broken twl-core dependencies and ifdefs · 6252547b
      Russell King 提交于
      In commit aeb5032b, a dependency on IRQ_DOMAIN was added, which causes
      regressions on previously working setups: a previously working non-DT
      kernel configuration now loses its PMIC support.  The lack of PMIC
      support in turn causes the loss of other functionality the kernel had.
      
      This dependency was added because the driver now registers its
      interrupts with the IRQ domain code, presumably to prevent a build error.
      
      The result is that OMAP3 oopses in the vp.c code (fixed by a previous
      commit) due to the lack of PMIC support.
      
      However, even with IRQ_DOMAIN enabled, the driver oopses:
      
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = c0004000
      [00000000] *pgd=00000000
      Internal error: Oops: 5 [#1] SMP
      Modules linked in:
      CPU: 1    Not tainted  (3.3.0-rc2+ #271)
      PC is at irq_domain_add+0x1c/0x134
      LR is at twl_probe+0xd0/0x370
      pc : [<c007bad0>]    lr : [<c029baac>]    psr: 00000113
      sp : df843c48  ip : df843c68  fp : df843c64
      r10: c02b93e4  r9 : 00000000  r8 : c029b9dc
      r7 : df9d8a00  r6 : c03bef90  r5 : 00000000  r4 : c03f5240
      r3 : 00000000  r2 : c03f5240  r1 : 00000015  r0 : c03f5240
      Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      Control: 10c5387d  Table: 8000404a  DAC: 00000015
      Process swapper/0 (pid: 1, stack limit = 0xdf8422f0)
      Stack: (0xdf843c48 to 0xdf844000)
      3c40:                   00000014 00000170 00000014 c03bef90 df843c9c df843c68
      3c60: c029baac c007bac0 00000000 df9d8a20 00000001 c03cd238 c02b93e4 df9d8a20
      3c80: df9d8a04 df9d8a00 c029b9dc df8cae08 df843cc4 df843ca0 c01eee70 c029b9e8
      ...
      Backtrace:
      [<c007bab4>] (irq_domain_add+0x0/0x134) from [<c029baac>] (twl_probe+0xd0/0x370)
       r6:c03bef90 r5:00000014 r4:00000170
      [<c029b9dc>] (twl_probe+0x0/0x370) from [<c01eee70>] (i2c_device_probe+0xb0/0xe4)
      [<c01eedc0>] (i2c_device_probe+0x0/0xe4) from [<c01d1f34>] (really_probe+0xa0/0x178)
       r8:df8f0070 r7:c03cd238 r6:df9d8a20 r5:df9d8a20 r4:df9d8a20
      [<c01d1e94>] (really_probe+0x0/0x178) from [<c01d205c>] (driver_probe_device+0x50/0x68)
       r7:df843d18 r6:df9d8a20 r5:c03cd238 r4:df9d8a20
      [<c01d200c>] (driver_probe_device+0x0/0x68) from [<c01d2148>] (__device_attach+0x44/0x48)
       r5:df9d8a20 r4:c03cd238
      [<c01d2104>] (__device_attach+0x0/0x48) from [<c01d0840>] (bus_for_each_drv+0x58/0x98)
       r5:c01d2104 r4:00000000
      [<c01d07e8>] (bus_for_each_drv+0x0/0x98) from [<c01d21f8>] (device_attach+0x80/0xac)
       r7:df9d8a28 r6:df9d8a54 r5:c03cd978 r4:df9d8a20
      [<c01d2178>] (device_attach+0x0/0xac) from [<c01d1430>] (bus_probe_device+0x34/0xa4)
       r6:df9d8a20 r5:c03cd978 r4:df9d8a20
      [<c01d13fc>] (bus_probe_device+0x0/0xa4) from [<c01cffb0>] (device_add+0x2a0/0x420)
       r6:00000000 r5:df9d8a20 r4:df9d8a20
      [<c01cfd10>] (device_add+0x0/0x420) from [<c01d0150>] (device_register+0x20/0x24)
       r8:df9d8a00 r7:df9d8a04 r6:df8f0048 r5:df9d8a00 r4:df9d8a20
      [<c01d0130>] (device_register+0x0/0x24) from [<c01ef8d4>] (i2c_new_device+0x118/0x180)
       r4:df9d8a20
      [<c01ef7bc>] (i2c_new_device+0x0/0x180) from [<c01efc88>] (i2c_register_adapter+0x140/0x204)
       r8:c03cd970 r7:00000000 r6:df8f0070 r5:df8a6300 r4:df8f0048
      [<c01efb48>] (i2c_register_adapter+0x0/0x204) from [<c01efe9c>] (i2c_add_numbered_adapter+0xb4/0xcc)
       r8:df8a4c54 r7:df8cae00 r6:df843e2c r5:df8f0048 r4:00000000
      [<c01efde8>] (i2c_add_numbered_adapter+0x0/0xcc) from [<c029ce1c>] (omap_i2c_probe+0x2f8/0x3b4)
       r6:00000000 r5:df8f0000 r4:df8f0070
      [<c029cb24>] (omap_i2c_probe+0x0/0x3b4) from [<c01d3484>] (platform_drv_probe+0x20/0x24)
      [<c01d3464>] (platform_drv_probe+0x0/0x24) from [<c01d1f34>] (really_probe+0xa0/0x178)
      [<c01d1e94>] (really_probe+0x0/0x178) from [<c01d205c>] (driver_probe_device+0x50/0x68)
       r7:df843ef0 r6:c03cdb2c r5:c03cdb2c r4:df8cae08
      [<c01d200c>] (driver_probe_device+0x0/0x68) from [<c01d20e0>] (__driver_attach+0x6c/0x90)
       r5:df8cae3c r4:df8cae08
      [<c01d2074>] (__driver_attach+0x0/0x90) from [<c01d08d8>] (bus_for_each_dev+0x58/0x98)
       r6:c03cdb2c r5:c01d2074 r4:00000000
      [<c01d0880>] (bus_for_each_dev+0x0/0x98) from [<c01d1d80>] (driver_attach+0x20/0x28)
       r7:df880b80 r6:c03cdb2c r5:c03cdb2c r4:c0394f28
      [<c01d1d60>] (driver_attach+0x0/0x28) from [<c01d115c>] (bus_add_driver+0xb4/0x230)
      [<c01d10a8>] (bus_add_driver+0x0/0x230) from [<c01d278c>] (driver_register+0xc8/0x154)
      [<c01d26c4>] (driver_register+0x0/0x154) from [<c01d37e4>] (platform_driver_register+0x4c/0x60)
       r8:00000000 r7:00000013 r6:c00384c8 r5:c0395180 r4:c0394f28
      [<c01d3798>] (platform_driver_register+0x0/0x60) from [<c038626c>] (omap_i2c_init_driver+0x14/0x1c)
      [<c0386258>] (omap_i2c_init_driver+0x0/0x1c) from [<c00087b8>] (do_one_initcall+0x9c/0x164)
      [<c000871c>] (do_one_initcall+0x0/0x164) from [<c036c2f4>] (kernel_init+0x90/0x138)
      [<c036c264>] (kernel_init+0x0/0x138) from [<c00384c8>] (do_exit+0x0/0x2ec)
       r5:c036c264 r4:00000000
      <0>Code: e24dd004 e5903014 e1a04000 e5905010 (e5933000)
      <4>---[ end trace 1b75b31a2719ed1c ]---
      
      This happens because we try to register an IRQ domain with a NULL ops
      structure, and the first thing irq_domain_add() does is try to
      dereference this ops structure.
      
      So, fix the problem by getting rid of the incorrect OF_IRQ ifdef and
      wrapping the IRQ domain bits of the driver with an IRQ_DOMAIN ifdef
      instead.
      Acked-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6252547b
  3. 09 1月, 2012 7 次提交
  4. 14 12月, 2011 2 次提交
  5. 13 12月, 2011 1 次提交
  6. 24 10月, 2011 7 次提交
  7. 22 8月, 2011 2 次提交
  8. 01 8月, 2011 5 次提交
  9. 05 7月, 2011 2 次提交
  10. 04 7月, 2011 1 次提交
  11. 28 5月, 2011 1 次提交
  12. 27 5月, 2011 8 次提交
    • J
      GPIO: TPS65910: Move driver to drivers/gpio/ · 83545d83
      Jorge Eduardo Candelaria 提交于
      The GPIO driver should reside in drivers/gpio/ for better
      organization.
      Signed-off-by: NJorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      Acked-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      83545d83
    • J
      linux-next: build failure after merge of the voltage tree · c01e36dd
      Jorge Eduardo Candelaria 提交于
      On May 10, 2011, at 9:27 PM, Stephen Rothwell wrote:
      
      > Hi Jorge,
      >
      > On Tue, 10 May 2011 12:30:36 -0500 Jorge Eduardo Candelaria <jedu@slimlogic.co.uk> wrote:
      >>
      >> On May 10, 2011, at 3:38 AM, Liam Girdwood wrote:
      >>
      >>> On Tue, 2011-05-10 at 12:44 +1000, Stephen Rothwell wrote:
      >>>> Hi Liam,
      >>>>
      >>>> After merging the voltage tree, today's linux-next build (x86_64
      >>>> allmodconfig) failed like this:
      >>>>
      >>>> ERROR: "tps65910_gpio_init" [drivers/mfd/tps65910.ko] undefined!
      >>>> ERROR: "tps65910_irq_init" [drivers/mfd/tps65910.ko] undefined!
      >>>> ERROR: "irq_modify_status" [drivers/mfd/tps65910-irq.ko] undefined!
      >>>> ERROR: "irq_set_chip_and_handler_name" [drivers/mfd/tps65910-irq.ko] undefined!
      >>>> ERROR: "handle_edge_irq" [drivers/mfd/tps65910-irq.ko] undefined!
      >>>>
      >>>> I have used the voltage tree from next-20110509 for today.
      >>>
      >>> Jorge, could you send a fix for this today.
      >>
      >> The following patch should solve this:
      >>
      >> From: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      >> MFD: Fix TPS65910 build
      >>
      >> Support for tps65910 as a module is not available. The driver can
      >> only be compiled as built-in. OTOH, the regulator driver can still
      >> be built as module without breaking the compilation.
      >>
      >> Signed-off-by: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      >
      > Today (even with the above patch included) I got these errors from the
      > x86_64 allmodconfig build:
      >
      > tps65910.c:(.text+0xf4140): undefined reference to `i2c_master_send'
      > drivers/built-in.o: In function `tps65910_i2c_read':
      > tps65910.c:(.text+0xf41d2): undefined reference to `i2c_transfer'
      > drivers/built-in.o: In function `tps65910_i2c_init':
      > tps65910.c:(.init.text+0xcb83): undefined reference to `i2c_register_driver'
      > drivers/built-in.o: In function `tps65910_i2c_exit':
      > tps65910.c:(.exit.text+0x6e0): undefined reference to `i2c_del_driver'
      >
      > I have used the voltage tree from next-20110509 again today.
      
      Following patch should fix the dependency problems. Please review:
      
      From: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      [PATCH] MFD: TPS65910: Fix I2C dependency
      
      TPS65910 driver can only be compiled built-in, so the I2C driver
      should be as well.
      Signed-off-by: NJorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      c01e36dd
    • J
      linux-next: build failure after merge of the voltage tree · aec519b5
      Jorge Eduardo Candelaria 提交于
      On May 10, 2011, at 3:38 AM, Liam Girdwood wrote:
      
      > On Tue, 2011-05-10 at 12:44 +1000, Stephen Rothwell wrote:
      >> Hi Liam,
      >>
      >> After merging the voltage tree, today's linux-next build (x86_64
      >> allmodconfig) failed like this:
      >>
      >> ERROR: "tps65910_gpio_init" [drivers/mfd/tps65910.ko] undefined!
      >> ERROR: "tps65910_irq_init" [drivers/mfd/tps65910.ko] undefined!
      >> ERROR: "irq_modify_status" [drivers/mfd/tps65910-irq.ko] undefined!
      >> ERROR: "irq_set_chip_and_handler_name" [drivers/mfd/tps65910-irq.ko] undefined!
      >> ERROR: "handle_edge_irq" [drivers/mfd/tps65910-irq.ko] undefined!
      >>
      >> I have used the voltage tree from next-20110509 for today.
      >
      > Jorge, could you send a fix for this today.
      >
      > Thanks
      >
      > Liam
      >
      
      The following patch should solve this:
      
      From: Jorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      MFD: Fix TPS65910 build
      
      Support for tps65910 as a module is not available. The driver can
      only be compiled as built-in. OTOH, the regulator driver can still
      be built as module without breaking the compilation.
      Signed-off-by: NJorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      aec519b5
    • G
      MFD: TPS65910: Add new mfd device for TPS65910 · 27c6750e
      Graeme Gregory 提交于
      The TPS65910 chip is a power management IC for multimedia and handheld
      devices. It contains the following components:
      
      - Regulators
      - GPIO controller
      - RTC
      
      The tps65910 core driver is registered as a platform driver and provides
      communication through I2C with the host device for the different
      components.
      Signed-off-by: NGraeme Gregory <gg@slimlogic.co.uk>
      Signed-off-by: NJorge Eduardo Candelaria <jedu@slimlogic.co.uk>
      Acked-by: NSamuel Ortiz <sameo@linux.intel.com>
      Signed-off-by: NLiam Girdwood <lrg@slimlogic.co.uk>
      27c6750e
    • A
      mfd: Add pm8xxx irq support · c013f0a5
      Abhijeet Dharmapurikar 提交于
      Add support for the irq controller in Qualcomm 8xxx pmic. The 8xxx
      interrupt controller provides control for gpio and mpp configured as
      interrupts in addition to other subdevice interrupts. The interrupt
      controller also provides a way to read the real time status of an
      interrupt. This real time status is the only way one can get the
      input values of gpio and mpp lines.
      Signed-off-by: NAbhijeet Dharmapurikar <adharmap@codeaurora.org>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      c013f0a5
    • A
      mfd: Add Qualcomm PMIC 8921 core driver · cbdb53e1
      Abhijeet Dharmapurikar 提交于
      Add support for the Qualcomm PM8921 PMIC chip. The core driver
      will communicate with the PMIC chip via the MSM SSBI bus.
      Signed-off-by: NAbhijeet Dharmapurikar <adharmap@codeaurora.org>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      cbdb53e1
    • A
      mfd: Group NXP PCF50633* drivers together · 1305134e
      Axel Lin 提交于
      PCF50633_ADC and PCF50633_GPIO depends on MFD_PCF50633.
      Thus group NXP PCF50633* drivers together.
      Signed-off-by: NAxel Lin <axel.lin@gmail.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      1305134e
    • A
      mfd: Group TPSxxxxx power management chips together · 37df003c
      Axel Lin 提交于
      Group TPSxxxxx power management chips together and sort in alphabetical order.
      This change makes it easier for users to find config options.
      Signed-off-by: NAxel Lin <axel.lin@gmail.com>
      Signed-off-by: NSamuel Ortiz <sameo@linux.intel.com>
      37df003c
  13. 25 5月, 2011 2 次提交