Commit Graph

974122 Commits

Author SHA1 Message Date
Charan Teja Reddy
bfb68bdc68 UPSTREAM: mm: cma: improve pr_debug log in cma_release()
It is required to print 'count' of pages, along with the pages, passed to
cma_release to debug the cases of mismatched count value passed between
cma_alloc() and cma_release() from a code path.

As an example, consider the below scenario:

1) CMA pool size is 4MB and

2) User doing the erroneous step of allocating 2 pages but freeing 1
   page in a loop from this CMA pool.  The step 2 causes cma_alloc() to
   return NULL at one point of time because of -ENOMEM condition.

And the current pr_debug logs is not giving the info about these types of
allocation patterns because of count value not being printed in
cma_release().

We are printing the count value in the trace logs, just extend the same to
pr_debug logs too.

[akpm@linux-foundation.org: fix printk warning]

Link: https://lkml.kernel.org/r/1606318341-29521-1-git-send-email-charante@codeaurora.org
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
Reviewed-by: Souptick Joarder <jrdr.linux@gmail.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Vinayak Menon <vinmenon@codeaurora.org>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit b8ca396f98)
Signed-off-by: Minchan Kim <minchan@google.com>
Bug: 181887812
Change-Id: I54ab577c1509e663207cc4e33e2ac737ea254fd2
2021-03-04 23:52:46 +00:00
Lecopzer Chen
4a3c73e717 BACKPORT: mm/cma.c: remove redundant cma_mutex lock
The cma_mutex which protects alloc_contig_range() was first appeared in
commit 7ee793a62f ("cma: Remove potential deadlock situation"), at that
time, there is no guarantee the behavior of concurrency inside
alloc_contig_range().

After commit 2c7452a075 ("mm/page_isolation.c: make
start_isolate_page_range() fail if already isolated")

  > However, two subsystems (CMA and gigantic
  > huge pages for example) could attempt operations on the same range.  If
  > this happens, one thread may 'undo' the work another thread is doing.
  > This can result in pageblocks being incorrectly left marked as
  > MIGRATE_ISOLATE and therefore not available for page allocation.

The concurrency inside alloc_contig_range() was clarified.

Now we can find that hugepage and virtio call alloc_contig_range() without
any lock, thus cma_mutex is "redundant" in cma_alloc() now.

Link: https://lkml.kernel.org/r/20201020102241.3729-1-lecopzer.chen@mediatek.com
Signed-off-by: Lecopzer Chen <lecopzer.chen@mediatek.com>
Acked-by: David Hildenbrand <david@redhat.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: YJ Chiang <yj.chiang@mediatek.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
(cherry picked from commit a4efc174b3)
minchan: Resolved minor conflict with alloc_contig_range in mm/cma.c ]
Bug: 181887812
Change-Id: I0138e571f8131ed1d53ee91b61a037bc762d824a
2021-03-04 23:52:36 +00:00
Eric Biggers
1cfa4b71be ANDROID: scsi: ufs: replace fill_prdt with Android vendor hook
Like was done for the other non-upstream methods in
'struct ufs_hba_variant_ops', replace ->fill_prdt() with an Android
vendor hook.  This is considered to be better because it avoids any
conflicts with upstream changes to 'struct ufs_hba_variant_ops'.

Note that as a side effect of this change, fill_prdt is no longer
allowed to sleep.  That's fine for the only known use of this hook.

Bug: 162257402
Bug: 181359082
Change-Id: I8096932525c27b969193d769aff511a0114b35ad
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-03-04 23:20:39 +00:00
Matthias Maennich
59bb441b1d ANDROID: allmodconfig: drop openssl from ADDITIONAL_HOST_TOOLS
This is now provided through the prebuilt build-tools.

Bug: 179516498
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I23152d35944b1efdb7aab9ef6c55aaad2ae1cbed
2021-03-04 20:48:17 +00:00
Chris Goldsworthy
ef691a49c5 ANDROID: abi_gki_aarch64_qcom: Make memory related modifications
Add gfp_zone, __next_zones_zonelist, zone_watermark_ok_safe and
zone_watermark_ok for watermark checking.  Add __refrigerator to make
use of the DMA-BUF Heap deferred free helper. Remove all ION symbols.

