Commit graph

718537 commits

Author SHA1 Message Date
Li Jun 2a23a6d08b MLK-16298-1 staging: typec: make super speed signal mux select configurable
Instead of fixed pull up super speed mux selection gpio for cc1, use
GPIO_ACTIVE_HIGH/LOW to map the CC1/CC2 orientation via gpiod api, So
for ss-sel-gpios:
GPIO_ACTIVE_HIGH: CC1 <--> GPIO high
GPIO_ACTIVE_LOW : CC1 <--> GPIO low

Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
2018-10-29 11:10:38 +08:00
Guoniu.Zhou 13bff5f49c MMFMWK-7674: PxP: add YVU420P support
PxP PS engine support YUV420 format, but not YVU420. The difference
between two format is U and V, if we exchange U and V base address,
the PxP driver can also support YVU420 format.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit cbc71da10a)
2018-10-29 11:10:38 +08:00
Liu Ying 869ea1aeac MLK-16290 drm: Add drm_of_component_probe_with_match() helper
A component master may have both OF based and non-OF based components to be
bound with.  This patch adds a helper drm_of_component_probe_with_match()
similar to drm_of_component_probe() so that the new helper may get an
additional provided match pointer(contains match entries for non-OF based
components) to support this case.

Tested-by: Meng Mingming <mingming.meng@nxp.com>
Signed-off-by: Liu Ying <victor.liu@nxp.com>
2018-10-29 11:10:38 +08:00
Liu Ying 13a55ac6d4 MLK-16301-2 gpu: imx: dpu: common: Remove the list in dpu plane group
No one is using the list in the dpu plane group, so let's remove it and
the mutex lock which protects the list.

Signed-off-by: Liu Ying <victor.liu@nxp.com>
2018-10-29 11:10:38 +08:00
Liu Ying b82cd52845 MLK-16301-1 drm/imx: dpu: plane: Take down dpu plane from the dpu plane grp list
No one is using the list in the dpu plane group to access dpu plane, so let's
take down dpu plane from the list so that we may remove the list entirely
from where it is defined.

Signed-off-by: Liu Ying <victor.liu@nxp.com>
2018-10-29 11:10:38 +08:00
Han Xu 8b81574024 MLK-16330: mtd: fsl-quadspi: remove unnecessary variable
Remove the unnecessary tmp array from code

Signed-off-by: Han Xu <han.xu@nxp.com>
2018-10-29 11:10:38 +08:00
Adriana Reus 8295f8e193 MLK-16281-2: clk-imx8qm: Fix GPT clock hierarchy
There are five gpt modules on imx8qm (gpt0 .. gpt4).
Of these, gpt2 and gpt4 clock hierarchies are inconsistent with the
rest.
Having the per clocks (gpt_hf_clk and gpt_clk) as children of the
peripheral access clock (ipg_s) and bus sync slave clock (ipg_slv_clk)
ensures that the latter are enabled when the driver enables the gpt_clk
(or hf).
This patch reconciles these two gpt clock trees with the rest.

Before:

 gpt_2_div
    gpt_2_hf_clk
    gpt_2_ipg_s_clk
       gpt_2_ipg_slv_clk
          gpt_2_clk

 gpt_4_div
    gpt_4_hf_clk
    gpt_4_clk
    gpt_4_ipg_s_clk
       gpt_4_ipg_slv_clk

After:

 gpt_2_div
    gpt_2_ipg_s_clk
       gpt_2_ipg_slv_clk
          gpt_2_hf_clk
          gpt_2_clk

 gpt_4_div
    gpt_4_ipg_s_clk
       gpt_4_ipg_slv_clk
          gpt_4_hf_clk
          gpt_4_clk

Signed-off-by: Adriana Reus <adriana.reus@nxp.com>
2018-10-29 11:10:38 +08:00
Adriana Reus 777305f3d2 MLK-16281-1: clk-imx8qm: Remove duplicated gpt clocks
Some gpt clocks are defined twice which results in:

 gpt0_div
    gpt0_clk

