<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/soc/qcom/smsm.c, branch v5.4</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284</title>
<updated>2019-06-05T15:36:37+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2019-05-29T14:17:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=97fb5e8d9b57f10f294303c9a5d1bd033eded6bf'/>
<id>97fb5e8d9b57f10f294303c9a5d1bd033eded6bf</id>
<content type='text'>
Based on 1 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license version 2 and
  only version 2 as published by the free software foundation this
  program is distributed in the hope that it will be useful but
  without any warranty without even the implied warranty of
  merchantability or fitness for a particular purpose see the gnu
  general public license for more details

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-only

has been chosen to replace the boilerplate/reference in 294 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Reviewed-by: Alexios Zavras &lt;alexios.zavras@intel.com&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on 1 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license version 2 and
  only version 2 as published by the free software foundation this
  program is distributed in the hope that it will be useful but
  without any warranty without even the implied warranty of
  merchantability or fitness for a particular purpose see the gnu
  general public license for more details

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-only

has been chosen to replace the boilerplate/reference in 294 file(s).

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;
Reviewed-by: Alexios Zavras &lt;alexios.zavras@intel.com&gt;
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>soc: qcom: smsm: fix child-node lookup</title>
<updated>2017-12-20T21:38:34+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>johan@kernel.org</email>
</author>
<published>2017-11-15T11:07:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8804517e9fc16c10081ff5e42e7d80704973a8e2'/>
<id>8804517e9fc16c10081ff5e42e7d80704973a8e2</id>
<content type='text'>
Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

Note that the original premature free of the parent node has already
been fixed separately.

Also note that this pattern of looking up the first child node with a
given property is rare enough that a generic helper is probably not
warranted.

Fixes: c97c4090ff72 ("soc: qcom: smsm: Add driver for Qualcomm SMSM")
Fixes: 3e8b55411468 ("soc: qcom: smsm: fix of_node refcnting problem")
Cc: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Cc: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix child-node lookup during probe, which ended up searching the whole
device tree depth-first starting at the parent rather than just matching
on its children.

Note that the original premature free of the parent node has already
been fixed separately.

Also note that this pattern of looking up the first child node with a
given property is rare enough that a generic helper is probably not
warranted.