Bug: 181756083
Signed-off-by: Chris Goldsworthy <cgoldswo@codeaurora.org>
Change-Id: I7b08e4786576c0e964d80f3981c74b494f7a0abb
2021-03-04 17:57:55 +00:00
Namkyu Kim
97368fc2dc ANDROID: Add a vendor hook that allow a module to modify the wake flag
android_vh_do_wake_up_sync:
  To modify the mode value of __wake_up_sync_key

 android_vh_set_wake_flags:
  To modify the wake flag from a module

Bug: 181743516
Signed-off-by: Namkyu Kim <namkyu78.kim@samsung.com>
Change-Id: I972e2469c3f139373d21f1e8c85974763388a693
2021-03-04 16:19:04 +00:00
Lokesh Gidra
16f20ce5ae ANDROID: GKI: Enable CONFIG_USERFAULTFD
Patches for SELinux support and kernel page-fault restriction in
userfaultfd have been backported. See references below.
So from security perspective it should be safe to enable it in Android.

1) https://android-review.googlesource.com/c/kernel/common/+/1576486
2) https://android-review.googlesource.com/c/kernel/common/+/1576704
3) https://android-review.googlesource.com/c/kernel/common/+/1612597
4) https://android-review.googlesource.com/c/kernel/common/+/1574667

Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
Bug: 160737021
Bug: 169683130
Change-Id: Iac5143da76783de57dba229f5761aff9297c17ae
2021-03-04 15:32:35 +00:00
Quentin Perret
9e07b3467a ANDROID: sched: pelt: Fix the PELT arrays
Commit 8d420888a4 ("ANDROID: sched: Add PELT cmdline arg") removed the
'__maybe_unused' and 'const' qualifiers from the declaration of the PELT
arrays for no apparent reason.

Re-introduce both of them to silence the 'Maybe unused' warnings and
align as much as possible with upstream.

Bug: 177593580
Fixes: 8d420888a4 ("ANDROID: sched: Add PELT cmdline arg")
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: I5416726a285eff881ba7bc5188f8a69ee40b1f99
2021-03-04 11:53:51 +00:00
Howard Yen
0fc8633bd6 FROMLIST: dt-bindings: usb: usb-xhci: add USB offload support
Document USB offload support for usb-xhci.

For example:

&usbdrd_dwc3 {
	...
	/* support usb offloading, 0: disabled, 1: audio */
	offload = <1>;
	...
};

Signed-off-by: Howard Yen <howardyen@google.com>
Bug: 175358363
Link: https://lore.kernel.org/r/20210119101044.1637023-1-howardyen@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: If70fbc28664c7c70c53924ff89635291f5676a87
2021-03-04 12:42:06 +08:00
Howard Yen
ea9acb155e FROMLIST: usb: xhci-plat: add xhci_plat_priv_overwrite
Add an overwrite to platform specific callback for setting up the
xhci_vendor_ops, allow vendor to store the xhci_vendor_ops and
overwrite them when xhci_plat_probe invoked.

This change is depend on Commit in this patch series
("usb: host: add xhci hooks for USB offload"), vendor needs
to invoke xhci_plat_register_vendor_ops() to register the vendor specific
vendor_ops. And the vendor_ops will overwrite the vendor_ops inside
xhci_plat_priv in xhci_vendor_init() during xhci-plat-hcd probe.

Signed-off-by: Howard Yen <howardyen@google.com>
Bug: 175358363
Link: https://lore.kernel.org/r/20210119101044.1637023-1-howardyen@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I57137d91c9b83df92ce633bff65ab72e48a9005d
2021-03-04 12:41:48 +08:00
Howard Yen
26afe6712d FROMLIST: usb: host: export symbols for xhci hooks usage
Export symbols for xhci hooks usage:
    xhci_ring_free
        - Allow xhci hook to free xhci_ring.
    xhci_get_slot_ctx
        - Allow xhci hook to get slot_ctx from the xhci_container_ctx
	  for getting the slot_ctx information to know which slot is
	  offloading and compare the context in remote subsystem memory
	  if needed.
    xhci_get_ep_ctx
        - Allow xhci hook to get ep_ctx from the xhci_container_ctx for
	  getting the ep_ctx information to know which ep is offloading and
	  comparing the context in remote subsystem memory if needed.
    xhci_handle_event
        - Allow xhci hook to handle the xhci events from the USB
	  controller.
    xhci_update_erst_dequeue
        - If xhci events was handle by xhci hook, it needs to update
	  the erst dequeue pointer to let the USB controller know the
	  events was handled.