and also:

 gpt_0_div
    gpt_0_ipg_s_clk
       gpt_0_ipg_slv_clk
          gpt_0_hf_clk
          gpt_0_clk

The second version is correct as per gpt lpcg cell.
This patch removes the first set of clocks.

Signed-off-by: Adriana Reus <adriana.reus@nxp.com>
2018-10-29 11:10:38 +08:00
Guoniu.Zhou 0d58c7a015 MLK-16276: PxP: Improve code compatibility
g2d code has different parameter setting about stride parameter.
For compatibility with all cases of using PxP, we need add this
improved feature.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 53c8ffffec)
2018-10-29 11:10:38 +08:00
Guoniu.Zhou 286043a046 MLK-16252: PxP: fix video shift issue
If pxp use crop x/y valuse as the upper left coordinate in
out buffer, pxp driver only need to write out buffer base
address to pxp out_buf register. If pxp driver use zero as
ps_ulc register value, pxp out_buf register need an offset
added with out buffer base address.

Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Reviewed-by: Robby Cai <robby.cai@nxp.com>
Reviewed-by: Fancy Fang <chen.fang@nxp.com>
(cherry picked from commit 14c988f1eb)
2018-10-29 11:10:38 +08:00
Viorel Suman 71da7734b0 MLK-16275: ARM64: dts: imx8qxp-mek: Enable AMIX
Enable AMIX support and fix the clock tree rates for
IMX8QXP_AUD_MCLKOUT0.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang ff29eef539 MLK-16300 thermal: imx: avoid error message of get_temp when thermal zone is off
For i.MX system controller thermal, when some of the thermal
zones are powered off, the get temp will fail, and thermal driver
will return CPU thermal zone's temp instead. But current driver
will return A53 cluster for all cases, and A53 cluster may be
also off when booting up A72 cluster only, so below error message
will come out:

[  475.606431] read temp sensor:0 failed
[  475.610107] thermal thermal_zone0: failed to read out thermal zone (-22)

To avoid this error, for the case of thermal zones power off,
thermal driver can return current thread's CPU cluster temperature.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang 5528107317 MLK-16286-2 defconfig: enable cpu-freq schedutil governor
Enable cpu-freq schedutil governor by default.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang 606479b221 MLK-16286-1 arm64: dts: freescale: imx8qm: add cpu opp table
Add i.MX8QM CPU OPP table to support cpu-freq.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
2018-10-29 11:10:38 +08:00
Haibo Chen bcd3230593 MLK-16274 ARM64: dts: correct the pad setting of USDHC
i.MX8QM/i.MX8QX USDHC pads are dual voltage pads, and the
defiintation of each bit are different. Only bit[0] define
the drive strength slection, bit[4:1] are reserved.
  0 means high drive strength
  1 means low drive strength

This patch correct these pad setting, setting the usdhc
100mhz/200mhz pin at high drive strength.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2018-10-29 11:10:38 +08:00
Haibo Chen bcb96c8933 MLK-16155-13 mmc: sdhci-esdhc-imx: add DCMD support for CMDQ
Currently, USDHC do not generate transfer complete interrupt
when send a non-data-command with R1b response. But if want
to support DCMD in CMDQ, need to change this, the DCMD IC
logic require the USDHC to enable this function, otherwise
DCMD will never get a CC(command complete) interrupt.

This patch set ESDHC_VEND_SPEC2_EN_BUSY_IRQ and add DCMD support.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
2018-10-29 11:10:38 +08:00
Haibo Chen af5d0058d7 MLK-16155-12 mmc: sdhci-esdhc-imx: add CMDQ support
Add CMDQ support for imx8qm/imx8qxp.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
2018-10-29 11:10:38 +08:00
Haibo Chen a913b27fa7 MLK-16155-11 mmc: sdhci: correct the maximum timeout when enable CMDQ
Priority use the callback set_timeout() to set the maximum timeout
if the host has.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
2018-10-29 11:10:38 +08:00
Venkat Gopalakrishnan e1492c0794 mmc: cqhci: support for command queue enabled host
This patch adds CMDQ support for command-queue compatible
hosts.