Fixes: c97c4090ff72 ("soc: qcom: smsm: Add driver for Qualcomm SMSM")
Fixes: 3e8b55411468 ("soc: qcom: smsm: fix of_node refcnting problem")
Cc: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Cc: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;johan@kernel.org&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>soc: qcom: smsm: fix of_node refcnting problem</title>
<updated>2017-08-08T19:37:42+00:00</updated>
<author>
<name>Rob Clark</name>
<email>robdclark@gmail.com</email>
</author>
<published>2017-06-30T15:47:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3e8b55411468ef9aa4401282a869715c45b0310b'/>
<id>3e8b55411468ef9aa4401282a869715c45b0310b</id>
<content type='text'>
of_find_node_with_property() drops the reference to the 'from' node,
which eventually (after enough -EPROBE_DEFERs) drops the last reference
to the node causing all sorts of fun problems, and this nice splat.

  BUG: sleeping function called from invalid context at ../kernel/locking/mutex.c:747
  in_atomic(): 1, irqs_disabled(): 128, pid: 33, name: kworker/0:1
  4 locks held by kworker/0:1/33:
   #0:  ("events"){.+.+.+}, at: [&lt;ffff0000080fa91c&gt;] process_one_work+0x1a4/0x728
   #1:  (deferred_probe_work){+.+.+.}, at: [&lt;ffff0000080fa91c&gt;] process_one_work+0x1a4/0x728
   #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;ffff000008676078&gt;] __device_attach+0x30/0x168
   #3:  (devtree_lock){......}, at: [&lt;ffff000008828fd0&gt;] of_find_node_with_property+0x30/0xe0
  irq event stamp: 18976
  hardirqs last  enabled at (18975): [&lt;ffff00000815794c&gt;] __down_trylock_console_sem+0x74/0xb8
  hardirqs last disabled at (18976): [&lt;ffff0000089e26d4&gt;] _raw_spin_lock_irqsave+0x2c/0x78
  softirqs last  enabled at (16880): [&lt;ffff0000080e0f00&gt;] __do_softirq+0x580/0x640
  softirqs last disabled at (16871): [&lt;ffff0000080e13a4&gt;] irq_exit+0xe4/0x138
  CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G            E   4.12.0-rc5+ #1455
  Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
  Workqueue: events deferred_probe_work_func
  Call trace:
  [&lt;ffff000008089ee0&gt;] dump_backtrace+0x0/0x230
  [&lt;ffff00000808a134&gt;] show_stack+0x24/0x30
  [&lt;ffff0000084e1944&gt;] dump_stack+0xac/0xe8
  [&lt;ffff00000810d7e0&gt;] ___might_sleep+0x150/0x230
  [&lt;ffff00000810d918&gt;] __might_sleep+0x58/0x90
  [&lt;ffff0000089dde18&gt;] __mutex_lock+0x50/0x870
  [&lt;ffff0000089de674&gt;] mutex_lock_nested+0x3c/0x50
  [&lt;ffff000008388ae0&gt;] kernfs_remove+0x30/0x50
  [&lt;ffff00000838b720&gt;] sysfs_remove_dir+0x58/0x70
  [&lt;ffff0000084e393c&gt;] kobject_del+0x1c/0x58
  [&lt;ffff0000084e374c&gt;] kobject_put+0xb4/0x208
  [&lt;ffff00000882c364&gt;] of_node_put+0x24/0x30
  [&lt;ffff000008829018&gt;] of_find_node_with_property+0x78/0xe0
  [&lt;ffff000000aff5f4&gt;] qcom_smsm_probe+0x194/0x720 [smsm]
  [&lt;ffff0000086793b4&gt;] platform_drv_probe+0x74/0x110
  [&lt;ffff0000086765bc&gt;] driver_probe_device+0x2b4/0x420
  [&lt;ffff000008676920&gt;] __device_attach_driver+0xd0/0x150
  [&lt;ffff000008673e78&gt;] bus_for_each_drv+0x68/0xa8
  [&lt;ffff00000867611c&gt;] __device_attach+0xd4/0x168
  [&lt;ffff000008676a1c&gt;] device_initial_probe+0x24/0x30
  [&lt;ffff000008675380&gt;] bus_probe_device+0xa0/0xa8
  [&lt;ffff000008675948&gt;] deferred_probe_work_func+0xb8/0xf8
  [&lt;ffff0000080fa9d4&gt;] process_one_work+0x25c/0x728
  [&lt;ffff0000080faef4&gt;] worker_thread+0x54/0x3d8
  [&lt;ffff0000081031d8&gt;] kthread+0x110/0x140
  [&lt;ffff000008082d90&gt;] ret_from_fork+0x10/0x40
  OF: ERROR: Bad of_node_put() on /smsm
  CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G        W   E   4.12.0-rc5+ #1455
  Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
  Workqueue: events deferred_probe_work_func

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
of_find_node_with_property() drops the reference to the 'from' node,
which eventually (after enough -EPROBE_DEFERs) drops the last reference
to the node causing all sorts of fun problems, and this nice splat.

  BUG: sleeping function called from invalid context at ../kernel/locking/mutex.c:747
  in_atomic(): 1, irqs_disabled(): 128, pid: 33, name: kworker/0:1
  4 locks held by kworker/0:1/33:
   #0:  ("events"){.+.+.+}, at: [&lt;ffff0000080fa91c&gt;] process_one_work+0x1a4/0x728
   #1:  (deferred_probe_work){+.+.+.}, at: [&lt;ffff0000080fa91c&gt;] process_one_work+0x1a4/0x728
   #2:  (&amp;dev-&gt;mutex){......}, at: [&lt;ffff000008676078&gt;] __device_attach+0x30/0x168
   #3:  (devtree_lock){......}, at: [&lt;ffff000008828fd0&gt;] of_find_node_with_property+0x30/0xe0
  irq event stamp: 18976
  hardirqs last  enabled at (18975): [&lt;ffff00000815794c&gt;] __down_trylock_console_sem+0x74/0xb8
  hardirqs last disabled at (18976): [&lt;ffff0000089e26d4&gt;] _raw_spin_lock_irqsave+0x2c/0x78
  softirqs last  enabled at (16880): [&lt;ffff0000080e0f00&gt;] __do_softirq+0x580/0x640
  softirqs last disabled at (16871): [&lt;ffff0000080e13a4&gt;] irq_exit+0xe4/0x138
  CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G            E   4.12.0-rc5+ #1455
  Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
  Workqueue: events deferred_probe_work_func
  Call trace:
  [&lt;ffff000008089ee0&gt;] dump_backtrace+0x0/0x230
  [&lt;ffff00000808a134&gt;] show_stack+0x24/0x30
  [&lt;ffff0000084e1944&gt;] dump_stack+0xac/0xe8
  [&lt;ffff00000810d7e0&gt;] ___might_sleep+0x150/0x230
  [&lt;ffff00000810d918&gt;] __might_sleep+0x58/0x90
  [&lt;ffff0000089dde18&gt;] __mutex_lock+0x50/0x870
  [&lt;ffff0000089de674&gt;] mutex_lock_nested+0x3c/0x50
  [&lt;ffff000008388ae0&gt;] kernfs_remove+0x30/0x50
  [&lt;ffff00000838b720&gt;] sysfs_remove_dir+0x58/0x70
  [&lt;ffff0000084e393c&gt;] kobject_del+0x1c/0x58
  [&lt;ffff0000084e374c&gt;] kobject_put+0xb4/0x208
  [&lt;ffff00000882c364&gt;] of_node_put+0x24/0x30
  [&lt;ffff000008829018&gt;] of_find_node_with_property+0x78/0xe0
  [&lt;ffff000000aff5f4&gt;] qcom_smsm_probe+0x194/0x720 [smsm]
  [&lt;ffff0000086793b4&gt;] platform_drv_probe+0x74/0x110
  [&lt;ffff0000086765bc&gt;] driver_probe_device+0x2b4/0x420
  [&lt;ffff000008676920&gt;] __device_attach_driver+0xd0/0x150
  [&lt;ffff000008673e78&gt;] bus_for_each_drv+0x68/0xa8
  [&lt;ffff00000867611c&gt;] __device_attach+0xd4/0x168
  [&lt;ffff000008676a1c&gt;] device_initial_probe+0x24/0x30
  [&lt;ffff000008675380&gt;] bus_probe_device+0xa0/0xa8
  [&lt;ffff000008675948&gt;] deferred_probe_work_func+0xb8/0xf8
  [&lt;ffff0000080fa9d4&gt;] process_one_work+0x25c/0x728
  [&lt;ffff0000080faef4&gt;] worker_thread+0x54/0x3d8
  [&lt;ffff0000081031d8&gt;] kthread+0x110/0x140
  [&lt;ffff000008082d90&gt;] ret_from_fork+0x10/0x40
  OF: ERROR: Bad of_node_put() on /smsm
  CPU: 0 PID: 33 Comm: kworker/0:1 Tainted: G        W   E   4.12.0-rc5+ #1455
  Hardware name: qualcomm dragonboard410c/dragonboard410c, BIOS 2017.07-rc1-00234-g22fa70a-dirty 06/26/2017
  Workqueue: events deferred_probe_work_func

