mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
ASoC: Updates for v5.12
Another quiet release in terms of features, though several of the drivers got quite a bit of work and there were a lot of general changes resulting from Morimoto-san's ongoing cleanup work. - As ever, lots of hard work by Morimoto-san cleaning up the code and making it more consistent. - Many improvements in the Intel drivers including a wide range of quirks and bug fixes. - A KUnit testsuite for the topology code. - Support for Ingenic JZ4760(B), Intel AlderLake-P, DT configured nVidia cards, Qualcomm lpass-rx-macro and lpass-tx-macro - Removal of obsolete SIRF prima/atlas, Txx9 and ZTE zx drivers. -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmAtZ7cACgkQJNaLcl1U h9DD5Af/eeERQ2uVOqtw0If+XL1xRYe6RewgDoNcO/l/5WxBLrBH6NbEf0OwNJeg vzZAkUBtxmx6XiW2M/h+4ucW1OPcg5IzxIWTHfGDMlKIxzb0jgWugRnJ7sdTnOs3 c+QHnvuOT7QzZBviAIkc5uZ5thAImYF8zDyKoGF5llztmnBYymtgpnvnRNZGM0ou 76oUzSvkCFI2b0Yf6bpGok2nBVlOu82HSHOUKjXVWk+LAeiivlYGOEZpdIKEe3S8 u6atQJ29XRr52Yuc2z4xnFQTW1cIDlwj2Fk5x/z8hX+5nRhNSGuIv1l5m7TfBj3e mCO9cltKZxly0NXysgekn95JHwwwkA== =MJSb -----END PGP SIGNATURE----- Merge tag 'asoc-v5.12' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for v5.12 Another quiet release in terms of features, though several of the drivers got quite a bit of work and there were a lot of general changes resulting from Morimoto-san's ongoing cleanup work. - As ever, lots of hard work by Morimoto-san cleaning up the code and making it more consistent. - Many improvements in the Intel drivers including a wide range of quirks and bug fixes. - A KUnit testsuite for the topology code. - Support for Ingenic JZ4760(B), Intel AlderLake-P, DT configured nVidia cards, Qualcomm lpass-rx-macro and lpass-tx-macro - Removal of obsolete SIRF prima/atlas, Txx9 and ZTE zx drivers.
This commit is contained in:
commit
0c8e97c86b
@ -122,6 +122,7 @@ ForEachMacros:
|
|||||||
- 'drm_for_each_bridge_in_chain'
|
- 'drm_for_each_bridge_in_chain'
|
||||||
- 'drm_for_each_connector_iter'
|
- 'drm_for_each_connector_iter'
|
||||||
- 'drm_for_each_crtc'
|
- 'drm_for_each_crtc'
|
||||||
|
- 'drm_for_each_crtc_reverse'
|
||||||
- 'drm_for_each_encoder'
|
- 'drm_for_each_encoder'
|
||||||
- 'drm_for_each_encoder_mask'
|
- 'drm_for_each_encoder_mask'
|
||||||
- 'drm_for_each_fb'
|
- 'drm_for_each_fb'
|
||||||
@ -203,14 +204,13 @@ ForEachMacros:
|
|||||||
- 'for_each_matching_node'
|
- 'for_each_matching_node'
|
||||||
- 'for_each_matching_node_and_match'
|
- 'for_each_matching_node_and_match'
|
||||||
- 'for_each_member'
|
- 'for_each_member'
|
||||||
- 'for_each_mem_region'
|
|
||||||
- 'for_each_memblock_type'
|
|
||||||
- 'for_each_memcg_cache_index'
|
- 'for_each_memcg_cache_index'
|
||||||
- 'for_each_mem_pfn_range'
|
- 'for_each_mem_pfn_range'
|
||||||
- '__for_each_mem_range'
|
- '__for_each_mem_range'
|
||||||
- 'for_each_mem_range'
|
- 'for_each_mem_range'
|
||||||
- '__for_each_mem_range_rev'
|
- '__for_each_mem_range_rev'
|
||||||
- 'for_each_mem_range_rev'
|
- 'for_each_mem_range_rev'
|
||||||
|
- 'for_each_mem_region'
|
||||||
- 'for_each_migratetype_order'
|
- 'for_each_migratetype_order'
|
||||||
- 'for_each_msi_entry'
|
- 'for_each_msi_entry'
|
||||||
- 'for_each_msi_entry_safe'
|
- 'for_each_msi_entry_safe'
|
||||||
@ -276,10 +276,8 @@ ForEachMacros:
|
|||||||
- 'for_each_reserved_mem_range'
|
- 'for_each_reserved_mem_range'
|
||||||
- 'for_each_reserved_mem_region'
|
- 'for_each_reserved_mem_region'
|
||||||
- 'for_each_rtd_codec_dais'
|
- 'for_each_rtd_codec_dais'
|
||||||
- 'for_each_rtd_codec_dais_rollback'
|
|
||||||
- 'for_each_rtd_components'
|
- 'for_each_rtd_components'
|
||||||
- 'for_each_rtd_cpu_dais'
|
- 'for_each_rtd_cpu_dais'
|
||||||
- 'for_each_rtd_cpu_dais_rollback'
|
|
||||||
- 'for_each_rtd_dais'
|
- 'for_each_rtd_dais'
|
||||||
- 'for_each_set_bit'
|
- 'for_each_set_bit'
|
||||||
- 'for_each_set_bit_from'
|
- 'for_each_set_bit_from'
|
||||||
@ -298,6 +296,7 @@ ForEachMacros:
|
|||||||
- '__for_each_thread'
|
- '__for_each_thread'
|
||||||
- 'for_each_thread'
|
- 'for_each_thread'
|
||||||
- 'for_each_unicast_dest_pgid'
|
- 'for_each_unicast_dest_pgid'
|
||||||
|
- 'for_each_vsi'
|
||||||
- 'for_each_wakeup_source'
|
- 'for_each_wakeup_source'
|
||||||
- 'for_each_zone'
|
- 'for_each_zone'
|
||||||
- 'for_each_zone_zonelist'
|
- 'for_each_zone_zonelist'
|
||||||
@ -330,6 +329,7 @@ ForEachMacros:
|
|||||||
- 'hlist_for_each_entry_rcu_bh'
|
- 'hlist_for_each_entry_rcu_bh'
|
||||||
- 'hlist_for_each_entry_rcu_notrace'
|
- 'hlist_for_each_entry_rcu_notrace'
|
||||||
- 'hlist_for_each_entry_safe'
|
- 'hlist_for_each_entry_safe'
|
||||||
|
- 'hlist_for_each_entry_srcu'
|
||||||
- '__hlist_for_each_rcu'
|
- '__hlist_for_each_rcu'
|
||||||
- 'hlist_for_each_safe'
|
- 'hlist_for_each_safe'
|
||||||
- 'hlist_nulls_for_each_entry'
|
- 'hlist_nulls_for_each_entry'
|
||||||
@ -378,6 +378,7 @@ ForEachMacros:
|
|||||||
- 'list_for_each_entry_safe_continue'
|
- 'list_for_each_entry_safe_continue'
|
||||||
- 'list_for_each_entry_safe_from'
|
- 'list_for_each_entry_safe_from'
|
||||||
- 'list_for_each_entry_safe_reverse'
|
- 'list_for_each_entry_safe_reverse'
|
||||||
|
- 'list_for_each_entry_srcu'
|
||||||
- 'list_for_each_prev'
|
- 'list_for_each_prev'
|
||||||
- 'list_for_each_prev_safe'
|
- 'list_for_each_prev_safe'
|
||||||
- 'list_for_each_safe'
|
- 'list_for_each_safe'
|
||||||
@ -411,6 +412,8 @@ ForEachMacros:
|
|||||||
- 'of_property_for_each_string'
|
- 'of_property_for_each_string'
|
||||||
- 'of_property_for_each_u32'
|
- 'of_property_for_each_u32'
|
||||||
- 'pci_bus_for_each_resource'
|
- 'pci_bus_for_each_resource'
|
||||||
|
- 'pcl_for_each_chunk'
|
||||||
|
- 'pcl_for_each_segment'
|
||||||
- 'pcm_for_each_format'
|
- 'pcm_for_each_format'
|
||||||
- 'ping_portaddr_for_each_entry'
|
- 'ping_portaddr_for_each_entry'
|
||||||
- 'plist_for_each'
|
- 'plist_for_each'
|
||||||
|
12
.mailmap
12
.mailmap
@ -9,9 +9,6 @@
|
|||||||
#
|
#
|
||||||
# Please keep this list dictionary sorted.
|
# Please keep this list dictionary sorted.
|
||||||
#
|
#
|
||||||
# This comment is parsed by git-shortlog:
|
|
||||||
# repo-abbrev: /pub/scm/linux/kernel/git/
|
|
||||||
#
|
|
||||||
Aaron Durbin <adurbin@google.com>
|
Aaron Durbin <adurbin@google.com>
|
||||||
Adam Oldham <oldhamca@gmail.com>
|
Adam Oldham <oldhamca@gmail.com>
|
||||||
Adam Radford <aradford@gmail.com>
|
Adam Radford <aradford@gmail.com>
|
||||||
@ -55,6 +52,8 @@ Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
|
|||||||
Ben Gardner <bgardner@wabtec.com>
|
Ben Gardner <bgardner@wabtec.com>
|
||||||
Ben M Cahill <ben.m.cahill@intel.com>
|
Ben M Cahill <ben.m.cahill@intel.com>
|
||||||
Björn Steinbrink <B.Steinbrink@gmx.de>
|
Björn Steinbrink <B.Steinbrink@gmx.de>
|
||||||
|
Björn Töpel <bjorn@kernel.org> <bjorn.topel@gmail.com>
|
||||||
|
Björn Töpel <bjorn@kernel.org> <bjorn.topel@intel.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon.dev@gmail.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
Boris Brezillon <bbrezillon@kernel.org> <b.brezillon@overkiz.com>
|
||||||
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
Boris Brezillon <bbrezillon@kernel.org> <boris.brezillon@bootlin.com>
|
||||||
@ -180,6 +179,8 @@ Kees Cook <keescook@chromium.org> <kees.cook@canonical.com>
|
|||||||
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
Kees Cook <keescook@chromium.org> <keescook@google.com>
|
||||||
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
Kees Cook <keescook@chromium.org> <kees@outflux.net>
|
||||||
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
Kees Cook <keescook@chromium.org> <kees@ubuntu.com>
|
||||||
|
Keith Busch <kbusch@kernel.org> <keith.busch@intel.com>
|
||||||
|
Keith Busch <kbusch@kernel.org> <keith.busch@linux.intel.com>
|
||||||
Kenneth W Chen <kenneth.w.chen@intel.com>
|
Kenneth W Chen <kenneth.w.chen@intel.com>
|
||||||
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
Konstantin Khlebnikov <koct9i@gmail.com> <khlebnikov@yandex-team.ru>
|
||||||
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
Konstantin Khlebnikov <koct9i@gmail.com> <k.khlebnikov@samsung.com>
|
||||||
@ -200,6 +201,8 @@ Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
|||||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||||
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||||
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
||||||
|
Manivannan Sadhasivam <mani@kernel.org> <manivannanece23@gmail.com>
|
||||||
|
Manivannan Sadhasivam <mani@kernel.org> <manivannan.sadhasivam@linaro.org>
|
||||||
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
||||||
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
||||||
Mark Brown <broonie@sirena.org.uk>
|
Mark Brown <broonie@sirena.org.uk>
|
||||||
@ -245,6 +248,7 @@ Morten Welinder <welinder@anemone.rentec.com>
|
|||||||
Morten Welinder <welinder@darter.rentec.com>
|
Morten Welinder <welinder@darter.rentec.com>
|
||||||
Morten Welinder <welinder@troll.com>
|
Morten Welinder <welinder@troll.com>
|
||||||
Mythri P K <mythripk@ti.com>
|
Mythri P K <mythripk@ti.com>
|
||||||
|
Nathan Chancellor <nathan@kernel.org> <natechancellor@gmail.com>
|
||||||
Nguyen Anh Quynh <aquynh@gmail.com>
|
Nguyen Anh Quynh <aquynh@gmail.com>
|
||||||
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
Nicolas Ferre <nicolas.ferre@microchip.com> <nicolas.ferre@atmel.com>
|
||||||
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
Nicolas Pitre <nico@fluxnic.net> <nicolas.pitre@linaro.org>
|
||||||
@ -335,6 +339,8 @@ Vinod Koul <vkoul@kernel.org> <vkoul@infradead.org>
|
|||||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar2@arm.com>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.kumar@st.com>
|
||||||
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
Viresh Kumar <vireshk@kernel.org> <viresh.linux@gmail.com>
|
||||||
|
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.org>
|
||||||
|
Viresh Kumar <viresh.kumar@linaro.org> <viresh.kumar@linaro.com>
|
||||||
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
Vivien Didelot <vivien.didelot@gmail.com> <vivien.didelot@savoirfairelinux.com>
|
||||||
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
Vlad Dogaru <ddvlad@gmail.com> <vlad.dogaru@intel.com>
|
||||||
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
|
||||||
|
@ -5,8 +5,8 @@ Description:
|
|||||||
Provide a place in sysfs for the device link objects in the
|
Provide a place in sysfs for the device link objects in the
|
||||||
kernel at any given time. The name of a device link directory,
|
kernel at any given time. The name of a device link directory,
|
||||||
denoted as ... above, is of the form <supplier>--<consumer>
|
denoted as ... above, is of the form <supplier>--<consumer>
|
||||||
where <supplier> is the supplier device name and <consumer> is
|
where <supplier> is the supplier bus:device name and <consumer>
|
||||||
the consumer device name.
|
is the consumer bus:device name.
|
||||||
|
|
||||||
What: /sys/class/devlink/.../auto_remove_on
|
What: /sys/class/devlink/.../auto_remove_on
|
||||||
Date: May 2020
|
Date: May 2020
|
||||||
|
@ -4,5 +4,6 @@ Contact: Saravana Kannan <saravanak@google.com>
|
|||||||
Description:
|
Description:
|
||||||
The /sys/devices/.../consumer:<consumer> are symlinks to device
|
The /sys/devices/.../consumer:<consumer> are symlinks to device
|
||||||
links where this device is the supplier. <consumer> denotes the
|
links where this device is the supplier. <consumer> denotes the
|
||||||
name of the consumer in that device link. There can be zero or
|
name of the consumer in that device link and is of the form
|
||||||
more of these symlinks for a given device.
|
bus:device name. There can be zero or more of these symlinks
|
||||||
|
for a given device.
|
||||||
|
@ -4,5 +4,6 @@ Contact: Saravana Kannan <saravanak@google.com>
|
|||||||
Description:
|
Description:
|
||||||
The /sys/devices/.../supplier:<supplier> are symlinks to device
|
The /sys/devices/.../supplier:<supplier> are symlinks to device
|
||||||
links where this device is the consumer. <supplier> denotes the
|
links where this device is the consumer. <supplier> denotes the
|
||||||
name of the supplier in that device link. There can be zero or
|
name of the supplier in that device link and is of the form
|
||||||
more of these symlinks for a given device.
|
bus:device name. There can be zero or more of these symlinks
|
||||||
|
for a given device.
|
||||||
|
@ -916,21 +916,25 @@ Date: September 2014
|
|||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
runtime power management level. The current driver
|
runtime power management level. The current driver
|
||||||
implementation supports 6 levels with next target states:
|
implementation supports 7 levels with next target states:
|
||||||
|
|
||||||
== ====================================================
|
== ====================================================
|
||||||
0 an UFS device will stay active, an UIC link will
|
0 UFS device will stay active, UIC link will
|
||||||
stay active
|
stay active
|
||||||
1 an UFS device will stay active, an UIC link will
|
1 UFS device will stay active, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
2 an UFS device will moved to sleep, an UIC link will
|
2 UFS device will be moved to sleep, UIC link will
|
||||||
stay active
|
stay active
|
||||||
3 an UFS device will moved to sleep, an UIC link will
|
3 UFS device will be moved to sleep, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
4 an UFS device will be powered off, an UIC link will
|
4 UFS device will be powered off, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
5 an UFS device will be powered off, an UIC link will
|
5 UFS device will be powered off, UIC link will
|
||||||
be powered off
|
be powered off
|
||||||
|
6 UFS device will be moved to deep sleep, UIC link
|
||||||
|
will be powered off. Note, deep sleep might not be
|
||||||
|
supported in which case this value will not be
|
||||||
|
accepted
|
||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/rpm_target_dev_state
|
||||||
@ -954,21 +958,25 @@ Date: September 2014
|
|||||||
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
Contact: Subhash Jadavani <subhashj@codeaurora.org>
|
||||||
Description: This entry could be used to set or show the UFS device
|
Description: This entry could be used to set or show the UFS device
|
||||||
system power management level. The current driver
|
system power management level. The current driver
|
||||||
implementation supports 6 levels with next target states:
|
implementation supports 7 levels with next target states:
|
||||||
|
|
||||||
== ====================================================
|
== ====================================================
|
||||||
0 an UFS device will stay active, an UIC link will
|
0 UFS device will stay active, UIC link will
|
||||||
stay active
|
stay active
|
||||||
1 an UFS device will stay active, an UIC link will
|
1 UFS device will stay active, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
2 an UFS device will moved to sleep, an UIC link will
|
2 UFS device will be moved to sleep, UIC link will
|
||||||
stay active
|
stay active
|
||||||
3 an UFS device will moved to sleep, an UIC link will
|
3 UFS device will be moved to sleep, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
4 an UFS device will be powered off, an UIC link will
|
4 UFS device will be powered off, UIC link will
|
||||||
hibernate
|
hibernate
|
||||||
5 an UFS device will be powered off, an UIC link will
|
5 UFS device will be powered off, UIC link will
|
||||||
be powered off
|
be powered off
|
||||||
|
6 UFS device will be moved to deep sleep, UIC link
|
||||||
|
will be powered off. Note, deep sleep might not be
|
||||||
|
supported in which case this value will not be
|
||||||
|
accepted
|
||||||
== ====================================================
|
== ====================================================
|
||||||
|
|
||||||
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
What: /sys/bus/platform/drivers/ufshcd/*/spm_target_dev_state
|
||||||
|
@ -75,7 +75,7 @@ quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
|
|||||||
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
|
||||||
PYTHONDONTWRITEBYTECODE=1 \
|
PYTHONDONTWRITEBYTECODE=1 \
|
||||||
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(srctree)/$(src)/$5/$(SPHINX_CONF)) \
|
||||||
$(PYTHON) $(srctree)/scripts/jobserver-exec \
|
$(PYTHON3) $(srctree)/scripts/jobserver-exec \
|
||||||
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
$(SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
|
||||||
$(SPHINXBUILD) \
|
$(SPHINXBUILD) \
|
||||||
-b $2 \
|
-b $2 \
|
||||||
|
@ -177,14 +177,20 @@ bitmap_flush_interval:number
|
|||||||
The bitmap flush interval in milliseconds. The metadata buffers
|
The bitmap flush interval in milliseconds. The metadata buffers
|
||||||
are synchronized when this interval expires.
|
are synchronized when this interval expires.
|
||||||
|
|
||||||
|
allow_discards
|
||||||
|
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
||||||
|
Discards are only allowed to devices using internal hash.
|
||||||
|
|
||||||
fix_padding
|
fix_padding
|
||||||
Use a smaller padding of the tag area that is more
|
Use a smaller padding of the tag area that is more
|
||||||
space-efficient. If this option is not present, large padding is
|
space-efficient. If this option is not present, large padding is
|
||||||
used - that is for compatibility with older kernels.
|
used - that is for compatibility with older kernels.
|
||||||
|
|
||||||
allow_discards
|
legacy_recalculate
|
||||||
Allow block discard requests (a.k.a. TRIM) for the integrity device.
|
Allow recalculating of volumes with HMAC keys. This is disabled by
|
||||||
Discards are only allowed to devices using internal hash.
|
default for security reasons - an attacker could modify the volume,
|
||||||
|
set recalc_sector to zero, and the kernel would not detect the
|
||||||
|
modification.
|
||||||
|
|
||||||
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
The journal mode (D/J), buffer_sectors, journal_watermark, commit_time and
|
||||||
allow_discards can be changed when reloading the target (load an inactive
|
allow_discards can be changed when reloading the target (load an inactive
|
||||||
|
@ -13,6 +13,22 @@ This file documents the driver for the Rockchip ISP1 that is part of RK3288
|
|||||||
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
and RK3399 SoCs. The driver is located under drivers/staging/media/rkisp1
|
||||||
and uses the Media-Controller API.
|
and uses the Media-Controller API.
|
||||||
|
|
||||||
|
Revisions
|
||||||
|
=========
|
||||||
|
|
||||||
|
There exist multiple smaller revisions to this ISP that got introduced in
|
||||||
|
later SoCs. Revisions can be found in the enum :c:type:`rkisp1_cif_isp_version`
|
||||||
|
in the UAPI and the revision of the ISP inside the running SoC can be read
|
||||||
|
in the field hw_revision of struct media_device_info as returned by
|
||||||
|
ioctl MEDIA_IOC_DEVICE_INFO.
|
||||||
|
|
||||||
|
Versions in use are:
|
||||||
|
|
||||||
|
- RKISP1_V10: used at least in rk3288 and rk3399
|
||||||
|
- RKISP1_V11: declared in the original vendor code, but not used
|
||||||
|
- RKISP1_V12: used at least in rk3326 and px30
|
||||||
|
- RKISP1_V13: used at least in rk1808
|
||||||
|
|
||||||
Topology
|
Topology
|
||||||
========
|
========
|
||||||
.. _rkisp1_topology_graph:
|
.. _rkisp1_topology_graph:
|
||||||
|
@ -70,8 +70,8 @@ trampoline code on the vDSO, that trampoline is never intercepted.
|
|||||||
[selector] is a pointer to a char-sized region in the process memory
|
[selector] is a pointer to a char-sized region in the process memory
|
||||||
region, that provides a quick way to enable disable syscall redirection
|
region, that provides a quick way to enable disable syscall redirection
|
||||||
thread-wide, without the need to invoke the kernel directly. selector
|
thread-wide, without the need to invoke the kernel directly. selector
|
||||||
can be set to PR_SYS_DISPATCH_ON or PR_SYS_DISPATCH_OFF. Any other
|
can be set to SYSCALL_DISPATCH_FILTER_ALLOW or SYSCALL_DISPATCH_FILTER_BLOCK.
|
||||||
value should terminate the program with a SIGSYS.
|
Any other value should terminate the program with a SIGSYS.
|
||||||
|
|
||||||
Security Notes
|
Security Notes
|
||||||
--------------
|
--------------
|
||||||
|
@ -100,6 +100,11 @@ Instruction Macros
|
|||||||
~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~
|
||||||
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
This section covers ``SYM_FUNC_*`` and ``SYM_CODE_*`` enumerated above.
|
||||||
|
|
||||||
|
``objtool`` requires that all code must be contained in an ELF symbol. Symbol
|
||||||
|
names that have a ``.L`` prefix do not emit symbol table entries. ``.L``
|
||||||
|
prefixed symbols can be used within a code region, but should be avoided for
|
||||||
|
denoting a range of code via ``SYM_*_START/END`` annotations.
|
||||||
|
|
||||||
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
* ``SYM_FUNC_START`` and ``SYM_FUNC_START_LOCAL`` are supposed to be **the
|
||||||
most frequent markings**. They are used for functions with standard calling
|
most frequent markings**. They are used for functions with standard calling
|
||||||
conventions -- global and local. Like in C, they both align the functions to
|
conventions -- global and local. Like in C, they both align the functions to
|
||||||
|
@ -160,29 +160,14 @@ intended for use in production as a security mitigation. Therefore it supports
|
|||||||
boot parameters that allow to disable KASAN competely or otherwise control
|
boot parameters that allow to disable KASAN competely or otherwise control
|
||||||
particular KASAN features.
|
particular KASAN features.
|
||||||
|
|
||||||
The things that can be controlled are:
|
- ``kasan=off`` or ``=on`` controls whether KASAN is enabled (default: ``on``).
|
||||||
|
|
||||||
1. Whether KASAN is enabled at all.
|
- ``kasan.stacktrace=off`` or ``=on`` disables or enables alloc and free stack
|
||||||
2. Whether KASAN collects and saves alloc/free stacks.
|
traces collection (default: ``on`` for ``CONFIG_DEBUG_KERNEL=y``, otherwise
|
||||||
3. Whether KASAN panics on a detected bug or not.
|
``off``).
|
||||||
|
|
||||||
The ``kasan.mode`` boot parameter allows to choose one of three main modes:
|
- ``kasan.fault=report`` or ``=panic`` controls whether to only print a KASAN
|
||||||
|
report or also panic the kernel (default: ``report``).
|
||||||
- ``kasan.mode=off`` - KASAN is disabled, no tag checks are performed
|
|
||||||
- ``kasan.mode=prod`` - only essential production features are enabled
|
|
||||||
- ``kasan.mode=full`` - all KASAN features are enabled
|
|
||||||
|
|
||||||
The chosen mode provides default control values for the features mentioned
|
|
||||||
above. However it's also possible to override the default values by providing:
|
|
||||||
|
|
||||||
- ``kasan.stacktrace=off`` or ``=on`` - enable alloc/free stack collection
|
|
||||||
(default: ``on`` for ``mode=full``,
|
|
||||||
otherwise ``off``)
|
|
||||||
- ``kasan.fault=report`` or ``=panic`` - only print KASAN report or also panic
|
|
||||||
(default: ``report``)
|
|
||||||
|
|
||||||
If ``kasan.mode`` parameter is not provided, it defaults to ``full`` when
|
|
||||||
``CONFIG_DEBUG_KERNEL`` is enabled, and to ``prod`` otherwise.
|
|
||||||
|
|
||||||
For developers
|
For developers
|
||||||
~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~
|
||||||
|
@ -522,6 +522,63 @@ There's more boilerplate involved, but it can:
|
|||||||
* E.g. if we wanted to also test ``sha256sum``, we could add a ``sha256``
|
* E.g. if we wanted to also test ``sha256sum``, we could add a ``sha256``
|
||||||
field and reuse ``cases``.
|
field and reuse ``cases``.
|
||||||
|
|
||||||
|
* be converted to a "parameterized test", see below.
|
||||||
|
|
||||||
|
Parameterized Testing
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The table-driven testing pattern is common enough that KUnit has special
|
||||||
|
support for it.
|
||||||
|
|
||||||
|
Reusing the same ``cases`` array from above, we can write the test as a
|
||||||
|
"parameterized test" with the following.
|
||||||
|
|
||||||
|
.. code-block:: c
|
||||||
|
|
||||||
|
// This is copy-pasted from above.
|
||||||
|
struct sha1_test_case {
|
||||||
|
const char *str;
|
||||||
|
const char *sha1;
|
||||||
|
};
|
||||||
|
struct sha1_test_case cases[] = {
|
||||||
|
{
|
||||||
|
.str = "hello world",
|
||||||
|
.sha1 = "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.str = "hello world!",
|
||||||
|
.sha1 = "430ce34d020724ed75a196dfc2ad67c77772d169",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Need a helper function to generate a name for each test case.
|
||||||
|
static void case_to_desc(const struct sha1_test_case *t, char *desc)
|
||||||
|
{
|
||||||
|
strcpy(desc, t->str);
|
||||||
|
}
|
||||||
|
// Creates `sha1_gen_params()` to iterate over `cases`.
|
||||||
|
KUNIT_ARRAY_PARAM(sha1, cases, case_to_desc);
|
||||||
|
|
||||||
|
// Looks no different from a normal test.
|
||||||
|
static void sha1_test(struct kunit *test)
|
||||||
|
{
|
||||||
|
// This function can just contain the body of the for-loop.
|
||||||
|
// The former `cases[i]` is accessible under test->param_value.
|
||||||
|
char out[40];
|
||||||
|
struct sha1_test_case *test_param = (struct sha1_test_case *)(test->param_value);
|
||||||
|
|
||||||
|
sha1sum(test_param->str, out);
|
||||||
|
KUNIT_EXPECT_STREQ_MSG(test, (char *)out, test_param->sha1,
|
||||||
|
"sha1sum(%s)", test_param->str);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Instead of KUNIT_CASE, we use KUNIT_CASE_PARAM and pass in the
|
||||||
|
// function declared by KUNIT_ARRAY_PARAM.
|
||||||
|
static struct kunit_case sha1_test_cases[] = {
|
||||||
|
KUNIT_CASE_PARAM(sha1_test, sha1_gen_params),
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
.. _kunit-on-non-uml:
|
.. _kunit-on-non-uml:
|
||||||
|
|
||||||
KUnit on non-UML architectures
|
KUnit on non-UML architectures
|
||||||
|
@ -232,7 +232,6 @@ properties:
|
|||||||
by this cpu (see ./idle-states.yaml).
|
by this cpu (see ./idle-states.yaml).
|
||||||
|
|
||||||
capacity-dmips-mhz:
|
capacity-dmips-mhz:
|
||||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
|
||||||
description:
|
description:
|
||||||
u32 value representing CPU capacity (see ./cpu-capacity.txt) in
|
u32 value representing CPU capacity (see ./cpu-capacity.txt) in
|
||||||
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
DMIPS/MHz, relative to highest capacity-dmips-mhz
|
||||||
|
@ -40,7 +40,7 @@ Optional properties:
|
|||||||
documents on how to describe the way the sii902x device is
|
documents on how to describe the way the sii902x device is
|
||||||
connected to the rest of the audio system:
|
connected to the rest of the audio system:
|
||||||
Documentation/devicetree/bindings/sound/simple-card.yaml
|
Documentation/devicetree/bindings/sound/simple-card.yaml
|
||||||
Documentation/devicetree/bindings/sound/audio-graph-card.txt
|
Documentation/devicetree/bindings/sound/audio-graph-card.yaml
|
||||||
Note: In case of the audio-graph-card binding the used port
|
Note: In case of the audio-graph-card binding the used port
|
||||||
index should be 3.
|
index should be 3.
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ connected to.
|
|||||||
|
|
||||||
For a description of the display interface sink function blocks, see
|
For a description of the display interface sink function blocks, see
|
||||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and
|
Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.txt and
|
||||||
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.txt.
|
Documentation/devicetree/bindings/display/mediatek/mediatek,dpi.yaml.
|
||||||
|
|
||||||
Required properties (all function blocks):
|
Required properties (all function blocks):
|
||||||
- compatible: "mediatek,<chip>-disp-<function>", one of
|
- compatible: "mediatek,<chip>-disp-<function>", one of
|
||||||
@ -61,7 +61,7 @@ Required properties (DMA function blocks):
|
|||||||
"mediatek,<chip>-disp-wdma"
|
"mediatek,<chip>-disp-wdma"
|
||||||
the supported chips are mt2701, mt8167 and mt8173.
|
the supported chips are mt2701, mt8167 and mt8173.
|
||||||
- larb: Should contain a phandle pointing to the local arbiter device as defined
|
- larb: Should contain a phandle pointing to the local arbiter device as defined
|
||||||
in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
in Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
- iommus: Should point to the respective IOMMU block with master port as
|
- iommus: Should point to the respective IOMMU block with master port as
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
for details.
|
for details.
|
||||||
|
@ -85,7 +85,6 @@ properties:
|
|||||||
wlf,micd-timeout-ms:
|
wlf,micd-timeout-ms:
|
||||||
description:
|
description:
|
||||||
Timeout for microphone detection, specified in milliseconds.
|
Timeout for microphone detection, specified in milliseconds.
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
|
|
||||||
wlf,micd-force-micbias:
|
wlf,micd-force-micbias:
|
||||||
description:
|
description:
|
||||||
|
@ -49,7 +49,6 @@ properties:
|
|||||||
description:
|
description:
|
||||||
This property controls the Accumulation Dead band which allows to set the
|
This property controls the Accumulation Dead band which allows to set the
|
||||||
level of current below which no accumulation takes place.
|
level of current below which no accumulation takes place.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
maximum: 255
|
maximum: 255
|
||||||
default: 0
|
default: 0
|
||||||
|
|
||||||
|
@ -73,11 +73,9 @@ properties:
|
|||||||
description: |
|
description: |
|
||||||
Temperature sensor trimming factor. It can be used to manually adjust the
|
Temperature sensor trimming factor. It can be used to manually adjust the
|
||||||
temperature measurements within 7.130 degrees Celsius.
|
temperature measurements within 7.130 degrees Celsius.
|
||||||
maxItems: 1
|
default: 0
|
||||||
items:
|
minimum: 0
|
||||||
default: 0
|
maximum: 7130
|
||||||
minimum: 0
|
|
||||||
maximum: 7130
|
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
||||||
|
@ -52,7 +52,6 @@ properties:
|
|||||||
ti,bus-range-microvolt:
|
ti,bus-range-microvolt:
|
||||||
description: |
|
description: |
|
||||||
This is the operating range of the bus voltage in microvolt
|
This is the operating range of the bus voltage in microvolt
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
enum: [16000000, 32000000]
|
enum: [16000000, 32000000]
|
||||||
default: 32000000
|
default: 32000000
|
||||||
|
|
||||||
|
@ -39,11 +39,9 @@ properties:
|
|||||||
|
|
||||||
i2c-gpio,delay-us:
|
i2c-gpio,delay-us:
|
||||||
description: delay between GPIO operations (may depend on each platform)
|
description: delay between GPIO operations (may depend on each platform)
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
i2c-gpio,timeout-ms:
|
i2c-gpio,timeout-ms:
|
||||||
description: timeout to get data
|
description: timeout to get data
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
# Deprecated properties, do not use in new device tree sources:
|
# Deprecated properties, do not use in new device tree sources:
|
||||||
gpios:
|
gpios:
|
||||||
|
@ -66,21 +66,18 @@ properties:
|
|||||||
default: 400000
|
default: 400000
|
||||||
|
|
||||||
i2c-sda-hold-time-ns:
|
i2c-sda-hold-time-ns:
|
||||||
maxItems: 1
|
|
||||||
description: |
|
description: |
|
||||||
The property should contain the SDA hold time in nanoseconds. This option
|
The property should contain the SDA hold time in nanoseconds. This option
|
||||||
is only supported in hardware blocks version 1.11a or newer or on
|
is only supported in hardware blocks version 1.11a or newer or on
|
||||||
Microsemi SoCs.
|
Microsemi SoCs.
|
||||||
|
|
||||||
i2c-scl-falling-time-ns:
|
i2c-scl-falling-time-ns:
|
||||||
maxItems: 1
|
|
||||||
description: |
|
description: |
|
||||||
The property should contain the SCL falling time in nanoseconds.
|
The property should contain the SCL falling time in nanoseconds.
|
||||||
This value is used to compute the tLOW period.
|
This value is used to compute the tLOW period.
|
||||||
default: 300
|
default: 300
|
||||||
|
|
||||||
i2c-sda-falling-time-ns:
|
i2c-sda-falling-time-ns:
|
||||||
maxItems: 1
|
|
||||||
description: |
|
description: |
|
||||||
The property should contain the SDA falling time in nanoseconds.
|
The property should contain the SDA falling time in nanoseconds.
|
||||||
This value is used to compute the tHIGH period.
|
This value is used to compute the tHIGH period.
|
||||||
|
@ -16,8 +16,8 @@ description:
|
|||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
enum:
|
enum:
|
||||||
- bosch,bmc150
|
- bosch,bmc150_accel
|
||||||
- bosch,bmi055
|
- bosch,bmi055_accel
|
||||||
- bosch,bma255
|
- bosch,bma255
|
||||||
- bosch,bma250e
|
- bosch,bma250e
|
||||||
- bosch,bma222
|
- bosch,bma222
|
||||||
|
@ -80,7 +80,7 @@ properties:
|
|||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
bipolar:
|
bipolar:
|
||||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
description: see Documentation/devicetree/bindings/iio/adc/adc.yaml
|
||||||
type: boolean
|
type: boolean
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
@ -23,7 +23,6 @@ properties:
|
|||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
shunt-resistor-micro-ohms:
|
shunt-resistor-micro-ohms:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: |
|
description: |
|
||||||
Value in micro Ohms of the shunt resistor connected between the RS+ and
|
Value in micro Ohms of the shunt resistor connected between the RS+ and
|
||||||
RS- inputs, across which the current is measured. Value needed to compute
|
RS- inputs, across which the current is measured. Value needed to compute
|
||||||
|
@ -246,7 +246,6 @@ patternProperties:
|
|||||||
Resolution (bits) to use for conversions:
|
Resolution (bits) to use for conversions:
|
||||||
- can be 6, 8, 10 or 12 on stm32f4
|
- can be 6, 8, 10 or 12 on stm32f4
|
||||||
- can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1
|
- can be 8, 10, 12, 14 or 16 on stm32h7 and stm32mp1
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
st,adc-channels:
|
st,adc-channels:
|
||||||
description: |
|
description: |
|
||||||
|
@ -42,7 +42,6 @@ properties:
|
|||||||
const: 1
|
const: 1
|
||||||
|
|
||||||
ti,channel0-current-microamp:
|
ti,channel0-current-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: Channel 0 current in uA.
|
description: Channel 0 current in uA.
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
@ -51,7 +50,6 @@ properties:
|
|||||||
- 20
|
- 20
|
||||||
|
|
||||||
ti,channel3-current-microamp:
|
ti,channel3-current-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: Channel 3 current in uA.
|
description: Channel 3 current in uA.
|
||||||
enum:
|
enum:
|
||||||
- 0
|
- 0
|
||||||
|
@ -46,31 +46,42 @@ properties:
|
|||||||
two properties must be present:
|
two properties must be present:
|
||||||
|
|
||||||
adi,range-microvolt:
|
adi,range-microvolt:
|
||||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
|
||||||
description: |
|
description: |
|
||||||
Voltage output range specified as <minimum, maximum>
|
Voltage output range specified as <minimum, maximum>
|
||||||
enum:
|
oneOf:
|
||||||
- [[0, 5000000]]
|
- items:
|
||||||
- [[0, 10000000]]
|
- const: 0
|
||||||
- [[-5000000, 5000000]]
|
- enum: [5000000, 10000000]
|
||||||
- [[-10000000, 10000000]]
|
- items:
|
||||||
|
- const: -5000000
|
||||||
|
- const: 5000000
|
||||||
|
- items:
|
||||||
|
- const: -10000000
|
||||||
|
- const: 10000000
|
||||||
|
|
||||||
adi,range-microamp:
|
adi,range-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
|
||||||
description: |
|
description: |
|
||||||
Current output range specified as <minimum, maximum>
|
Current output range specified as <minimum, maximum>
|
||||||
enum:
|
oneOf:
|
||||||
- [[0, 20000]]
|
- items:
|
||||||
- [[0, 24000]]
|
- const: 0
|
||||||
- [[4, 24000]]
|
- enum: [20000, 24000]
|
||||||
- [[-20000, 20000]]
|
- items:
|
||||||
- [[-24000, 24000]]
|
- const: 4
|
||||||
- [[-1000, 22000]]
|
- const: 24000
|
||||||
|
- items:
|
||||||
|
- const: -20000
|
||||||
|
- const: 20000
|
||||||
|
- items:
|
||||||
|
- const: -24000
|
||||||
|
- const: 24000
|
||||||
|
- items:
|
||||||
|
- const: -1000
|
||||||
|
- const: 22000
|
||||||
|
|
||||||
reset-gpios: true
|
reset-gpios: true
|
||||||
|
|
||||||
adi,dc-dc-ilim-microamp:
|
adi,dc-dc-ilim-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
enum: [150000, 200000, 250000, 300000, 350000, 400000]
|
enum: [150000, 200000, 250000, 300000, 350000, 400000]
|
||||||
description: |
|
description: |
|
||||||
The dc-to-dc converter current limit.
|
The dc-to-dc converter current limit.
|
||||||
|
@ -21,7 +21,6 @@ properties:
|
|||||||
description: Connected to ADC_RDY pin.
|
description: Connected to ADC_RDY pin.
|
||||||
|
|
||||||
maxim,led-current-microamp:
|
maxim,led-current-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
minItems: 2
|
minItems: 2
|
||||||
maxItems: 2
|
maxItems: 2
|
||||||
description: |
|
description: |
|
||||||
|
@ -5,7 +5,8 @@ Required properties:
|
|||||||
- compatible: "adc-keys"
|
- compatible: "adc-keys"
|
||||||
- io-channels: Phandle to an ADC channel
|
- io-channels: Phandle to an ADC channel
|
||||||
- io-channel-names = "buttons";
|
- io-channel-names = "buttons";
|
||||||
- keyup-threshold-microvolt: Voltage at which all the keys are considered up.
|
- keyup-threshold-microvolt: Voltage above or equal to which all the keys are
|
||||||
|
considered up.
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
- poll-interval: Poll interval time in milliseconds
|
- poll-interval: Poll interval time in milliseconds
|
||||||
@ -17,7 +18,12 @@ Each button (key) is represented as a sub-node of "adc-keys":
|
|||||||
Required subnode-properties:
|
Required subnode-properties:
|
||||||
- label: Descriptive name of the key.
|
- label: Descriptive name of the key.
|
||||||
- linux,code: Keycode to emit.
|
- linux,code: Keycode to emit.
|
||||||
- press-threshold-microvolt: Voltage ADC input when this key is pressed.
|
- press-threshold-microvolt: voltage above or equal to which this key is
|
||||||
|
considered pressed.
|
||||||
|
|
||||||
|
No two values of press-threshold-microvolt may be the same.
|
||||||
|
All values of press-threshold-microvolt must be less than
|
||||||
|
keyup-threshold-microvolt.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
@ -47,3 +53,15 @@ Example:
|
|||||||
press-threshold-microvolt = <500000>;
|
press-threshold-microvolt = <500000>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 2.000.000 <= value | no key pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 1.500.000 <= value < 2.000.000 | KEY_VOLUMEUP pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 1.000.000 <= value < 1.500.000 | KEY_VOLUMEDOWN pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| 500.000 <= value < 1.000.000 | KEY_ENTER pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
| value < 500.000 | no key pressed |
|
||||||
|
+--------------------------------+------------------------+
|
||||||
|
@ -26,6 +26,7 @@ properties:
|
|||||||
- goodix,gt927
|
- goodix,gt927
|
||||||
- goodix,gt9271
|
- goodix,gt9271
|
||||||
- goodix,gt928
|
- goodix,gt928
|
||||||
|
- goodix,gt9286
|
||||||
- goodix,gt967
|
- goodix,gt967
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
|
@ -70,11 +70,9 @@ properties:
|
|||||||
|
|
||||||
touchscreen-x-mm:
|
touchscreen-x-mm:
|
||||||
description: horizontal length in mm of the touchscreen
|
description: horizontal length in mm of the touchscreen
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
touchscreen-y-mm:
|
touchscreen-y-mm:
|
||||||
description: vertical length in mm of the touchscreen
|
description: vertical length in mm of the touchscreen
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
touchscreen-size-x: [ touchscreen-size-y ]
|
touchscreen-size-x: [ touchscreen-size-y ]
|
||||||
|
111
Documentation/devicetree/bindings/leds/richtek,rt8515.yaml
Normal file
111
Documentation/devicetree/bindings/leds/richtek,rt8515.yaml
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/leds/richtek,rt8515.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Richtek RT8515 1.5A dual channel LED driver
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Linus Walleij <linus.walleij@linaro.org>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
The Richtek RT8515 is a dual channel (two mode) LED driver that
|
||||||
|
supports driving a white LED in flash or torch mode. The maximum
|
||||||
|
current for each mode is defined in hardware using two resistors
|
||||||
|
RFS and RTS.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: richtek,rt8515
|
||||||
|
|
||||||
|
enf-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: A connection to the 'ENF' (enable flash) pin.
|
||||||
|
|
||||||
|
ent-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: A connection to the 'ENT' (enable torch) pin.
|
||||||
|
|
||||||
|
richtek,rfs-ohms:
|
||||||
|
minimum: 7680
|
||||||
|
maximum: 367000
|
||||||
|
description: The resistance value of the RFS resistor. This
|
||||||
|
resistors limits the maximum flash current. This must be set
|
||||||
|
for the property flash-max-microamp to work, the RFS resistor
|
||||||
|
defines the range of the dimmer setting (brightness) of the
|
||||||
|
flash LED.
|
||||||
|
|
||||||
|
richtek,rts-ohms:
|
||||||
|
minimum: 7680
|
||||||
|
maximum: 367000
|
||||||
|
description: The resistance value of the RTS resistor. This
|
||||||
|
resistors limits the maximum torch current. This must be set
|
||||||
|
for the property torch-max-microamp to work, the RTS resistor
|
||||||
|
defines the range of the dimmer setting (brightness) of the
|
||||||
|
torch LED.
|
||||||
|
|
||||||
|
led:
|
||||||
|
type: object
|
||||||
|
$ref: common.yaml#
|
||||||
|
properties:
|
||||||
|
function: true
|
||||||
|
color: true
|
||||||
|
flash-max-timeout-us: true
|
||||||
|
|
||||||
|
flash-max-microamp:
|
||||||
|
maximum: 700000
|
||||||
|
description: The maximum current for flash mode
|
||||||
|
is hardwired to the component using the RFS resistor to
|
||||||
|
ground. The maximum hardware current setting is calculated
|
||||||
|
according to the formula Imax = 5500 / RFS. The lowest
|
||||||
|
allowed resistance value is 7.86 kOhm giving an absolute
|
||||||
|
maximum current of 700mA. By setting this attribute in
|
||||||
|
the device tree, you can further restrict the maximum
|
||||||
|
current below the hardware limit. This requires the RFS
|
||||||
|
to be defined as it defines the maximum range.
|
||||||
|
|
||||||
|
led-max-microamp:
|
||||||
|
maximum: 700000
|
||||||
|
description: The maximum current for torch mode
|
||||||
|
is hardwired to the component using the RTS resistor to
|
||||||
|
ground. The maximum hardware current setting is calculated
|
||||||
|
according to the formula Imax = 5500 / RTS. The lowest
|
||||||
|
allowed resistance value is 7.86 kOhm giving an absolute
|
||||||
|
maximum current of 700mA. By setting this attribute in
|
||||||
|
the device tree, you can further restrict the maximum
|
||||||
|
current below the hardware limit. This requires the RTS
|
||||||
|
to be defined as it defines the maximum range.
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- ent-gpios
|
||||||
|
- enf-gpios
|
||||||
|
- led
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/leds/common.h>
|
||||||
|
|
||||||
|
led-controller {
|
||||||
|
compatible = "richtek,rt8515";
|
||||||
|
enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
|
||||||
|
richtek,rfs-ohms = <16000>;
|
||||||
|
richtek,rts-ohms = <100000>;
|
||||||
|
|
||||||
|
led {
|
||||||
|
function = LED_FUNCTION_FLASH;
|
||||||
|
color = <LED_COLOR_ID_WHITE>;
|
||||||
|
flash-max-timeout-us = <250000>;
|
||||||
|
flash-max-microamp = <150000>;
|
||||||
|
led-max-microamp = <25000>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
@ -16,7 +16,7 @@ Required properties:
|
|||||||
- power-domains: a phandle to the power domain, see
|
- power-domains: a phandle to the power domain, see
|
||||||
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
||||||
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
||||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
for details.
|
for details.
|
||||||
- iommus: should point to the respective IOMMU block with master port as
|
- iommus: should point to the respective IOMMU block with master port as
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
|
@ -14,7 +14,7 @@ Required properties:
|
|||||||
- power-domains: a phandle to the power domain, see
|
- power-domains: a phandle to the power domain, see
|
||||||
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
Documentation/devicetree/bindings/power/power_domain.txt for details.
|
||||||
- mediatek,larb: must contain the local arbiters in the current SoCs, see
|
- mediatek,larb: must contain the local arbiters in the current SoCs, see
|
||||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
for details.
|
for details.
|
||||||
- iommus: should point to the respective IOMMU block with master port as
|
- iommus: should point to the respective IOMMU block with master port as
|
||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
|
@ -28,7 +28,7 @@ Required properties (DMA function blocks, child node):
|
|||||||
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt
|
||||||
for details.
|
for details.
|
||||||
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
- mediatek,larb: must contain the local arbiters in the current Socs, see
|
||||||
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt
|
Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.yaml
|
||||||
for details.
|
for details.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
@ -259,7 +259,6 @@ properties:
|
|||||||
waiting for I/O signalling and card power supply to be stable,
|
waiting for I/O signalling and card power supply to be stable,
|
||||||
regardless of whether pwrseq-simple is used. Default to 10ms if
|
regardless of whether pwrseq-simple is used. Default to 10ms if
|
||||||
no available.
|
no available.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
default: 10
|
default: 10
|
||||||
|
|
||||||
supports-cqe:
|
supports-cqe:
|
||||||
|
@ -41,13 +41,11 @@ properties:
|
|||||||
description:
|
description:
|
||||||
Delay in ms after powering the card and de-asserting the
|
Delay in ms after powering the card and de-asserting the
|
||||||
reset-gpios (if any).
|
reset-gpios (if any).
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
power-off-delay-us:
|
power-off-delay-us:
|
||||||
description:
|
description:
|
||||||
Delay in us after asserting the reset-gpios (if any)
|
Delay in us after asserting the reset-gpios (if any)
|
||||||
during power off of the card.
|
during power off of the card.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
|
@ -122,7 +122,6 @@ properties:
|
|||||||
such as flow control thresholds.
|
such as flow control thresholds.
|
||||||
|
|
||||||
rx-internal-delay-ps:
|
rx-internal-delay-ps:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: |
|
description: |
|
||||||
RGMII Receive Clock Delay defined in pico seconds.
|
RGMII Receive Clock Delay defined in pico seconds.
|
||||||
This is used for controllers that have configurable RX internal delays.
|
This is used for controllers that have configurable RX internal delays.
|
||||||
@ -140,7 +139,6 @@ properties:
|
|||||||
is used for components that can have configurable fifo sizes.
|
is used for components that can have configurable fifo sizes.
|
||||||
|
|
||||||
tx-internal-delay-ps:
|
tx-internal-delay-ps:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: |
|
description: |
|
||||||
RGMII Transmit Clock Delay defined in pico seconds.
|
RGMII Transmit Clock Delay defined in pico seconds.
|
||||||
This is used for controllers that have configurable TX internal delays.
|
This is used for controllers that have configurable TX internal delays.
|
||||||
|
@ -212,7 +212,6 @@ properties:
|
|||||||
Triplet of delays. The 1st cell is reset pre-delay in micro
|
Triplet of delays. The 1st cell is reset pre-delay in micro
|
||||||
seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
|
seconds. The 2nd cell is reset pulse in micro seconds. The 3rd
|
||||||
cell is reset post-delay in micro seconds.
|
cell is reset post-delay in micro seconds.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
minItems: 3
|
minItems: 3
|
||||||
maxItems: 3
|
maxItems: 3
|
||||||
|
|
||||||
|
@ -83,21 +83,18 @@ properties:
|
|||||||
for each of the battery capacity lookup table.
|
for each of the battery capacity lookup table.
|
||||||
|
|
||||||
operating-range-celsius:
|
operating-range-celsius:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
description: operating temperature range of a battery
|
description: operating temperature range of a battery
|
||||||
items:
|
items:
|
||||||
- description: minimum temperature at which battery can operate
|
- description: minimum temperature at which battery can operate
|
||||||
- description: maximum temperature at which battery can operate
|
- description: maximum temperature at which battery can operate
|
||||||
|
|
||||||
ambient-celsius:
|
ambient-celsius:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
description: safe range of ambient temperature
|
description: safe range of ambient temperature
|
||||||
items:
|
items:
|
||||||
- description: alert when ambient temperature is lower than this value
|
- description: alert when ambient temperature is lower than this value
|
||||||
- description: alert when ambient temperature is higher than this value
|
- description: alert when ambient temperature is higher than this value
|
||||||
|
|
||||||
alert-celsius:
|
alert-celsius:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
||||||
description: safe range of battery temperature
|
description: safe range of battery temperature
|
||||||
items:
|
items:
|
||||||
- description: alert when battery temperature is lower than this value
|
- description: alert when battery temperature is lower than this value
|
||||||
|
@ -50,7 +50,6 @@ properties:
|
|||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
input-current-limit-microamp:
|
input-current-limit-microamp:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description: Maximum input current in micro Amps.
|
description: Maximum input current in micro Amps.
|
||||||
minimum: 50000
|
minimum: 50000
|
||||||
maximum: 500000
|
maximum: 500000
|
||||||
|
@ -62,7 +62,6 @@ properties:
|
|||||||
description: IRQ line information.
|
description: IRQ line information.
|
||||||
|
|
||||||
dlg,irq-polling-delay-passive-ms:
|
dlg,irq-polling-delay-passive-ms:
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
minimum: 1000
|
minimum: 1000
|
||||||
maximum: 10000
|
maximum: 10000
|
||||||
description: |
|
description: |
|
||||||
|
@ -72,11 +72,9 @@ properties:
|
|||||||
|
|
||||||
startup-delay-us:
|
startup-delay-us:
|
||||||
description: startup time in microseconds
|
description: startup time in microseconds
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
off-on-delay-us:
|
off-on-delay-us:
|
||||||
description: off delay time in microseconds
|
description: off delay time in microseconds
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
|
|
||||||
enable-active-high:
|
enable-active-high:
|
||||||
description:
|
description:
|
||||||
|
@ -27,7 +27,6 @@ properties:
|
|||||||
1: chargeable
|
1: chargeable
|
||||||
|
|
||||||
quartz-load-femtofarads:
|
quartz-load-femtofarads:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description:
|
description:
|
||||||
The capacitive load of the quartz(x-tal), expressed in femto
|
The capacitive load of the quartz(x-tal), expressed in femto
|
||||||
Farad (fF). The default value shall be listed (if optional),
|
Farad (fF). The default value shall be listed (if optional),
|
||||||
@ -47,7 +46,6 @@ properties:
|
|||||||
deprecated: true
|
deprecated: true
|
||||||
|
|
||||||
trickle-resistor-ohms:
|
trickle-resistor-ohms:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description:
|
description:
|
||||||
Selected resistor for trickle charger. Should be given
|
Selected resistor for trickle charger. Should be given
|
||||||
if trickle charger should be enabled.
|
if trickle charger should be enabled.
|
||||||
|
@ -88,14 +88,12 @@ properties:
|
|||||||
description:
|
description:
|
||||||
Rate at which poll occurs when auto-poll is set.
|
Rate at which poll occurs when auto-poll is set.
|
||||||
default 100ms.
|
default 100ms.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
default: 100
|
default: 100
|
||||||
|
|
||||||
poll-timeout-ms:
|
poll-timeout-ms:
|
||||||
description:
|
description:
|
||||||
Poll timeout when auto-poll is set, default
|
Poll timeout when auto-poll is set, default
|
||||||
3000ms.
|
3000ms.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
default: 3000
|
default: 3000
|
||||||
|
|
||||||
required:
|
required:
|
||||||
|
@ -71,9 +71,6 @@ properties:
|
|||||||
description: CPU to Codec rate channels.
|
description: CPU to Codec rate channels.
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
required:
|
|
||||||
- remote-endpoint
|
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
description: multi OF-Graph subnode
|
description: multi OF-Graph subnode
|
||||||
type: object
|
type: object
|
||||||
|
@ -15,9 +15,14 @@ properties:
|
|||||||
|
|
||||||
compatible:
|
compatible:
|
||||||
oneOf:
|
oneOf:
|
||||||
- const: ingenic,jz4770-codec
|
- enum:
|
||||||
- const: ingenic,jz4725b-codec
|
- ingenic,jz4770-codec
|
||||||
- const: ingenic,jz4740-codec
|
- ingenic,jz4760-codec
|
||||||
|
- ingenic,jz4725b-codec
|
||||||
|
- ingenic,jz4740-codec
|
||||||
|
- items:
|
||||||
|
- const: ingenic,jz4760b-codec
|
||||||
|
- const: ingenic,jz4760-codec
|
||||||
|
|
||||||
reg:
|
reg:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
@ -18,6 +18,7 @@ properties:
|
|||||||
enum:
|
enum:
|
||||||
- intel,keembay-i2s
|
- intel,keembay-i2s
|
||||||
- intel,keembay-tdm
|
- intel,keembay-tdm
|
||||||
|
- intel,keembay-hdmi-i2s
|
||||||
|
|
||||||
"#sound-dai-cells":
|
"#sound-dai-cells":
|
||||||
const: 0
|
const: 0
|
||||||
@ -45,6 +46,16 @@ properties:
|
|||||||
- const: osc
|
- const: osc
|
||||||
- const: apb_clk
|
- const: apb_clk
|
||||||
|
|
||||||
|
dmas:
|
||||||
|
items:
|
||||||
|
- description: DMA TX channel
|
||||||
|
- description: DMA RX channel
|
||||||
|
|
||||||
|
dma-names:
|
||||||
|
items:
|
||||||
|
- const: tx
|
||||||
|
- const: rx
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- "#sound-dai-cells"
|
- "#sound-dai-cells"
|
||||||
@ -70,4 +81,6 @@ examples:
|
|||||||
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
|
||||||
clock-names = "osc", "apb_clk";
|
clock-names = "osc", "apb_clk";
|
||||||
clocks = <&scmi_clk KEEM_BAY_PSS_AUX_I2S3>, <&scmi_clk KEEM_BAY_PSS_I2S3>;
|
clocks = <&scmi_clk KEEM_BAY_PSS_AUX_I2S3>, <&scmi_clk KEEM_BAY_PSS_I2S3>;
|
||||||
|
dmas = <&axi_dma0 29 &axi_dma0 33>;
|
||||||
|
dma-names = "tx", "rx";
|
||||||
};
|
};
|
||||||
|
@ -23,6 +23,10 @@ properties:
|
|||||||
$ref: "/schemas/types.yaml#/definitions/phandle"
|
$ref: "/schemas/types.yaml#/definitions/phandle"
|
||||||
description: The phandle of MT8192 ASoC platform.
|
description: The phandle of MT8192 ASoC platform.
|
||||||
|
|
||||||
|
mediatek,hdmi-codec:
|
||||||
|
$ref: "/schemas/types.yaml#/definitions/phandle"
|
||||||
|
description: The phandle of HDMI codec.
|
||||||
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
|
|
||||||
required:
|
required:
|
||||||
@ -35,6 +39,7 @@ examples:
|
|||||||
sound: mt8192-sound {
|
sound: mt8192-sound {
|
||||||
compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
|
compatible = "mediatek,mt8192_mt6359_rt1015_rt5682";
|
||||||
mediatek,platform = <&afe>;
|
mediatek,platform = <&afe>;
|
||||||
|
mediatek,hdmi-codec = <&anx_bridge_dp>;
|
||||||
pinctrl-names = "aud_clk_mosi_off",
|
pinctrl-names = "aud_clk_mosi_off",
|
||||||
"aud_clk_mosi_on";
|
"aud_clk_mosi_on";
|
||||||
pinctrl-0 = <&aud_clk_mosi_off>;
|
pinctrl-0 = <&aud_clk_mosi_off>;
|
||||||
|
@ -0,0 +1,190 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/sound/nvidia,tegra-audio-graph-card.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Audio Graph based Tegra sound card driver
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is based on generic audio graph card driver along with additional
|
||||||
|
customizations for Tegra platforms. It uses the same bindings with
|
||||||
|
additional standard clock DT bindings required for Tegra.
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Jon Hunter <jonathanh@nvidia.com>
|
||||||
|
- Sameer Pujar <spujar@nvidia.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: audio-graph.yaml#
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- nvidia,tegra210-audio-graph-card
|
||||||
|
- nvidia,tegra186-audio-graph-card
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
minItems: 2
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
minItems: 2
|
||||||
|
items:
|
||||||
|
- const: pll_a
|
||||||
|
- const: plla_out0
|
||||||
|
|
||||||
|
assigned-clocks:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
assigned-clock-parents:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
assigned-clock-rates:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 3
|
||||||
|
|
||||||
|
iommus:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
required:
|
||||||
|
- clocks
|
||||||
|
- clock-names
|
||||||
|
- assigned-clocks
|
||||||
|
- assigned-clock-parents
|
||||||
|
|
||||||
|
unevaluatedProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include<dt-bindings/clock/tegra210-car.h>
|
||||||
|
|
||||||
|
tegra_sound {
|
||||||
|
compatible = "nvidia,tegra210-audio-graph-card";
|
||||||
|
|
||||||
|
clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
|
||||||
|
<&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
|
||||||
|
clock-names = "pll_a", "plla_out0";
|
||||||
|
|
||||||
|
assigned-clocks = <&tegra_car TEGRA210_CLK_PLL_A>,
|
||||||
|
<&tegra_car TEGRA210_CLK_PLL_A_OUT0>,
|
||||||
|
<&tegra_car TEGRA210_CLK_EXTERN1>;
|
||||||
|
assigned-clock-parents = <0>, <0>, <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
|
||||||
|
assigned-clock-rates = <368640000>, <49152000>, <12288000>;
|
||||||
|
|
||||||
|
dais = /* FE */
|
||||||
|
<&admaif1_port>,
|
||||||
|
/* Router */
|
||||||
|
<&xbar_i2s1_port>,
|
||||||
|
/* I/O DAP Ports */
|
||||||
|
<&i2s1_port>;
|
||||||
|
|
||||||
|
label = "jetson-tx1-ape";
|
||||||
|
};
|
||||||
|
|
||||||
|
// The ports are defined for AHUB and its child devices.
|
||||||
|
ahub@702d0800 {
|
||||||
|
compatible = "nvidia,tegra210-ahub";
|
||||||
|
reg = <0x702d0800 0x800>;
|
||||||
|
clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
|
||||||
|
clock-names = "ahub";
|
||||||
|
assigned-clocks = <&tegra_car TEGRA210_CLK_D_AUDIO>;
|
||||||
|
assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <0x702d0000 0x702d0000 0x0000e400>;
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
port@0 {
|
||||||
|
reg = <0x0>;
|
||||||
|
xbar_admaif1_ep: endpoint {
|
||||||
|
remote-endpoint = <&admaif1_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
xbar_i2s1_port: port@a {
|
||||||
|
reg = <0xa>;
|
||||||
|
xbar_i2s1_ep: endpoint {
|
||||||
|
remote-endpoint = <&i2s1_cif_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
admaif@702d0000 {
|
||||||
|
compatible = "nvidia,tegra210-admaif";
|
||||||
|
reg = <0x702d0000 0x800>;
|
||||||
|
dmas = <&adma 1>, <&adma 1>,
|
||||||
|
<&adma 2>, <&adma 2>,
|
||||||
|
<&adma 3>, <&adma 3>,
|
||||||
|
<&adma 4>, <&adma 4>,
|
||||||
|
<&adma 5>, <&adma 5>,
|
||||||
|
<&adma 6>, <&adma 6>,
|
||||||
|
<&adma 7>, <&adma 7>,
|
||||||
|
<&adma 8>, <&adma 8>,
|
||||||
|
<&adma 9>, <&adma 9>,
|
||||||
|
<&adma 10>, <&adma 10>;
|
||||||
|
dma-names = "rx1", "tx1",
|
||||||
|
"rx2", "tx2",
|
||||||
|
"rx3", "tx3",
|
||||||
|
"rx4", "tx4",
|
||||||
|
"rx5", "tx5",
|
||||||
|
"rx6", "tx6",
|
||||||
|
"rx7", "tx7",
|
||||||
|
"rx8", "tx8",
|
||||||
|
"rx9", "tx9",
|
||||||
|
"rx10", "tx10";
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
admaif1_port: port@0 {
|
||||||
|
reg = <0x0>;
|
||||||
|
admaif1_ep: endpoint {
|
||||||
|
remote-endpoint = <&xbar_admaif1_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// More ADMAIF ports to follow
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i2s@702d1000 {
|
||||||
|
compatible = "nvidia,tegra210-i2s";
|
||||||
|
clocks = <&tegra_car TEGRA210_CLK_I2S0>;
|
||||||
|
clock-names = "i2s";
|
||||||
|
assigned-clocks = <&tegra_car TEGRA210_CLK_I2S0>;
|
||||||
|
assigned-clock-parents = <&tegra_car TEGRA210_CLK_PLL_A_OUT0>;
|
||||||
|
assigned-clock-rates = <1536000>;
|
||||||
|
reg = <0x702d1000 0x100>;
|
||||||
|
|
||||||
|
ports {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
port@0 {
|
||||||
|
reg = <0x0>;
|
||||||
|
|
||||||
|
i2s1_cif_ep: endpoint {
|
||||||
|
remote-endpoint = <&xbar_i2s1_ep>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
i2s1_port: port@1 {
|
||||||
|
reg = <0x1>;
|
||||||
|
|
||||||
|
i2s1_dap: endpoint {
|
||||||
|
dai-format = "i2s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
...
|
@ -17,6 +17,9 @@ maintainers:
|
|||||||
- Jon Hunter <jonathanh@nvidia.com>
|
- Jon Hunter <jonathanh@nvidia.com>
|
||||||
- Sameer Pujar <spujar@nvidia.com>
|
- Sameer Pujar <spujar@nvidia.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: audio-graph-port.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
pattern: "^dspk@[0-9a-f]*$"
|
pattern: "^dspk@[0-9a-f]*$"
|
||||||
@ -55,6 +58,19 @@ properties:
|
|||||||
The name can be "DSPK1" or "DSPKx", where x depends on the maximum
|
The name can be "DSPK1" or "DSPKx", where x depends on the maximum
|
||||||
available instances on a Tegra SoC.
|
available instances on a Tegra SoC.
|
||||||
|
|
||||||
|
ports:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
port@0:
|
||||||
|
description: |
|
||||||
|
DSPK ACIF (Audio Client Interface) port connected to the
|
||||||
|
corresponding AHUB (Audio Hub) ACIF port.
|
||||||
|
|
||||||
|
port@1:
|
||||||
|
description: |
|
||||||
|
DSPK DAP (Digital Audio Port) interface which can be connected
|
||||||
|
to external audio codec for playback.
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
@ -64,7 +80,7 @@ required:
|
|||||||
- assigned-clock-parents
|
- assigned-clock-parents
|
||||||
- sound-name-prefix
|
- sound-name-prefix
|
||||||
|
|
||||||
additionalProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
@ -17,6 +17,9 @@ maintainers:
|
|||||||
- Jon Hunter <jonathanh@nvidia.com>
|
- Jon Hunter <jonathanh@nvidia.com>
|
||||||
- Sameer Pujar <spujar@nvidia.com>
|
- Sameer Pujar <spujar@nvidia.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: audio-graph-port.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
pattern: "^admaif@[0-9a-f]*$"
|
pattern: "^admaif@[0-9a-f]*$"
|
||||||
@ -37,6 +40,14 @@ properties:
|
|||||||
|
|
||||||
dma-names: true
|
dma-names: true
|
||||||
|
|
||||||
|
ports:
|
||||||
|
description: |
|
||||||
|
Contains list of ACIF (Audio CIF) port nodes for ADMAIF channels.
|
||||||
|
The number of port nodes depends on the number of ADMAIF channels
|
||||||
|
that SoC may have. These are interfaced with respective ACIF ports
|
||||||
|
in AHUB (Audio Hub). Each port is capable of data transfers in
|
||||||
|
both directions.
|
||||||
|
|
||||||
if:
|
if:
|
||||||
properties:
|
properties:
|
||||||
compatible:
|
compatible:
|
||||||
@ -81,7 +92,7 @@ required:
|
|||||||
- dmas
|
- dmas
|
||||||
- dma-names
|
- dma-names
|
||||||
|
|
||||||
additionalProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
@ -17,6 +17,9 @@ maintainers:
|
|||||||
- Jon Hunter <jonathanh@nvidia.com>
|
- Jon Hunter <jonathanh@nvidia.com>
|
||||||
- Sameer Pujar <spujar@nvidia.com>
|
- Sameer Pujar <spujar@nvidia.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: audio-graph-port.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
pattern: "^ahub@[0-9a-f]*$"
|
pattern: "^ahub@[0-9a-f]*$"
|
||||||
@ -56,6 +59,13 @@ properties:
|
|||||||
|
|
||||||
ranges: true
|
ranges: true
|
||||||
|
|
||||||
|
ports:
|
||||||
|
description: |
|
||||||
|
Contains list of ACIF (Audio CIF) port nodes for AHUB (Audio Hub).
|
||||||
|
These are connected to ACIF interfaces of AHUB clients. Thus the
|
||||||
|
number of port nodes depend on the number of clients that AHUB may
|
||||||
|
have depending on the SoC revision.
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
@ -67,8 +77,7 @@ required:
|
|||||||
- "#size-cells"
|
- "#size-cells"
|
||||||
- ranges
|
- ranges
|
||||||
|
|
||||||
additionalProperties:
|
unevaluatedProperties: false
|
||||||
type: object
|
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
@ -16,6 +16,9 @@ maintainers:
|
|||||||
- Jon Hunter <jonathanh@nvidia.com>
|
- Jon Hunter <jonathanh@nvidia.com>
|
||||||
- Sameer Pujar <spujar@nvidia.com>
|
- Sameer Pujar <spujar@nvidia.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: audio-graph-port.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
pattern: "^dmic@[0-9a-f]*$"
|
pattern: "^dmic@[0-9a-f]*$"
|
||||||
@ -56,6 +59,19 @@ properties:
|
|||||||
The name can be "DMIC1" or "DMIC2" ... "DMICx", where x depends
|
The name can be "DMIC1" or "DMIC2" ... "DMICx", where x depends
|
||||||
on the maximum available instances on a Tegra SoC.
|
on the maximum available instances on a Tegra SoC.
|
||||||
|
|
||||||
|
ports:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
port@0:
|
||||||
|
description: |
|
||||||
|
DMIC ACIF (Audio Client Interface) port connected to the
|
||||||
|
corresponding AHUB (Audio Hub) ACIF port.
|
||||||
|
|
||||||
|
port@1:
|
||||||
|
description: |
|
||||||
|
DMIC DAP (Digital Audio Port) interface which can be connected
|
||||||
|
to external audio codec for capture.
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
@ -64,7 +80,7 @@ required:
|
|||||||
- assigned-clocks
|
- assigned-clocks
|
||||||
- assigned-clock-parents
|
- assigned-clock-parents
|
||||||
|
|
||||||
additionalProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
@ -16,6 +16,9 @@ maintainers:
|
|||||||
- Jon Hunter <jonathanh@nvidia.com>
|
- Jon Hunter <jonathanh@nvidia.com>
|
||||||
- Sameer Pujar <spujar@nvidia.com>
|
- Sameer Pujar <spujar@nvidia.com>
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- $ref: audio-graph-port.yaml#
|
||||||
|
|
||||||
properties:
|
properties:
|
||||||
$nodename:
|
$nodename:
|
||||||
pattern: "^i2s@[0-9a-f]*$"
|
pattern: "^i2s@[0-9a-f]*$"
|
||||||
@ -74,6 +77,19 @@ properties:
|
|||||||
The name can be "I2S1" or "I2S2" ... "I2Sx", where x depends
|
The name can be "I2S1" or "I2S2" ... "I2Sx", where x depends
|
||||||
on the maximum available instances on a Tegra SoC.
|
on the maximum available instances on a Tegra SoC.
|
||||||
|
|
||||||
|
ports:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
port@0:
|
||||||
|
description: |
|
||||||
|
I2S ACIF (Audio Client Interface) port connected to the
|
||||||
|
corresponding AHUB (Audio Hub) ACIF port.
|
||||||
|
|
||||||
|
port@1:
|
||||||
|
description: |
|
||||||
|
I2S DAP (Digital Audio Port) interface which can be connected
|
||||||
|
to external audio codec for playback or capture.
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- reg
|
- reg
|
||||||
@ -82,7 +98,7 @@ required:
|
|||||||
- assigned-clocks
|
- assigned-clocks
|
||||||
- assigned-clock-parents
|
- assigned-clock-parents
|
||||||
|
|
||||||
additionalProperties: false
|
unevaluatedProperties: false
|
||||||
|
|
||||||
examples:
|
examples:
|
||||||
- |
|
- |
|
||||||
|
@ -0,0 +1,62 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/sound/qcom,lpass-rx-macro.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: LPASS(Low Power Audio Subsystem) RX Macro audio codec DT bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: qcom,sm8250-lpass-rx-macro
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
"#sound-dai-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 5
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: mclk
|
||||||
|
- const: npl
|
||||||
|
- const: macro
|
||||||
|
- const: dcodec
|
||||||
|
- const: fsgen
|
||||||
|
|
||||||
|
clock-output-names:
|
||||||
|
items:
|
||||||
|
- const: mclk
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- "#sound-dai-cells"
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/sound/qcom,q6afe.h>
|
||||||
|
codec@3200000 {
|
||||||
|
compatible = "qcom,sm8250-lpass-rx-macro";
|
||||||
|
reg = <0x3200000 0x1000>;
|
||||||
|
#sound-dai-cells = <1>;
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clocks = <&audiocc 0>,
|
||||||
|
<&audiocc 1>,
|
||||||
|
<&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||||
|
<&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||||
|
<&vamacro>;
|
||||||
|
clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
|
||||||
|
clock-output-names = "mclk";
|
||||||
|
};
|
@ -0,0 +1,67 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/sound/qcom,lpass-tx-macro.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: LPASS(Low Power Audio Subsystem) TX Macro audio codec DT bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: qcom,sm8250-lpass-tx-macro
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
"#sound-dai-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
'#clock-cells':
|
||||||
|
const: 0
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 5
|
||||||
|
|
||||||
|
clock-names:
|
||||||
|
items:
|
||||||
|
- const: mclk
|
||||||
|
- const: npl
|
||||||
|
- const: macro
|
||||||
|
- const: dcodec
|
||||||
|
- const: fsgen
|
||||||
|
|
||||||
|
clock-output-names:
|
||||||
|
items:
|
||||||
|
- const: mclk
|
||||||
|
|
||||||
|
qcom,dmic-sample-rate:
|
||||||
|
description: dmic sample rate
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- "#sound-dai-cells"
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/sound/qcom,q6afe.h>
|
||||||
|
codec@3220000 {
|
||||||
|
compatible = "qcom,sm8250-lpass-tx-macro";
|
||||||
|
reg = <0x3220000 0x1000>;
|
||||||
|
#sound-dai-cells = <1>;
|
||||||
|
#clock-cells = <0>;
|
||||||
|
clocks = <&aoncc 0>,
|
||||||
|
<&aoncc 1>,
|
||||||
|
<&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||||
|
<&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
|
||||||
|
<&vamacro>;
|
||||||
|
clock-names = "mclk", "npl", "macro", "dcodec", "fsgen";
|
||||||
|
clock-output-names = "mclk";
|
||||||
|
qcom,dmic-sample-rate = <600000>;
|
||||||
|
};
|
@ -404,7 +404,7 @@ examples:
|
|||||||
/* DAI base */
|
/* DAI base */
|
||||||
rcar_sound,dai {
|
rcar_sound,dai {
|
||||||
dai0 {
|
dai0 {
|
||||||
playback = <&ssi5 &src5>;
|
playback = <&ssi5>, <&src5>;
|
||||||
capture = <&ssi6>;
|
capture = <&ssi6>;
|
||||||
};
|
};
|
||||||
dai1 {
|
dai1 {
|
||||||
@ -430,8 +430,8 @@ examples:
|
|||||||
bitclock-master = <&rsnd_endpoint0>;
|
bitclock-master = <&rsnd_endpoint0>;
|
||||||
frame-master = <&rsnd_endpoint0>;
|
frame-master = <&rsnd_endpoint0>;
|
||||||
|
|
||||||
playback = <&ssi0 &src0 &dvc0>;
|
playback = <&ssi0>, <&src0>, <&dvc0>;
|
||||||
capture = <&ssi1 &src1 &dvc1>;
|
capture = <&ssi1>, <&src1>, <&dvc1>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -37,10 +37,21 @@ Optional properties:
|
|||||||
- realtek,jd-src
|
- realtek,jd-src
|
||||||
0: No JD is used
|
0: No JD is used
|
||||||
1: using JD3 as JD source
|
1: using JD3 as JD source
|
||||||
|
2: JD source for Intel HDA header
|
||||||
|
|
||||||
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
|
- realtek,ldo1-en-gpios : The GPIO that controls the CODEC's LDO1_EN pin.
|
||||||
- realtek,reset-gpios : The GPIO that controls the CODEC's RESET pin.
|
- realtek,reset-gpios : The GPIO that controls the CODEC's RESET pin.
|
||||||
|
|
||||||
|
- sound-name-prefix: Please refer to name-prefix.txt
|
||||||
|
|
||||||
|
- ports: A Codec may have a single or multiple I2S interfaces. These
|
||||||
|
interfaces on Codec side can be described under 'ports' or 'port'.
|
||||||
|
When the SoC or host device is connected to multiple interfaces of
|
||||||
|
the Codec, the connectivity can be described using 'ports' property.
|
||||||
|
If a single interface is used, then 'port' can be used. The usage
|
||||||
|
depends on the platform or board design.
|
||||||
|
Please refer to Documentation/devicetree/bindings/graph.txt
|
||||||
|
|
||||||
Pins on the device (for linking into audio routes) for RT5659/RT5658:
|
Pins on the device (for linking into audio routes) for RT5659/RT5658:
|
||||||
|
|
||||||
* DMIC L1
|
* DMIC L1
|
||||||
|
@ -41,14 +41,12 @@ properties:
|
|||||||
values of 2k, 4k or 8k. If set to 0 it will be off. If this node is not
|
values of 2k, 4k or 8k. If set to 0 it will be off. If this node is not
|
||||||
mentioned or if the value is unknown, then micbias resistor is set to
|
mentioned or if the value is unknown, then micbias resistor is set to
|
||||||
4k.
|
4k.
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
enum: [ 0, 2, 4, 8 ]
|
enum: [ 0, 2, 4, 8 ]
|
||||||
|
|
||||||
micbias-voltage-m-volts:
|
micbias-voltage-m-volts:
|
||||||
description: The bias voltage to be used in mVolts. The voltage can take
|
description: The bias voltage to be used in mVolts. The voltage can take
|
||||||
values from 1.25V to 3V by 250mV steps. If this node is not mentioned
|
values from 1.25V to 3V by 250mV steps. If this node is not mentioned
|
||||||
or the value is unknown, then the value is set to 1.25V.
|
or the value is unknown, then the value is set to 1.25V.
|
||||||
$ref: "/schemas/types.yaml#/definitions/uint32"
|
|
||||||
enum: [ 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000 ]
|
enum: [ 1250, 1500, 1750, 2000, 2250, 2500, 2750, 3000 ]
|
||||||
|
|
||||||
lrclk-strength:
|
lrclk-strength:
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
SiRF internal audio CODEC
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible : "sirf,atlas6-audio-codec" or "sirf,prima2-audio-codec"
|
|
||||||
|
|
||||||
- reg : the register address of the device.
|
|
||||||
|
|
||||||
- clocks: the clock of SiRF internal audio codec
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
audiocodec: audiocodec@b0040000 {
|
|
||||||
compatible = "sirf,atlas6-audio-codec";
|
|
||||||
reg = <0xb0040000 0x10000>;
|
|
||||||
clocks = <&clks 27>;
|
|
||||||
};
|
|
@ -1,27 +0,0 @@
|
|||||||
* SiRF SoC USP module
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: "sirf,prima2-usp-pcm"
|
|
||||||
- reg: Base address and size entries:
|
|
||||||
- dmas: List of DMA controller phandle and DMA request line ordered pairs.
|
|
||||||
- dma-names: Identifier string for each DMA request line in the dmas property.
|
|
||||||
These strings correspond 1:1 with the ordered pairs in dmas.
|
|
||||||
|
|
||||||
One of the DMA channels will be responsible for transmission (should be
|
|
||||||
named "tx") and one for reception (should be named "rx").
|
|
||||||
|
|
||||||
- clocks: USP controller clock source
|
|
||||||
- pinctrl-names: Must contain a "default" entry.
|
|
||||||
- pinctrl-NNN: One property must exist for each entry in pinctrl-names.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
usp0: usp@b0080000 {
|
|
||||||
compatible = "sirf,prima2-usp-pcm";
|
|
||||||
reg = <0xb0080000 0x10000>;
|
|
||||||
clocks = <&clks 28>;
|
|
||||||
dmas = <&dmac1 1>, <&dmac1 2>;
|
|
||||||
dma-names = "rx", "tx";
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&usp0_only_utfs_pins_a>;
|
|
||||||
};
|
|
||||||
|
|
@ -54,6 +54,10 @@ properties:
|
|||||||
resets:
|
resets:
|
||||||
maxItems: 1
|
maxItems: 1
|
||||||
|
|
||||||
|
"#clock-cells":
|
||||||
|
description: Configure the I2S device as MCLK clock provider.
|
||||||
|
const: 0
|
||||||
|
|
||||||
required:
|
required:
|
||||||
- compatible
|
- compatible
|
||||||
- "#sound-dai-cells"
|
- "#sound-dai-cells"
|
||||||
|
@ -9,6 +9,9 @@ Required properties:
|
|||||||
- reg : the I2C address of the device.
|
- reg : the I2C address of the device.
|
||||||
|
|
||||||
Optional properties:
|
Optional properties:
|
||||||
|
|
||||||
|
- clocks : The clock source of the mclk
|
||||||
|
|
||||||
- spk-mono: This is a boolean property. If present, the SPK_MONO bit
|
- spk-mono: This is a boolean property. If present, the SPK_MONO bit
|
||||||
of R51 (Class D Control 2) gets set, indicating that the speaker is
|
of R51 (Class D Control 2) gets set, indicating that the speaker is
|
||||||
in mono mode.
|
in mono mode.
|
||||||
@ -27,6 +30,7 @@ Example:
|
|||||||
wm8962: codec@1a {
|
wm8962: codec@1a {
|
||||||
compatible = "wlf,wm8962";
|
compatible = "wlf,wm8962";
|
||||||
reg = <0x1a>;
|
reg = <0x1a>;
|
||||||
|
clocks = <&clks IMX6QDL_CLK_CKO>;
|
||||||
|
|
||||||
gpio-cfg = <
|
gpio-cfg = <
|
||||||
0x0000 /* 0:Default */
|
0x0000 /* 0:Default */
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
ZTE TDM DAI driver
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
|
|
||||||
- compatible : should be one of the following.
|
|
||||||
* zte,zx296718-tdm
|
|
||||||
- reg : physical base address of the controller and length of memory mapped
|
|
||||||
region.
|
|
||||||
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
|
||||||
- clock-names: "wclk" for the wclk.
|
|
||||||
"pclk" for the pclk.
|
|
||||||
-#clock-cells: should be 1.
|
|
||||||
- zte,tdm-dma-sysctrl : Reference to the sysctrl controller controlling
|
|
||||||
the dma. includes:
|
|
||||||
phandle of sysctrl.
|
|
||||||
register offset in sysctrl for control dma.
|
|
||||||
mask of the register that be written to sysctrl.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
tdm: tdm@1487000 {
|
|
||||||
compatible = "zte,zx296718-tdm";
|
|
||||||
reg = <0x01487000 0x1000>;
|
|
||||||
clocks = <&audiocrm AUDIO_TDM_WCLK>, <&audiocrm AUDIO_TDM_PCLK>;
|
|
||||||
clock-names = "wclk", "pclk";
|
|
||||||
#clock-cells = <1>;
|
|
||||||
pinctrl-names = "default";
|
|
||||||
pinctrl-0 = <&tdm_global_pin>;
|
|
||||||
zte,tdm-dma-sysctrl = <&sysctrl 0x10c 4>;
|
|
||||||
};
|
|
@ -1,24 +0,0 @@
|
|||||||
ZTE ZX AUD96P22 Audio Codec
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Must be "zte,zx-aud96p22"
|
|
||||||
- #sound-dai-cells: Should be 0
|
|
||||||
- reg: I2C bus slave address of AUD96P22
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
i2c0: i2c@1486000 {
|
|
||||||
compatible = "zte,zx296718-i2c";
|
|
||||||
reg = <0x01486000 0x1000>;
|
|
||||||
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
#address-cells = <1>;
|
|
||||||
#size-cells = <0>;
|
|
||||||
clocks = <&audiocrm AUDIO_I2C0_WCLK>;
|
|
||||||
clock-frequency = <1600000>;
|
|
||||||
|
|
||||||
aud96p22: codec@22 {
|
|
||||||
compatible = "zte,zx-aud96p22";
|
|
||||||
#sound-dai-cells = <0>;
|
|
||||||
reg = <0x22>;
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,45 +0,0 @@
|
|||||||
ZTE ZX296702 I2S controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : Must be one of:
|
|
||||||
"zte,zx296718-i2s", "zte,zx296702-i2s"
|
|
||||||
"zte,zx296702-i2s"
|
|
||||||
- reg : Must contain I2S core's registers location and length
|
|
||||||
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
|
||||||
- clock-names: "wclk" for the wclk, "pclk" for the pclk to the I2S interface.
|
|
||||||
- dmas: Pairs of phandle and specifier for the DMA channel that is used by
|
|
||||||
the core. The core expects two dma channels for transmit.
|
|
||||||
- dma-names : Must be "tx" and "rx"
|
|
||||||
|
|
||||||
For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties
|
|
||||||
please check:
|
|
||||||
* resource-names.txt
|
|
||||||
* clock/clock-bindings.txt
|
|
||||||
* dma/dma.txt
|
|
||||||
|
|
||||||
Example:
|
|
||||||
i2s0: i2s@b005000 {
|
|
||||||
#sound-dai-cells = <0>;
|
|
||||||
compatible = "zte,zx296718-i2s", "zte,zx296702-i2s";
|
|
||||||
reg = <0x0b005000 0x1000>;
|
|
||||||
clocks = <&audiocrm AUDIO_I2S0_WCLK>, <&audiocrm AUDIO_I2S0_PCLK>;
|
|
||||||
clock-names = "wclk", "pclk";
|
|
||||||
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
dmas = <&dma 5>, <&dma 6>;
|
|
||||||
dma-names = "tx", "rx";
|
|
||||||
};
|
|
||||||
|
|
||||||
sound {
|
|
||||||
compatible = "simple-audio-card";
|
|
||||||
simple-audio-card,name = "zx296702_snd";
|
|
||||||
simple-audio-card,format = "left_j";
|
|
||||||
simple-audio-card,bitclock-master = <&sndcodec>;
|
|
||||||
simple-audio-card,frame-master = <&sndcodec>;
|
|
||||||
sndcpu: simple-audio-card,cpu {
|
|
||||||
sound-dai = <&i2s0>;
|
|
||||||
};
|
|
||||||
|
|
||||||
sndcodec: simple-audio-card,codec {
|
|
||||||
sound-dai = <&acodec>;
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,27 +0,0 @@
|
|||||||
ZTE ZX296702 SPDIF controller
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible : Must be "zte,zx296702-spdif"
|
|
||||||
- reg : Must contain SPDIF core's registers location and length
|
|
||||||
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
|
|
||||||
- clock-names: "tx" for the clock to the SPDIF interface.
|
|
||||||
- dmas: Pairs of phandle and specifier for the DMA channel that is used by
|
|
||||||
the core. The core expects one dma channel for transmit.
|
|
||||||
- dma-names : Must be "tx"
|
|
||||||
|
|
||||||
For more details on the 'dma', 'dma-names', 'clock' and 'clock-names' properties
|
|
||||||
please check:
|
|
||||||
* resource-names.txt
|
|
||||||
* clock/clock-bindings.txt
|
|
||||||
* dma/dma.txt
|
|
||||||
|
|
||||||
Example:
|
|
||||||
spdif0: spdif0@b004000 {
|
|
||||||
compatible = "zte,zx296702-spdif";
|
|
||||||
reg = <0x0b004000 0x1000>;
|
|
||||||
clocks = <&lsp0clk ZX296702_SPDIF0_DIV>;
|
|
||||||
clock-names = "tx";
|
|
||||||
interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
|
|
||||||
dmas = <&dma 4>;
|
|
||||||
dma-names = "tx";
|
|
||||||
};
|
|
@ -21,6 +21,8 @@ properties:
|
|||||||
reg:
|
reg:
|
||||||
description: module registers
|
description: module registers
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
power-domains:
|
power-domains:
|
||||||
description:
|
description:
|
||||||
PM domain provider node and an args specifier containing
|
PM domain provider node and an args specifier containing
|
||||||
@ -62,6 +64,8 @@ properties:
|
|||||||
'#size-cells':
|
'#size-cells':
|
||||||
const: 2
|
const: 2
|
||||||
|
|
||||||
|
dma-coherent: true
|
||||||
|
|
||||||
patternProperties:
|
patternProperties:
|
||||||
"^usb@":
|
"^usb@":
|
||||||
type: object
|
type: object
|
||||||
|
@ -19,7 +19,6 @@ properties:
|
|||||||
pattern: "^watchdog(@.*|-[0-9a-f])?$"
|
pattern: "^watchdog(@.*|-[0-9a-f])?$"
|
||||||
|
|
||||||
timeout-sec:
|
timeout-sec:
|
||||||
$ref: /schemas/types.yaml#/definitions/uint32
|
|
||||||
description:
|
description:
|
||||||
Contains the watchdog timeout in seconds.
|
Contains the watchdog timeout in seconds.
|
||||||
|
|
||||||
|
@ -586,6 +586,14 @@ without significant effort.
|
|||||||
The advantage of mounting with the "volatile" option is that all forms of
|
The advantage of mounting with the "volatile" option is that all forms of
|
||||||
sync calls to the upper filesystem are omitted.
|
sync calls to the upper filesystem are omitted.
|
||||||
|
|
||||||
|
In order to avoid a giving a false sense of safety, the syncfs (and fsync)
|
||||||
|
semantics of volatile mounts are slightly different than that of the rest of
|
||||||
|
VFS. If any writeback error occurs on the upperdir's filesystem after a
|
||||||
|
volatile mount takes place, all sync functions will return an error. Once this
|
||||||
|
condition is reached, the filesystem will not recover, and every subsequent sync
|
||||||
|
call will return an error, even if the upperdir has not experience a new error
|
||||||
|
since the last sync call.
|
||||||
|
|
||||||
When overlay is mounted with "volatile" option, the directory
|
When overlay is mounted with "volatile" option, the directory
|
||||||
"$workdir/work/incompat/volatile" is created. During next mount, overlay
|
"$workdir/work/incompat/volatile" is created. During next mount, overlay
|
||||||
checks for this directory and refuses to mount if present. This is a strong
|
checks for this directory and refuses to mount if present. This is a strong
|
||||||
|
@ -11,16 +11,13 @@ compiler [1]_. They are useful for runtime instrumentation and static analysis.
|
|||||||
We can analyse, change and add further code during compilation via
|
We can analyse, change and add further code during compilation via
|
||||||
callbacks [2]_, GIMPLE [3]_, IPA [4]_ and RTL passes [5]_.
|
callbacks [2]_, GIMPLE [3]_, IPA [4]_ and RTL passes [5]_.
|
||||||
|
|
||||||
The GCC plugin infrastructure of the kernel supports all gcc versions from
|
The GCC plugin infrastructure of the kernel supports building out-of-tree
|
||||||
4.5 to 6.0, building out-of-tree modules, cross-compilation and building in a
|
modules, cross-compilation and building in a separate directory.
|
||||||
separate directory.
|
Plugin source files have to be compilable by a C++ compiler.
|
||||||
Plugin source files have to be compilable by both a C and a C++ compiler as well
|
|
||||||
because gcc versions 4.5 and 4.6 are compiled by a C compiler,
|
|
||||||
gcc-4.7 can be compiled by a C or a C++ compiler,
|
|
||||||
and versions 4.8+ can only be compiled by a C++ compiler.
|
|
||||||
|
|
||||||
Currently the GCC plugin infrastructure supports only the x86, arm, arm64 and
|
Currently the GCC plugin infrastructure supports only some architectures.
|
||||||
powerpc architectures.
|
Grep "select HAVE_GCC_PLUGINS" to find out which architectures support
|
||||||
|
GCC plugins.
|
||||||
|
|
||||||
This infrastructure was ported from grsecurity [6]_ and PaX [7]_.
|
This infrastructure was ported from grsecurity [6]_ and PaX [7]_.
|
||||||
|
|
||||||
@ -47,20 +44,13 @@ Files
|
|||||||
This is a compatibility header for GCC plugins.
|
This is a compatibility header for GCC plugins.
|
||||||
It should be always included instead of individual gcc headers.
|
It should be always included instead of individual gcc headers.
|
||||||
|
|
||||||
**$(src)/scripts/gcc-plugin.sh**
|
|
||||||
|
|
||||||
This script checks the availability of the included headers in
|
|
||||||
gcc-common.h and chooses the proper host compiler to build the plugins
|
|
||||||
(gcc-4.7 can be built by either gcc or g++).
|
|
||||||
|
|
||||||
**$(src)/scripts/gcc-plugins/gcc-generate-gimple-pass.h,
|
**$(src)/scripts/gcc-plugins/gcc-generate-gimple-pass.h,
|
||||||
$(src)/scripts/gcc-plugins/gcc-generate-ipa-pass.h,
|
$(src)/scripts/gcc-plugins/gcc-generate-ipa-pass.h,
|
||||||
$(src)/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h,
|
$(src)/scripts/gcc-plugins/gcc-generate-simple_ipa-pass.h,
|
||||||
$(src)/scripts/gcc-plugins/gcc-generate-rtl-pass.h**
|
$(src)/scripts/gcc-plugins/gcc-generate-rtl-pass.h**
|
||||||
|
|
||||||
These headers automatically generate the registration structures for
|
These headers automatically generate the registration structures for
|
||||||
GIMPLE, SIMPLE_IPA, IPA and RTL passes. They support all gcc versions
|
GIMPLE, SIMPLE_IPA, IPA and RTL passes.
|
||||||
from 4.5 to 6.0.
|
|
||||||
They should be preferred to creating the structures by hand.
|
They should be preferred to creating the structures by hand.
|
||||||
|
|
||||||
|
|
||||||
@ -68,21 +58,25 @@ Usage
|
|||||||
=====
|
=====
|
||||||
|
|
||||||
You must install the gcc plugin headers for your gcc version,
|
You must install the gcc plugin headers for your gcc version,
|
||||||
e.g., on Ubuntu for gcc-4.9::
|
e.g., on Ubuntu for gcc-10::
|
||||||
|
|
||||||
apt-get install gcc-4.9-plugin-dev
|
apt-get install gcc-10-plugin-dev
|
||||||
|
|
||||||
Or on Fedora::
|
Or on Fedora::
|
||||||
|
|
||||||
dnf install gcc-plugin-devel
|
dnf install gcc-plugin-devel
|
||||||
|
|
||||||
Enable a GCC plugin based feature in the kernel config::
|
Enable the GCC plugin infrastructure and some plugin(s) you want to use
|
||||||
|
in the kernel config::
|
||||||
|
|
||||||
CONFIG_GCC_PLUGIN_CYC_COMPLEXITY = y
|
CONFIG_GCC_PLUGINS=y
|
||||||
|
CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=y
|
||||||
|
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
|
||||||
|
...
|
||||||
|
|
||||||
To compile only the plugin(s)::
|
To compile the minimum tool set including the plugin(s)::
|
||||||
|
|
||||||
make gcc-plugins
|
make scripts
|
||||||
|
|
||||||
or just run the kernel make and compile the whole kernel with
|
or just run the kernel make and compile the whole kernel with
|
||||||
the cyclomatic complexity GCC plugin.
|
the cyclomatic complexity GCC plugin.
|
||||||
@ -91,7 +85,8 @@ the cyclomatic complexity GCC plugin.
|
|||||||
4. How to add a new GCC plugin
|
4. How to add a new GCC plugin
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
The GCC plugins are in $(src)/scripts/gcc-plugins/. You can use a file or a directory
|
The GCC plugins are in scripts/gcc-plugins/. You need to put plugin source files
|
||||||
here. It must be added to $(src)/scripts/gcc-plugins/Makefile,
|
right under scripts/gcc-plugins/. Creating subdirectories is not supported.
|
||||||
$(src)/scripts/Makefile.gcc-plugins and $(src)/arch/Kconfig.
|
It must be added to scripts/gcc-plugins/Makefile, scripts/Makefile.gcc-plugins
|
||||||
|
and a relevant Kconfig file.
|
||||||
See the cyc_complexity_plugin.c (CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) GCC plugin.
|
See the cyc_complexity_plugin.c (CONFIG_GCC_PLUGIN_CYC_COMPLEXITY) GCC plugin.
|
||||||
|
@ -63,6 +63,50 @@ They can be enabled individually. The full list of the parameters: ::
|
|||||||
Currently, the integrated assembler is disabled by default. You can pass
|
Currently, the integrated assembler is disabled by default. You can pass
|
||||||
``LLVM_IAS=1`` to enable it.
|
``LLVM_IAS=1`` to enable it.
|
||||||
|
|
||||||
|
Supported Architectures
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
LLVM does not target all of the architectures that Linux supports and
|
||||||
|
just because a target is supported in LLVM does not mean that the kernel
|
||||||
|
will build or work without any issues. Below is a general summary of
|
||||||
|
architectures that currently work with ``CC=clang`` or ``LLVM=1``. Level
|
||||||
|
of support corresponds to "S" values in the MAINTAINERS files. If an
|
||||||
|
architecture is not present, it either means that LLVM does not target
|
||||||
|
it or there are known issues. Using the latest stable version of LLVM or
|
||||||
|
even the development tree will generally yield the best results.
|
||||||
|
An architecture's ``defconfig`` is generally expected to work well,
|
||||||
|
certain configurations may have problems that have not been uncovered
|
||||||
|
yet. Bug reports are always welcome at the issue tracker below!
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:widths: 10 10 10
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Architecture
|
||||||
|
- Level of support
|
||||||
|
- ``make`` command
|
||||||
|
* - arm
|
||||||
|
- Supported
|
||||||
|
- ``LLVM=1``
|
||||||
|
* - arm64
|
||||||
|
- Supported
|
||||||
|
- ``LLVM=1``
|
||||||
|
* - mips
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - powerpc
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - riscv
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - s390
|
||||||
|
- Maintained
|
||||||
|
- ``CC=clang``
|
||||||
|
* - x86
|
||||||
|
- Supported
|
||||||
|
- ``LLVM=1``
|
||||||
|
|
||||||
Getting Help
|
Getting Help
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
@ -755,7 +755,7 @@ more details, with real examples.
|
|||||||
bits on the scripts nonetheless.
|
bits on the scripts nonetheless.
|
||||||
|
|
||||||
Kbuild provides variables $(CONFIG_SHELL), $(AWK), $(PERL),
|
Kbuild provides variables $(CONFIG_SHELL), $(AWK), $(PERL),
|
||||||
$(PYTHON) and $(PYTHON3) to refer to interpreters for the respective
|
and $(PYTHON3) to refer to interpreters for the respective
|
||||||
scripts.
|
scripts.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
@ -1196,7 +1196,7 @@ icmp_errors_use_inbound_ifaddr - BOOLEAN
|
|||||||
|
|
||||||
If non-zero, the message will be sent with the primary address of
|
If non-zero, the message will be sent with the primary address of
|
||||||
the interface that received the packet that caused the icmp error.
|
the interface that received the packet that caused the icmp error.
|
||||||
This is the behaviour network many administrators will expect from
|
This is the behaviour many network administrators will expect from
|
||||||
a router. And it can make debugging complicated network layouts
|
a router. And it can make debugging complicated network layouts
|
||||||
much easier.
|
much easier.
|
||||||
|
|
||||||
@ -1807,12 +1807,24 @@ seg6_flowlabel - INTEGER
|
|||||||
``conf/default/*``:
|
``conf/default/*``:
|
||||||
Change the interface-specific default settings.
|
Change the interface-specific default settings.
|
||||||
|
|
||||||
|
These settings would be used during creating new interfaces.
|
||||||
|
|
||||||
|
|
||||||
``conf/all/*``:
|
``conf/all/*``:
|
||||||
Change all the interface-specific settings.
|
Change all the interface-specific settings.
|
||||||
|
|
||||||
[XXX: Other special features than forwarding?]
|
[XXX: Other special features than forwarding?]
|
||||||
|
|
||||||
|
conf/all/disable_ipv6 - BOOLEAN
|
||||||
|
Changing this value is same as changing ``conf/default/disable_ipv6``
|
||||||
|
setting and also all per-interface ``disable_ipv6`` settings to the same
|
||||||
|
value.
|
||||||
|
|
||||||
|
Reading this value does not have any particular meaning. It does not say
|
||||||
|
whether IPv6 support is enabled or disabled. Returned value can be 1
|
||||||
|
also in the case when some interface has ``disable_ipv6`` set to 0 and
|
||||||
|
has configured IPv6 addresses.
|
||||||
|
|
||||||
conf/all/forwarding - BOOLEAN
|
conf/all/forwarding - BOOLEAN
|
||||||
Enable global IPv6 forwarding between all interfaces.
|
Enable global IPv6 forwarding between all interfaces.
|
||||||
|
|
||||||
|
@ -534,3 +534,6 @@ offload. Hence, TLS TX device feature flag requires TX csum offload being set.
|
|||||||
Disabling the latter implies clearing the former. Disabling TX checksum offload
|
Disabling the latter implies clearing the former. Disabling TX checksum offload
|
||||||
should not affect old connections, and drivers should make sure checksum
|
should not affect old connections, and drivers should make sure checksum
|
||||||
calculation does not break for them.
|
calculation does not break for them.
|
||||||
|
Similarly, device-offloaded TLS decryption implies doing RXCSUM. If the user
|
||||||
|
does not want to enable RX csum offload, TLS RX device feature is disabled
|
||||||
|
as well.
|
||||||
|
@ -360,10 +360,9 @@ since the last call to this ioctl. Bit 0 is the first page in the
|
|||||||
memory slot. Ensure the entire structure is cleared to avoid padding
|
memory slot. Ensure the entire structure is cleared to avoid padding
|
||||||
issues.
|
issues.
|
||||||
|
|
||||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
|
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of slot field specifies
|
||||||
the address space for which you want to return the dirty bitmap.
|
the address space for which you want to return the dirty bitmap. See
|
||||||
They must be less than the value that KVM_CHECK_EXTENSION returns for
|
KVM_SET_USER_MEMORY_REGION for details on the usage of slot field.
|
||||||
the KVM_CAP_MULTI_ADDRESS_SPACE capability.
|
|
||||||
|
|
||||||
The bits in the dirty bitmap are cleared before the ioctl returns, unless
|
The bits in the dirty bitmap are cleared before the ioctl returns, unless
|
||||||
KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 is enabled. For more information,
|
KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 is enabled. For more information,
|
||||||
@ -1281,6 +1280,9 @@ field userspace_addr, which must point at user addressable memory for
|
|||||||
the entire memory slot size. Any object may back this memory, including
|
the entire memory slot size. Any object may back this memory, including
|
||||||
anonymous memory, ordinary files, and hugetlbfs.
|
anonymous memory, ordinary files, and hugetlbfs.
|
||||||
|
|
||||||
|
On architectures that support a form of address tagging, userspace_addr must
|
||||||
|
be an untagged address.
|
||||||
|
|
||||||
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
|
It is recommended that the lower 21 bits of guest_phys_addr and userspace_addr
|
||||||
be identical. This allows large pages in the guest to be backed by large
|
be identical. This allows large pages in the guest to be backed by large
|
||||||
pages in the host.
|
pages in the host.
|
||||||
@ -1333,7 +1335,7 @@ documentation when it pops into existence).
|
|||||||
|
|
||||||
:Capability: KVM_CAP_ENABLE_CAP_VM
|
:Capability: KVM_CAP_ENABLE_CAP_VM
|
||||||
:Architectures: all
|
:Architectures: all
|
||||||
:Type: vcpu ioctl
|
:Type: vm ioctl
|
||||||
:Parameters: struct kvm_enable_cap (in)
|
:Parameters: struct kvm_enable_cap (in)
|
||||||
:Returns: 0 on success; -1 on error
|
:Returns: 0 on success; -1 on error
|
||||||
|
|
||||||
@ -4432,7 +4434,7 @@ to I/O ports.
|
|||||||
:Capability: KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
:Capability: KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
||||||
:Architectures: x86, arm, arm64, mips
|
:Architectures: x86, arm, arm64, mips
|
||||||
:Type: vm ioctl
|
:Type: vm ioctl
|
||||||
:Parameters: struct kvm_dirty_log (in)
|
:Parameters: struct kvm_clear_dirty_log (in)
|
||||||
:Returns: 0 on success, -1 on error
|
:Returns: 0 on success, -1 on error
|
||||||
|
|
||||||
::
|
::
|
||||||
@ -4459,10 +4461,9 @@ in KVM's dirty bitmap, and dirty tracking is re-enabled for that page
|
|||||||
(for example via write-protection, or by clearing the dirty bit in
|
(for example via write-protection, or by clearing the dirty bit in
|
||||||
a page table entry).
|
a page table entry).
|
||||||
|
|
||||||
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 specifies
|
If KVM_CAP_MULTI_ADDRESS_SPACE is available, bits 16-31 of slot field specifies
|
||||||
the address space for which you want to return the dirty bitmap.
|
the address space for which you want to clear the dirty status. See
|
||||||
They must be less than the value that KVM_CHECK_EXTENSION returns for
|
KVM_SET_USER_MEMORY_REGION for details on the usage of slot field.
|
||||||
the KVM_CAP_MULTI_ADDRESS_SPACE capability.
|
|
||||||
|
|
||||||
This ioctl is mostly useful when KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
This ioctl is mostly useful when KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2
|
||||||
is enabled; for more information, see the description of the capability.
|
is enabled; for more information, see the description of the capability.
|
||||||
|
@ -37,8 +37,10 @@ call L2.
|
|||||||
Running nested VMX
|
Running nested VMX
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
The nested VMX feature is disabled by default. It can be enabled by giving
|
The nested VMX feature is enabled by default since Linux kernel v4.20. For
|
||||||
the "nested=1" option to the kvm-intel module.
|
older Linux kernel, it can be enabled by giving the "nested=1" option to the
|
||||||
|
kvm-intel module.
|
||||||
|
|
||||||
|
|
||||||
No modifications are required to user space (qemu). However, qemu's default
|
No modifications are required to user space (qemu). However, qemu's default
|
||||||
emulated CPU type (qemu64) does not list the "VMX" CPU feature, so it must be
|
emulated CPU type (qemu64) does not list the "VMX" CPU feature, so it must be
|
||||||
|
@ -74,7 +74,7 @@ few:
|
|||||||
Enabling "nested" (x86)
|
Enabling "nested" (x86)
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
From Linux kernel v4.19 onwards, the ``nested`` KVM parameter is enabled
|
From Linux kernel v4.20 onwards, the ``nested`` KVM parameter is enabled
|
||||||
by default for Intel and AMD. (Though your Linux distribution might
|
by default for Intel and AMD. (Though your Linux distribution might
|
||||||
override this default.)
|
override this default.)
|
||||||
|
|
||||||
|
35
MAINTAINERS
35
MAINTAINERS
@ -2616,8 +2616,8 @@ S: Maintained
|
|||||||
F: drivers/power/reset/keystone-reset.c
|
F: drivers/power/reset/keystone-reset.c
|
||||||
|
|
||||||
ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
|
ARM/TEXAS INSTRUMENTS K3 ARCHITECTURE
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
|
||||||
M: Nishanth Menon <nm@ti.com>
|
M: Nishanth Menon <nm@ti.com>
|
||||||
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/arm/ti/k3.yaml
|
F: Documentation/devicetree/bindings/arm/ti/k3.yaml
|
||||||
@ -3239,6 +3239,7 @@ L: netdev@vger.kernel.org
|
|||||||
S: Supported
|
S: Supported
|
||||||
W: http://sourceforge.net/projects/bonding/
|
W: http://sourceforge.net/projects/bonding/
|
||||||
F: drivers/net/bonding/
|
F: drivers/net/bonding/
|
||||||
|
F: include/net/bonding.h
|
||||||
F: include/uapi/linux/if_bonding.h
|
F: include/uapi/linux/if_bonding.h
|
||||||
|
|
||||||
BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
|
BOSCH SENSORTEC BMA400 ACCELEROMETER IIO DRIVER
|
||||||
@ -3334,7 +3335,7 @@ F: arch/riscv/net/
|
|||||||
X: arch/riscv/net/bpf_jit_comp64.c
|
X: arch/riscv/net/bpf_jit_comp64.c
|
||||||
|
|
||||||
BPF JIT for RISC-V (64-bit)
|
BPF JIT for RISC-V (64-bit)
|
||||||
M: Björn Töpel <bjorn.topel@gmail.com>
|
M: Björn Töpel <bjorn@kernel.org>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
L: bpf@vger.kernel.org
|
L: bpf@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -3411,7 +3412,7 @@ F: Documentation/devicetree/bindings/pci/brcm,stb-pcie.yaml
|
|||||||
F: drivers/pci/controller/pcie-brcmstb.c
|
F: drivers/pci/controller/pcie-brcmstb.c
|
||||||
F: drivers/staging/vc04_services
|
F: drivers/staging/vc04_services
|
||||||
N: bcm2711
|
N: bcm2711
|
||||||
N: bcm2835
|
N: bcm283*
|
||||||
|
|
||||||
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITECTURE
|
||||||
M: Florian Fainelli <f.fainelli@gmail.com>
|
M: Florian Fainelli <f.fainelli@gmail.com>
|
||||||
@ -3879,7 +3880,7 @@ F: Documentation/devicetree/bindings/mtd/cadence-nand-controller.txt
|
|||||||
F: drivers/mtd/nand/raw/cadence-nand-controller.c
|
F: drivers/mtd/nand/raw/cadence-nand-controller.c
|
||||||
|
|
||||||
CADENCE USB3 DRD IP DRIVER
|
CADENCE USB3 DRD IP DRIVER
|
||||||
M: Peter Chen <peter.chen@nxp.com>
|
M: Peter Chen <peter.chen@kernel.org>
|
||||||
M: Pawel Laszczak <pawell@cadence.com>
|
M: Pawel Laszczak <pawell@cadence.com>
|
||||||
R: Roger Quadros <rogerq@kernel.org>
|
R: Roger Quadros <rogerq@kernel.org>
|
||||||
R: Aswath Govindraju <a-govindraju@ti.com>
|
R: Aswath Govindraju <a-govindraju@ti.com>
|
||||||
@ -4161,7 +4162,7 @@ S: Maintained
|
|||||||
F: Documentation/translations/zh_CN/
|
F: Documentation/translations/zh_CN/
|
||||||
|
|
||||||
CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
|
CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
|
||||||
M: Peter Chen <Peter.Chen@nxp.com>
|
M: Peter Chen <peter.chen@kernel.org>
|
||||||
L: linux-usb@vger.kernel.org
|
L: linux-usb@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
||||||
@ -4303,7 +4304,7 @@ S: Maintained
|
|||||||
F: .clang-format
|
F: .clang-format
|
||||||
|
|
||||||
CLANG/LLVM BUILD SUPPORT
|
CLANG/LLVM BUILD SUPPORT
|
||||||
M: Nathan Chancellor <natechancellor@gmail.com>
|
M: Nathan Chancellor <nathan@kernel.org>
|
||||||
M: Nick Desaulniers <ndesaulniers@google.com>
|
M: Nick Desaulniers <ndesaulniers@google.com>
|
||||||
L: clang-built-linux@googlegroups.com
|
L: clang-built-linux@googlegroups.com
|
||||||
S: Supported
|
S: Supported
|
||||||
@ -4311,7 +4312,9 @@ W: https://clangbuiltlinux.github.io/
|
|||||||
B: https://github.com/ClangBuiltLinux/linux/issues
|
B: https://github.com/ClangBuiltLinux/linux/issues
|
||||||
C: irc://chat.freenode.net/clangbuiltlinux
|
C: irc://chat.freenode.net/clangbuiltlinux
|
||||||
F: Documentation/kbuild/llvm.rst
|
F: Documentation/kbuild/llvm.rst
|
||||||
|
F: include/linux/compiler-clang.h
|
||||||
F: scripts/clang-tools/
|
F: scripts/clang-tools/
|
||||||
|
F: scripts/clang-version.sh
|
||||||
F: scripts/lld-version.sh
|
F: scripts/lld-version.sh
|
||||||
K: \b(?i:clang|llvm)\b
|
K: \b(?i:clang|llvm)\b
|
||||||
|
|
||||||
@ -6471,9 +6474,9 @@ S: Maintained
|
|||||||
F: drivers/edac/skx_*.[ch]
|
F: drivers/edac/skx_*.[ch]
|
||||||
|
|
||||||
EDAC-TI
|
EDAC-TI
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
L: linux-edac@vger.kernel.org
|
L: linux-edac@vger.kernel.org
|
||||||
S: Maintained
|
S: Odd Fixes
|
||||||
F: drivers/edac/ti_edac.c
|
F: drivers/edac/ti_edac.c
|
||||||
|
|
||||||
EDIROL UA-101/UA-1000 DRIVER
|
EDIROL UA-101/UA-1000 DRIVER
|
||||||
@ -8431,11 +8434,8 @@ F: drivers/i3c/
|
|||||||
F: include/linux/i3c/
|
F: include/linux/i3c/
|
||||||
|
|
||||||
IA64 (Itanium) PLATFORM
|
IA64 (Itanium) PLATFORM
|
||||||
M: Tony Luck <tony.luck@intel.com>
|
|
||||||
M: Fenghua Yu <fenghua.yu@intel.com>
|
|
||||||
L: linux-ia64@vger.kernel.org
|
L: linux-ia64@vger.kernel.org
|
||||||
S: Odd Fixes
|
S: Orphan
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux.git
|
|
||||||
F: Documentation/ia64/
|
F: Documentation/ia64/
|
||||||
F: arch/ia64/
|
F: arch/ia64/
|
||||||
|
|
||||||
@ -12413,6 +12413,7 @@ F: tools/testing/selftests/net/ipsec.c
|
|||||||
NETWORKING [IPv4/IPv6]
|
NETWORKING [IPv4/IPv6]
|
||||||
M: "David S. Miller" <davem@davemloft.net>
|
M: "David S. Miller" <davem@davemloft.net>
|
||||||
M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
|
M: Hideaki YOSHIFUJI <yoshfuji@linux-ipv6.org>
|
||||||
|
M: David Ahern <dsahern@kernel.org>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
|
||||||
@ -17571,7 +17572,7 @@ F: include/linux/dma/k3-psil.h
|
|||||||
|
|
||||||
TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TISCI) PROTOCOL DRIVER
|
TEXAS INSTRUMENTS' SYSTEM CONTROL INTERFACE (TISCI) PROTOCOL DRIVER
|
||||||
M: Nishanth Menon <nm@ti.com>
|
M: Nishanth Menon <nm@ti.com>
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
M: Santosh Shilimkar <ssantosh@kernel.org>
|
M: Santosh Shilimkar <ssantosh@kernel.org>
|
||||||
L: linux-arm-kernel@lists.infradead.org
|
L: linux-arm-kernel@lists.infradead.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
@ -17715,9 +17716,9 @@ S: Maintained
|
|||||||
F: drivers/clk/clk-cdce706.c
|
F: drivers/clk/clk-cdce706.c
|
||||||
|
|
||||||
TI CLOCK DRIVER
|
TI CLOCK DRIVER
|
||||||
M: Tero Kristo <t-kristo@ti.com>
|
M: Tero Kristo <kristo@kernel.org>
|
||||||
L: linux-omap@vger.kernel.org
|
L: linux-omap@vger.kernel.org
|
||||||
S: Maintained
|
S: Odd Fixes
|
||||||
F: drivers/clk/ti/
|
F: drivers/clk/ti/
|
||||||
F: include/linux/clk/ti.h
|
F: include/linux/clk/ti.h
|
||||||
|
|
||||||
@ -18420,7 +18421,7 @@ F: Documentation/usb/ohci.rst
|
|||||||
F: drivers/usb/host/ohci*
|
F: drivers/usb/host/ohci*
|
||||||
|
|
||||||
USB OTG FSM (Finite State Machine)
|
USB OTG FSM (Finite State Machine)
|
||||||
M: Peter Chen <Peter.Chen@nxp.com>
|
M: Peter Chen <peter.chen@kernel.org>
|
||||||
L: linux-usb@vger.kernel.org
|
L: linux-usb@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/peter.chen/usb.git
|
||||||
@ -19424,7 +19425,7 @@ F: drivers/net/ethernet/*/*/*xdp*
|
|||||||
K: (?:\b|_)xdp(?:\b|_)
|
K: (?:\b|_)xdp(?:\b|_)
|
||||||
|
|
||||||
XDP SOCKETS (AF_XDP)
|
XDP SOCKETS (AF_XDP)
|
||||||
M: Björn Töpel <bjorn.topel@intel.com>
|
M: Björn Töpel <bjorn@kernel.org>
|
||||||
M: Magnus Karlsson <magnus.karlsson@intel.com>
|
M: Magnus Karlsson <magnus.karlsson@intel.com>
|
||||||
R: Jonathan Lemon <jonathan.lemon@gmail.com>
|
R: Jonathan Lemon <jonathan.lemon@gmail.com>
|
||||||
L: netdev@vger.kernel.org
|
L: netdev@vger.kernel.org
|
||||||
|
15
Makefile
15
Makefile
@ -2,7 +2,7 @@
|
|||||||
VERSION = 5
|
VERSION = 5
|
||||||
PATCHLEVEL = 11
|
PATCHLEVEL = 11
|
||||||
SUBLEVEL = 0
|
SUBLEVEL = 0
|
||||||
EXTRAVERSION = -rc4
|
EXTRAVERSION = -rc7
|
||||||
NAME = Kleptomaniac Octopus
|
NAME = Kleptomaniac Octopus
|
||||||
|
|
||||||
# *DOCUMENTATION*
|
# *DOCUMENTATION*
|
||||||
@ -452,7 +452,6 @@ AWK = awk
|
|||||||
INSTALLKERNEL := installkernel
|
INSTALLKERNEL := installkernel
|
||||||
DEPMOD = depmod
|
DEPMOD = depmod
|
||||||
PERL = perl
|
PERL = perl
|
||||||
PYTHON = python
|
|
||||||
PYTHON3 = python3
|
PYTHON3 = python3
|
||||||
CHECK = sparse
|
CHECK = sparse
|
||||||
BASH = bash
|
BASH = bash
|
||||||
@ -508,7 +507,7 @@ CLANG_FLAGS :=
|
|||||||
|
|
||||||
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
|
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
|
||||||
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
|
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
|
||||||
export PERL PYTHON PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
|
||||||
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
|
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
|
||||||
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
|
||||||
|
|
||||||
@ -812,10 +811,12 @@ KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
|
|||||||
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
DEBUG_CFLAGS :=
|
||||||
|
|
||||||
# Workaround for GCC versions < 5.0
|
# Workaround for GCC versions < 5.0
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
|
||||||
ifdef CONFIG_CC_IS_GCC
|
ifdef CONFIG_CC_IS_GCC
|
||||||
DEBUG_CFLAGS := $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
DEBUG_CFLAGS += $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef CONFIG_DEBUG_INFO
|
ifdef CONFIG_DEBUG_INFO
|
||||||
@ -948,12 +949,6 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
|
|||||||
# change __FILE__ to the relative path from the srctree
|
# change __FILE__ to the relative path from the srctree
|
||||||
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
|
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
|
||||||
|
|
||||||
# ensure -fcf-protection is disabled when using retpoline as it is
|
|
||||||
# incompatible with -mindirect-branch=thunk-extern
|
|
||||||
ifdef CONFIG_RETPOLINE
|
|
||||||
KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# include additional Makefiles when needed
|
# include additional Makefiles when needed
|
||||||
include-y := scripts/Makefile.extrawarn
|
include-y := scripts/Makefile.extrawarn
|
||||||
include-$(CONFIG_KASAN) += scripts/Makefile.kasan
|
include-$(CONFIG_KASAN) += scripts/Makefile.kasan
|
||||||
|
@ -15,7 +15,8 @@ static int node_offset(void *fdt, const char *node_path)
|
|||||||
{
|
{
|
||||||
int offset = fdt_path_offset(fdt, node_path);
|
int offset = fdt_path_offset(fdt, node_path);
|
||||||
if (offset == -FDT_ERR_NOTFOUND)
|
if (offset == -FDT_ERR_NOTFOUND)
|
||||||
offset = fdt_add_subnode(fdt, 0, node_path);
|
/* Add the node to root if not found, dropping the leading '/' */
|
||||||
|
offset = fdt_add_subnode(fdt, 0, node_path + 1);
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,6 +16,13 @@
|
|||||||
stdout-path = &uart1;
|
stdout-path = &uart1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
mmc0 = &usdhc2;
|
||||||
|
mmc1 = &usdhc3;
|
||||||
|
mmc2 = &usdhc4;
|
||||||
|
/delete-property/ mmc3;
|
||||||
|
};
|
||||||
|
|
||||||
memory@10000000 {
|
memory@10000000 {
|
||||||
device_type = "memory";
|
device_type = "memory";
|
||||||
reg = <0x10000000 0x80000000>;
|
reg = <0x10000000 0x80000000>;
|
||||||
|
@ -418,7 +418,7 @@
|
|||||||
|
|
||||||
/* VDD_AUD_1P8: Audio codec */
|
/* VDD_AUD_1P8: Audio codec */
|
||||||
reg_aud_1p8v: ldo3 {
|
reg_aud_1p8v: ldo3 {
|
||||||
regulator-name = "vdd1p8";
|
regulator-name = "vdd1p8a";
|
||||||
regulator-min-microvolt = <1800000>;
|
regulator-min-microvolt = <1800000>;
|
||||||
regulator-max-microvolt = <1800000>;
|
regulator-max-microvolt = <1800000>;
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
|
@ -137,7 +137,7 @@
|
|||||||
|
|
||||||
lcd_backlight: lcd-backlight {
|
lcd_backlight: lcd-backlight {
|
||||||
compatible = "pwm-backlight";
|
compatible = "pwm-backlight";
|
||||||
pwms = <&pwm4 0 5000000>;
|
pwms = <&pwm4 0 5000000 0>;
|
||||||
pwm-names = "LCD_BKLT_PWM";
|
pwm-names = "LCD_BKLT_PWM";
|
||||||
|
|
||||||
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
||||||
@ -167,7 +167,7 @@
|
|||||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
status = "disabld";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
|
|
||||||
i2c_cam: i2c-gpio-cam {
|
i2c_cam: i2c-gpio-cam {
|
||||||
@ -179,7 +179,7 @@
|
|||||||
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
i2c-gpio,delay-us = <2>; /* ~100 kHz */
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
status = "disabld";
|
status = "disabled";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -53,7 +53,6 @@
|
|||||||
&fec {
|
&fec {
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
pinctrl-0 = <&pinctrl_microsom_enet_ar8035>;
|
||||||
phy-handle = <&phy>;
|
|
||||||
phy-mode = "rgmii-id";
|
phy-mode = "rgmii-id";
|
||||||
phy-reset-duration = <2>;
|
phy-reset-duration = <2>;
|
||||||
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
phy-reset-gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;
|
||||||
@ -63,10 +62,19 @@
|
|||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <0>;
|
#size-cells = <0>;
|
||||||
|
|
||||||
phy: ethernet-phy@0 {
|
/*
|
||||||
|
* The PHY can appear at either address 0 or 4 due to the
|
||||||
|
* configuration (LED) pin not being pulled sufficiently.
|
||||||
|
*/
|
||||||
|
ethernet-phy@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
qca,clk-out-frequency = <125000000>;
|
qca,clk-out-frequency = <125000000>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
ethernet-phy@4 {
|
||||||
|
reg = <4>;
|
||||||
|
qca,clk-out-frequency = <125000000>;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -115,6 +115,7 @@
|
|||||||
compatible = "nxp,pcf2127";
|
compatible = "nxp,pcf2127";
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
spi-max-frequency = <2000000>;
|
spi-max-frequency = <2000000>;
|
||||||
|
reset-source;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -326,9 +326,6 @@
|
|||||||
|
|
||||||
clocks = <&xtal_32k>, <&xtal>;
|
clocks = <&xtal_32k>, <&xtal>;
|
||||||
clock-names = "xtal_32k", "xtal";
|
clock-names = "xtal_32k", "xtal";
|
||||||
|
|
||||||
assigned-clocks = <&clk LPC32XX_CLK_HCLK_PLL>;
|
|
||||||
assigned-clock-rates = <208000000>;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@
|
|||||||
gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
|
||||||
gpio-miso = <&gpio1 18 GPIO_ACTIVE_HIGH>;
|
gpio-miso = <&gpio1 18 GPIO_ACTIVE_HIGH>;
|
||||||
gpio-mosi = <&gpio1 20 GPIO_ACTIVE_HIGH>;
|
gpio-mosi = <&gpio1 20 GPIO_ACTIVE_HIGH>;
|
||||||
cs-gpios = <&gpio1 19 GPIO_ACTIVE_HIGH>;
|
cs-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
|
||||||
num-chipselects = <1>;
|
num-chipselects = <1>;
|
||||||
|
|
||||||
/* lcd panel */
|
/* lcd panel */
|
||||||
@ -124,7 +124,6 @@
|
|||||||
spi-max-frequency = <100000>;
|
spi-max-frequency = <100000>;
|
||||||
spi-cpol;
|
spi-cpol;
|
||||||
spi-cpha;
|
spi-cpha;
|
||||||
spi-cs-high;
|
|
||||||
|
|
||||||
backlight= <&backlight>;
|
backlight= <&backlight>;
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
@ -16,8 +16,13 @@
|
|||||||
debounce-interval = <10>;
|
debounce-interval = <10>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We use pad 0x4a100116 abe_dmic_din3.gpio_122 as the irq instead
|
||||||
|
* of the gpio interrupt to avoid lost events in deeper idle states.
|
||||||
|
*/
|
||||||
slider {
|
slider {
|
||||||
label = "Keypad Slide";
|
label = "Keypad Slide";
|
||||||
|
interrupts-extended = <&omap4_pmx_core 0xd6>;
|
||||||
gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
|
gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>; /* gpio122 */
|
||||||
linux,input-type = <EV_SW>;
|
linux,input-type = <EV_SW>;
|
||||||
linux,code = <SW_KEYPAD_SLIDE>;
|
linux,code = <SW_KEYPAD_SLIDE>;
|
||||||
|
@ -12,4 +12,42 @@
|
|||||||
200000 0>;
|
200000 0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* Modem trace memory */
|
||||||
|
ram@06000000 {
|
||||||
|
reg = <0x06000000 0x00f00000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem shared memory */
|
||||||
|
ram@06f00000 {
|
||||||
|
reg = <0x06f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem private memory */
|
||||||
|
ram@07000000 {
|
||||||
|
reg = <0x07000000 0x01000000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Secure Software ISSW memory
|
||||||
|
*
|
||||||
|
* This is probably only used if the kernel tries
|
||||||
|
* to actually call into trustzone to run secure
|
||||||
|
* applications, which the mainline kernel probably
|
||||||
|
* will not do on this old chipset. But you can never
|
||||||
|
* be too careful, so reserve this memory anyway.
|
||||||
|
*/
|
||||||
|
ram@17f00000 {
|
||||||
|
reg = <0x17f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -12,4 +12,42 @@
|
|||||||
200000 0>;
|
200000 0>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/* Modem trace memory */
|
||||||
|
ram@06000000 {
|
||||||
|
reg = <0x06000000 0x00f00000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem shared memory */
|
||||||
|
ram@06f00000 {
|
||||||
|
reg = <0x06f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Modem private memory */
|
||||||
|
ram@07000000 {
|
||||||
|
reg = <0x07000000 0x01000000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Secure Software ISSW memory
|
||||||
|
*
|
||||||
|
* This is probably only used if the kernel tries
|
||||||
|
* to actually call into trustzone to run secure
|
||||||
|
* applications, which the mainline kernel probably
|
||||||
|
* will not do on this old chipset. But you can never
|
||||||
|
* be too careful, so reserve this memory anyway.
|
||||||
|
*/
|
||||||
|
ram@17f00000 {
|
||||||
|
reg = <0x17f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
35
arch/arm/boot/dts/ste-db9500.dtsi
Normal file
35
arch/arm/boot/dts/ste-db9500.dtsi
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
#include "ste-dbx5x0.dtsi"
|
||||||
|
|
||||||
|
/ {
|
||||||
|
cpus {
|
||||||
|
cpu@300 {
|
||||||
|
/* cpufreq controls */
|
||||||
|
operating-points = <1152000 0
|
||||||
|
800000 0
|
||||||
|
400000 0
|
||||||
|
200000 0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
reserved-memory {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Initial Secure Software ISSW memory
|
||||||
|
*
|
||||||
|
* This is probably only used if the kernel tries
|
||||||
|
* to actually call into trustzone to run secure
|
||||||
|
* applications, which the mainline kernel probably
|
||||||
|
* will not do on this old chipset. But you can never
|
||||||
|
* be too careful, so reserve this memory anyway.
|
||||||
|
*/
|
||||||
|
ram@17f00000 {
|
||||||
|
reg = <0x17f00000 0x00100000>;
|
||||||
|
no-map;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/dts-v1/;
|
/dts-v1/;
|
||||||
#include "ste-db8500.dtsi"
|
#include "ste-db9500.dtsi"
|
||||||
#include "ste-href-ab8500.dtsi"
|
#include "ste-href-ab8500.dtsi"
|
||||||
#include "ste-href-family-pinctrl.dtsi"
|
#include "ste-href-family-pinctrl.dtsi"
|
||||||
|
|
||||||
|
@ -33,9 +33,9 @@
|
|||||||
* during TX anyway and that it only controls drive enable DE
|
* during TX anyway and that it only controls drive enable DE
|
||||||
* line. Hence, the RX is always enabled here.
|
* line. Hence, the RX is always enabled here.
|
||||||
*/
|
*/
|
||||||
rs485-rx-en {
|
rs485-rx-en-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <8 GPIO_ACTIVE_HIGH>;
|
gpios = <8 0>;
|
||||||
output-low;
|
output-low;
|
||||||
line-name = "rs485-rx-en";
|
line-name = "rs485-rx-en";
|
||||||
};
|
};
|
||||||
@ -61,9 +61,9 @@
|
|||||||
* order to reset the Hub when USB bus is powered down, but
|
* order to reset the Hub when USB bus is powered down, but
|
||||||
* so far there is no such functionality.
|
* so far there is no such functionality.
|
||||||
*/
|
*/
|
||||||
usb-hub {
|
usb-hub-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <2 GPIO_ACTIVE_HIGH>;
|
gpios = <2 0>;
|
||||||
output-high;
|
output-high;
|
||||||
line-name = "usb-hub-reset";
|
line-name = "usb-hub-reset";
|
||||||
};
|
};
|
||||||
@ -87,6 +87,12 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
&i2c4 {
|
||||||
|
touchscreen@49 {
|
||||||
|
status = "disabled";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
&i2c5 { /* TP7/TP8 */
|
&i2c5 { /* TP7/TP8 */
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&i2c5_pins_a>;
|
pinctrl-0 = <&i2c5_pins_a>;
|
||||||
@ -104,7 +110,7 @@
|
|||||||
* are used for on-board microSD slot instead.
|
* are used for on-board microSD slot instead.
|
||||||
*/
|
*/
|
||||||
/delete-property/broken-cd;
|
/delete-property/broken-cd;
|
||||||
cd-gpios = <&gpioi 10 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
cd-gpios = <&gpioi 10 GPIO_ACTIVE_HIGH>;
|
||||||
disable-wp;
|
disable-wp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,9 +43,9 @@
|
|||||||
* in order to turn on port power when USB bus is powered up, but so
|
* in order to turn on port power when USB bus is powered up, but so
|
||||||
* far there is no such functionality.
|
* far there is no such functionality.
|
||||||
*/
|
*/
|
||||||
usb-port-power {
|
usb-port-power-hog {
|
||||||
gpio-hog;
|
gpio-hog;
|
||||||
gpios = <13 GPIO_ACTIVE_LOW>;
|
gpios = <13 0>;
|
||||||
output-low;
|
output-low;
|
||||||
line-name = "usb-port-power";
|
line-name = "usb-port-power";
|
||||||
};
|
};
|
||||||
|
@ -390,7 +390,8 @@
|
|||||||
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_dir_pins_a>;
|
||||||
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
pinctrl-1 = <&sdmmc1_b4_od_pins_a &sdmmc1_dir_pins_a>;
|
||||||
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
pinctrl-2 = <&sdmmc1_b4_sleep_pins_a &sdmmc1_dir_sleep_pins_a>;
|
||||||
broken-cd;
|
cd-gpios = <&gpiog 1 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||||
|
disable-wp;
|
||||||
st,sig-dir;
|
st,sig-dir;
|
||||||
st,neg-edge;
|
st,neg-edge;
|
||||||
st,use-ckin;
|
st,use-ckin;
|
||||||
|
@ -110,7 +110,7 @@
|
|||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&gmac_rgmii_pins>;
|
pinctrl-0 = <&gmac_rgmii_pins>;
|
||||||
phy-handle = <&phy1>;
|
phy-handle = <&phy1>;
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii-id";
|
||||||
phy-supply = <®_gmac_3v3>;
|
phy-supply = <®_gmac_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
12
arch/arm/include/asm/kexec-internal.h
Normal file
12
arch/arm/include/asm/kexec-internal.h
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||||||
|
#ifndef _ARM_KEXEC_INTERNAL_H
|
||||||
|
#define _ARM_KEXEC_INTERNAL_H
|
||||||
|
|
||||||
|
struct kexec_relocate_data {
|
||||||
|
unsigned long kexec_start_address;
|
||||||
|
unsigned long kexec_indirection_page;
|
||||||
|
unsigned long kexec_mach_type;
|
||||||
|
unsigned long kexec_r2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user