Command queue is added in eMMC-5.1 specification. This
enables the controller to process upto 32 requests at
a time.

Adrian Hunter contributed renaming to cqhci, recovery, suspend
and resume, cqhci_off, cqhci_wait_for_idle, and external timeout
handling.

Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Signed-off-by: Konstantin Dorfman <kdorfman@codeaurora.org>
Signed-off-by: Venkat Gopalakrishnan <venkatg@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit a4080225f5)
2018-10-29 11:10:38 +08:00
Adrian Hunter 05ee738b3a mmc: block: Add CQE support
Add CQE support to the block driver, including:
    - optionally using DCMD for flush requests
    - "manually" issuing discard requests
    - issuing read / write requests to the CQE
    - supporting block-layer timeouts
    - handling recovery
    - supporting re-tuning

CQE offers 25% - 50% better random multi-threaded I/O.  There is a slight
(e.g. 2%) drop in sequential read speed but no observable change to sequential
write.

CQE automatically sends the commands to complete requests.  However it only
supports reads / writes and so-called "direct commands" (DCMD).  Furthermore
DCMD is limited to one command at a time, but discards require 3 commands.
That makes issuing discards through CQE very awkward, but some CQE's don't
support DCMD anyway.  So for discards, the existing non-CQE approach is
taken, where the mmc core code issues the 3 commands one at a time i.e.
mmc_erase(). Where DCMD is used, is for issuing flushes.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 1e8e55b670)
2018-10-29 11:10:38 +08:00
Adrian Hunter beb09f35e5 mmc: block: Add blk-mq support
Define and use a blk-mq queue. Discards and flushes are processed
synchronously, but reads and writes asynchronously. In order to support
slow DMA unmapping, DMA unmapping is not done until after the next request
is started. That means the request is not completed until then. If there is
no next request then the completion is done by queued work.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 81196976ed)
2018-10-29 11:10:38 +08:00
Adrian Hunter 5608e31e6e mmc: core: Add parameter use_blk_mq
Until mmc has blk-mq support fully implemented and tested, add a parameter
use_blk_mq, set to true if config option MMC_MQ_DEFAULT is selected, which
it is by default.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit c3d53d0da6)
2018-10-29 11:10:38 +08:00
Adrian Hunter 2dd8c48ca1 mmc: core: Make mmc_pre_req() and mmc_post_req() available
Make mmc_pre_req() and mmc_post_req() available to the card drivers. Later
patches will make use of this.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit afab1bb8b4)
2018-10-29 11:10:38 +08:00
Adrian Hunter 6ba28d0de7 mmc: block: Simplify cleaning up the queue
Use blk_cleanup_queue() to shutdown the queue when the driver is removed,
and instead get an extra reference to the queue to prevent the queue being
freed before the final mmc_blk_put().

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
(cherry picked from commit 41e3efd07d)
2018-10-29 11:10:38 +08:00
Adrian Hunter 0e90b21694 mmc: core: Export a few functions needed for blkmq support
The following functions are needed by the mmc block device driver, once it
converts to blkmq, therefore let's export them.

mmc_start_bkops()
mmc_start_request()
mmc_retune_hold_now()
mmc_retune_release()

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit cb39f61e9b)
2018-10-29 11:10:38 +08:00
Adrian Hunter 4bc10ed1f6 mmc: block: Factor out mmc_setup_queue()
Factor out some common code that will also be used with blk-mq.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit c8b5fd031a)
2018-10-29 11:10:38 +08:00
Adrian Hunter bada58a654 mmc: core: Introduce host claiming by context
Currently the host can be claimed by a task.  Change this so that the host
can be claimed by a context that may or may not be a task.  This provides
for the host to be claimed by a block driver queue to support blk-mq, while
maintaining compatibility with the existing use of mmc_claim_host().

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 6c0cedd1ef)

