<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/arch/arm/mach-exynos/platsmp.c, branch v6.2-rc1</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v6.2-rc1</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v6.2-rc1'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2021-04-06T20:30:02+00:00</updated>
<entry>
<title>ARM: exynos: correct kernel doc in platsmp</title>
<updated>2021-04-06T20:30:02+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzysztof.kozlowski@canonical.com</email>
</author>
<published>2021-04-05T18:16:05+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6031008780efaada18087eba7ec84fe149f124a9'/>
<id>urn:sha1:6031008780efaada18087eba7ec84fe149f124a9</id>
<content type='text'>
Correct few kerneldoc issues, including W=1 compile warning:

  arch/arm/mach-exynos/platsmp.c:89: warning:
    expecting prototype for exynos_core_power_down(). Prototype was for exynos_cpu_power_down() instead

Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@canonical.com&gt;
Link: https://lore.kernel.org/r/20210405181605.52612-1-krzysztof.kozlowski@canonical.com
</content>
</entry>
<entry>
<title>ARM: exynos: Simplify code in Exynos3250 CPU core restart path</title>
<updated>2020-10-28T20:00:32+00:00</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2020-10-27T20:17:16+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=970f6cf2e91465c53dbbf9d80d755a7e8139fedb'/>
<id>urn:sha1:970f6cf2e91465c53dbbf9d80d755a7e8139fedb</id>
<content type='text'>
exynos_core_restart() is called by secondary CPU boot procedure, used by
CPU hotplug and coupled CPU idle. Replace of_machine_is_compatible() call
with a simple SoC revision check.

of_machine_is_compatible() function performs a dozen of string comparisons
during the full device tree walk, while soc_is_exynos3250() is a simple
integer check on SoC revision variable. This change also fixes the
following warning:

=============================
WARNING: suspicious RCU usage
5.10.0-rc1-00001-g6f65599d1f4f-dirty #1800 Not tainted
-----------------------------
./include/trace/events/lock.h:37 suspicious rcu_dereference_check() usage!

other info that might help us debug this:

rcu_scheduler_active = 2, debug_locks = 1
RCU used illegally from extended quiescent state!
no locks held by swapper/0/0.

stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.0-rc1-00001-g6f65599d1f4f-dirty #1800
Hardware name: Samsung Exynos (Flattened Device Tree)
[&lt;c0111514&gt;] (unwind_backtrace) from [&lt;c010ceb8&gt;] (show_stack+0x10/0x14)
[&lt;c010ceb8&gt;] (show_stack) from [&lt;c0b1d8dc&gt;] (dump_stack+0xb4/0xd4)
[&lt;c0b1d8dc&gt;] (dump_stack) from [&lt;c0194acc&gt;] (lock_acquire+0x418/0x584)
[&lt;c0194acc&gt;] (lock_acquire) from [&lt;c0b29e58&gt;] (_raw_spin_lock_irqsave+0x4c/0x60)
[&lt;c0b29e58&gt;] (_raw_spin_lock_irqsave) from [&lt;c0897af4&gt;] (of_device_is_compatible+0x1c/0x4c)
[&lt;c0897af4&gt;] (of_device_is_compatible) from [&lt;c01216d8&gt;] (exynos_core_restart+0x14/0xb0)
[&lt;c01216d8&gt;] (exynos_core_restart) from [&lt;c0120a78&gt;] (exynos_cpu0_enter_aftr+0x1d0/0x1dc)
[&lt;c0120a78&gt;] (exynos_cpu0_enter_aftr) from [&lt;c08575b0&gt;] (exynos_enter_coupled_lowpower+0x44/0x74)
[&lt;c08575b0&gt;] (exynos_enter_coupled_lowpower) from [&lt;c085477c&gt;] (cpuidle_enter_state+0x178/0x660)
[&lt;c085477c&gt;] (cpuidle_enter_state) from [&lt;c08572dc&gt;] (cpuidle_enter_state_coupled+0x35c/0x378)
[&lt;c08572dc&gt;] (cpuidle_enter_state_coupled) from [&lt;c0854cc8&gt;] (cpuidle_enter+0x50/0x54)
[&lt;c0854cc8&gt;] (cpuidle_enter) from [&lt;c0164854&gt;] (do_idle+0x224/0x2a4)
[&lt;c0164854&gt;] (do_idle) from [&lt;c0164c88&gt;] (cpu_startup_entry+0x18/0x1c)
[&lt;c0164c88&gt;] (cpu_startup_entry) from [&lt;c1100fa0&gt;] (start_kernel+0x640/0x67c)
[&lt;c1100fa0&gt;] (start_kernel) from [&lt;00000000&gt;] (0x0)

Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Link: https://lore.kernel.org/r/20201027201716.15745-1-m.szyprowski@samsung.com
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
<entry>
<title>ARM: exynos: use private samsung_cpu_id copy</title>
<updated>2020-08-19T19:10:50+00:00</updated>
<author>
<name>Arnd Bergmann</name>
<email>arnd@arndb.de</email>
</author>
<published>2020-08-06T18:20:31+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=edaff7e1c6f5f433acc8b957c95434de98ba18ea'/>
<id>urn:sha1:edaff7e1c6f5f433acc8b957c95434de98ba18ea</id>
<content type='text'>
The only part of plat-samsung that is shared with arch-exynos
is the CPU identification code.

