1
0
Fork 0
Commit Graph

8 Commits (redonkable)

Author SHA1 Message Date
Robin Gong dcee753abe MLK-14275: regulator: pf1550-regulator-rpmsg: clear 'u32 val' before read value by rpmsg
Actually, m4 only fill the least 1byte, so we'd better clear 'val' before
reading by rpmsg, thus the gabage data will not bother us.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
(cherry picked from commit df3428c6588a00fa153a3b6996cc33b21b69efb6)
2018-10-29 11:10:38 +08:00
Robin Gong 8762bcd06f MLK-14241-1 regulator: pf1550-regulator-rpmsg: add mutex for pm_qos_add_request reentry
Multi drivers(mmc, cpufreq..) may access pf1550 regulator rpmsg driver at
the same time, so we have to add mutex for this multi-entry case. Otherwise
the below kernel warning maybe triggered:

------------[ cut here ]------------
WARNING: CPU: 0 PID: 19 at kernel/power/qos.c:453 pf1550_send_message+0x4c/0xf8()
pm_qos_add_request() called for already added request
Modules linked in:
CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted 4.1.33-02293-g80b8c19 #636
Hardware name: Freescale i.MX7ULP (Device Tree)
Workqueue: events od_dbs_timer
[<80015d78>] (unwind_backtrace) from [<8001271c>] (show_stack+0x10/0x14)
[<8001271c>] (show_stack) from [<8082ba50>] (dump_stack+0x88/0x9c)
[<8082ba50>] (dump_stack) from [<800387c8>] (warn_slowpath_common+0x80/0xb0)
[<800387c8>] (warn_slowpath_common) from [<80038828>] (warn_slowpath_fmt+0x30/0x40)
[<80038828>] (warn_slowpath_fmt) from [<80341180>] (pf1550_send_message+0x4c/0xf8)
[<80341180>] (pf1550_send_message) from [<80341504>] (pf1550_get_voltage+0x48/0x5c)
[<80341504>] (pf1550_get_voltage) from [<803370a0>] (_regulator_get_voltage+0x68/0xb4)
[<803370a0>] (_regulator_get_voltage) from [<8033936c>] (_regulator_do_set_voltage+0x5c/0x3e4)
[<8033936c>] (_regulator_do_set_voltage) from [<803397a4>] (regulator_set_voltage+0xb0/0x14c)
[<803397a4>] (regulator_set_voltage) from [<8058dae8>] (imx7ulp_set_target+0x178/0x238)
[<8058dae8>] (imx7ulp_set_target) from [<80584d14>] (__cpufreq_driver_target+0x164/0x294)
[<80584d14>] (__cpufreq_driver_target) from [<8058bb08>] (dbs_check_cpu+0x1a0/0x1e0)
[<8058bb08>] (dbs_check_cpu) from [<805888e8>] (od_dbs_timer+0x80/0x138)
[<805888e8>] (od_dbs_timer) from [<8004bbbc>] (process_one_work+0x118/0x3e4)
[<8004bbbc>] (process_one_work) from [<8004bed4>] (worker_thread+0x4c/0x4f4)
[<8004bed4>] (worker_thread) from [<80050e4c>] (kthread+0xdc/0xf4)
[<80050e4c>] (kthread) from [<8000f528>] (ret_from_fork+0x14/0x2c)
---[ end trace f8281ecde7a0b4ce ]---
------------[ cut here ]------------

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
2018-10-29 11:10:38 +08:00
Robin Gong d67e7f357f MLK-13733-3 regulator: pf1550-regulator-rpmsg: update pf1550-rpmsg interface
update driver since m4 side refine the header structure.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
2018-10-29 11:10:38 +08:00
Robin Gong f52eb75149 MLK-13720-4: regulator: pf1550-regulator-rpmsg: fix "rpmsg_send timeout"
Sometimes rpmsg callback triggered quickly before reinit_completion, then
cause "rpmsg_send timeout!". Move reinit_completion to the place before
rpmsg_send to make sure the completion is ready before callback triggered.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
(cherry picked from commit 8e44277d3f27e5f46232bd705ee9ef594db42575)
2018-10-29 11:10:38 +08:00
Robin Gong 5835c15e74 MLK-13720-3: regulator: pf1550-regulator-rpmsg: use the specific pf1550 rpmsg channel name
Since multi rpmsg instances supported now, we can use the specific rpmsg
channel name "rpmsg-regulator-channel" instead of "rpmsg-openamp-demo-channel"

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
(cherry picked from commit 8a9d73fe43da2833951b428f389aac01aef7cb2a)
2018-10-29 11:10:38 +08:00
Robin Gong c7d462b951 MLK-13636-2 regulator: pf1550-regulator-rmpsg: enable pm_qos to prevent low power idle
CLKE bit of MU_CR may bring VLS state mess in M4 side, so use pm_qos instead
to prevent i.mx7ulp A7 core enter STOP mode during pf1550 send command by rpmsg

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
2018-10-29 11:10:38 +08:00
Dong Aisheng 70cba2a5c1 MLK-13615-1 regulator: pf1550-regulator-rpmsg: should set voltage closest to min_uV
According to API definition, Set the voltage for the regulator within the
range specified, the driver should select the voltage closest to min_uV.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
2018-10-29 11:10:38 +08:00
Robin Gong b4a4b821f4 MLK-13577-3 regulator: pf1550-regulator-rpmsg: add pf1550 regulator rpmsg driver
add pf1550 regulator rpmsg driver to control pf1550 on the m4 side
by rpmsg.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
2018-10-29 11:10:38 +08:00