Adjust for small imx changes in debugfs

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
2018-10-29 11:10:38 +08:00
Adrian Hunter b59463488e mmc: block: Prepare CQE data
Enhance mmc_blk_data_prep() to support CQE requests. That means adding
some things that for non-CQE requests would be encoded into the command
arguments - such as the block address, reliable-write flag, and data tag
flag. Also the request tag is needed to provide the command queue task id,
and a comment is added to explain the future possibility of defining a
priority.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 93482b3d70)
2018-10-29 11:10:38 +08:00
Adrian Hunter e329371ee1 mmc: block: Use local variables in mmc_blk_data_prep()
Use local variables in mmc_blk_data_prep() in preparation for adding CQE
support which doesn't use the output variables.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit d3377c012f)
2018-10-29 11:10:38 +08:00
Adrian Hunter 279d3b0fc6 mmc: mmc: Enable CQE's
Enable or disable CQE when a card is added or removed respectively.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit f690f4409d)
2018-10-29 11:10:38 +08:00
Adrian Hunter a8a85f4213 mmc: mmc: Enable Command Queuing
Enable the Command Queue if the host controller supports a command queue
engine. It is not compatible with Packed Commands, so make a note of that in the
comment.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 98d4f7809d)
2018-10-29 11:10:38 +08:00
Adrian Hunter 3cb291bb84 mmc: core: Add support for handling CQE requests
Add core support for handling CQE requests, including starting, completing
and recovering.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit 72a5af554d)
2018-10-29 11:10:38 +08:00
Li Jun 04cabfd329 MLK-16013-44 staging: typec: tcpm: set data role after src detach
As the default data role is device mode if the port is not host,
so set the port data role to be device mode after src detach, this
is to fix the issue of port data role still kept to be host while
the port is open.

Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
2018-10-29 11:10:38 +08:00
Li Jun b25bbcfac5 MLK-16013-43 staging: typec: tcpci: add extcon for data role switch
Use extcon device for dual role switch on typec port.

Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
2018-10-29 11:10:38 +08:00
Li Jun 6489e4373b MLK-16013-42 ARM64: imx8mq-evk: enable typec port to be otg
Add extcon for typec port(USB0) for support dual roles.

Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
2018-10-29 11:10:38 +08:00
Robin Gong 32318396f2 MLK-16283 regulator: pfuze100: add 500us wait time for switch enable
add 500us enable_time for switch to be stable while turned on.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
2018-10-29 11:10:38 +08:00
Viorel Suman c0c3ec31a9 MLK-16275-2: ARM64: dts: imx8qm/qxp: Sync ESAI0 and AMIX SAIs rates
The ESAI0 and AMIX SAIs rates need to be the same for the
common and master clocks in the clock tree given the existing
clock rates store/restore functionality and the asynchronous
nature of the drivers "probe" method invocation.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2018-10-29 11:10:38 +08:00
Viorel Suman 0c3c00f0aa MLK-16275-1: ASoC: fsl: amix: fix rates constraints
AMIX SAIs frequency was doubled in order to
support the [98k rate X 8 channels X 32 bit width].
As consequence the criteria to enforce the rates
constrainsts needs to be changed accordingly.

Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
2018-10-29 11:10:38 +08:00
Bai Ping cdaf92d431 MLK-16266-02 ARM: imx: Enhance the code to support new TO for imx6qp
Previous code don't take care about the i.MX6QP revision update of
new TO. So improve the code to include future TO support for i.MX6QP.