Having a separate exynos_cpu_id variable makes the two completely
independent and is actually a bit less code in total.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Link: https://lore.kernel.org/r/20200806182059.2431-14-krzk@kernel.org
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
<entry>
<title>ARM: exynos: Fix infinite loops on CPU powerup failure</title>
<updated>2019-04-09T13:07:33+00:00</updated>
<author>
<name>Marek Szyprowski</name>
<email>m.szyprowski@samsung.com</email>
</author>
<published>2019-03-26T14:03:59+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=98a3308ea864afa1e42ae546ddbe5e4641f7716c'/>
<id>urn:sha1:98a3308ea864afa1e42ae546ddbe5e4641f7716c</id>
<content type='text'>
Add timeout to infinite loops during the CPU powerup procedures. It
is better to report an error instead of busylooping for infinite time
in case of failure.

Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm</title>
<updated>2019-03-15T21:37:46+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2019-03-15T21:37:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=0be288630752e6358d02eba7b283c1783a5c7c38'/>
<id>urn:sha1:0be288630752e6358d02eba7b283c1783a5c7c38</id>
<content type='text'>
Pull ARM updates from Russell King:

 - An improvement from Ard Biesheuvel, who noted that the identity map
   setup was taking a long time due to flush_cache_louis().

 - Update a comment about dma_ops from Wolfram Sang.

 - Remove use of "-p" with ld, where this flag has been a no-op since
   2004.

 - Remove the printing of the virtual memory layout, which is no longer
   useful since we hide pointers.

 - Correct SCU help text.

 - Remove legacy TWD registration method.

 - Add pgprot_device() implementation for mapping PCI sysfs resource
   files.

 - Initialise PFN limits earlier for kmemleak.

 - Fix argument count to match macro definition (affects clang builds)

 - Use unified assembler language almost everywhere for clang, and other
   clang improvements (from Stefan Agner, Nathan Chancellor).

 - Support security extension for noMMU and other noMMU cleanups (from
   Vladimir Murzin).

 - Remove unnecessary SMP bringup code (which was incorrectly copy'n'
   pasted from the ARM platform implementations) and remove it from the
   arch code to discourge further copys of it appearing.

 - Add Cortex A9 erratum preventing kexec working on some SoCs.

 - AMBA bus identification updates from Mike Leach.

 - More use of raw spinlocks to avoid -RT kernel issues (from Yang Shi
   and Sebastian Andrzej Siewior).

 - MCPM hyp/svc mode mismatch fixes from Marek Szyprowski.

* tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (32 commits)
  ARM: 8849/1: NOMMU: Fix encodings for PMSAv8's PRBAR4/PRLAR4
  ARM: 8848/1: virt: Align GIC version check with arm64 counterpart
  ARM: 8847/1: pm: fix HYP/SVC mode mismatch when MCPM is used
  ARM: 8845/1: use unified assembler in c files
  ARM: 8844/1: use unified assembler in assembly files
  ARM: 8843/1: use unified assembler in headers
  ARM: 8841/1: use unified assembler in macros
  ARM: 8840/1: use a raw_spinlock_t in unwind
  ARM: 8839/1: kprobe: make patch_lock a raw_spinlock_t
  ARM: 8837/1: coresight: etmv4: Update ID register table to add UCI support
  ARM: 8836/1: drivers: amba: Update component matching to use the CoreSight UCI values.
  ARM: 8838/1: drivers: amba: Updates to component identification for driver matching.
  ARM: 8833/1: Ensure that NEON code always compiles with Clang
  ARM: avoid Cortex-A9 livelock on tight dmb loops
  ARM: smp: remove arch-provided "pen_release"
  ARM: actions: remove boot_lock and pen_release
  ARM: oxnas: remove CPU hotplug implementation
  ARM: qcom: remove unnecessary boot_lock
  ARM: 8832/1: NOMMU: Limit visibility for CONFIG_FLASH_{MEM_BASE,SIZE}
  ARM: 8831/1: NOMMU: pmsa-v8: remove unneeded semicolon
  ...
</content>
</entry>
<entry>
<title>ARM: smp: remove arch-provided "pen_release"</title>
<updated>2019-02-01T22:05:23+00:00</updated>
<author>
<name>Russell King</name>
<email>rmk+kernel@armlinux.org.uk</email>
</author>
<published>2018-12-13T14:02:48+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=6213f70e7c10fd4a01b65bad3826648fc78df8a8'/>
<id>urn:sha1:6213f70e7c10fd4a01b65bad3826648fc78df8a8</id>
<content type='text'>
Consolidating the "pen_release" stuff amongst the various SoC
implementations gives credence to having a CPU holding pen for
secondary CPUs.  However, this is far from the truth.