Signed-off-by: Howard Yen <howardyen@google.com>
Bug: 175358363
Link: https://lore.kernel.org/r/20210119101044.1637023-1-howardyen@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ic7511048c009a2ff5f2832eee971140216105f6e
2021-03-04 12:41:36 +08:00
Howard Yen
ed626b01e5 FROMLIST: usb: host: add xhci hooks for USB offload
To enable supporting for USB offload, define "offload" in usb controller
node of device tree. "offload" value can be used to determine which type
of offload was been enabled in the SoC.

For example:

&usbdrd_dwc3 {
	...
	/* support usb offloading, 0: disabled, 1: audio */
	offload = <1>;
	...
};

There are several vendor_ops introduced by this patch:

struct xhci_vendor_ops - function callbacks for vendor specific operations
{
	@vendor_init:
		- called for vendor init process during xhci-plat-hcd
		  probe.
	@vendor_cleanup:
		- called for vendor cleanup process during xhci-plat-hcd
		  remove.
	@is_usb_offload_enabled:
		- called to check if usb offload enabled.
	@queue_irq_work:
		- called to queue vendor specific irq work.
	@alloc_dcbaa:
		- called when allocating vendor specific dcbaa during
		  memory initializtion.
	@free_dcbaa:
		- called to free vendor specific dcbaa when cleanup the
		  memory.
	@alloc_transfer_ring:
		- called when vendor specific transfer ring allocation is required
	@free_transfer_ring:
		- called to free vendor specific transfer ring
	@sync_dev_ctx:
		- called when synchronization for device context is required
}

The xhci hooks with prefix "xhci_vendor_" on the ops in xhci_vendor_ops.
For example, vendor_init ops will be invoked by xhci_vendor_init() hook,
is_usb_offload_enabled ops will be invoked by
xhci_vendor_is_usb_offload_enabled(), and so on.

Signed-off-by: Howard Yen <howardyen@google.com>
Bug: 175358363
Link: https://lore.kernel.org/r/20210119101044.1637023-1-howardyen@google.com
Signed-off-by: Greg Kroah-Harktman <gregkh@google.com>
Change-Id: Ia31ab4308264d0549bb8b7cf65dfa401a987110e
2021-03-04 12:41:24 +08:00
Elliot Berman
21c713f8e8 FROMLIST: BACKPORT: Kbuild: Support nested composite objects
Kbuild composite objects only supports one level of composite objects.
That is, a composite object may only be composed of real compilable
source files.

As a simple example, the following Kbuild description is now supported:

bar-a-y := a/bar0.o a/bar1.o
bar-b-y := b/bar2.o b/bar3.o

foo-objs := bar-a.o bar-b.o

obj-m += foo.o

Add such support by recursively searching for composite objects and
listing them in $(multi-used-*) and $(real-obj-*).

Signed-off-by: Elliot Berman <eberman@codeaurora.org>

Bug: 175420575
Change-Id: I08880422bc462c38b80f1a8bd85498250898c85e
Link: https://lore.kernel.org/linux-kbuild/1611343638-28206-3-git-send-email-eberman@codeaurora.org/
[eberman@codeaurora.org: Fix compile error so that multi-search does not
 recurse when foo-y contains foo.o]
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2021-03-03 15:45:49 -08:00
Elliot Berman
e52f4d9d2d FROMGIT: Kbuild: Make composite object searching more generic
Reduce repeated logic around expanding composite objects.

Signed-off-by: Elliot Berman <eberman@codeaurora.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