Signed-off-by: Rob Clark &lt;robdclark@gmail.com&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>soc: qcom: smsm: Improve error handling, quiesce probe deferral</title>
<updated>2017-06-06T02:50:44+00:00</updated>
<author>
<name>Jonathan Neuschäfer</name>
<email>j.neuschaefer@gmx.net</email>
</author>
<published>2017-04-05T12:10:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=35dfa3efea635c41cc5be1cf48dcc96b295964cd'/>
<id>35dfa3efea635c41cc5be1cf48dcc96b295964cd</id>
<content type='text'>
Don't use size if info indicates an error condition. Previously a
non-ENOENT error (such as -EPROBE_DEFER) would lead to size being used
even though it hadn't necessarily been initialized in qcom_smem_get.

Don't print an error message in the -EPROBE_DEFER case.

Signed-off-by: Jonathan Neuschäfer &lt;j.neuschaefer@gmx.net&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Don't use size if info indicates an error condition. Previously a
non-ENOENT error (such as -EPROBE_DEFER) would lead to size being used
even though it hadn't necessarily been initialized in qcom_smem_get.

Don't print an error message in the -EPROBE_DEFER case.

Signed-off-by: Jonathan Neuschäfer &lt;j.neuschaefer@gmx.net&gt;
Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>soc: qcom: Update properties for smem state referencing</title>
<updated>2016-06-25T03:53:41+00:00</updated>
<author>
<name>Bjorn Andersson</name>
<email>bjorn.andersson@linaro.org</email>
</author>
<published>2016-06-10T04:11:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3680a4a97435496ad22cd0fc9f2ba51751cc4e36'/>
<id>3680a4a97435496ad22cd0fc9f2ba51751cc4e36</id>
<content type='text'>
Update the property names to match device tree bindings, the correct
values should be qcom,smem-states and qcom,smem-state-names.

Also update the #qcom,smem-state-cells for consistency, before we merge
any users of these properties.

Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Acked-by: Rob Herring &lt;robh@kernel.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update the property names to match device tree bindings, the correct
values should be qcom,smem-states and qcom,smem-state-names.

Also update the #qcom,smem-state-cells for consistency, before we merge
any users of these properties.

Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;
Acked-by: Rob Herring &lt;robh@kernel.org&gt;
Signed-off-by: Andy Gross &lt;andy.gross@linaro.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>soc: qcom: smsm: Add driver for Qualcomm SMSM</title>
<updated>2015-12-08T19:01:01+00:00</updated>
<author>
<name>Bjorn Andersson</name>
<email>bjorn.andersson@sonymobile.com</email>
</author>
<published>2015-09-25T01:25:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c97c4090ff72297a878a37715bd301624b71c885'/>
<id>c97c4090ff72297a878a37715bd301624b71c885</id>
<content type='text'>
This driver exposed the Qualcomm Shared Memory State Machine bits.

Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@sonymobile.com&gt;
Signed-off-by: Andy Gross &lt;agross@codeaurora.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This driver exposed the Qualcomm Shared Memory State Machine bits.

Signed-off-by: Bjorn Andersson &lt;bjorn.andersson@sonymobile.com&gt;
Signed-off-by: Andy Gross &lt;agross@codeaurora.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