Many SoC implementations cargo-cult copied various bits of the pen
release implementation from the initial Realview/Versatile Express
implementation without understanding what it was or why it existed.
The reason it existed is because these are _development_ platforms,
and some board firmware is unable to individually control the
startup of secondary CPUs.  Moreover, they do not have a way to
power down or reset secondary CPUs for hot-unplug.  Hence, the
pen_release implementation was designed for ARM Ltd's development
platforms to provide a working implementation, even though it is
very far from what is required.

It was decided a while back to reduce the duplication by consolidating
the "pen_release" variable, but this only made the situation worse -
we have ended up with several implementations that read this variable
but do not write it - again, showing the cargo-cult mentality at work,
lack of proper review of new code, and in some cases a lack of testing.

While it would be preferable to remove pen_release entirely from the
kernel, this is not possible without help from the SoC maintainers,
which seems to be lacking.  However, I want to remove pen_release from
arch code to remove the credence that having it gives.

This patch removes pen_release from the arch code entirely, adding
private per-SoC definitions for it instead, and explicitly stating
that write_pen_release() is cargo-cult copied and should not be
copied any further.  Rename write_pen_release() in a similar fashion
as well.

Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;
</content>
</entry>
<entry>
<title>ARM: exynos: Fix timeout when booting secondary CPUs</title>
<updated>2019-02-01T19:07:47+00:00</updated>
<author>
<name>Stuart Menefy</name>
<email>stuart.menefy@mathembedded.com</email>
</author>
<published>2019-01-28T23:06:45+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=4bdf2f3f20a9de9b07f97907820c42f3a49ba63d'/>
<id>urn:sha1:4bdf2f3f20a9de9b07f97907820c42f3a49ba63d</id>
<content type='text'>
Without this fix the loop waiting for the timeout exits, but the
subsequent test to see if the timeout occurred fails.

Signed-off-by: Stuart Menefy &lt;stuart.menefy@mathembedded.com&gt;
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
<entry>
<title>ARM: exynos: Remove secondary startup initialization from smp_prepare_cpus</title>
<updated>2018-11-18T14:12:50+00:00</updated>
<author>
<name>Pankaj Dubey</name>
<email>pankaj.dubey@samsung.com</email>
</author>
<published>2018-11-15T15:11:30+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=cafbc79e327f44411b8bd8bdc101b9e6c65ab42a'/>
<id>urn:sha1:cafbc79e327f44411b8bd8bdc101b9e6c65ab42a</id>
<content type='text'>
We are taking care of setting secondary cpu boot address in
exynos_boot_secondary just before sending ipi to secondary CPUs,
so we can safely remove this setting from smp_prepare_cpus.

Signed-off-by: Pankaj Dubey &lt;pankaj.dubey@samsung.com&gt;
Reviewed-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
Signed-off-by: Bartlomiej Zolnierkiewicz &lt;b.zolnierkie@samsung.com&gt;
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
<entry>
<title>ARM: exynos: Remove static mapping of SCU SFR</title>
<updated>2018-05-13T12:06:55+00:00</updated>
<author>
<name>Pankaj Dubey</name>
<email>pankaj.dubey@samsung.com</email>
</author>
<published>2018-05-10T11:02:54+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=3c33710b453b4e17074092773872a4d87d9b3bb8'/>
<id>urn:sha1:3c33710b453b4e17074092773872a4d87d9b3bb8</id>
<content type='text'>
Lets remove static mapping of SCU SFR mainly used in CORTEX-A9 SoC based
boards. Instead use mapping from device tree node of SCU.

Signed-off-by: Pankaj Dubey &lt;pankaj.dubey@samsung.com&gt;
Reviewed-by: Alim Akhtar &lt;alim.akhtar@samsung.com&gt;
[mszyprow: rebased, added fallback to scu_a9_get_base() when no SCU DT
 node is available, removed compatibility break warning, fixed non-SMP
 build, keep SCU base mapping to avoid issues with calls from CPUidle]
Signed-off-by: Marek Szyprowski &lt;m.szyprowski@samsung.com&gt;
Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
<entry>
<title>ARM: EXYNOS: Add SPDX license identifiers</title>
<updated>2018-01-03T17:36:22+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzk@kernel.org</email>
</author>
<published>2017-12-25T19:54:31+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=347863d47a17efa742799da468c64e9673658945'/>
<id>urn:sha1:347863d47a17efa742799da468c64e9673658945</id>
<content type='text'>
Replace GPL license statements with SPDX license identifiers (GPL-2.0
and GPL-2.0+).

Signed-off-by: Krzysztof Kozlowski &lt;krzk@kernel.org&gt;
</content>
</entry>
</feed>
