23 Feb, 2017
40 commits
-
Forward imx_3.14.y mxc video output drivers to 4.1 kernel.
The priv field of v4l2_pix_format is used to expand colorspace,
and can not use to pass IPU input crop size.
Add private IOCTL VIDIOC_S_INPUT_CROP and VIDIOC_G_INPUT_CROP
to pass input crop size.Signed-off-by: Sandor Yu
-
Regarding to the limitation of the iMX ADAP(pcie connector),
only imx7d 12x12 arm2 board is used to verify the pcie
ep/rc validation system on imx7d platformsEnalbe the msi pcie ep rc on it.
Test howto:
- Enable CONFIG_PCI_MSI=y, when rebuild the rc/ep images- EP side(console command and kernel message):
root@imx6sxsabresd:~# ./memtool -32 =0
Writing 32-bit value 0x0 to address- RC side(console command and kernel message):
root@imx6sxsabresd:~# cat /proc/interrupts | grep MSI
384: 1 PCI-MSINote:
imx6q msi_addr 0x01ff_8000
imx6sx msi_addr 0x08ff_8000
imx7d msi_addr 0x4ffc_0000Signed-off-by: Richard Zhu
-
Regarding to the limitation of the iMX ADAP(pcie connector),
only imx7d 12x12 arm2 board is used to verify the pcie
ep/rc validation system on imx7d platformshw setup:
* two imx boards, one is used as pcie rc, the other is used
as pcie ep. Connected by fsl pcie adap adaptor.sw setup:
* when build rc image, make sure that
CONFIG_IMX_PCIE=y
# CONFIG_EP_MODE_IN_EP_RC_SYS is not set
CONFIG_RC_MODE_IN_EP_RC_SYS=y
* when build ep image
CONFIG_IMX_PCIE=y
CONFIG_EP_MODE_IN_EP_RC_SYS=y
# CONFIG_RC_MODE_IN_EP_RC_SYS is not setfeatures:
* set-up link between rc and ep by their stand-alone
ref clk running internally.* in ep's system, ep can access the reserved ddr memory
(default address:0x4000_0000 on imx6q sd board, and
0xb000_0000 on imx6sx sdb and imx7d arm2 boards) of
pcie rc's system, by the interconnection between pcie
ep and pcie rc.* add the configuration methods in the ep side, used to
configure the start address and the size of the reserved
rc's memory window.
- cat /sys/devices/soc0/soc.1/1ffc000.pcie/rc_memw_info
- echo 0x41000000 > /sys/devices/soc0/soc.1/1ffc000.pcie/rc_memw_start_set
- echo 0x200000 > /sys/devices/soc0/soc.1/1ffc000.pcie/rc_memw_size_set* provide one example, howto configure the bar# and so on,
when pcie ep emaluates one memory ram ep device* setup one new outbound memory region at rc side, used
to let imx pcie rc can access the memory of imx pcie ep
in imx pcie rc ep validation system.
- set the default address of the ddr memory to be 0x4000_0000
on imxq sd board, and 0xb000_0000 on imx6sx sdb and imx7d
arm2 boards.NOTE:
* boot up ep platform firstly, then boot up rc platform.
* make sure that mem=768M is contained in the kernel command line,
since the start address of the upper 256mb of the 1g ddr mem is
reserved to do the pcie ep rc access operations in default.Test howto of the RC access memory of EP on imx6q sd platforms.
step1:
EP side:
1.1:
echo > /sys/devices/.../pcie/ep_bar0_addr1.2:
memtool -32 4
E
Reading 0x4 count starting at address 0x40000000: 6FE9E9F6 7583FBB9 39EAEFEA FBDCFD78
step2:
RC side:
memtool -32 =58D454DA
memtool -32 =7332095Bstep3:
EP side:
memtool -32 4
E
Reading 0x4 count starting at address 0x40000000: 58D454DA 7332095B 39EAEFEA FBDCFD78
Signed-off-by: Richard Zhu
-
- enable pcie functions on imx7d platforms
- grst/brst should be asserted/de-asserted during resume,
since the pcie power would be cut off automatically by HW
during system suspend/resumeSigned-off-by: Richard Zhu
-
- move "program correct class for RC" from dw_pcie_host_init()
to dw_pcie_setup_rc(). since this is RC setup, it's
better to contained in dw_pcie_setup_rc function.
Then, RC can be re-setup really by dw_pcie_setup_rc().
- add one store/re-store msi cfg functions. Because that
pcie controller maybe powered off during system suspend,
and the msi data configuration would be lost.
these functions can be used to store/restore the msi data
and msi_enable during the suspend/resume callback.Signed-off-by: Richard Zhu
-
This reverts commit b71c99801e18eb172ae34851daf25044a3bf644a.
Signed-off-by: Oliver Brown
(cherry picked from commit 5c74966c0e7deb0ac84b3fa8a84c6c942e7d434f)Conflicts:
drivers/media/v4l2-core/v4l2-compat-ioctl32.c
include/media/v4l2-subdev.h -
1. Upstream 5.0.11p7 driver to kernel
2. Add the GPU configuration to imx6q.dtsi
3. Remove IRQF_DISABLED in GPU driver
The IRQF_DISABLED has been removed from 4.1.0 kernel. To accomodate with
the change, add version check logic and use 0x0 instead of IRQF_DISABLED
from 4.1.0 kernel on.4. Convert file->f_dentry->d_inode to file_inode() in GPU driver
The file struct has changed since 3.19. Changed the usage in GPU driver
too.5. Add version check for CONFIG_PM_RUNTIME
The CONFIG_PM_RUNTIME will never be used in 4.1.0 kernel. Add version
check to avoid calling it in GPU driver.Signed-off-by: Shawn Xiao
-
No need to alloc bd for hdmi audio, and the period len of hdmi audio is
0, so add constraint for it.And correct per_address and per_address2 for hdmi audio.
Signed-off-by: Zidan Wang
-
Enable devfreq cooling to trigger GPU freq change when
hot trip is reached.Make sure thermal driver loaded after cpufreq is loaded,
otherwise, cpu_cooling will not get valid cpufreq table,
hence cpu_cooling will be not working.Signed-off-by: Bai Ping
-
add .get_trend callback to determine the thermal raise/fall trend,
when the temp great than a threshold, drop to the lowest trend
(THERMAL_TREND_DROP_FULL).Signed-off-by: Bai Ping
-
This pacth re-write part of the code the support i.MX6 and i.MX7
in thermal driver. the TEMPMON module in i.MX6 and i.MX7 can provide
the same funtion, but has different register offset and bitfield define.Signed-off-by: Bai Ping
-
On i.MX6SL, we must make sure ARM:IPG clock ratio is within 12:5 when entering
wait mode. If the system is in low_bus_freq_mode, the IPG is at 12MHz
according the busfreq code. So the max rate of ARM is 28.8MHz when entering
wait mode. As there is no way run at this clk rate, so set ARM to run from
24MHz OSC.Signed-off-by: Bai Ping
-
Add busfreq support for i.MX6SL SOC. we support three
busfreq mode (high_bus_freq_mode/low_bus_freq_mode and
audio_bus_freq_mode).Signed-off-by: Bai Ping
-
The 'PLL1_SYS' and 'PLL1_SW' clks are used by the cpufreq
driver to do dynamic frequency changing procedure.The 'CLK_SET_PARENT_GATE' should not be set for 'PLL1_SW'
clk, this clock's prepare_count is not zero all the time.change the clk type of 'PLL1_SYS' to fixed_factor. due to
the hardware limit, when changing the ARM_PODF. This clock's
output should not be gated.Signed-off-by: Bai Ping
-
According to the latest reference manual, the default AXI clock rate
should be 264MHz. Soucre AXI/AHB from pll2_bus to get the required
clock rate.Signed-off-by: Bai Ping
(cherry picked from commit d7560da7baee7a14ecb33d51182bbdc485ee6d7d) -
send a message to our remote processor, and tell remote
processor about this channelSigned-off-by: Richard Zhu
(cherry picked from commit 2708c004a60c5b6da020803ee9291b83984d4a65) -
AXI clk should be always enabled, as many peripheral
devices need this clk to be on, especially for busfreq,
AXI podf change needs AXI clk and its parent on.Signed-off-by: Anson Huang
-
Forward imx_3.14.y IPU and display drivers to 4.1 kernel.
This includes IPU core driver, display driver, LDB and HDMI driver.Signed-off-by: Sandor Yu
-
When VPU is running at 352MHz, SOC/PU voltage need to be
at 1.25V for 396/792MHz setpoint, as 396M setpoint is
removed, so only increase 792M setpoint's voltage.Signed-off-by: Anson Huang
-
As A9 and M4 share many resources on i.MX6SX, especially for
clk and power related resource, so we need to handle the hardware
conflict between these two cores, there are two cases that we
need to consider currently:clk management: for every clk node, only when both A9 and
M4 do NOT need it, then we can disable it from hardware;Here we use MU and hardware SEMA4 to achieve our goal, MU is
for communiation between A9 and M4, SEMA4 is to protect the
shared memory.For clk management, we use shared memory to maintain the clk
status for both A9 and M4 side, and this shared memory is
protected by hardware SEMA4, A9 and M4 will maintain their
own clk tree info in their SW environment, and get other
CORE's clk tree info from shared memory to decide whether
to perform a hardware setting change when they plan to.Signed-off-by: Anson Huang
-
- add linux sema4 driver.
- use volatile types in sema4 structure.
- align the port definiton a9 is 1, m4 is 2.Signed-off-by: Anson Huang
Signed-off-by: Richard Zhu -
This patch adds clk API return check for imx6sx.
Signed-off-by: Anson Huang
-
errata:
When a read command returns less data than specified in the PRDs (for
example, there are two PRDs for this command, but the device returns a
number of bytes which is less than in the first PRD), the second PRD of
this command is not read out of the PRD FIFO, causing the next command
to use this PRD erroneously.workaround
- forces sg_tablesize = 1
- modified the sg_io function in block/scsi_ioctl.c to use a 64k buffer
allocated with dma_alloc_coherent during the probe in ahci_imx
- In order to fix the scsi/sata hang, when CD_ROM and HDD are
accessed simultaneously after the workaround is applied.
Do not go to sleep in scsi_eh_handler, when there is host failed.Signed-off-by: Richard Zhu
-
The hang issue is caused by the driver pan display function.
In the mxsfb, the pan display didn't wait the address flip
done before it exits. So this may cause the irq handler
running at the blank state which will cause system hang.
Two things are done in this patch:
1. Remove the 'flip_sem', since the pan_display is always
called under the console lock hold.
2. Add a new completion 'flip_complete" to wait for the
address flip done.Signed-off-by: Fancy Fang
(cherry picked from commit 7cb41403cb7cf1e977536af2a0422a214382c9f5)Conflicts:
drivers/video/mxsfb.c -
this patch is chery-picked from imx_3.14.y
(cherry picked from commit 51e376b469c)
ENGR00274056-1 thermal: add device cooling for thermal drivercpu cooling is not enough when temperature is
too hot, as some devices may contribute a lot of heat
to SOC, such as GPU, so we need to add device cooling
as well, when system is too hot, devices can also take
their actions to lower SOC temperature.when temperature cross the passive trip, device cooling
driver will send out notification, those devices who
register this devfreq_cooling notification will take
actions to lower SOC temperature.Signed-off-by: Anson Huang
Signed-off-by: Shawn Guo
Signed-off-by: Bai Ping -
When allocating large memory, such as 128K,
vmalloc() uses single page for the allocation process,
while kzalloc() has to consume a continuous pages for the allocation.In low memory case, the kzalloc() may fails.
So use the vmalloc() instead.Also add some sanity check for the NULL pointer.
Add missed line for ENGR00161643-3 UTP : bugfix
Signed-off-by: Huang Shijie
-
ubiformat includes command, data, command periods,
it breaks utp protocol for PUT commands. So we add two operations to fix it.
One is sending busy to host before the data periods begins.
The second is adding a new command to waiting ubiformat's command period.Signed-off-by: Li Xingyu
Signed-off-by: Peter Chen -
- the root cause of this issue is there is no protection for
the resource which will be accessed by multiple threadSigned-off-by: Tony LIU
-
uboot needs pass down below parameters
removable = 1
stall = 0
idVendor = 0x066F
idProduct = 0x37FF
iSerialNumber = ""sleep_thread add new parameter
Signed-off-by: Lu Lin
Signed-off-by: Frank Li -
Add isl29023 driver support for i.MX6Q/DL/SX platform. The code derives from 3.10.y branch.
Signed-off-by: Luwei Zhou
Signed-off-by: Fugang Duan
(cherry picked from commit: b0134420bba0022151499f1bb15e0d5daba970fa) -
Enable i.MX6SX adc driver. ADC driver will try getting ADC controller
channel number via device tree, because i.MX chip enable 4 channels
on each controller.Signed-off-by: Luwei Zhou
Signed-off-by: Fugang Duan
(cherry picked from commit 14a6a98f64e26702b1c0ecfc7d58a45ee5752d54) -
Add mma8451 driver support for i.MX6Q/DL/SX platform. The code derives from 3.10.y branch.
Signed-off-by: Luwei Zhou
Signed-off-by: Fugang Duan
(cherry picked from commit: 69e1811b92ed7b3dc2f1db0a9447a8570dd16231) -
evbug will open the mma8450 on i.MX6SL_EVK and mma8450 will work in 2G mode by default.
That is the reason why mma8450 logs will be printed out. The main changes is below:* Remove the open(), close() hook out of the drivers. The open() and close()
hook in input framwork is defined as void type. It isn't strictly safe in
logic when some error happends. So remove them out.
* Modify the mma8450 to standby mode by default. It will be more power saving
and there would be no log printing out after booting up.
* Provide the sys interface to modify the mma8450 work modes. Then the higher
layer can modify the the mma8450 work mode via the interface. It would be
much safer.There would be a sclaemode interface in the folder of
/sys/devices/soc0/soc.1/2100000.aips-bus/21a0000.i2c/i2c-0/0-001c/scalemode
User can use cat to read the current scalemode and echo to write. The mode
is defined as: MODE_STANDBY: 0 MODE_2G:1 MODE_4G:2 MODE_8G:3
* Add mutex to protect and some error handling.Signed-off-by: Luwei Zhou
Signed-off-by: Fugang Duan
(cherry picked from commit c51a786078fd569ce95eb6dcf09c76d1b3c0f172) -
Add chip ID check in probe function. The mma8450 is
on the E-INK daughter board. When the daughter board
is not pluged, there would be polling error log
continuously. Add the check to avoid this.Signed-off-by: Luwei Zhou
Signed-off-by: Fugang Duan
(cherry picked from commit e9f2c4cf673dee1527925f30a9f3fd137d9799ad) -
For LPSR mode, UART iomux settings will be lost after resume,
so add pinctrl sleep mode support.Signed-off-by: Anson Huang
Signed-off-by: Fugang Duan -
when kernel command line has "uart_from_osc" defined, set uart1
parent clock to OSC for low power case.Signed-off-by: Fugang Duan
-
Add mlb support on imx_4.1.y. The files are copied from imx_3.14.y.
Signed-off-by: Gao Pan
-
Include 3.14 VPU driver with no change
Signed-off-by: Hongzhang Yang
-
By using gstreamer plugin v4l2radio, it will call VIDIOC_S_CTRL with
V4L2_CID_AUDIO_MUTE, but return failed.So add V4L2_CID_AUDIO_MUTE CTRL support for radio-si476x.
Signed-off-by: Zidan Wang
(cherry picked from commit c18520adfd6de40dcc0659ddd778b0a2bd383cd4) -
When transfer rangelow and rangehigh from user space, the local variable
rangelow and rangehigh will not be initialized before using them.Signed-off-by: Zidan Wang
(cherry picked from commit c326f56005f0ee3d0c1fd6ebdebabda919c278dd)