Bug: 175420575
Change-Id: I2e28126544c10c3d45bbe31c8a56efca2659d988
(cherry picked from commit 1c3fae740a
 https://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild)
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2021-03-03 15:45:49 -08:00
Elliot Berman
99b31ce046 Revert "ANDROID: kbuild: simplify cmd_mod"
This reverts commit 631b20dd6c ("ANDROID: kbuild: simplify cmd_mod")
since this causes regression in how Kbuild handles dependencies.

Bug: 175420575
Change-Id: I162eedf19357287c5ab9840ed84081d071aa320b
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2021-03-03 15:45:48 -08:00
Elliot Berman
ba0368ed3a Revert "ANDROID: kbuild: handle excessively long argument lists"
This reverts commit f50aeaf27c ("ANDROID: kbuild: handle excessively
long argument lists") since it causes regression in how kbuild handles
dependencies.

Bug: 175420575
Change-Id: I5ed5e883e7b0886dee8491dd888aa82d42452e79
Signed-off-by: Elliot Berman <eberman@codeaurora.org>
2021-03-03 15:45:48 -08:00
Lukas Bulwahn
0d34ce8aa7 UPSTREAM: fs: anon_inodes: rephrase to appropriate kernel-doc
Commit e7e832ce6f ("fs: add LSM-supporting anon-inode interface") adds
more kerneldoc description, but also a few new warnings on
anon_inode_getfd_secure() due to missing parameter descriptions.

Rephrase to appropriate kernel-doc for anon_inode_getfd_secure().

Signed-off-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
(cherry picked from commit 365982aba1)

Bug: 160737021
Bug: 169683130
Signed-off-by: Lokesh Gidra <lokeshgidra@google.com>
Change-Id: I7b8882d9da9ac37bc285dfb753bbe9ddf1f9fd04
2021-03-03 16:18:33 +00:00
Ray Chi
0fc375dc14 FROMGIT: usb: dwc3: document usb_psy in struct dwc3
The new struct member was added to struct dwc3, but
a documentation was missing:

drivers/usb/dwc3/core.h:1273: warning: Function parameter or member 'usb_psy' not described in 'dwc3'

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Ray Chi <raychi@google.com>
Link: https://lore.kernel.org/r/20210303095802.2801733-1-raychi@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 5e17812c22bcd65fa9202595eef4bbf8fa814144
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-next)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I666941ff5927cee36024188d6277585aa94c8032
2021-03-03 14:53:08 +01:00
Colin Ian King
af93035b6a FROMGIT: usb: dwc3: Fix dereferencing of null dwc->usb_psy
Currently the null check logic on dwc->usb_psy is inverted as it allows
calls to power_supply_put with a null dwc->usb_psy causing a null
pointer dereference. Fix this by removing the ! operator.

Addresses-Coverity: ("Dereference after null check")
Fixes: 59fa3def35de ("usb: dwc3: add a power supply for current control")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20210303095826.6143-1-colin.king@canonical.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit d05a12f0478cbae41f26f62af767e86bd550ffb9
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-next)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I3c6183dc33f17affe0136db30151508785dd4e6e
2021-03-03 14:53:08 +01:00
Qais Yousef
ab6e10de9d ANDROID: cgroup/cpuset: Fix suspicous RCU usage WARNING
task_cs() is called from cpuset_cpus_allowed_fallback() without
holding the read_rcu_lock() causing the below splat.

Fix by holding the rcu_read_lock().