Signed-off-by: Bai Ping <ping.bai@nxp.com>
2018-10-29 11:10:38 +08:00
Bai Ping 1763bad8b2 MLK-16266-01 ARM: imx: improve the soc revision calculation flow
On our i.MX6 SOC, the DIGPROG register is used for represent the
SOC ID and silicon revision. The revision has two part: MAJOR and
MINOR. each is represented in 8 bits in the register.

  bits [15:8]: reflect the MAJOR part of the revision;
  bits [7:0]: reflect the MINOR part of the revision;

In our linux kernel, the soc revision is represented in 8 bits. MAJOR
part and MINOR each occupy 4 bits.

previous method does NOT take care about the MAJOR part in DIGPROG register.
So reformat the revision read from the HW to compatible the revision format
used in kernel.

Signed-off-by: Bai Ping <ping.bai@nxp.com>
2018-10-29 11:10:38 +08:00
Fancy Fang 0b4f4f0420 MLK-16255-5 video: fbdev: dcss: init default video layer buffer to black
For video layer, the black pixel value is not 0x0,
but (Y: 0x0, U: 128, V: 128). So init the video
layer frame buffer contents to the black pixel
value by default.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2018-10-29 11:10:38 +08:00
Fancy Fang b4e9fd9671 MLK-16255-3 video: fbdev: dcss: add alignment handling for DPR
According to the DCSS spec, the DPR has alignment
limitations for the input source image on both 'x'
and 'y' directions of Luma and Chroma planes. The
DPR has different alignment requirements for
different bpp, tile type, rtram buffer lines and
etc.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2018-10-29 11:10:38 +08:00
Fancy Fang 39071af54f MLK-16255-2 video: fbdev: dcss: use 'db' of ctxld to config DTG
DTG is a standard double buffer module which has
shadow registers. So use double buffer to config
its registers via Context Loader.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2018-10-29 11:10:38 +08:00
Fancy Fang beddccb1db MLK-16255-1 video: fbdev: dcss: add 'db' support for ctxld
Add double buffer Context Loader function support in
DCSS, since some of the submodules have shadow reigsters
which are more suitable to use double buffer context
loader to load the reigster values for them, and double
buffer loadding is earlier than single buffer loading.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang d9a5bdfce0 MLK-16165-2 cpufreq: imx8mq: remove non-necessary opp table initialization
For i.MX8MQ, suspend freq can use policy->max after cpu freq
table is validated, so no need to get OPP number and MAX
frequency for suspend freq now, also add necessary resource free
when probe failed.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang 4cd2fd537c MLK-16165-1 cpufreq: imx8: remove non-necessary opp table initialization
For i.MX8QM/8QXP, suspend freq can use policy->max after cpu
freq table is validated, so no need to get OPP number and MAX
frequency for suspend freq now, also add necessary resource free
when probe failed.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang 5999a37717 MLK-16244-2 cpufreq: imx8: add SIP cpu-freq support
Add SIP cpu-freq support, the CPU hardware frequency
scale will be performed by ARM Trusted Firmware,
and add cpu-freq suspend support, MAX frequency will
be used during suspend.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2018-10-29 11:10:38 +08:00
Anson Huang 8319b692cb MLK-16244-1 arm64: dts: freescale: imx8qxp: add cpu-freq set-point
Add i.MX8QXP cpu-freq setpoints, currently only
1.2GHz and 1GHz are supported.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
2018-10-29 11:10:38 +08:00
Shenwei Wang da5c8adfe1 MLK-16262: Input: snvs_pwrkey - move devm_request_irq to the end of probe function
A pending interrupt may cause a kernel panic at system
startup. It is because the necessary data have not been
initialized completely before the interrupt handler is
called.

