Uma Shankar [Fri, 19 Jan 2018 12:42:00 +0000 (14:42 +0200)]
drm: Enable HDR infoframe support
Enable Dynamic Range and Mastering Infoframe for HDR
content, which is defined in CEA 861.3 spec.
The metadata will be computed based on blending
policy in userspace compositors and passed as a connector
property blob to driver. The same will be sent as infoframe
to panel which support HDR.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Uma Shankar [Mon, 22 Jan 2018 08:06:43 +0000 (10:06 +0200)]
drm: Parse Colorimetry data block from EDID
EA 861.3 spec adds colorimetry data block for HDMI.
Parsing the block to get the colorimetry data from
panel.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Shashank Sharma [Mon, 13 Mar 2017 11:24:02 +0000 (16:54 +0530)]
drm/edid: detect SCDC support in HF-VSDB
This patch does following:
- Adds a new structure (drm_hdmi_info) in drm_display_info.
This structure will be used to save and indicate if sink
supports advanced HDMI 2.0 features
- Adds another structure drm_scdc within drm_hdmi_info, to
reflect scdc support and capabilities in connected HDMI 2.0 sink.
- Checks the HF-VSDB block for presence of SCDC, and marks it
in scdc structure
- If SCDC is present, checks if sink is capable of generating
SCDC read request, and marks it in scdc structure.
V2: Addressed review comments
Thierry:
- Fix typos in commit message and make abbreviation consistent
across the commit message.
- Change structure object name from hdmi_info -> hdmi
- Fix typos and abbreviations in description of structure drm_hdmi_info
end the description with a full stop.
- Create a structure drm_scdc, and keep all information related to SCDC
register set (supported, read request supported) etc in it.
Ville:
- Change rr -> read_request
- Call drm_detect_scrambling function drm_parse_hf_vsdb so that all
of HF-VSDB parsing can be kept in same function, in incremental
patches.
V3: Rebase.
V4: Rebase.
V5: Rebase.
V6: Addressed review comments from Ville
- Add clock rate calculations for 1/10 and 1/40 ratios
- Remove leftovers from old patchset
V7: Added R-B from Jose.
V8: Rebase.
V9: Rebase.
V10: Rebase.
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1489404244-16608-5-git-send-email-shashank.sharma@intel.com
Shashank Sharma [Mon, 13 Mar 2017 11:24:01 +0000 (16:54 +0530)]
drm/edid: detect SCDC support in HF-VSDB
This patch does following:
- Adds a new structure (drm_hdmi_info) in drm_display_info.
This structure will be used to save and indicate if sink
supports advanced HDMI 2.0 features
- Adds another structure drm_scdc within drm_hdmi_info, to
reflect scdc support and capabilities in connected HDMI 2.0 sink.
- Checks the HF-VSDB block for presence of SCDC, and marks it
in scdc structure
- If SCDC is present, checks if sink is capable of generating
SCDC read request, and marks it in scdc structure.
V2: Addressed review comments
Thierry:
- Fix typos in commit message and make abbreviation consistent
across the commit message.
- Change structure object name from hdmi_info -> hdmi
- Fix typos and abbreviations in description of structure drm_hdmi_info
end the description with a full stop.
- Create a structure drm_scdc, and keep all information related to SCDC
register set (supported, read request supported) etc in it.
Ville:
- Change rr -> read_request
- Call drm_detect_scrambling function drm_parse_hf_vsdb so that all
of HF-VSDB parsing can be kept in same function, in incremental
patches.
V3: Rebase.
V4: Rebase.
V5: Rebase.
V6: Rebase.
V7: Added R-B from Jose.
V8: Rebase.
V9: Rebase.
V10: Rebase.
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Reviewed-by: Thierry Reding <treding@nvidia.com>
Reviewed-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1489404244-16608-4-git-send-email-shashank.sharma@intel.com
Thierry Reding [Mon, 13 Mar 2017 11:24:00 +0000 (16:54 +0530)]
drm/edid: check for HF-VSDB block
This patch implements a small function that finds if a
given CEA db is hdmi-forum vendor specific data block
or not.
V2: Rebase.
V3: Added R-B from Jose.
V4: Rebase
V5: Rebase
V6: Rebase
V7: Rebase
V8: Rebase
V9: Rebase
V10: Rebase
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Reviewed-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1489404244-16608-3-git-send-email-shashank.sharma@intel.com
Thierry Reding [Mon, 13 Mar 2017 11:23:59 +0000 (16:53 +0530)]
drm: Add SCDC helpers
SCDC is a mechanism defined in the HDMI 2.0 specification that allows
the source and sink devices to communicate.
This commit introduces helpers to access the SCDC and provides the
symbolic names for the various registers defined in the specification.
V2: Rebase.
V3: Added R-B from Jose.
V4: Rebase
V5: Addressed review comments from Ville
- Handle the I2c return values in a better way (dp_dual_mode)
- Make the macros for SCDC Major/Minor more readable, by adding
a 'GET' in the macro names
V6: Rebase
V7: Rebase
V8: Rebase
V9: Rebase
V10: Rebase
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Shashank Sharma <shashank.sharma@intel.com>
Reviewed-by: Jose Abreu <joabreu@synopsys.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1489404244-16608-2-git-send-email-shashank.sharma@intel.com
Uma Shankar [Wed, 31 May 2017 10:10:55 +0000 (15:40 +0530)]
drm: Implement HDR source metadata set and get property handling
HDR source metadata set and get property implemented in this
patch. The blob data is received from userspace and saved in
connector state, the same is returned as blob in get property
call to userspace.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Jyri Sarha [Fri, 21 Apr 2017 09:51:13 +0000 (12:51 +0300)]
drm: Make drm_atomic_replace_property_blob_from_id() more generic
Change drm_atomic_replace_property_blob_from_id()'s first parameter
from drm_crtc to drm_device, so that the function can be used for other
drm_mode_objects too.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/851b8504c7f294a10645ba6f6d391ac9764068b7.1492768073.git.jsarha@ti.com
Manasi Navare [Fri, 16 Dec 2016 10:29:06 +0000 (12:29 +0200)]
drm: Add a new connector atomic property for link status
At the time userspace does setcrtc, we've already promised the mode
would work. The promise is based on the theoretical capabilities of
the link, but it's possible we can't reach this in practice. The DP
spec describes how the link should be reduced, but we can't reduce
the link below the requirements of the mode. Black screen follows.
One idea would be to have setcrtc return a failure. However, it
already should not fail as the atomic checks have passed. It would
also conflict with the idea of making setcrtc asynchronous in the
future, returning before the actual mode setting and link training.
Another idea is to train the link "upfront" at hotplug time, before
pruning the mode list, so that we can do the pruning based on
practical not theoretical capabilities. However, the changes for link
training are pretty drastic, all for the sake of error handling and
DP compliance, when the most common happy day scenario is the current
approach of link training at mode setting time, using the optimal
parameters for the mode. It is also not certain all hardware could do
this without the pipe on; not even all our hardware can do this. Some
of this can be solved, but not trivially.
Both of the above ideas also fail to address link degradation *during*
operation.
The solution is to add a new "link-status" connector property in order
to address link training failure in a way that:
a) changes the current happy day scenario as little as possible, to
avoid regressions, b) can be implemented the same way by all drm
drivers, c) is still opt-in for the drivers and userspace, and opting
out doesn't regress the user experience, d) doesn't prevent drivers
from implementing better or alternate approaches, possibly without
userspace involvement. And, of course, handles all the issues presented.
In the usual happy day scenario, this is always "good". If something
fails during or after a mode set, the kernel driver can set the link
status to "bad" and issue a hotplug uevent for userspace to have it
re-check the valid modes through GET_CONNECTOR IOCTL, and try modeset
again. If the theoretical capabilities of the link can't be reached,
the mode list is trimmed based on that.
v7 by Jani:
* Rebase, simplify set property while at it, checkpatch fix
v6:
* Fix a typo in kernel doc (Sean Paul)
v5:
* Clarify doc for silent rejection of atomic properties by driver (Daniel Vetter)
v4:
* Add comments in kernel-doc format (Daniel Vetter)
* Update the kernel-doc for link-status (Sean Paul)
v3:
* Fixed a build error (Jani Saarinen)
v2:
* Removed connector->link_status (Daniel Vetter)
* Set connector->state->link_status in drm_mode_connector_set_link_status_property
(Daniel Vetter)
* Set the connector_changed flag to true if connector->state->link_status changed.
* Reset link_status to GOOD in update_output_state (Daniel Vetter)
* Never allow userspace to set link status from Good To Bad (Daniel Vetter)
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Tony Cheng <tony.cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sean Paul <seanpaul@chromium.org>
Signed-off-by: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Eric Anholt <eric@anholt.net> (for the -modesetting patch)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/0182487051aa9f1594820e35a4853de2f8747b4e.1481883920.git.jani.nikula@intel.com
Uma Shankar [Wed, 31 May 2017 10:10:54 +0000 (15:40 +0530)]
drm: Add HDR capabilty field to plane structure
Hardware may have HDR capability on certain plane
engines. Enabling the same in drm plane structure
so that this can be communicated to user space.
Each drm driver should set this flag to true for planes
which support HDR.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Uma Shankar [Fri, 19 Jan 2018 10:54:25 +0000 (12:54 +0200)]
drm: Parse HDR metadata info from EDID
HDR metadata block is introduced in CEA-861.3 spec.
Parsing the same to get the panel's HDR metadata.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Uma Shankar [Wed, 31 May 2017 10:10:50 +0000 (15:40 +0530)]
drm: Add CEA extended tag blocks and HDR bitfield macros
Add bit field and macro for extended tag in CEA block. Also,
declare macros for HDR metadata block.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Uma Shankar [Wed, 31 May 2017 10:10:49 +0000 (15:40 +0530)]
drm: Add HDR source metadata property
This patch adds a blob property to get HDR metadata
information from userspace. This will be send as part
of AVI Infoframe to panel.
Signed-off-by: Uma Shankar <uma.shankar@intel.com>
Laurentiu Palcu [Fri, 19 Jan 2018 07:02:23 +0000 (09:02 +0200)]
MLK-17634-1: drm: imx: dcss: send vblank event from ISR
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Daniel Baluta [Wed, 28 Feb 2018 12:59:12 +0000 (14:59 +0200)]
MLK-15071: ASoC: fsl: imx-ak5558: Fix clk for 384KHz and 786KHz
With the current multipliers SAI isn't able to derive a correct bitclk.
e.g: When recording at 786Khz with current multiplier
MCLK =
24576000, requested freq
24576000 but SAI wants:
MCLK = (DIV + 1) * 2 * freq [SAI TCR2], so an acceptable solution
is to add a 2x factor to mclk.
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Yuchou Gan [Tue, 27 Feb 2018 15:50:16 +0000 (23:50 +0800)]
MGS-3703 gpu-viv: fix coverity issue
1477266
fix coverity high impact issue for
1477266
Signed-off-by: Yuchou Gan <yuchou.gan@nxp.com>
Adriana Reus [Mon, 26 Feb 2018 15:03:53 +0000 (17:03 +0200)]
MLK-17626 Use DEFINE_SPINLOCK for imx_ccm_lock
If spinlock debug is enabled there are BUG_ON asserts in
place for default values on the spinlock_t members.
DEFINE_SPINLOCK declares and initializes the spinlock and
avoids triggering those.
Signed-off-by: Adriana Reus <adriana.reus@nxp.com>
Tested-by: Marius Vlad <marius-cristian.vlad@nxp.com>
Acked-By: Marius Vlad <marius-cristian.vlad@nxp.com>
Shengjiu Wang [Mon, 26 Feb 2018 07:13:02 +0000 (15:13 +0800)]
MLK-17620-2: ASoC: imx-cdnhdmi: switch to generic hdmi codec
switch to generic hdmi codec, which provide the api for get
the edid information.
Add snd controls which is the interface for user to query
the HDMI capibility. ( channels, rates, formats)
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
Shengjiu Wang [Mon, 26 Feb 2018 07:12:32 +0000 (15:12 +0800)]
MLK-17620-1: hdp: register generic hdmi codec driver
Register generic hdmi codec driver, and move audio related
code to an independent file.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
Keith Packard [Fri, 19 Jan 2018 01:51:59 +0000 (17:51 -0800)]
drm: Check for lessee in DROP_MASTER ioctl
Don't let a lessee control what the current DRM master is set to;
that's the job of the "real" master. Otherwise, the lessee would
disable all access to master operations for the owner and all lessees
under it.
This matches the same check made in the SET_MASTER ioctl.
Signed-off-by: Keith Packard <keithp@keithp.com>
Fixes:
2ed077e467ee ("drm: Add drm_object lease infrastructure [v5]")
Cc: <stable@vger.kernel.org> # v4.15+
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20180119015159.1606-1-keithp@keithp.com
Signed-off-by: Marius Vlad <marius-cristian.vlad@nxp.com>
(cherry-picked
761e05a702f5d537ffcc from git://people.freedesktop.org/~airlied/linux)
Keith Packard [Thu, 21 Dec 2017 06:54:24 +0000 (22:54 -0800)]
drm: move lease init after validation in drm_lease_create
Patch
bd36d3bab2e3d08f80766c86487090dbceed4651 fixed a deadlock in the
failure path of drm_lease_create. This made the partially initialized
lease object visible for a short window of time.
To avoid having the lessee state appear transiently, I've rearranged
the code so that the lessor fields are not filled in until the
parameters are all validated and the function will succeed.
Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20171221065424.1304-1-keithp@keithp.com
Signed-off-by: Marius Vlad <marius-cristian.vlad@nxp.com>
(cherry-picked
d2a48e52541cdf4 from git://people.freedesktop.org/~airlied/linux)
Laurentiu Palcu [Fri, 23 Feb 2018 10:39:22 +0000 (12:39 +0200)]
MLK-17459-4: drm: imx: dcss: fix weston
This patch fixes an issue introduced by the cropping patches which made
weston look bad. That's because use_dtrc flag was enabled if modifiers
were present. However, graphics plane can have modifiers too. This patch
adds an extra check.
Also, remove an unnecessary debug message.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Peter Chen [Mon, 15 Jan 2018 02:16:03 +0000 (10:16 +0800)]
MLK-17323 usb: cdns3: fix the kernel dump during the reboot stress test
During the reboot stress test, there may "nobody cared irq" for CDNS3,
the interrupts are occurred during the controller is entering low power
mode. In fact, we do no expect interrupt during this period, so disable
controller interrupt for it. With this patch, the kernel dump does
not occur again during reboot stress test.
[ 18.460516] irq 44: nobody cared (try booting with the "irqpoll" option)
[ 18.467222] CPU: 0 PID: 112 Comm: kworker/0:1 Not tainted
4.9.51-04150-ge84b58d-dirty #1198
[ 18.475573] Hardware name: Freescale i.MX8QXP MEK (DT)
[ 18.480720] Workqueue: pm pm_runtime_work
[ 18.484739] Call trace:
[ 18.487186] [<
ffff0000080884e0>] dump_backtrace+0x0/0x1e0
[ 18.492588] [<
ffff0000080886d4>] show_stack+0x14/0x20
[ 18.497644] [<
ffff0000083e571c>] dump_stack+0x94/0xb8
[ 18.502701] [<
ffff0000081062c0>] __report_bad_irq+0x38/0xe8
[ 18.508276] [<
ffff000008106644>] note_interrupt+0x20c/0x2e0
[ 18.513853] [<
ffff00000810386c>] handle_irq_event_percpu+0x44/0x58
[ 18.520038] [<
ffff0000081038c8>] handle_irq_event+0x48/0x78
[ 18.525608] [<
ffff000008107260>] handle_fasteoi_irq+0xb8/0x1b0
[ 18.531445] [<
ffff000008102894>] generic_handle_irq+0x24/0x38
[ 18.537187] [<
ffff000008102f04>] __handle_domain_irq+0x5c/0xb8
[ 18.543017] [<
ffff00000808163c>] gic_handle_irq+0xbc/0x168
[ 18.548506] Exception stack(0xffff80083ff4ae00 to 0xffff80083ff4af30)
[ 18.554946] ae00:
ffff80083ff4ae30 0001000000000000 ffff80083ff4af60 ffff0000080c1fec
[ 18.562781] ae20:
0000000040000145 ffff80083a474000 0000000000000000 0000000000000000
[ 18.570617] ae40:
00000000fffeecc3 ffff000008a2d368 00000000020c49ba 0000000000000020
[ 18.578454] ae60:
000000000f78257c 7fffffffffffffff 0000000000000020 ffff80083a403f00
[ 18.586290] ae80:
ffff80083ff51ab0 ffff000008cb0b68 00000000000003ef 0000000000000000
[ 18.594125] aea0:
0000000000000011 00000000000003ef 0000000000000019 0000000000000001
[ 18.601962] aec0:
0000000000000007 ffff0000092f9000 ffff0000092f5b08 0000000000000000
[ 18.609798] aee0:
ffff000009501180 ffff80083a002a80 ffff80083a474000 00000000fffeecc2
[ 18.617634] af00:
ffff80083ff4b090 ffff000009336000 0000000000000002 ffff80083ff4af60
[ 18.625469] af20:
ffff0000080c243c ffff80083ff4af60
[ 18.630343] [<
ffff0000080827b0>] el1_irq+0xb0/0x124
[ 18.635220] [<
ffff0000080c243c>] irq_exit+0xac/0xf0
[ 18.640099] [<
ffff000008102f08>] __handle_domain_irq+0x60/0xb8
[ 18.645928] [<
ffff00000808163c>] gic_handle_irq+0xbc/0x168
[ 18.651409] Exception stack(0xffff80083a477ad0 to 0xffff80083a477c00)
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Tue, 16 Jan 2018 06:59:37 +0000 (14:59 +0800)]
MLK-17380-7 usb: cdns3: add platform TPL support
The TPL support is used to identify targeted devices during
EH2.0 and EH3.0 certification test.
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 9 Feb 2018 03:19:32 +0000 (11:19 +0800)]
MLK-17380-6 ARM64: defconfig: enable configurations for USB certification
These two configurations are needed for USB EH certification test.
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 9 Feb 2018 02:24:36 +0000 (10:24 +0800)]
MLK-17380-5 usb: host: xhci: do not return error status for URB
Current XHCI implementation does not consider completion interrupt
for SETUP packet standalone, so it will show warning message
and return error status for URB. In fact, it can support it. In
this commit, we delete warning message and set status as zero
for URB.
Support completion interrupt for SETUP packet is needed for EH
SINGLE_STEP_SET_FEATURE Test.
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 9 Feb 2018 02:11:32 +0000 (10:11 +0800)]
MLK-17380-4 usb: host: xhci: add EH SINGLE_STEP_SET_FEATURE Test for USB2
This function is similar with EHCI's, but implemented using XHCI.
The USB2 host needs to send SETUP packet first, then wait 15
seconds before DATA (IN) + STATUS stage.
It is needed at USB Certification test for Embedded Host 2.0, and
the detail is at CH6.4.1.1 of On-The-Go and Embedded Host Supplement
to the USB Revision 2.0 Specification
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Thu, 18 Jan 2018 03:03:24 +0000 (11:03 +0800)]
MLK-17380-3 usb: move EH SINGLE_STEP_SET_FEATURE implement to core
Since other USB 2.0 host may need it, like USB2 for XHCI. We move
this design to HCD core.
Acked-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Wed, 31 Jan 2018 01:41:41 +0000 (09:41 +0800)]
MLK-17380-2 usb: host: ehci: always enable interrupt for qtd completion at test mode
At former code, the SETUP stage does not enable interrupt
for qtd completion, it relies on IAA watchdog to complete
interrupt, then the transcation would be considered timeout
if the flag need_io_watchdog is cleared by platform code.
In this commit, we always add enable interrupt for qtd completion,
then the qtd completion can be notified by hardware interrupt.
Acked-by: Jun Li <jun.li@nxp.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Tue, 30 Jan 2018 09:22:03 +0000 (17:22 +0800)]
MLK-17380-1 usb: host: ehci: use correct device pointer for dma ops
commit
a8c06e407ef9 ("usb: separate out sysdev pointer from usb_bus")
converted to use hcd->self.sysdev for DMA operations instead of
hcd->self.controller, but forgot to do it for hcd test mode. Replace
the correct one in this commit.
Acked-by: Jun Li <jun.li@nxp.com>
Fixes:
a8c06e407ef9 ("usb: separate out sysdev pointer from usb_bus")
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Laurentiu Palcu [Wed, 21 Feb 2018 08:00:55 +0000 (10:00 +0200)]
MLK-17459-3: drm: imx: dcss: fixes for compressed format cropping
Cropping of compressed formats seems problematic and we cannot up-align
in this case. For compressed formats we need to down-align both the
width and height.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Laurentiu Palcu [Mon, 19 Feb 2018 13:58:21 +0000 (15:58 +0200)]
MLK-17459-2: drm: imx: dcss: add cropping functionality and fix odd resolutions
This patch fixes playback for movies with unaligned widths/heights and
adds cropping functionality for tiled formats. Untiled formats will not
have this feature as cropping is a DTRC function.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Laurentiu Palcu [Tue, 23 Jan 2018 07:56:18 +0000 (09:56 +0200)]
MLK-17459-1: drm: imx: dcss: change ctxld irq handling
To remove any possible latencies introduced by scheduling the bottom
half interrupt handler, do everything in the top half handler and get
rid of the IRQ worker thread handler. Also, that needs all mutexes
changed to spinlocks since mutexes can sleep.
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
Xianzhong [Thu, 22 Feb 2018 11:23:23 +0000 (19:23 +0800)]
MGS-3655: gpu-viv: integrate 6.2.4.p1 official release
update gpu kernel version with 6.2.4.p1 official release.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Daniel Baluta [Fri, 16 Feb 2018 06:59:19 +0000 (08:59 +0200)]
MLK-17600: ASoC: imx-ak5558: Set MCLK as a function of fs
MCLK frequency is determined based on LRCK frequency, according
to the operation mode. Because AK5558 runs in Auto Mode, we use
table 5 from datasheet to set the correct MCLK.
Multiplier must be set twice as value shown in RM because SAI
MCLK must be at least double the BCLK.
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviewed-by: Cosmin Samoila <cosmin.samoila@nxp.com>
Teo Hall [Thu, 15 Feb 2018 16:58:46 +0000 (10:58 -0600)]
MLK-17570-4: Add i.MX8QP support
cleanup soc definitions
This reverts commit
adf4f3445d36f1bcafea825c1cc7da518e9a3d94.
Signed-off-by: Teo Hall <teo.hall@nxp.com>
Teo Hall [Wed, 14 Feb 2018 22:54:28 +0000 (16:54 -0600)]
MLK-17570-3: Add i.MX8QP support
Simplify DTSI structure for 8QP
Signed-off-by: Teo Hall <teo.hall@nxp.com>
Nitin Garg [Thu, 15 Feb 2018 21:30:51 +0000 (15:30 -0600)]
MLK-17597-1: i.MX8MQ workaround affecting other SoCs
Fix iMX8MQ workaround to be specific to that
machine.
Signed-off-by: Nitin Garg <nitin.garg@nxp.com>
Ranjani Vaidyanathan [Fri, 9 Feb 2018 19:05:20 +0000 (13:05 -0600)]
MLK-17561-5 ASoC:sound: Update to the latest SCFW API based on commit:
"
commit
97b8a6eed4eee19ec8a60dedfffc2f5f3d8933c5
Author: Chuck Cannon <chuck.cannon@freescale.com>
Date: Tue Feb 6 08:54:16 2018 -0600
Add unique ID API call. Required to get info needed for SECO fus
programming. Added info command to DM.
"
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Ranjani Vaidyanathan [Fri, 9 Feb 2018 19:04:23 +0000 (13:04 -0600)]
MLK-17561-4 ASoC:vpu: Update to the latest SCFW API based on commit:
"
commit
97b8a6eed4eee19ec8a60dedfffc2f5f3d8933c5
Author: Chuck Cannon <chuck.cannon@freescale.com>
Date: Tue Feb 6 08:54:16 2018 -0600
Add unique ID API call. Required to get info needed for SECO fuse
programming. Added info command to DM.
"
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Ranjani Vaidyanathan [Fri, 9 Feb 2018 18:58:19 +0000 (12:58 -0600)]
MLK-17561-3 clk:imx8: Update to the latest SCFW API based on commit:
"
commit
97b8a6eed4eee19ec8a60dedfffc2f5f3d8933c5
Author: Chuck Cannon <chuck.cannon@freescale.com>
Date: Tue Feb 6 08:54:16 2018 -0600
Add unique ID API call. Required to get info needed for SECO fuse
programming. Added info command to DM.
"
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Ranjani Vaidyanathan [Fri, 9 Feb 2018 18:47:06 +0000 (12:47 -0600)]
MLK-17561-2 ARM64:dts: Update to the latest SCFW API based on commit:
"
commit
97b8a6eed4eee19ec8a60dedfffc2f5f3d8933c5
Author: Chuck Cannon <chuck.cannon@freescale.com>
Date: Tue Feb 6 08:54:16 2018 -0600
Add unique ID API call. Required to get info needed for SECO fuse
programming. Added info command to DM.
"
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Ranjani Vaidyanathan [Fri, 9 Feb 2018 18:41:48 +0000 (12:41 -0600)]
MLK-17561-1 soc:imx8: Update to the latest SCFW API based on commit:
"
commit
97b8a6eed4eee19ec8a60dedfffc2f5f3d8933c5
Author: Chuck Cannon <chuck.cannon@freescale.com>
Date: Tue Feb 6 08:54:16 2018 -0600
Add unique ID API call. Required to get info needed for SECO fuse
programming. Added info command to DM.
"
Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@nxp.com>
Nitin Garg [Wed, 14 Feb 2018 03:25:40 +0000 (21:25 -0600)]
MLK-17597: Add GICC, GICH, GICV addresses to iMX8QM device tree.
Adding GICC, GICH, GICV addresses for iMX8QM
Signed-off-by: Nitin Garg <nitin.garg@nxp.com>
Bai Ping [Mon, 5 Feb 2018 08:32:07 +0000 (16:32 +0800)]
MLK-17590-02 driver: soc: imx: update the busfreq flow on imx8mq
Currently, on imx8mq evk board, we only support 3200mts and 667mts
frequency setpoints. So the DDR DVFS flow need to be updated accordingly.
The dram pll and dram apb clock rate is changed in ATF when doing frequency,
in kernel side, we need to call the clk API to update the clock rate info
in clock tree.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Reviewed-by: Anson Huang <Anson.Huang@nxp.com>
Bai Ping [Mon, 12 Feb 2018 05:24:45 +0000 (13:24 +0800)]
MLK-17590-01 driver: clk: imx: update the clk flag of pll
Add CLK_GET_RATE_NOCACHE and CLK_SET_RATE_GATE for sscg pll.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Reviewed-by: Anson Huang <Anson.Huang@nxp.com>
Cosmin-Gabriel Samoila [Wed, 7 Feb 2018 15:44:42 +0000 (17:44 +0200)]
MLK-17509: ASoC: imx-ak4458: Set MCLK freq as a function of FS
According to AK4458 RM the MCLK freq need to be set
externaly as function of LRCK frequency. Notice that
multiplier is twice the value shown in RM since SAI
MCLK must be at least double the BCLK.
Signed-off-by: Cosmin-Gabriel Samoila <cosmin.samoila@nxp.com>
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
Richard Zhu [Tue, 30 Jan 2018 09:26:58 +0000 (17:26 +0800)]
MLK-17552-2 PCI: imx: enable imx pcie ep dma
Enable the imx pcie ep dma in the pcie ep rc
validation system.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Richard Zhu [Tue, 30 Jan 2018 09:17:21 +0000 (17:17 +0800)]
MLK-17552-1 arm: dts: add the dma int for imx pcie ep
Add the dma int for the the imx pcie ep mode for
the controllers that has the dma capability.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Viorel Suman [Wed, 7 Feb 2018 11:47:51 +0000 (13:47 +0200)]
MLK-17528-4: ASoC: imx-ak4497: set MCLK freq as function of FS
According to AK4497 RM the MCLK freq need to be set
externaly as function of LRCK frequency.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Suggested-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Viorel Suman [Fri, 9 Feb 2018 09:39:58 +0000 (11:39 +0200)]
MLK-17528-3: ASoC: fsl_sai: Set clock rate in "set_sysclk" API
Set the requested clock rate in "set_sysclk" for specified clock id.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Suggested-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Viorel Suman [Thu, 8 Feb 2018 10:48:01 +0000 (12:48 +0200)]
MLK-17528-2: ASoC: imx_pdm: Use FSL_SAI_CLK_BIT to signal the proper clock id
The current implementation suggest that MAST1 frequency is to be changed,
which is wrong. Use FSL_SAI_CLK_BIT clock id instead of FSL_SAI_CLK_MAST1
in order to make the code more intuitive and to signal proper
clk_id to SAI.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Viorel Suman [Thu, 8 Feb 2018 10:47:24 +0000 (12:47 +0200)]
MLK-17528-1: ASoC: fsl_sai: Introduce FSL_SAI_CLK_BIT clock id
Introduce FSL_SAI_CLK_BIT clock id in order to distinguish
the bit clock and master clocks in "set_sysclk" API.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Suggested-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Liu Ying [Fri, 9 Feb 2018 05:20:37 +0000 (13:20 +0800)]
MLK-17574 gpu: imx: dpu: Fix typos for scaler_scale_mode_t
Fix some typos for enum entry names of scaler_scale_mode_t.
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Teo Hall [Thu, 8 Feb 2018 21:38:38 +0000 (15:38 -0600)]
MLK-17570-2: Add i.MX8QP support
Add SOC driver support to pair with i.MX8QP
Signed-off-by: Teo Hall <teo.hall@nxp.com>
Teo Hall [Thu, 8 Feb 2018 21:37:40 +0000 (15:37 -0600)]
MLK-17570-1: Add i.MX8QP support
Add Kconfig and DTS support for i.MX8QP
Signed-off-by: Teo Hall <teo.hall@nxp.com>
Li Jun [Thu, 8 Feb 2018 11:01:20 +0000 (19:01 +0800)]
MLK-17555 ARM64: defconfig: add usb video support
Add usb video support by build it as module.
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
Shengjiu Wang [Thu, 8 Feb 2018 06:38:35 +0000 (14:38 +0800)]
MLK-17566: ASoC: fsl_sai: fix register definition
The register definition is not completed for SAI support
8 transmit data register and 8 receive data register.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Franck LENORMAND [Wed, 7 Feb 2018 10:56:20 +0000 (11:56 +0100)]
MLK-17253-3: dtb: Fix the size of SM available in imx8mq dtsi
The Secure Memory contain 8 pages of 4k byte but the
node was only expressing half this space.
Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
Franck LENORMAND [Mon, 5 Feb 2018 09:54:56 +0000 (10:54 +0100)]
MLK-17253-2: crypto: caam: Use correct memory function for Secure Memory
The Secure Memory is a hardware memory whose address was retrieved using
of_iomap, hence the memory manipulation shall use the set of functions:
memset_io/memcpy_fromio/memcpy_toio in order to works correctly.
Not using these functions can result in kernel panic.
Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
Franck LENORMAND [Mon, 5 Feb 2018 09:54:19 +0000 (10:54 +0100)]
MLK-17253-1: crypto: caam: Fix computation of SM pages addresses
The computation of the base address of the physical and virtual
need to be the same depending on the architecture.
The addresses are computed using a pointer on u8 so the additions
always works as expected.
Signed-off-by: Franck LENORMAND <franck.lenormand@nxp.com>
Shengjiu Wang [Tue, 6 Feb 2018 10:38:36 +0000 (18:38 +0800)]
MLK-17515-2: ARM64: dts: move the pdn gpio to sound card node
move the pdn gpio to sound card node for ak4458
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Cosmin Samoila <cosmin.samoila@nxp.com>
Shengjiu Wang [Tue, 6 Feb 2018 10:38:24 +0000 (18:38 +0800)]
MLK-17515-1: ASoC: imx-ak4458: add pdn gpio for machine driver
There is two ak4458 codecs which share some pdn gpio. If assign
the pdn gpio to one codec, will cause the another codec error:
ak4458 1-0012: Unable to sync registers 0x0-0x0. -6
The reason is that if the codec driver is trying to do regcache_sync,
but another codec is resetting the pdn gpio in same time, the
regcache_sync will fail.
So Move the pdn gpio to machine driver, machine driver will
control this gpio for two codecs.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Cosmin Samoila <cosmin.samoila@nxp.com>
Daniel Baluta [Tue, 6 Feb 2018 09:26:15 +0000 (11:26 +0200)]
MLK-17517: ARM64: dts: imx8mq-evk: Fix record for more than two channels
SAI5_RXDn must be muxed to RX_DATAn. For n = {1, 2, 3}
this mapping was not correctly done so only channels
recorded from data line 0 were seen in .wav capture.
Suggested-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Reviwed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Shengjiu Wang [Mon, 5 Feb 2018 07:42:08 +0000 (15:42 +0800)]
MLK-17507: ASoC: ak4458: add return value for ak4458_codec_probe
There is ak4458 audio card even no audio board connected, which
is caused by there is no error return value even the i2c access
failed.
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Fancy Fang [Mon, 5 Feb 2018 01:49:02 +0000 (09:49 +0800)]
MLK-17523 drm/imx: dcss: do
dec400d shadow trigger only for primary plane
Since only primary plane has
DEC400D attached to it, the
shadow register trigger for
DEC400D is only necessary to
be done for primary plane update.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Viorel Suman [Fri, 2 Feb 2018 12:52:04 +0000 (14:52 +0200)]
MLK-17516: ASoC: fsl: amix: refine the error handling
The "snd_pcm_hw_constraint_minmax" call may return a positive
non-error integer so that the subsequent "snd_pcm_hw_constraint_mask64"
call is never invoked, thus the formats are never enforced.
Fix the error handling so that only negative results are considered.
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Daniel Baluta [Fri, 2 Feb 2018 09:02:27 +0000 (11:02 +0200)]
MLK-17485: ASoC: fsl_sai: Specify supported rate_min and rate_max
Because fsl_sai_dai rates doesn't have a specific set of
rate values (.rates = SNDRV_PCM_RATE_KNOT) we need to provide
rate_min and rate_max otherwise functions trying to get
supported parameters will get confused and return an error.
Fixes:
1b6f0496e013 ("MLK-17428-8: ASoC: fsl_sai: support 768KHz sample rate")
Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Viorel Suman [Thu, 1 Feb 2018 09:33:27 +0000 (11:33 +0200)]
MLK-17470-2: ASoC: ak4497: review get/set_dsdsel
With commit
69201427e188 ("MLK-17470: ASoC: ak4497: automatically select dsdsel
in driver") the "ak4497_priv.nDSDSel" field might not reflect the real dsdsel
option. In order to simplify the approach and avoid future inconsistencies the
field is removed and dsdsel option is read/stored directly to/from codec
registers. Aside of this a missing dsdsel option for 22.5792MHz is introduced
in "ak4497_set_dsdsel" method, now this method being fully compatible with
commit
69201427e188 ("MLK-17470: ASoC: ak4497: automatically select dsdsel in
driver").
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Fancy Fang [Fri, 2 Feb 2018 08:40:24 +0000 (16:40 +0800)]
MLK-17514: drm/imx: dcss: directly bypass
dec400d when no modifier present
When no modifier present, the 'fb->modifier[0]' may contain
undefined value. So it cannot be used to decide whether the
DEC400D should be set to bypass or not in this case.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Sandor Yu [Wed, 31 Jan 2018 09:31:33 +0000 (17:31 +0800)]
MLK-17480: hdp: Change dp_vic to int variable
Change dp_vic to int variable.
sync data type with the return variable of function imx_get_vic_index.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
(cherry picked from commit
bb5bdf30ec7fc61c918e0a956d761e17d79f96ab)
Sandor Yu [Fri, 2 Feb 2018 08:18:52 +0000 (16:18 +0800)]
MLK-17489-4: hdmi arc: Create new imx-arc.c file
Move hdmi arc functions to imx-arc.c from phy configuration file.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Fri, 2 Feb 2018 07:41:14 +0000 (15:41 +0800)]
MLK-17489-3: hdp: use the drm debug log
Use drm debug log function.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Tue, 30 Jan 2018 08:04:58 +0000 (16:04 +0800)]
MLK-17489-2: imx hdp: merge CDN api 1.0.36 code
Merge Cadence HDMI API 1.0.36 code.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Tue, 30 Jan 2018 08:03:55 +0000 (16:03 +0800)]
MLK-17489-1: hdp api: merge CDN api V1.0.36 code
Merge Cadence HDMI API V1.0.36 code.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Fancy Fang [Thu, 1 Feb 2018 15:21:58 +0000 (23:21 +0800)]
MLK-17492 drm/imx:
dec400d: set read config to '0x0' when bypass
dec400d
When the
DEC400D is set to bypass mode from decompressed mode,
the read config should be set to disable compression along with
the control register. Otherwise, the
DEC400D cannot really leave
the decompressed mode. And the value '0x0' is suitable to be set
to read config register in this case.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Dong Aisheng [Fri, 8 Sep 2017 13:48:44 +0000 (21:48 +0800)]
MLK-17491-51 dts: imx7ulp: fixing a terrible coding format issue
Fixing a terrible coding format issue.
Cc: Song Bing <bing.song@nxp.com>
Fixes:
5cb40d13c879 ("MLK-13563 ion: Enable ion driver on imx7ulp")
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Fri, 8 Sep 2017 13:28:05 +0000 (21:28 +0800)]
MLK-17491-50 clk: imx7ulp: remove the duplicated clk-gate-exclusive.o in Makefile
remove the duplicated clk-gate-exclusive.o in Makefile
Fixes:
78ef764871d6 ("MLK-13441-5 ARM: imx: add new clk types")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Fri, 8 Sep 2017 12:44:30 +0000 (20:44 +0800)]
MLK-17491-49 clk: imx7ulp: fix watchdog 2 clock name typo
Fix watchdog 2 clock name typo
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 14:02:03 +0000 (22:02 +0800)]
MLK-17491-48 clk: imx7ulp: fix the wrong periph_bus_sels clocks
According to the clk digram in section 24.6 Core, Platform and System Bus
clocks in reference manual, the correct available periph_bus_sels should be
{ "dummy", "sosc_bus_clk", "mpll", "firc_bus_clk", "rosc", "nic1_bus",
"nic1_div", "spll_bus_clk", }.
And the real tpm/pwm/lpuart parent clock should be IMX7ULP_CLK_SOSC_BUS_CLK
while some others should be IMX7ULP_CLK_FIRC_BUS_CLK, So update dts as well.
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 13:57:30 +0000 (21:57 +0800)]
MLK-17491-47 dts: imx7ulp: correct the periph_slow_sels clock name
According to the clk digram in section 24.6 Core, Platform and System Bus
clocks in reference manual, periph_slow_sels should be better renamed to
periph_bus_sels to avoid confusing.
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 15:12:40 +0000 (23:12 +0800)]
MLK-17491-46 clk: imx7ulp: add missing sosc_bus_clk/firc_bus_clk/spll_bus_clk clocks
Add missing sosc_bus_clk/firc_bus_clk/spll_bus_clk clocks which will be used
by other devices later.
All these clocks use the same divider as ddr_div, so ulp_div_table is used.
Besides that, all these clocks need to be controlled by M4, so
CLK_DIVIDER_READ_ONLY is also specified.
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 15:07:46 +0000 (23:07 +0800)]
MLK-17491-45 clk: imx7ulp: fix nic0_div/nic1_div/nic1_bus clock types
According to reference manual, none of them should specify CLK_SET_RATE_GATE,
So switch them to imx_clk_divider_flags with only CLK_SET_RATE_PARENT kept.
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 13:23:25 +0000 (21:23 +0800)]
MLK-17491-44 clk: imx7ulp: fix sys_sel/hsrun_sys_sel/ddr_sel/nic_sel clock types
According to reference manual, all these mux clocks requires operation
with their parent clocks were enabled previously.
So switch them to imx_clk_mux2 type which has CLK_OPS_PARENT_ENABLE
flag. Also remark some critical clocks in case they're disabled.
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Fri, 8 Sep 2017 05:53:18 +0000 (13:53 +0800)]
MLK-17491-43 clk: imx7ulp: fix ddr_div clock definitions
According RM, ddr_div clock actually is not CLK_DIVIDER_ONE_BASED type,
we need use a clk_div_table to handle its special divider value.
Besides that, due to 0 DDRDIV means output is disabled, so we also need
specify CLK_DIVIDER_ZERO_GATE for it.
Fixes:
aacf0b70af26 ("MLK-13441-6 ARM: imx: add i.mx7ulp clock driver")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 12:31:32 +0000 (20:31 +0800)]
MLK-17491-42 clk: imx7ulp: fix the wrong gpio clocks definition
Current imx_clk_composite used for GPIO clock definition is wrong
as GPIO has no mux support according to reference manual.
Instead, we can only use imx_clk_gate for it.
This patch also fixes some code indent issue.
Fixes: ("
1a86f07ce6a2 MLK-13485-4 clk: imx7ulp: add gpio port control clocks")
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 12:22:13 +0000 (20:22 +0800)]
MLK-17491-41 clk: imx7ulp: do not keep GPIO clocks always on in clks_init_on
Since patch ("gpio-vf610: add getting necessary clocks support"),
GPIO clocks will be handled by its driver.
No need put them in clks_init_on which should be only for system
critical clocks.
Fixes: ("
1a86f07ce6a2 MLK-13485-4 clk: imx7ulp: add gpio port control clocks")
Acked-by: Peter Chen <peter.chen@nxp.com>
Reviewed-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Sat, 13 May 2017 09:25:03 +0000 (17:25 +0800)]
MLK-17491-40 dt-bindings: clock: add imx7ulp clock binding doc
i.MX7ULP Clock functions are under joint control of the System
Clock Generation (SCG) modules, Peripheral Clock Control (PCC)
modules, and Core Mode Controller (CMC)1 blocks
Note IMX7ULP has two clock domains: M4 and A7. This binding doc
is only for A7 clock domain.
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 07:10:50 +0000 (15:10 +0800)]
MLK-17491-39 clk: imx: remove private clk-frac-divider
Kernel already supports fractional divider and we switched to it.
See: drivers/clk/clk-fractional-divider.c
So no need keep our private clk-frac-divider copy now which functions
the same, delete it.
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Wed, 13 Sep 2017 14:46:03 +0000 (22:46 +0800)]
MLK-17491-38 clk: imx: clk-composite: code cleanup and improvement
1) reorder headfile
2) remove unused headfile
3) remove unused macro
4) replace magic number by macro
5) fix code indent issue
6) reorder local variables
7) remove unnessary error message
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 06:47:08 +0000 (14:47 +0800)]
MLK-17491-37 clk: imx: clk-composite: using kernel fractional divider instead of our own
Kernel already supports fractional divider.
See: drivers/clk/clk-fractional-divider.c
After patch: ("clk: fractional-divider: add CLK_FRAC_DIVIDER_ZERO_BASED
flag support"), it can supports ZERO based dividers now which be used by
IMX ULP.
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Sat, 13 May 2017 07:59:15 +0000 (15:59 +0800)]
MLK-17491-36 clk: reparent orphans after critical clocks enabled
The orphan clocks reparent operation should be moved after the critical
clocks enabled, otherwise it may get a chance to disable a newly
registered critical clock which triggers the following warning.
Assuming we have two clocks: A and B, B is the parent of A.
Clock A has flag: CLK_OPS_PARENT_ENABLE
Clock B has flag: CLK_IS_CRITICAL
Step 1:
Clock A is registered, then it becomes orphan.
Step 2:
Clock B is registered. Before clock B reach the critical clock enable
operation, orphan A will find the newly registered parent B and do
reparent operation, then parent B will be finally disabled in
__clk_set_parent_after() due to CLK_OPS_PARENT_ENABLE flag as there's
still no users of B which will then trigger the following warning.
[ 0.000000] WARNING: CPU: 0 PID: 0 at drivers/clk/clk.c:597 clk_core_disable+0xb4/0xe0
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
4.11.0-rc1-00056-gdff1f66-dirty #1373
[ 0.000000] Hardware name: Generic DT based system
[ 0.000000] Backtrace:
[ 0.000000] [<
c010c4bc>] (dump_backtrace) from [<
c010c764>] (show_stack+0x18/0x1c)
[ 0.000000] r6:
600000d3 r5:
00000000 r4:
c0e26358 r3:
00000000
[ 0.000000] [<
c010c74c>] (show_stack) from [<
c040599c>] (dump_stack+0xb4/0xe8)
[ 0.000000] [<
c04058e8>] (dump_stack) from [<
c0125c94>] (__warn+0xd8/0x104)
[ 0.000000] r10:
c0c21cd0 r9:
c048aa78 r8:
00000255 r7:
00000009 r6:
c0c1cd90 r5:
00000000
[ 0.000000] r4:
00000000 r3:
c0e01d34
[ 0.000000] [<
c0125bbc>] (__warn) from [<
c0125d74>] (warn_slowpath_null+0x28/0x30)
[ 0.000000] r9:
00000000 r8:
ef00bf80 r7:
c165ac4c r6:
ef00bf80 r5:
ef00bf80 r4:
ef00bf80
[ 0.000000] [<
c0125d4c>] (warn_slowpath_null) from [<
c048aa78>] (clk_core_disable+0xb4/0xe0)
[ 0.000000] [<
c048a9c4>] (clk_core_disable) from [<
c048be88>] (clk_core_disable_lock+0x20/0x2c)
[ 0.000000] r4:
000000d3 r3:
c0e0af00
[ 0.000000] [<
c048be68>] (clk_core_disable_lock) from [<
c048c224>] (clk_core_disable_unprepare+0x14/0x28)
[ 0.000000] r5:
00000000 r4:
ef00bf80
[ 0.000000] [<
c048c210>] (clk_core_disable_unprepare) from [<
c048c270>] (__clk_set_parent_after+0x38/0x54)
[ 0.000000] r4:
ef00bd80 r3:
000010a0
[ 0.000000] [<
c048c238>] (__clk_set_parent_after) from [<
c048daa8>] (clk_register+0x4d0/0x648)
[ 0.000000] r6:
ef00d500 r5:
ef00bf80 r4:
ef00bd80 r3:
ef00bfd4
[ 0.000000] [<
c048d5d8>] (clk_register) from [<
c048dc30>] (clk_hw_register+0x10/0x1c)
[ 0.000000] r9:
00000000 r8:
00000003 r7:
00000000 r6:
00000824 r5:
00000001 r4:
ef00d500
[ 0.000000] [<
c048dc20>] (clk_hw_register) from [<
c048e698>] (_register_divider+0xcc/0x120)
[ 0.000000] [<
c048e5cc>] (_register_divider) from [<
c048e730>] (clk_register_divider+0x44/0x54)
[ 0.000000] r10:
00000004 r9:
00000003 r8:
00000001 r7:
00000000 r6:
00000003 r5:
00000001
[ 0.000000] r4:
f0810030
[ 0.000000] [<
c048e6ec>] (clk_register_divider) from [<
c0d3ff58>] (imx7ulp_clocks_init+0x558/0xe98)
[ 0.000000] r7:
c0e296f8 r6:
c165c808 r5:
00000000 r4:
c165c808
[ 0.000000] [<
c0d3fa00>] (imx7ulp_clocks_init) from [<
c0d24db0>] (of_clk_init+0x118/0x1e0)
[ 0.000000] r10:
00000001 r9:
c0e01f68 r8:
00000000 r7:
c0e01f60 r6:
ef7f8974 r5:
ef0035c0
[ 0.000000] r4:
00000006
[ 0.000000] [<
c0d24c98>] (of_clk_init) from [<
c0d04a50>] (time_init+0x2c/0x38)
[ 0.000000] r10:
efffed40 r9:
c0d61a48 r8:
c0e78000 r7:
c0e07900 r6:
ffffffff r5:
c0e78000
[ 0.000000] r4:
00000000
[ 0.000000] [<
c0d04a24>] (time_init) from [<
c0d00b8c>] (start_kernel+0x218/0x394)
[ 0.000000] [<
c0d00974>] (start_kernel) from [<
6000807c>] (0x6000807c)
[ 0.000000] r10:
00000000 r9:
410fc075 r8:
6000406a r7:
c0e0c930 r6:
c0d61a44 r5:
c0e07918
[ 0.000000] r4:
c0e78294
[ 0.000000] ---[ end trace
0000000000000000 ]---
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Sat, 13 May 2017 08:03:19 +0000 (16:03 +0800)]
MLK-17491-35 clk: fractional-divider: add CLK_FRAC_DIVIDER_ZERO_BASED flag support
Adding CLK_FRAC_DIVIDER_ZERO_BASED flag to indicate the numerator and
denominator value in register are start from 0.
This can be used to support frac dividers like below:
Divider output clock = Divider input clock x [(frac +1) / (div +1)]
where frac/div in register is:
000b - Divide by 1.
001b - Divide by 2.
010b - Divide by 3.
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Sat, 13 May 2017 07:52:31 +0000 (15:52 +0800)]
MLK-17491-34 clk: clk-divider: add CLK_DIVIDER_ZERO_GATE clk support
For dividers with zero indicating clock is disabled, instead of giving a
warning each time like "clkx: Zero divisor and CLK_DIVIDER_ALLOW_ZERO not
set" in exist code, we'd like to introduce enable/disable function for it.
e.g.
000b - Clock disabled
001b - Divide by 1
010b - Divide by 2
...
Set rate when the clk is disabled will cache the rate request and only
when the clk is enabled will the driver actually program the hardware to
have the requested divider value. Similarly, when the clk is disabled we'll
write a 0 there, but when the clk is enabled we'll restore whatever rate
(divider) was chosen last.
It does mean that recalc rate will be sort of odd, because when the clk is
off it will return 0, and when the clk is on it will return the right rate.
So to make things work, we'll need to return the cached rate in recalc rate
when the clk is off and read the hardware when the clk is on.
NOTE for the default off divider, the recalc rate will still return 0 as
there's still no proper preset rate. Enable such divider will give user
a reminder error message.
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 06:34:36 +0000 (14:34 +0800)]
MLK-17491-33 clk: imx: clk-pfdv2: need wait lock stable for PFD
Add the required wait lock stable for PLL.
Fixes:
78ef764871d6 ("MLK-13441-5 ARM: imx: add new clk types")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 06:30:14 +0000 (14:30 +0800)]
MLK-17491-32 clk: imx: clk-pfdv2: fix the possible sychronization issue
Clk core using different locks for clk_enable/disable and clk_set_rate.
Driver should protect them if accessing the same resource.
Fixes:
78ef764871d6 ("MLK-13441-5 ARM: imx: add new clk types")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 12:08:42 +0000 (20:08 +0800)]
MLK-17491-31 clk: imx: clk-pfdv2: add error checking for invalid pfd index
Give a warning when get an invalid pfd index.
Cc: Bai Ping <ping.bai@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 06:24:39 +0000 (14:24 +0800)]
MLK-17491-30 clk: imx: clk-pfdv2: improve the code readability
Remove the complicated and unreadable arithmetic calculation code.
Fixes:
78ef764871d6 ("MLK-13441-5 ARM: imx: add new clk types")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 06:15:11 +0000 (14:15 +0800)]
MLK-17491-29 clk: imx: clk-pfdv2: fix the wrong pfd rate exported
There's no meaning to fake a wrong rate to recalc.
Instread, simply return 0 for this case.
Before:
spll_pre_sel 1 1
24000000 0 0
spll_pre_div 1 1
24000000 0 0
spll 2 2
531648000 0 0
spll_pfd3 0 0
979729408 0 0
spll_pfd2 0 0
979729408 0 0
spll_pfd1 0 0
979729408 0 0
spll_pfd0 1 1
416072347 0 0
After:
spll_pre_sel 1 1
24000000 0 0
spll_pre_div 1 1
24000000 0 0
spll 2 2
531648000 0 0
spll_pfd3 0 0 0 0 0
spll_pfd2 0 0 0 0 0
spll_pfd1 0 0 0 0 0
spll_pfd0 1 1
416072347 0 0
Fixes:
78ef764871d6 ("MLK-13441-5 ARM: imx: add new clk types")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 7 Sep 2017 05:57:49 +0000 (13:57 +0800)]
MLK-17491-28 clk: imx: clk-pfdv2: add missing CLK_SET_RATE_GATE flag
According to reference manual, pfdv2 can't set rate without gating clock.
So we should add CLK_SET_RATE_GATE flag accordingly.
Fixes:
78ef764871d6 ("MLK-13441-5 ARM: imx: add new clk types")
Cc: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>