[    0.090199] =============================
[    0.090399] WARNING: suspicious RCU usage
[    0.090600] 5.10.19-00939-gc3bf09a68b63-dirty #368 Not tainted
[    0.090837] -----------------------------
[    0.091000] include/linux/cgroup.h:494 suspicious rcu_dereference_check() usage!
[    0.091246]
[    0.091246] other info that might help us debug this:
[    0.091246]
[    0.091499]
[    0.091499] rcu_scheduler_active = 1, debug_locks = 1
[    0.091738] 4 locks held by swapper/0/1:
[    0.091902]  #0: ffff800014e3f510 (cpu_add_remove_lock){+.+.}-{3:3}, at: cpu_up+0x100/0x190
[    0.092726]  #1: ffff800014e3f6b0 (cpu_hotplug_lock){++++}-{0:0}, at: _cpu_up+0x4c/0x1c8
[    0.093540]  #2: ffff800014e47478 (smpboot_threads_lock){+.+.}-{3:3}, at: smpboot_create_threads+0x34/0xc0
[    0.094399]  #3: ffff0008001d0878 (&p->pi_lock){....}-{2:2}, at: try_to_wake_up+0x58/0x828
[    0.095199]
[    0.095199] stack backtrace:
[    0.095425] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.19-00939-gc3bf09a68b63-dirty #368
[    0.095670] Hardware name: Foundation-v8A (DT)
[    0.095834] Call trace:
[    0.096099]  dump_backtrace+0x0/0x1a8
[    0.096353]  show_stack+0x18/0x68
[    0.096571]  dump_stack+0xf8/0x168
[    0.096817]  lockdep_rcu_suspicious+0xe4/0xf8
[    0.097063]  cpuset_cpus_allowed_fallback+0x184/0x1f8
[    0.097299]  select_fallback_rq+0x24c/0x2c0
[    0.097526]  try_to_wake_up+0x1e4/0x828
[    0.097740]  wake_up_process+0x18/0x28
[    0.097999]  kthread_park+0x74/0xc8
[    0.098209]  __smpboot_create_thread.part.0+0x90/0x168
[    0.098486]  smpboot_create_threads+0x84/0xc0
[    0.098699]  cpuhp_invoke_callback+0xe8/0xe50
[    0.098947]  _cpu_up+0xe0/0x1c8
[    0.099126]  cpu_up+0x120/0x190
[    0.099399]  bringup_nonboot_cpus+0x94/0xd0
[    0.099659]  smp_init+0x30/0x8c
[    0.099873]  kernel_init_freeable+0x1d4/0x328
[    0.100099]  kernel_init+0x14/0x118
[    0.100339]  ret_from_fork+0x10/0x34

Bug: 178507149
Fixes: 210463b39c ("FROMLIST: cpuset: Don't use the cpu_possible_mask as a last resort for cgroup v1")
Signed-off-by: Qais Yousef <qais.yousef@arm.com>
Change-Id: Ib7688e7d0c37cbf119d806ce79157a467b9e35f6
2021-03-03 09:02:19 +00:00
Michael Specter
e6ceb1881c ANDROID: Adding kprobes build configs for Cuttlefish
Bug: 181054145
Change-Id: Ibb1362479469eae9c294f71a483e500db05b04e1
Signed-off-by: Michael Specter <mikespecter@google.com>
2021-03-03 02:03:02 +00:00
Cristian Marussi
34de0762fb FROMLIST: firmware: arm_scmi: add dynamic scmi devices creation
Having added the support for SCMI protocols as modules in order to let
vendors extend the SCMI core with their own additions it seems odd to
then force SCMI drivers built on top to use a static device table to
declare their devices since this way any new SCMI drivers addition
would need the core SCMI device table to be updated too.

Remove the static core device table and let SCMI drivers to simply declare
which device/protocol pair they need at initialization time: the core will
then take care to generate such devices dynamically during platform
initialization or at module loading time, as long as the requested
underlying protocol is defined in the DT.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ibe69c2f6169b078ad274d06000dbdcf0aee42901
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:35 -08:00
Cristian Marussi
db15cd2926 FROMLIST: firmware: arm_scmi: add protocol modularization support
Extend SCMI protocols accounting mechanism to address possible module
usage and add the support to possibly define new protocols as loadable
modules.

Keep Standard protocols built into the SCMI core.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I75f2e400c0fe6a0692a1acc2e20f54a3c7336ab7
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:35 -08:00
Cristian Marussi
ee250b6df6 FROMLIST: firmware: arm_scmi: make notify_priv really private
Notification private data is currently accessible via handle->notify_priv;
this data was indeed meant to be private to the notification core support
and not to be accessible by SCMI drivers: make it private hiding it inside
instance descriptor struct scmi_info and accessible only via dedicated
helpers.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ic0a1c0610f9726f3ebde388e685ee20343533d33
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:35 -08:00
Cristian Marussi
bb35ff40d5 FROMLIST: firmware: arm_scmi: cleanup events registration transient code
Remove all the events registration code used to ease the transition to the
new interface based on protocol handles..

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I8470b8cf24ce2e4d004e207a4213003e524f45e5
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:35 -08:00
Cristian Marussi
1b8df55e4f FROMLIST: firmware: arm_scmi: cleanup unused core xfer wrappers
Remove unused core scmi_xfer wrappers now that we have migrated all
protocols to the new interface based on protocol handles.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I9b69f34ecb7630da9cc3f4f33ff68e6016deb690
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:35 -08:00
Cristian Marussi
d09db08be5 FROMLIST: firmware: arm_scmi: cleanup legacy protocol init code
Now that all protocols and drivers have been ported to the new interface
based on protocol handles and get/put operations, remove all the legacy
transient initialization code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ic0870f5d5ee520aa9ba126d83e0adcdabda98fdf
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:34 -08:00
Cristian Marussi
8e441da50f FROMLIST: firmware: arm_scmi: make references to handle const
Now that all the protocol private variable data have been moved out of
struct scmi_handle, mark all of its references as const.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I90fb65928da4ec2e4e8043ac5d2179fdaf5fa705
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:34 -08:00
Cristian Marussi
30da353917 FROMLIST: firmware: arm_scmi: remove legacy scmi_voltage_ops protocol interface
Now that all the SCMI driver users have been migrated to the new interface
remove the legacy interface and all the transient code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I9984ae75fb216fc2080d6351087807a01d76d884
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:34 -08:00
Cristian Marussi
f473ac3b66 FROMLIST: regulator: scmi: port driver to the new scmi_voltage_proto_ops interface
Port driver to the new SCMI Voltage interface based on protocol handles
and common devm_get_ops().