[    1.141547] Unable to handle kernel NULL pointer dereference at virtual address 00000048
[    1.149642] pgd = ffff000009275000
[    1.153048] [00000048] *pgd=00000000ffffe003[    1.157148] , *pud=00000000ffffd003
, *pmd=0000000000000000[    1.162660]
[    1.164164] Internal error: Oops: 96000004 [#1] PREEMPT SMP
[    1.169740] Modules linked in:
[    1.172818] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.11-03067-g40eb128-dirty #112
[    1.180738] Hardware name: Freescale i.MX8MQ EVK (DT)
[    1.185794] task: ffff8000ba0e0000 task.stack: ffff8000ba0e8000
[    1.191725] PC is at imx_snvs_pwrkey_interrupt+0x14/0x70
[    1.197046] LR is at __handle_irq_event_percpu+0x9c/0x128
[    1.202450] pc : [<ffff000008849524>] lr : [<ffff000008101d4c>] pstate: 000001c5
[    1.209848] sp : ffff8000bff79ed0
[    1.213166] x29: ffff8000bff79ed0 x28: ffff8000ba0e8000
[    1.218514] x27: 0000000000000001 x26: ffff000008e582b8
[    1.223862] x25: ffff000009113eaf x24: ffff8000ba480200
[    1.229210] x23: 0000000000000021 x22: ffff8000bff79f8c
[    1.234557] x21: 0000000000000000 x20: ffff8000ba480200
[    1.239906] x19: 0000000000000000 x18: 0000000000000000
[    1.245253] x17: 0000000000000000 x16: 0000000000000000
[    1.250600] x15: 0000000000000000 x14: 0000000000000000
[    1.255947] x13: 0000000000000000 x12: 0000000000000000
[    1.261293] x11: 0000000000000040 x10: ffff8000b8000028
[    1.266642] x9 : ffff8000b8000130 x8 : 0000000000000000
[    1.271989] x7 : ffff8000ba480200 x6 : ffff8000ba480200
[    1.277336] x5 : ffff8000b8000000 x4 : 00008000b6eca000
[    1.282684] x3 : 0000000000000000 x2 : ffff000008849510
[    1.288030] x1 : 0000000000000000 x0 : 0000000000000021
[    1.293378]
[    1.294875] Process swapper/0 (pid: 1, stack limit = 0xffff8000ba0e8020)
[    1.301581] Stack: (0xffff8000bff79ed0 to 0xffff8000ba0ec000)
[    1.307330] Call trace:
[    1.309782] Exception stack(0xffff8000bff79d00 to 0xffff8000bff79e30)
[    1.316229] 9d00: 0000000000000000 0001000000000000 ffff8000bff79ed0 ffff000008849524
[    1.324065] 9d20: ffff8000bff79d40 ffff0000080e0830 ffff8000bffaa980 0000000000000000
[    1.331901] 9d40: ffff8000bff79d60 ffff0000080e0898 ffff8000bff79d70 ffff0000080f83d8
[    1.339736] 9d60: 0000000000554179 ffff0000080e097c ffff8000bff79da0 ffff0000080e7ff0
[    1.347572] 9d80: ffff8000ba0e0000 0000000000554179 ffff8000bff79dc0 ffff0000080eb20c
[    1.355408] 9da0: 0000000000000021 0000000000000000 ffff000008849510 0000000000000000
[    1.363243] 9dc0: 00008000b6eca000 ffff8000b8000000 ffff8000ba480200 ffff8000ba480200
[    1.371079] 9de0: 0000000000000000 ffff8000b8000130 ffff8000b8000028 0000000000000040
[    1.378914] 9e00: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[    1.386748] 9e20: 0000000000000000 0000000000000000
[    1.391633] [<ffff000008849524>] imx_snvs_pwrkey_interrupt+0x14/0x70
[    1.397994] [<ffff000008101d4c>] __handle_irq_event_percpu+0x9c/0x128
[    1.404440] [<ffff000008101df4>] handle_irq_event_percpu+0x1c/0x58
[    1.410626] [<ffff000008101e78>] handle_irq_event+0x48/0x78
[    1.416206] [<ffff0000081057c0>] handle_fasteoi_irq+0xb8/0x1b0
[    1.422045] [<ffff000008100e4c>] generic_handle_irq+0x24/0x38
[    1.427797] [<ffff0000081014b4>] __handle_domain_irq+0x5c/0xb8
[    1.433637] [<ffff00000808163c>] gic_handle_irq+0xbc/0x168
[    1.439127] Exception stack(0xffff8000ba0eb9e0 to 0xffff8000ba0ebb10)
[    1.445574] b9e0: ffff8000ba48029c 0000000000000040 0000000000000005 0000000000000000
[    1.453409] ba00: 0000000000000004 000000000000000f ffff8000ba480220 0000000000000000
[    1.461244] ba20: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[    1.469080] ba40: 0000000000000000 0000000000000000 0000000000000000 0000000000000000
[    1.476915] ba60: 0000000000000000 0000000000000000 0000000000000000 ffff8000ba837f00
[    1.484751] ba80: ffff8000ba480200 0000000000000021 ffff8000ba48029c ffff8000ba480268
[    1.492586] baa0: 0000000000000000 0000000000000040 ffff8000ba480220 ffff8000ba480220
[    1.500422] bac0: 0000000000000000 ffff8000ba0ebb10 ffff000008103cb8 ffff8000ba0ebb10
[    1.508258] bae0: ffff000008b2b868 0000000040000045 ffff8000ba837f00 ffff8000ba480200
[    1.516092] bb00: ffffffffffffffff ffff000008103e18
[    1.520975] [<ffff0000080827b0>] el1_irq+0xb0/0x124
[    1.525863] [<ffff000008b2b868>] _raw_spin_unlock_irqrestore+0x10/0x48
[    1.532397] [<ffff000008104124>] request_threaded_irq+0xec/0x1c0
[    1.538410] [<ffff00000810689c>] devm_request_threaded_irq+0x74/0xe0
[    1.544770] [<ffff0000088497a8>] imx_snvs_pwrkey_probe+0x178/0x2a8
[    1.550958] [<ffff0000085ccaa0>] platform_drv_probe+0x58/0xc0
[    1.556713] [<ffff0000085caf54>] driver_probe_device+0x1fc/0x2a8
[    1.562727] [<ffff0000085cb0ac>] __driver_attach+0xac/0xb0
[    1.568220] [<ffff0000085c8fa4>] bus_for_each_dev+0x64/0xa0
[    1.573800] [<ffff0000085ca740>] driver_attach+0x20/0x28
[    1.579119] [<ffff0000085ca290>] bus_add_driver+0x110/0x230
[    1.584698] [<ffff0000085cb880>] driver_register+0x60/0xf8
[    1.590190] [<ffff0000085cc9d8>] __platform_driver_register+0x40/0x48
[    1.596640] [<ffff000009027a24>] imx_snvs_pwrkey_driver_init+0x18/0x20
[    1.603174] [<ffff0000080830b8>] do_one_initcall+0x38/0x128
[    1.608754] [<ffff000008fe0cec>] kernel_init_freeable+0x1a4/0x248
[    1.614853] [<ffff000008b26230>] kernel_init+0x10/0x100
[    1.620084] [<ffff000008082e80>] ret_from_fork+0x10/0x50
[    1.625403] Code: 910003fd f9000bf3 f9405833 52800001 (f9402660)
[    1.631518] ---[ end trace 7bb9749c5dc6e8f9 ]---
[    1.636148] Kernel panic - not syncing: Fatal exception in interrupt

Review-by: Frank Li <frank.li@nxp.com>
Signed-off-by: Shenwei Wang <shenwei.wang@nxp.com>
2018-10-29 11:10:38 +08:00
Xianzhong 6a59c1a365 MGS-3224: arm64: dts: fsl-imx8qxp-mek: enable gpu
this patch enable gpu feature for i.mx8qxp mek board

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
2018-10-29 11:10:38 +08:00