- 27 6月, 2013 2 次提交
-
-
由 Marek Belisko 提交于
This was found when using pwm-led on am33xx and enable heartbeat trigger. [ 808.624876] ================================= [ 808.629443] [ INFO: inconsistent lock state ] [ 808.634021] 3.9.0 #2 Not tainted [ 808.637415] --------------------------------- [ 808.641981] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. [ 808.648288] swapper/0 [HC0[0]:SC1[1]:HE1:SE0] takes: [ 808.653494] (prepare_lock){+.?.+.}, at: [<c027c211>] clk_unprepare+0x15/0x24 [ 808.661040] {SOFTIRQ-ON-W} state was registered at: [ 808.666155] [<c004ec4d>] __lock_acquire+0x411/0x824 [ 808.671465] [<c004f359>] lock_acquire+0x41/0x50 [ 808.676412] [<c039ee9d>] mutex_lock_nested+0x31/0x1d8 [ 808.681912] [<c027c275>] clk_prepare+0x15/0x28 [ 808.686764] [<c0590c6b>] _init+0x117/0x1e0 [ 808.691256] [<c0019ef9>] omap_hwmod_for_each+0x29/0x3c [ 808.696842] [<c0591107>] __omap_hwmod_setup_all+0x17/0x2c [ 808.702696] [<c0008653>] do_one_initcall+0xc3/0x10c [ 808.708017] [<c058a627>] kernel_init_freeable+0xa7/0x134 [ 808.713778] [<c039a543>] kernel_init+0x7/0x98 [ 808.718544] [<c000cd95>] ret_from_fork+0x11/0x3c [ 808.723583] irq event stamp: 1379172 [ 808.727328] hardirqs last enabled at (1379172): [<c03a0759>] _raw_spin_unlock_irqrestore+0x21/0x30 [ 808.736828] hardirqs last disabled at (1379171): [<c03a03c3>] _raw_spin_lock_irqsave+0x13/0x38 [ 808.745876] softirqs last enabled at (1379164): [<c002ae5d>] irq_enter+0x49/0x4c [ 808.753747] softirqs last disabled at (1379165): [<c002aec3>] irq_exit+0x63/0x88 [ 808.761518] [ 808.761518] other info that might help us debug this: [ 808.768373] Possible unsafe locking scenario: [ 808.768373] [ 808.774578] CPU0 [ 808.777141] ---- [ 808.779705] lock(prepare_lock); [ 808.783186] <Interrupt> [ 808.785929] lock(prepare_lock); [ 808.789595] [ 808.789595] *** DEADLOCK *** [ 808.789595] [ 808.795805] 1 lock held by swapper/0: [ 808.799643] #0: (((&heartbeat_data->timer))){+.-...}, at: [<c002e204>] call_timer_fn+0x0/0x90 [ 808.808814] [ 808.808814] stack backtrace: [ 808.813402] [<c000ff19>] (unwind_backtrace+0x1/0x98) from [<c039bd75>] (print_usage_bug.part.25+0x16d/0x1cc) [ 808.823721] [<c039bd75>] (print_usage_bug.part.25+0x16d/0x1cc) from [<c004e595>] (mark_lock+0x18d/0x434) [ 808.833669] [<c004e595>] (mark_lock+0x18d/0x434) from [<c004ec1d>] (__lock_acquire+0x3e1/0x824) [ 808.842803] [<c004ec1d>] (__lock_acquire+0x3e1/0x824) from [<c004f359>] (lock_acquire+0x41/0x50) [ 808.852031] [<c004f359>] (lock_acquire+0x41/0x50) from [<c039ee9d>] (mutex_lock_nested+0x31/0x1d8) [ 808.861433] [<c039ee9d>] (mutex_lock_nested+0x31/0x1d8) from [<c027c211>] (clk_unprepare+0x15/0x24) [ 808.870930] [<c027c211>] (clk_unprepare+0x15/0x24) from [<c019f7bf>] (ehrpwm_pwm_disable+0x5f/0x80) [ 808.880431] [<c019f7bf>] (ehrpwm_pwm_disable+0x5f/0x80) from [<c019f29f>] (pwm_disable+0x27/0x28) [ 808.889751] [<c019f29f>] (pwm_disable+0x27/0x28) from [<c026f8f3>] (led_heartbeat_function+0x3f/0xb0) [ 808.899431] [<c026f8f3>] (led_heartbeat_function+0x3f/0xb0) from [<c002e249>] (call_timer_fn+0x45/0x90) [ 808.909288] [<c002e249>] (call_timer_fn+0x45/0x90) from [<c002e399>] (run_timer_softirq+0x105/0x17c) [ 808.918884] [<c002e399>] (run_timer_softirq+0x105/0x17c) from [<c002abc5>] (__do_softirq+0xa5/0x150) [ 808.928486] [<c002abc5>] (__do_softirq+0xa5/0x150) from [<c002aec3>] (irq_exit+0x63/0x88) [ 808.937098] [<c002aec3>] (irq_exit+0x63/0x88) from [<c000d599>] (handle_IRQ+0x21/0x54) [ 808.945415] [<c000d599>] (handle_IRQ+0x21/0x54) from [<c0008495>] (omap3_intc_handle_irq+0x5d/0x68) [ 808.954900] [<c0008495>] (omap3_intc_handle_irq+0x5d/0x68) from [<c000c7ff>] (__irq_svc+0x3f/0x64) [ 808.964287] Exception stack(0xc05b1f68 to 0xc05b1fb0) [ 808.969587] 1f60: 00000001 00000001 00000000 00000000 c05b0000 c0619748 [ 808.978158] 1f80: c05b0000 c05b0000 c0619748 413fc082 00000000 00000000 01000000 c05b1fb0 [ 808.986719] 1fa0: c004f989 c000d6f0 400f0033 ffffffff [ 808.992024] [<c000c7ff>] (__irq_svc+0x3f/0x64) from [<c000d6f0>] (cpu_idle+0x60/0x98) [ 809.000250] [<c000d6f0>] (cpu_idle+0x60/0x98) from [<c058a535>] (start_kernel+0x1e9/0x234) Remove non atomic clk api calls and use only atomic for enable/disable because can be called from atomic context (led_heartbeat_function is timer callback). Signed-off-by: NMarek Belisko <marek.belisko@streamunlimited.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Axel Lin 提交于
Current code actually does not set MODE1_SLEEP bit because the new value for bitmask (0x1) is wrong. To set MODE1_SLEEP bit, we should pass MODE1_SLEEP as the new value for bitmask. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Reviewed-by: NSteffen Trumtrar <s.trumtrar@pengutronix.de> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 26 6月, 2013 1 次提交
-
-
由 Axel Lin 提交于
This driver can be built as module, add MODULE_ALIAS to make module auto loading work. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 25 6月, 2013 1 次提交
-
-
由 Wei Yongjun 提交于
In case of error, the function devm_ioremap_resource() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn> Reviewed-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NLaurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 21 6月, 2013 2 次提交
-
-
由 Laurent Pinchart 提交于
The Timer Pulse Unit (TPU) is a 4-channels 16-bit timer used to generate waveforms. This driver exposes PWM functions through the PWM API for other drivers to use. The code is loosely based on the leds-renesas-tpu driver by Magnus Damm and the TPU PWM driver shipped in the Armadillo EVA 800 kernel sources. Signed-off-by: NLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: NAxel Lin <axel.lin@ingics.com> Tested-by: NSimon Horman <horms@verge.net.au> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 H Hartley Sweeten 提交于
Add a simple sysfs interface to the generic PWM framework. /sys/class/pwm/ `-- pwmchipN/ for each PWM chip |-- export (w/o) ask the kernel to export a PWM channel |-- npwm (r/o) number of PWM channels in this PWM chip |-- pwmX/ for each exported PWM channel | |-- duty_cycle (r/w) duty cycle (in nanoseconds) | |-- enable (r/w) enable/disable PWM | |-- period (r/w) period (in nanoseconds) | `-- polarity (r/w) polarity of PWM (normal/inversed) `-- unexport (w/o) return a PWM channel to the kernel Based on work by Lars Poeschel. Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com> Cc: Thierry Reding <thierry.reding@gmail.com> Cc: Lars Poeschel <poeschel@lemonage.de> Cc: Ryan Mallon <rmallon@gmail.com> Cc: Rob Landley <rob@landley.net> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 12 6月, 2013 3 次提交
-
-
由 Thierry Reding 提交于
Some drivers don't set the .owner fields of the struct device_driver or struct pwm_ops, which causes the module usage count to become wrong. Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Steffen Trumtrar 提交于
Add pwm driver for the NXP pca9685 16 channel pwm-led controller. The driver is really barebones at this stage. E.g. the OE' pin and therefore the corresponding registers are not supported. The driver was tested on a HW where this pin is tied to GND. Signed-off-by: NSteffen Trumtrar <s.trumtrar@pengutronix.de> [thierry.reding@gmail.com: style and whitespace cleanups] Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
由 Boris BREZILLON 提交于
Replace clk_enable/disable with clk_prepare_enable/disable_unprepare to avoid common clk framework warnings. Signed-off-by: NBoris BREZILLON <b.brezillon@overkiz.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 10 6月, 2013 1 次提交
-
-
由 Wolfram Sang 提交于
The allocated object should be the size of what the pointer is pointing to and not the size of the pointer itself. Signed-off-by: NWolfram Sang <wsa@the-dreams.de> Reviewed-by: NAndy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 27 5月, 2013 1 次提交
-
-
由 Fabio Estevam 提交于
Since commit ab78029e (drivers/pinctrl: grab default handles from device core), we can rely on device core for handling pinctrl. So remove devm_pinctrl_get_select_default() from the driver. Cc: Thierry Reding <thierry.reding@avionic-design.de> Cc: <linux-kernel@vger.kernel.org> Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com> Tested-by: NShawn Guo <shawn.guo@linaro.org> Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
-
- 18 5月, 2013 1 次提交
-
-
由 Wolfram Sang 提交于
devm_ioremap_resource does sanity checks on the given resource. No need to duplicate this in the driver. Signed-off-by: NWolfram Sang <wsa@the-dreams.de> Acked-by: NStephen Warren <swarren@nvidia.com>
-
- 23 4月, 2013 3 次提交
-
-
由 Axel Lin 提交于
lpc32xx_pwm_config() is supposed to set duty_ns and period_ns, it should not change PWM_ENABLE bit. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Tested-by: NRoland Stigge <stigge@antcom.de> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
According to the LPC32x0 User Manual [1]: For both PWM1 and PWM2 Control Registers: BIT 31: This bit gates the PWM_CLK signal and enables the external output pin to the PWM_PIN_STATE logical level. 0 = PWM disabled. (Default) 1 = PWM enabled So in lpc32xx_pwm_enable(), we should set PWM_ENABLE bit. In lpc32xx_pwm_disable(), we should just clear PWM_ENABLE bit rather than write 0 to the register which will also clear PWMx_RELOADV and PWMx_DUTY bits. [1] http://www.nxp.com/documents/user_manual/UM10326.pdfSigned-off-by: NAxel Lin <axel.lin@ingics.com> Tested-by: NRoland Stigge <stigge@antcom.de> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Thierry Reding 提交于
A few drivers already annotate this properly. Make the same change for all other OF supporting drivers. Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de> Acked-by: NShawn Guo <shawn.guo@linaro.org> Acked-by: NAlexandre Pereira da Silva <aletes.xgr@gmail.com> Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
-
- 02 4月, 2013 12 次提交
-
-
由 Axel Lin 提交于
Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
PWM_ID_BASE() is not used after convert to PWM framework, remove it. Also update driver_data field of struct platform_device_id accordingly. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NEric Miao <eric.y.miao@gmail.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NShiraz Hashim <shiraz.hashim@st.com> Acked-by: NViresh Kumar <viresh.kumar@linaro.org> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NShawn Guo <shawn.guo@linaro.org> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Return proper error instead of 0 if twl6030_pwm_enable() fails. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
clk_enable/clk_disable maintain an enable_count, clk_prepare and clk_unprepare also maintain a prepare_count. These APIs will do prepare/enable when the first user calling these APIs, and do disable/unprepare when the corresponding counter reach 0. Thus We don't need to maintain a clk_enabled counter here. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NEric Miao <eric.y.miao@gmail.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
We can test PWMF_ENABLED bit to know if pwm is enabled or not. Thus remove enabled field from struct imx_chip. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Add missing .owner of struct pwm_ops. This prevents the module from being removed from underneath its users. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Add missing .owner of struct pwm_ops. This prevents the module from being removed from underneath its users. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Acked-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Add missing .owner of struct pwm_ops. This prevents the module from being removed from underneath its users. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Add missing .owner of struct pwm_ops. This prevents the module from being removed from underneath its users. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
The logic to check return value of clk_enable() and clk_prepare() is reversed, fix it. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Cc: stable@vger.kernel.org Acked-by: NViresh Kumar <viresh.kumar@linaro.org> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 26 3月, 2013 3 次提交
-
-
由 Axel Lin 提交于
Both ehrpwm_pwm_save_context() and ehrpwm_pwm_restore_context() are only used in this file, make them static. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Both ecap_pwm_save_context() and ecap_pwm_restore_context() are only used in this file, make them static. Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Axel Lin 提交于
Signed-off-by: NAxel Lin <axel.lin@ingics.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 22 3月, 2013 1 次提交
-
-
由 Philip Avinash 提交于
Add EHRPWM and ECAP support build support for DAVINCI_DA8XX platforms. Also, since DAVINCI platforms doesn't support TI-PWM-Subsystem module, remove the select option for CONFIG_PWM_TIPWMSS. Also, update CONFIG_PWM_TIPWMSS compiler directive appropriately in pwm-tipwmss.h to fix the below compiler error upon removal of CONFIG_PWM_TIPWMSS for DAVINCI platforms. drivers/pwm/pwm-tiecap.c: In function 'ecap_pwm_probe': drivers/pwm/pwm-tiecap.c:263:4: error: 'PWMSS_ECAPCLK_EN' undeclared (first use in this function) drivers/pwm/pwm-tiecap.c:263:4: note: each undeclared identifier is reported only once for each function it appears in drivers/pwm/pwm-tiecap.c:264:17: error: 'PWMSS_ECAPCLK_EN_ACK' undeclared (first use in this function) drivers/pwm/pwm-tiecap.c: In function 'ecap_pwm_remove': drivers/pwm/pwm-tiecap.c:291:49: error: 'PWMSS_ECAPCLK_STOP_REQ' undeclared (first use in this function) make[2]: *** [drivers/pwm/pwm-tiecap.o] Error 1 make[1]: *** [drivers/pwm] Error 2 make: *** [drivers] Error 2 Signed-off-by: NPhilip Avinash <avinashphilip@ti.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 11 3月, 2013 3 次提交
-
-
由 Jingoo Han 提交于
This patch adds CONFIG_PM_SLEEP to suspend/resume functions to fix the following build warning when CONFIG_PM_SLEEP is not selected. drivers/pwm/pwm-tiehrpwm.c:562:12: warning: 'ehrpwm_pwm_suspend' defined but not used [-Wunused-function] drivers/pwm/pwm-tiehrpwm.c:580:12: warning: 'ehrpwm_pwm_resume' defined but not used [-Wunused-function Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Jingoo Han 提交于
This patch adds CONFIG_PM_SLEEP to suspend/resume functions to fix the following build warning when CONFIG_PM_SLEEP is not selected. drivers/pwm/pwm-tipwmss.c:104:12: warning: 'pwmss_suspend' defined but not used [-Wunused-function] drivers/pwm/pwm-tipwmss.c:113:12: warning: 'pwmss_resume' defined but not used [-Wunused-function] Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Jingoo Han 提交于
This patch adds CONFIG_PM_SLEEP to suspend/resume functions to fix the following build warning when CONFIG_PM_SLEEP is not selected. drivers/pwm/pwm-tiecap.c:314:12: warning: 'ecap_pwm_suspend' defined but not used [-Wunused-function] drivers/pwm/pwm-tiecap.c:328:12: warning: 'ecap_pwm_resume' defined but not used [-Wunused-function] Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 08 3月, 2013 2 次提交
-
-
由 Jingoo Han 提交于
Instead of using legacy suspend/resume methods, using newer dev_pm_ops structure allows better control over power management. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
由 Jingoo Han 提交于
Use devm_kzalloc() to make cleanup paths more simple. Signed-off-by: NJingoo Han <jg1.han@samsung.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 17 2月, 2013 1 次提交
-
-
由 Johannes Thumshirn 提交于
Always use to_twl() for converting into private data instead of container_of(). Signed-off-by: NJohannes Thumshirn <morbidrsa@gmail.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 16 2月, 2013 1 次提交
-
-
由 Stephen Warren 提交于
Tegra only supports, and always enables, device tree. Remove all ifdefs for DT support from the driver. Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NThierry Reding <thierry.reding@avionic-design.de>
-
- 02 2月, 2013 2 次提交
-
-
由 Peter Ujfalusi 提交于
When booted with DT users can use devm version of of_pwm_get() to benefit from automatic resource release. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: NThierry Reding <thierry.reding@avionic-design.de> Signed-off-by: NBryan Wu <cooloney@gmail.com>
-
由 Peter Ujfalusi 提交于
Allow client driver to use of_pwm_get() to get the PWM they need. This is needed for drivers which handle more than one PWM separately, like leds-pwm driver, which have: pwmleds { compatible = "pwm-leds"; kpad { label = "omap4::keypad"; pwms = <&twl_pwm 0 7812500>; max-brightness = <127>; }; charging { label = "omap4:green:chrg"; pwms = <&twl_pwmled 0 7812500>; max-brightness = <255>; }; }; in the dts files. Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: NThierry Reding <thierry.reding@avionic-design.de> Signed-off-by: NBryan Wu <cooloney@gmail.com>
-