Cc: Mark Brown <broonie@kernel.org>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Acked-by: Mark Brown <broonie@kernel.org>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ieacb5b40cd696fdbec0d4b052cf52c0165dcf792
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:34 -08:00
Cristian Marussi
b974b071e2 FROMLIST: firmware: arm_scmi: port Voltage protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations, while keeping the old handle->voltage_ops still
around to ease transition.

Remove handle->voltage_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I3a0c415891792c46bc94179f063068fe913efe5f
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:34 -08:00
Cristian Marussi
b75183098d FROMLIST: firmware: arm_scmi: port SystemPower protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations.

Remove handle->system_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I0cc9e9735f5bc81af29dc483e5aaa6c3467a65bb
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:34 -08:00
Cristian Marussi
aa063a1bd2 FROMLIST: firmware: arm_scmi: remove legacy scmi_sensor_ops protocol interface
Now that all the SCMI driver users have been migrated to the new interface
remove the legacy interface and all the transient code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I6e463c6e080542d664483250bfe1b691cf458d42
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:33 -08:00
Cristian Marussi
efe20430de FROMLIST: hwmon: (scmi) port driver to the new scmi_sensor_proto_ops interface
Port driver to the new SCMI Sensor interface based on protocol handles
and common devm_get_ops().

Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Jean Delvare <jdelvare@suse.com>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Acked-by: Guenter Roeck <linux@roeck-us.net>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Id42bb46e2f83d9389407836c6d154467a68d847e
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:33 -08:00
Cristian Marussi
5d63c651d6 FROMLIST: firmware: arm_scmi: port Sensor protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations, while keeping the old handle->sensor_ops still
around to ease transition.

Remove handle->sensor_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I5928b7dfa0828139c9c4edf81169ea875119ebc6
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:33 -08:00
Cristian Marussi
7552e331c6 FROMLIST: firmware: arm_scmi: remove legacy scmi_reset_ops protocol interface
Now that all the SCMI driver users have been migrated to the new interface
remove the legacy interface and all the transient code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I6d7ba8b4ab0383a4fff8c4057a7249f24f2ac453
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:33 -08:00
Cristian Marussi
b2fc2b3791 FROMLIST: reset: reset-scmi: port driver to the new scmi_reset_proto_ops interface
Port driver to the new SCMI Reset interface based on protocol handles
and common devm_get_ops().

Cc: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I245669aea9d2719b3008905d2428cbf62a9cf974
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:33 -08:00
Cristian Marussi
ee69aeba56 FROMLIST: firmware: arm_scmi: port Reset protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations, while keeping the old handle->reset_ops still
around to ease transition.

