Age | Commit message (Collapse) | Author |
|
Allocate usb otg descriptor and initialize it according to gadget's otg
capabilities, if usb_otg_caps is not set, keep settings as current gadget
drivers. With this 2 new interfaces, gadget can use usb_otg_descriptor
for OTG 1.x, and usb_otg20_descriptor for OTG 2.0 or above, and otg
features can be decided by the combination of usb hardware property
and driver config.
Reviewed-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
After introduce usb otg properties, update ci_otg_is_fsm_mode conditions
to be depending on both usb hardware properties and usb driver config,
also resolve a compile issue in debug.c after the API change.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
Set gadget's otg capabilities according to controller's capability and otg
properties in device tree.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
Check property of usb hardware to get otg version and if SRP, HNP and ADP
are disabled.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
Add otg version, srp, hnp and adp support for usb OTG port, then those OTG
features don't have to be decided by usb gadget drivers.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
According to gadget otg revision to setup buffer, copy usb_otg_descriptor
from config's descriptor if host requests USB_DT_OTG.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
Add usb_otg_caps pointer to usb_gadget structure to indicate its
otg capabilities.
Signed-off-by: Macpaul Lin <macpaul@gmail.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
This patch adds a structure usb_otg_caps to cover all otg related
capabilities of the device, including otg revision, and if hnp/srp/adp
is supported.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
Add USB_OTG_ADP definition for usb_otg_descriptor.bmAttributes.
Signed-off-by: Macpaul Lin <macpaul@gmail.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
Acked-by: Peter Chen <peter.chen@freescale.com>
|
|
OTG 2.0 introduces bcdOTG in otg descriptor to identify the OTG and EH
supplement release number with which the OTG device is compliant, this
patch adds structure usb_otg20_descriptor for OTG 2.0 and above. Then
the bcdOTG should be removed for usb_otg_descriptor in gadget drivers.
Signed-off-by: Macpaul Lin <macpaul@gmail.com>
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
WL_HOST_WAKEUP feature causes system suspend/resume break, so revert.
This reverts commit ce9e893341c6196a5c31b3265525218c537d3e3e.
|
|
WL_HOST_WAKEUP feature causes system suspend/resume break, so revert.
This reverts commit 2ce8a1ad56f76a072656c0d244c3b1f72603fac0.
|
|
performance"
WL_HOST_WAKEUP feature causes system suspend/resume break, so revert.
This reverts commit d9edd6e61897e4253fcbf0c7d2680933583e13c8.
|
|
Support ±2g/±4g/±8g dynamically selection for motion sensor fxls8471.
Set the sensor mode to standby mode before changing the scale range
with the command "echo 0 > enable". The scale range can be changed
with the command "echo 0/1/2 > range".
Signed-off-by: Gao Pan <b54642@freescale.com>
|
|
Support ±2g/±4g/±8g dynamically selection for motion sensor fxos8700.
Set the sensor mode to standby mode before changing the scale range
with the command "echo 0 > enable". The scale range can be changed
with the command "echo 0/1/2 > range".
Signed-off-by: Gao Pan <b54642@freescale.com>
|
|
hdmi will hang when cable connect from DVI monitor to
some specific hdmi monitor.
The issue can duplicate as followed steps:
1. boot up device, hdmi display as second display.
2. unblank hdmi display, then connect cable to DVI monitor.
3. connect cable to HDMI monitor.
After the cable connect changed, hdmi work mode will change
from DVI to hdmi mode, but video mode is not changed.
hdmi overflow interrupter can't been clean in such process.
Check hdmi work mode, and reconfigure fb and hdmi if work mode
change.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Read the register only when the adc register address is 4 byte aligned.
Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
|
|
If the otg work had been queued, current code will disable irq again
but the otg work will be done only once, so the irq enable and disable
cannot be balanced, this patch is to fix this.
Signed-off-by: Li Jun <b47624@freescale.com>
|
|
Add CAAM jr irqs to the gpc mf-mix-wakeup-irq mask to allow the Job Rings to
register as wakeup devices. Fixed both 6UL and 7D configurations to cover all
available Job Rings.
Signed-off-by: Dan Douglass <dan.douglass@freescale.com>
|
|
This bit is used to keep the ARM Platform memory clocks enabled if
an interrupt is pending when entering low power mode. This bit should
always bet set when the CCM_CLPCR_LPM bits are set to 01(WAIT Mode) or
10 (STOP mode) without power gating.
Signed-off-by: Bai Ping <b51503@freescale.com>
|
|
Add CAAM snvs/secvio device tree nodes to enable the driver..
Signed-off-by: Ulises Cardenas <Ulises.Cardenas@freescale.com>
Signed-off-by: Dan Douglass <dan.douglass@freescale.com>
|
|
HNP polling uses a kernel stack variable when sending the HNP polling
control message, which causes dma-debug to complain, fix it by adding
host_req_flag to otg_fsm struct, so it's done by kmallocing.
Signed-off-by: Li Jun <jun.li@freescale.com>
|
|
iMX7D DDR3 ARM2 board LCDIF pin confilict with CSI,
so disable LCDIF in csi dtb.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Sometimes ov5640 can not working on iMX7D ARM2 board,
ov5640 signal is not accepted by imx7d mipi csi phy.
Remove power down function and keep ov5640 power up after
driver probe, the issue is fixed.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Add CONFIG_MXC_CAMERA_OV5647_MIPI to imx_v7_defconfig
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Add ov5647 mipi csi driver to imx7d sdb file.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
ov5647 mipi driver.
Support VGA, 1280x720p30, 1920x1080p30 and 2952x1944p15 mode.
Only support Raw data output.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Add raw8 data support.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Add raw data format support when csi capture working
in mipi input mode.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Add RGB32 support to pxp v4l2 output.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
samples should not live forever, set the max limit of
the tty tests.
Signed-off-by: Richard Zhu <richard.zhu@freescale.com>
|
|
Keep the mu rpmsg int always enable.
- rpmsg transmissions are async, and drived by mu interactions
between the amp cores.
- the schedule delay is not real time mechanism, the mu
interactions maybe blocked by the previous rpmsg int disable
when there are very quick intercations between the amp cores.
Solution:
Keep mu rpmsg int always enable, since it is just to notify
rpmsg master that there is buffer to read, and can be re-entry
multi-times.
Signed-off-by: Richard Zhu <richard.zhu@freescale.com>
|
|
If the property "fsl,dma-buffer-size" is present, using the specified buffer size.
Otherwise, using the default audio buffer size.
Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
|
|
Populate i.mx6ul device tree with third Job Ring configuration.
Signed-off-by: Dan Douglass <dan.douglass@freescale.com>
|
|
As per to the design team, use the software poweroff when critical
trip temp reached. No need to set the panic alam register bits
when using the software poweroff as the critical trip action.
Signed-off-by: Bai Ping <b51503@freescale.com>
|
|
When temperature >= the 'critical_trip' temperature, the common
framework code will call 'orderly_poweroff' function to power off
the system. During the power off procedure the thermal framework
will go on polling the temp, this will lead to recall the
'orderly_poweroff' again. In the first poweroff flow, some system
resource has been freezed, then if the secondary 'orderly_poweroff'
frees the resource again, it will lead to kernel dump.
Signed-off-by: Bai Ping <b51503@freescale.com>
|
|
Integrate 5.0.11.p7 gpu kernel driver for 3.14 kernel
Source git: gpu-viv5.git
Source branch: origin/fsl_5.0.11.p7
Source commit: 683cfd653fb350b6d6589adffd7b20a41283bc9c
Signed-off-by: Xianzhong <b07117@freescale.com>
|
|
When there is only one core active, either no SMP config, or adding
"nosmp" or "maxcpus=1", there will be only one core available, no
need to control secondary core's power and SMP enable, so add
CONFIG_SMP check and online cpu number check to make sure low power
idle is working for single core environment.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
When SMP is deselected, ARM_ARCH_TIMER is still enabled while
broadcast time is disabled, so when system enters WAIT mode,
ARM platform's clock will be disabled, then system tick timer
will stop and cause system stay at WAIT mode and timer event
will NOT come as expected.
To fix this issue, we do runtime check in our timer driver,
if SMP is NOT enabled, ARM_ARCH_TIMER will be disabled and
using GPT timer always.
Signed-off-by: Anson Huang <b20788@freescale.com>
|
|
Update the TEMPMON node properties on i.MX6UL.
Signed-off-by: Bai Ping <b51503@freescale.com>
|
|
HDMI driver allocate 512 bytes memory to save edid data.
so mxc edid MAX support 3 extension block.
Skip extension edid block read if extension block num more than 3.
Signed-off-by: Sandor Yu <R01008@freescale.com>
|
|
Using runtime pm framework to control the mipi
phy on/off dynamically.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
|
|
Since SPBA node which is the parent of uart was added in commit
e0c624ac68d6749bf760da6e6c05e5dd2165b20c, uart node path should be corrected,
otherwise console can't work after system resume back with mega/fast off.
Signed-off-by: Robin Gong <b38343@freescale.com>
|
|
Using special pcm config for IMX series.
The dafault pcm config is using 512K DMA Buffer which will cause
allocating from OCRAM failed. The special pcm config will using 64K
DMA buffer.
Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
|
|
By doing this, we can allocate memory from iram when using i.MX7D SoC.
Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
|
|
By doing this, we can allow SDMA driver to allocate its memory from
iram when using i.MX6UL SoC.
Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
|
|
There are several benefits for doing like this:
- hc_driver can be customized for each hcd
- Other hcd hc_driver's initialization will not affect current one.
We run out NULL pointer dereference problem when one hcd is started
by module_init, and the other is started by otg thread at SMP platform.
The reason for this problem is ehci_init_driver will do memory copy
for current uniform hc_driver, and this memory copy will do memset (as 0)
first, so when the first hcd is running usb_add_hcd, and the second
hcd may clear the uniform hc_driver's space (at ehci_init_driver),
then the first hcd will meet NULL pointer at the same time.
See below two logs:
LOG_1:
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: doesn't support gadget
Unable to handle kernel NULL pointer dereference at virtual address 00000014
pgd = 80004000
[00000014] *pgd=00000000
Internal error: Oops: 805 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 108 Comm: kworker/u8:2 Not tainted 3.14.38-222193-g24b2734-dirty #25
Workqueue: ci_otg ci_otg_work
task: d839ec00 ti: d8400000 task.ti: d8400000
PC is at ehci_run+0x4c/0x284
LR is at _raw_spin_unlock_irqrestore+0x28/0x54
pc : [<8041f9a0>] lr : [<8070ea84>] psr: 60000113
sp : d8401e30 ip : 00000000 fp : d8004400
r10: 00000001 r9 : 00000001 r8 : 00000000
r7 : 00000000 r6 : d8419940 r5 : 80dd24c0 r4 : d8419800
r3 : 8001d060 r2 : 00000000 r1 : 00000001 r0 : 00000000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 1000404a DAC: 00000015
Process kworker/u8:2 (pid: 108, stack limit = 0xd8400238)
Stack: (0xd8401e30 to 0xd8402000)
1e20: d87523c0 d8401e48 66667562 d8419800
1e40: 00000000 00000000 d8419800 00000000 00000000 00000000 d84198b0 8040fcdc
1e60: 00000000 80dd320c d8477610 d8419c00 d803d010 d8419800 00000000 00000000
1e80: d8004400 00000000 d8400008 80431494 80431374 d803d100 d803d010 d803d1ac
1ea0: 00000000 80432428 804323d4 d803d100 00000001 80435eb8 80e0d0bc d803d100
1ec0: 00000006 80436458 00000000 d803d100 80e92ec8 80436f44 d803d010 d803d100
1ee0: d83fde00 8043292c d8752710 d803d1f4 d803d010 8042ddfc 8042ddb8 d83f3b00
1f00: d803d1f4 80042b60 00000000 00000003 00000001 00000001 80054598 d83f3b00
1f20: d8004400 d83f3b18 d8004414 d8400000 80e3957b 00000089 d8004400 80043814
1f40: d839ec00 00000000 d83fcd80 d83f3b00 800436e4 00000000 00000000 00000000
1f60: 00000000 80048f34 00000000 00000000 00000000 d83f3b00 00000000 00000000
1f80: d8401f80 d8401f80 00000000 00000000 d8401f90 d8401f90 d8401fac d83fcd80
1fa0: 80048e68 00000000 00000000 8000e538 00000000 00000000 00000000 00000000
1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[<8041f9a0>] (ehci_run) from [<8040fcdc>] (usb_add_hcd+0x248/0x6e8)
[<8040fcdc>] (usb_add_hcd) from [<80431494>] (host_start+0x120/0x2e4)
[<80431494>] (host_start) from [<80432428>] (ci_otg_start_host+0x54/0xbc)
[<80432428>] (ci_otg_start_host) from [<80435eb8>] (otg_set_protocol+0xa4/0xd0)
[<80435eb8>] (otg_set_protocol) from [<80436458>] (otg_set_state+0x574/0xc58)
[<80436458>] (otg_set_state) from [<80436f44>] (otg_statemachine+0x408/0x46c)
[<80436f44>] (otg_statemachine) from [<8043292c>] (ci_otg_fsm_work+0x3c/0x190)
[<8043292c>] (ci_otg_fsm_work) from [<8042ddfc>] (ci_otg_work+0x44/0x1c4)
[<8042ddfc>] (ci_otg_work) from [<80042b60>] (process_one_work+0xf4/0x35c)
[<80042b60>] (process_one_work) from [<80043814>] (worker_thread+0x130/0x3bc)
[<80043814>] (worker_thread) from [<80048f34>] (kthread+0xcc/0xe4)
[<80048f34>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c)
Code: e5953018 e3530000 0a000000 e12fff33 (e5878014)
LOG_2:
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.1: doesn't support gadget
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = 80004000
[00000000] *pgd=00000000
In Online 00:00ternal e Offline rror: Oops: 80000005 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 108 Comm: kworker/u8:2 Not tainted 3.14.38-02007-g24b2734-dirty #127
Workque Online 00:00ue: ci_o Offline tg ci_otg_work
Online 00:00task: d8 Offline 39ec00 ti: d83ea000 task.ti: d83ea000
PC is at 0x0
LR is at usb_add_hcd+0x248/0x6e8
pc : [<00000000>] lr : [<8040f644>] psr: 60000113
sp : d83ebe60 ip : 00000000 fp : d8004400
r10: 00000001 r9 : 00000001 r8 : d85fd4b0
r7 : 00000000 r6 : 00000000 r5 : 00000000 r4 : d85fd400
r3 : 00000000 r2 : d85fd4f4 r1 : 80410178 r0 : d85fd400
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 1000404a DAC: 00000015
Process kworker/u8:2 (pid: 108, stack limit = 0xd83ea238)
Stack: (0xd83ebe60 to 0xd83ec000)
be60: 00000000 80dd920c d8654e10 d85fd800 d803e010 d85fd400 00000000 00000000
be80: d8004400 00000000 d83ea008 80430e34 80430d14 d803e100 d803e010 d803e1ac
bea0: 00000000 80431dc8 80431d74 d803e100 00000001 80435858 80e130bc d803e100
bec0: 00000006 80435df8 00000000 d803e100 80e98ec8 804368e4 d803e010 d803e100
bee0: d86e8100 804322cc d86cf050 d803e1f4 d803e010 8042d79c 8042d758 d83cf900
bf00: d803e1f4 80042b78 00000000 00000003 00000001 00000001 800545e8 d83cf900
bf20: d8004400 d83cf918 d8004414 d83ea000 80e3f57b 00000089 d8004400 8004382c
bf40: d839ec00 00000000 d8393780 d83cf900 800436fc 00000000 00000000 00000000
bf60: 00000000 80048f50 80e019f4 00000000 0000264c d83cf900 00000000 00000000
bf80: d83ebf80 d83ebf80 00000000 00000000 d83ebf90 d83ebf90 d83ebfac d8393780
bfa0: 80048e84 00000000 00000000 8000e538 00000000 00000000 00000000 00000000
bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ee66e85d 133ebd03
[<804 Online 00:000f644>] Offline (usb_add_hcd) from [<80430e34>] (host_start+0x120/0x2e4)
[<80430e34>] (host_start) from [<80431dc8>] (ci_otg_start_host+0x54/0xbc)
[<80431dc8>] (ci_otg_start_host) from [<80435858>] (otg_set_protocol+0xa4/0xd0)
[<80435858>] (otg_set_protocol) from [<80435df8>] (otg_set_state+0x574/0xc58)
[<80435df8>] (otg_set_state) from [<804368e4>] (otg_statemachine+0x408/0x46c)
[<804368e4>] (otg_statemachine) from [<804322cc>] (ci_otg_fsm_work+0x3c/0x190)
[<804322cc>] (ci_otg_fsm_work) from [<8042d79c>] (ci_otg_work+0x44/0x1c4)
[<8042d79c>] (ci_otg_work) from [<80042b78>] (process_one_work+0xf4/0x35c)
[<80042b78>] (process_one_work) from [<8004382c>] (worker_thread+0x130/0x3bc)
[<8004382c>] (worker_thread) from [<80048f50>] (kthread+0xcc/0xe4)
[<80048f50>] (kthread) from [<8000e538>] (ret_from_fork+0x14/0x3c)
Code: bad PC value
Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit 8d0ca70bdac986f5886ba8ccfff46a41e7a555ec)
(cherry picked from commit cde81c01d8af7c29db959454b178887171de8182)
|
|
The current condition may not true even we have driven vbus on already.
The vbus drive operation may be async, eg through i2c gpio expendor,
so the vbus may not be valid when we unload usb module.
We meet this issue when we do fast load/unload usb module test.
Signed-off-by: Peter Chen <peter.chen@freescale.com>
(cherry picked from commit a4dec7730c98f2639fe250a1a67f782b6f73bdf5)
(cherry picked from commit 672b1cae3c5c0b3b28aa0ec7b1070274c4b5f0f1)
|
|
to zero"
This reverts commit 34ff6ab4e6af5e87eb3edc0420b204bf09e859e6.
After further investigation, find L2 prefetch offset setting of 0xF is not the
root cause for USB stress reboot failure. With the fix in USB driver,
and L2 prefetch offset setting of 0xF, the reboot stress test has passed 4-days
both on imx6q and imx6qp sabreauto board.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit 2151ecdb1030691be2de662943f8f97a01a60e35)
|
|
The pxp scaling logic will cause issue when the s0
and out are both yuv formats. The issue has been
reported in another MM CR.
Signed-off-by: Fancy Fang <chen.fang@freescale.com>
|