Remove handle->reset_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Iaf3ded6b344194dcfc4fcef5fc5cbadb6f8da07c
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:32 -08:00
Cristian Marussi
cf6cde9f1d FROMLIST: firmware: arm_scmi: remove legacy scmi_clk_ops protocol interface
Now that all the SCMI driver users have been migrated to the new interface
remove the legacy interface and all the transient code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I8deb2f967d9333bb6f6cf88fb1bb4f7aed622608
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:32 -08:00
Cristian Marussi
bcd627f631 FROMLIST: clk: scmi: port driver to the new scmi_clk_proto_ops interface
Port driver to the new SCMI Clock interface based on protocol handles
and common devm_get_ops().

Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ieea7fd7fb8536c54c90ed19717a8a6239252482b
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:32 -08:00
Cristian Marussi
1d2b863ec9 FROMLIST: firmware: arm_scmi: port Clock protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations, while keeping the old handle->clk_ops still
around to ease transition.

Remove handle->clock_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I57fffd97027470f96ffde4222ea997b67285207d
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:32 -08:00
Cristian Marussi
478ad998ea FROMLIST: firmware: arm_scmi: remove legacy scmi_power_ops protocol interface
Now that all the SCMI driver users have been migrated to the new interface
remove the legacy interface and all the transient code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I2b5d3129ca54b5eae810682a5fbd9ca2fe49c9f7
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:32 -08:00
Cristian Marussi
b3498e7475 FROMLIST: firmware: arm_scmi: port GenPD driver to the new scmi_power_proto_ops interface
Port driver to the new SCMI Power interface based on protocol handles
and common devm_get_ops().

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I400f0356b880711875713054fd9330c7fd97f7c7
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:32 -08:00
Cristian Marussi
ec2e9785ce FROMLIST: firmware: arm_scmi: port Power protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations, while keeping the old handle->power_ops still
around to ease transition.

Remove handle->power_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Iaaaa1094d8cff6eec7ea6a21cbf0be9dbaa6fb32
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:31 -08:00
Cristian Marussi
6ffe326ac2 FROMLIST: firmware: arm_scmi: remove legacy scmi_perf_ops protocol interface
Now that all the SCMI driver users have been migrated to the new interface
remove the legacy interface and all the transient code.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ifd74693644daae8e0aa1ee5997cdb4edf1ed8460
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:31 -08:00
Cristian Marussi
8b0d407157 FROMLIST: cpufreq: scmi: port driver to the new scmi_perf_proto_ops interface
Port driver to the new SCMI Perf interface based on protocol handles
and common devm_get_ops().

Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Id27af751053ba5f289a3989fdaa6cd28e8e2fa66
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:31 -08:00
Cristian Marussi
213ea76908 FROMLIST: firmware: arm_scmi: port Perf protocol to new protocols interface
Convert internals of protocol implementation to use protocol handles and
expose a new protocol operations interface for SCMI driver using the new
get/put common operations, while keeping the old handle->perf_ops still
around to ease transition.

Remove handle->perf_priv now unused.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ia8d5dc1c40c392df41e19873064900f681588a9c
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:31 -08:00
Cristian Marussi
59d6bfe64f FROMLIST: firmware: arm_scmi: port Base protocol to new interface
Port Base protocol to new protocol handles based interface.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: I57264cc7d4708e513ae85b69099bf32a274b0e16
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:31 -08:00
Cristian Marussi
f4423d3944 FROMLIST: firmware: arm_scmi: add helper to access revision area memory
Add an helper to grab, from a protocol handle, the handle common memory
area allocated to store SCMI version data which is exposed on sysfs.
Such helper will be needed by SCMI Base protocol initialization once it
will be moved to new protocol handles scheme.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ic1d9a6c0b7940abfc7e370c0d955aae83c449c6a
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:31 -08:00
Cristian Marussi
a3433ea580 FROMLIST: firmware: arm_scmi: add new protocol handle core xfer ops
Add new core SCMI xfer operations based on protocol handles to enable
protocols to builds and send their own protocol specific messages.

Keep old original scmi_xfer_ operations interface as wrappers around the
new interface in order to let coexist old and new interfaces to ease
protocol by protocol migration.

In order to support such migration the above wrappers and some additional
transient code is also introduced in this commit: it will be later removed
as a whole once the full migration of protocols and SCMI drivers will have
been completed.

Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>

Bug: 171409184
Link: https://lore.kernel.org/linux-arm-kernel/20210202221555.41167-1-cristian.marussi@arm.com/
Change-Id: Ia2a11c4f20573f9185e591625faa017883857b55
Signed-off-by: Rishabh Bhatnagar <quic_rishabhb@quicinc.com>
2021-03-02 17:34:30 -08:00