b37753 [Fri, 6 Jan 2012 21:50:40 +0000 (15:50 -0600)]
ENGR00170444: [v3]imx6sabreauto adv7180 TVin port
Kconfig and Makefile was modified in order to
enable adv7180 driver for mx6q architecture.
adv7180.c mutex was changed to semaphore as is described in
"https://lwn.net/Articles/304725/ ".
sensor data structure is added in fsl_devices.h.
mxc_v4l2_capture.c condition in mxc_v4l2_sparam
was removed because is going to be always true
capture mode only have 1 possible value as is described in
"https://lwn.net/Articles/235023/".
ipu_capture.c clock divisor setup was added at init the csi.
b37753 [Fri, 6 Jan 2012 21:03:08 +0000 (15:03 -0600)]
ENGR00170444: [v3]imx6sabreauto adv7180 TVin port
imx6sabreauto adv7180 TVin port
ioexpanders addresss were incorrect, modification in
board-mx6q_sabreauto.c was done.
adv7180 boot structures and i2c structures were added in board-mx6q_sabreauto.c
i2c3 was not configured properly modified in iomux-mx6q.h.
Francisco Munoz [Fri, 16 Dec 2011 23:16:03 +0000 (17:16 -0600)]
ENGR00170124: Fix for USBH1 OTG IOMUX and GPIOs in board-mx6q_sabreauto.c
USBH1 was not responding to plug events
USBH1 power up settings trough Port Exp B
OTG power up settings trough Port Exp C
Functionality was tested using a mx6qsabreauto cpu board + 53ARD main board
Signed-off-by: Francisco Munoz <b37752@freescale.com>
ENGR00169747 MX6Q:ARD:Enable SD1 Card reader from ARD Main board
Fix to enable SD1 Card reader for MX6Q ARD. This enables SD1 reader
from main board. SD1 does not support SD3.0 to maintain compatiblity
of MX53 Mainboard.
Chen Liangjun [Sat, 31 Dec 2011 03:03:33 +0000 (11:03 +0800)]
ENGR00162913-1 ASRC:fix asrc_audio_clock divider set bug
The asrc_audio_clock in MX5 is different from MX6.Thus the divider
value set can not be used in the MX6. Part of noise of ASRC output
is caused by this.
Add the function to calculate the divider and prescaler value
according to the sample rate and asrc_audio_clock.
issue:
in the reverted patch, sdhc driver will claim host on its
entering suspend state. and the wifi driver will hold host on
its loading. so once system is about to enter suspend state,
system will be pended on claiming host.
Even Xu [Fri, 30 Dec 2011 10:03:45 +0000 (18:03 +0800)]
ENGR00171035 Fix OV3640 XGA can not work
- Fix OV3640 XGA cannot work, XGA can be supported
- Add OV3640 720P, 1080P at 15fps support
- Fix a MXC_V4L2_CAPTURE driver bug, when setting param,
only when current mode and framerate are the same
with param, then not change current setting again
Tony LIU [Fri, 30 Dec 2011 06:34:38 +0000 (14:34 +0800)]
ENGR00171027-3 usbcore:after plug in/out on the hub,host can't work
This issue will happen only when suspend bit is set but phcd is not set
The root cause of this issue is the IC defect.
- If the suspend bit is set without phcd bit set, host controller
can't resume normally
- The workaround is after set suspend bit, we need set the following
bit in USB PHY at once:
HW_USBPHY_PWD_RXPWDRX
HW_USBPHY_PWD_RXPWDDIFF
HW_USBPHY_PWD_RXPWD1PT1
HW_USBPHY_PWD_RXPWDENV
HW_USBPHY_PWD_TXPWDv2I
HW_USBPHY_PWD_TXPWDIBIAS
HW_USBPHY_PWD_TXPWDFS
- Furthermore, after resume, we must clear these bits during the K state
- IC has no plan to fix this issue
- This issue only happen on MX6Q/MX28
core part
Signed-off-by: Tony LIU <junjie.liu@freescale.com>
Tony LIU [Fri, 30 Dec 2011 06:32:41 +0000 (14:32 +0800)]
ENGR00171027-2 [USB_HOST]after plug in/out on the hub,host can't work
This issue will happen only when suspend bit is set but phcd is not set
The root cause of this issue is the IC defect.
- If the suspend bit is set without phcd bit set, host controller
can't resume normally
- The workaround is after set suspend bit, we need set the following
bit in USB PHY at once:
HW_USBPHY_PWD_RXPWDRX
HW_USBPHY_PWD_RXPWDDIFF
HW_USBPHY_PWD_RXPWD1PT1
HW_USBPHY_PWD_RXPWDENV
HW_USBPHY_PWD_TXPWDv2I
HW_USBPHY_PWD_TXPWDIBIAS
HW_USBPHY_PWD_TXPWDFS
- Furthermore, after resume, we must clear these bits during the K state
- IC has no plan to fix this issue
- This issue only happen on MX6Q/MX28
driver part
Signed-off-by: Tony LIU <junjie.liu@freescale.com>
Tony LIU [Fri, 30 Dec 2011 06:07:18 +0000 (14:07 +0800)]
ENGR00171027-1 [USB_HOST]after plug in/out on the hub,host can't work
This issue will happen only when suspend bit is set but phcd is not set
The root cause of this issue is the IC defect.
- If the suspend bit is set without phcd bit set, host controller
can't resume normally
- The workaround is after set suspend bit, we need set the following
bit in USB PHY at once:
HW_USBPHY_PWD_RXPWDRX
HW_USBPHY_PWD_RXPWDDIFF
HW_USBPHY_PWD_RXPWD1PT1
HW_USBPHY_PWD_RXPWDENV
HW_USBPHY_PWD_TXPWDv2I
HW_USBPHY_PWD_TXPWDIBIAS
HW_USBPHY_PWD_TXPWDFS
- Furthermore, after resume, we must clear these bits during the K state
- IC has no plan to fix this issue
- This issue only happen on MX6Q/MX28
MSL part Signed-off-by: Tony LIU <junjie.liu@freescale.com>
Anson Huang [Fri, 30 Dec 2011 06:55:14 +0000 (14:55 +0800)]
ENGR00171087 [MX6]Need to add L1 Icache invalidate
As there might be dirty data line on any core of MX6
SOC when power on or reset, we need to do L1 I-cache
invalidation in the resume process and start up
process for all cores.
This is very important for us, as not all of the hardware
will do cache invalidation during power on or reset, so
we need to do the invalidation for all cache(L1, L2,
I and D) before first time enabling. Please keep in mind.
Yuxi Sun [Wed, 28 Dec 2011 06:20:20 +0000 (14:20 +0800)]
ENGR00171010 enable exposure calculate function
Exposure calculate function was not used and this produce build
warning, enable this function not only remove this warning, but
also get a better image quality when take picture.
Robin Gong [Wed, 28 Dec 2011 03:43:08 +0000 (11:43 +0800)]
ENGR00171001-2 MX6Q PFUZE100: fix build warnings
fix build warnings on pfuze driver:
arch/arm/mach-mx6/mx6q_sabreauto_pmic_pfuze100.c:388:
warning: initialization from incompatible pointer type
drivers/mfd/pfuze-core.c:523:
warning: initialization from incompatible pointer type
drivers/mfd/pfuze-core.c:412:
warning: 'pfuze_add_subdevice' defined but not used
Tony Lin [Wed, 28 Dec 2011 02:34:17 +0000 (10:34 +0800)]
ENGR00170998 [MX6Q MMC]build warning
fix following build warning:
drivers/mmc/host/sdhci.c: In function 'sdhci_clk_worker':
drivers/mmc/host/sdhci.c:53: warning: unused variable 'flags'
drivers/mmc/host/sdhci.c: In function 'sdhci_resume_host':
drivers/mmc/host/sdhci.c:1751:
warning: 'ret' may be used uninitialized in this function
Tony Lin [Tue, 27 Dec 2011 05:47:09 +0000 (13:47 +0800)]
ENGR00170944 [MX6Q MMC]suspend/resume crash
if the system suspend in the process of data transfer, current request
is broken by the suspend request, thus there're sd/mmc requests error logs.
to prevent this error, add a claim host in suspend function and release it
in resume function to make sure the request is finished before entering suspend
and next request could be started after resuming.
Fugang Duan [Wed, 21 Dec 2011 10:32:11 +0000 (18:32 +0800)]
ENGR00170784 - FEC : dma skb buffer map is not used rightly.
Enable "CONFIG_DMA_API_DEBUG" in kernel, and system print:
DMA-API: device driver tries to free DMA memory it has not
allocated [device address=0x0000000046688020]...[<80222494>]
(debug_dma_unmap_page+0x8c/0x98) from [<802a36a0>]
(fec_enet_interrupt+0x430/0x5ac)
Loren Huang [Mon, 26 Dec 2011 07:46:06 +0000 (15:46 +0800)]
ENGR00170751 Enable clock gating while gpu core comes to idle
-Correct gc355 initial power state to poweroff.
-Separate clock gating operation in function gckOS_SetGPUPower().
-Turn on clock while suspend GPU cores.
-Remove clock switch in drv_open().
Tony LIU [Thu, 22 Dec 2011 11:07:03 +0000 (19:07 +0800)]
ENGR00170144 [USB-Host] Fix the following USB hub issue on mx6q
- After auto suspend, attach device to hub will cause host can't work any more
- after system suspend, attach device to hub will cause host can't work any more
- HSDISCONNECTDEC logic error
- Set RUNSTOP in bus suspend, if no short delay, host can't work any more
Signed-off-by: Tony LIU <junjie.liu@freescale.com>
Anson Huang [Fri, 23 Dec 2011 08:07:50 +0000 (16:07 +0800)]
ENGR00170897 [MX6]Enable WAIT mode by default
NFS can work with WAIT mode only if the NFS use
TCPIP protoco, in order to test more features of
WAIT mode, we enable it by default and make sure
NFS is using TCPIP protocol.
Peter Chen [Mon, 19 Dec 2011 01:27:18 +0000 (09:27 +0800)]
ENGR00170530 usb-udc: Some tiny bug fixes
Most of them are from community
- Using correct dequeue method
- Fix the ISOC_XFER condition judgement
- Need to wmb before prime
- Fix some conditions of udc->max_ep judgement
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Robin Gong [Mon, 19 Dec 2011 09:57:38 +0000 (17:57 +0800)]
ENGR00170255-1 MX6Q PFUZE100: add board level support for pfuze100
1.modify some pins for support pfuze100
2.add mx6q_sabreauto_pmic_pfuze100.c to support regulator of pfuze100
3.modify imx6_defconfig to enable pfuze driver and regulator driver
Adrian Alonso [Mon, 19 Dec 2011 23:06:17 +0000 (17:06 -0600)]
ENGR00170628 imx6q-ard: fix imx-cs42888 audio codec support
* Update esai pad settings for imx6q-ard platform
* Add reset and interrupt gpio macro definitions
* Attach cs42888 to correct i2c channel and rename
regulator dev_name and codec_name in accordance of
i2c channel.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Adrian Alonso [Mon, 19 Dec 2011 22:35:06 +0000 (16:35 -0600)]
ENGR00170627 imx-cs42888: overwrite codec_name if passed as platform data
* Overwrite codec_name if passed as platform data
* Add codec_name in mxc_audio_platform_data
* Codec name follows the naming convention
<codec>.<i2c-channel>-<codec i2c address> i.e. cs42888.0-0048
* For IMX6Q-ARD this name convention doesn't follow previous settings for
imx6q platforms codec is on different i2c channel and can't be resolved
by CONFIG macros on imx_3stack_dai data structure; So we overwrite in
probe function by getting the correct value from plat_data->codec_name.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
* Remove hard codded gpio reset definition
* Add in mxc_audio_platform_data reset gpio reference to be able
to pass gpio reset assignment in board definition file instead
of a macro for each different board.
* Add plat_data null check, return EINV if no set.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Adrian Alonso [Sat, 17 Dec 2011 01:22:08 +0000 (19:22 -0600)]
ENGR00170523 imx6q-ard: add egalax touchscreen support
* Add egalax touch screen support for sabreauto platform
* Add egalax client to correct i2c channel
* Fix GPIO assigned to touch screen interrupt
* egalax driver depends of LED_CLASS for gpio interrupt handling
and HIDRAW for X11 event notification and added to mx6q_defconfig
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Huang Shijie [Fri, 16 Dec 2011 08:27:03 +0000 (16:27 +0800)]
ENGR00170465-1 MX6Q/SDMA : update the SDMA script for UART RX
The old script does not clear the IDLE flag.
So when the IDDMAEN(UCR4[6]) is enabled, the RX only receives few
bytes(such as 2 or 1 byte) per DMA operation.
Alan Tull [Thu, 8 Dec 2011 19:43:42 +0000 (13:43 -0600)]
ENGR00169872-2 rework hdmi initialization and hotplug sequence
This commit intends to implement the flowchart and details
documented in the HDMI Transmitter Controller User Guide
section entitled "Programming Model".
Some input is also from the Synopsys API code.
The HDMI specification requires HDMI to set itself to VGA DVI mode
before reading the EDID.
So follow this sequence when HDMI is hotplugged:
1. Hdmi connector is plugged in, HDMI video gets an interrupt.
2. Clear out video mode list. Add only VGA DVI mode to list.
3. Request VGA DVI mode (call fb_set_var())
4. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and
call mxc_hdmi_setup() to set up HDMI.
5. Read the edid and add video modes from edid. Select the video
mode that is similar to the command line default.
6. Request VGA DVI mode (call fb_set_var())
7. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and
do mxc_hdmi_setup().
Also included is a workaround for an overflow condition in the HDMI.
The frame composer has an arithmetic unit that gets updated every time
we write to one of the FC registers. But sometimes, depending on the
relation between the tmds and sfr clocks, it may happen that this unit
doesn't get updated, even though the registers are holding correct
values. The workaround for this is, after completing the controller
configuration, to rewrite one of the FC registers (i.e. FC_INVIDCONF)
three or four times with the same value, and then follow it up by a SW
reset to the TMDS clock domain (MC_SWRSTZ).
We clear the overflow condition as described above every time we
change video mode. Also an overflow interupt handler will clear the
overflow condition if it happens again. This overflow condition is
expected (and not a problem) when we are in DVI (non-HDMI) mode, so
we do not worry about it in that case.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Alan Tull [Thu, 8 Dec 2011 19:43:42 +0000 (13:43 -0600)]
ENGR00169872-1 rework hdmi initialization and hotplug sequence
This commit intends to implement the flowchart and details
documented in the HDMI Transmitter Controller User Guide
section entitled "Programming Model".
Some input is also from the Synopsys API code.
The HDMI specification requires HDMI to set itself to VGA DVI mode
before reading the EDID.
So follow this sequence when HDMI is hotplugged:
1. Hdmi connector is plugged in, HDMI video gets an interrupt.
2. Clear out video mode list. Add only VGA DVI mode to list.
3. Request VGA DVI mode (call fb_set_var())
4. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and
call mxc_hdmi_setup() to set up HDMI.
5. Read the edid and add video modes from edid. Select the video
mode that is similar to the command line default.
6. Request VGA DVI mode (call fb_set_var())
7. HDMI video driver will get FB_EVENT_MODE_CHANGE callback and
do mxc_hdmi_setup().
Also included is a workaround for an overflow condition in the HDMI.
The frame composer has an arithmetic unit that gets updated every time
we write to one of the FC registers. But sometimes, depending on the
relation between the tmds and sfr clocks, it may happen that this unit
doesn't get updated, even though the registers are holding correct
values. The workaround for this is, after completing the controller
configuration, to rewrite one of the FC registers (i.e. FC_INVIDCONF)
three or four times with the same value, and then follow it up by a SW
reset to the TMDS clock domain (MC_SWRSTZ).
We clear the overflow condition as described above every time we
change video mode. Also an overflow interupt handler will clear the
overflow condition if it happens again. This overflow condition is
expected (and not a problem) when we are in DVI (non-HDMI) mode, so
we do not worry about it in that case.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Adrian Alonso [Fri, 9 Dec 2011 20:28:59 +0000 (14:28 -0600)]
ENGR00169975: imx6sabreauto fix i2c iomux pad settings
* imx6sareauto fix i2c iomux pad settings
* On sabreaauto the i2c pad settings are missing in iomux-mx6q.h
* update i2c pad seetings and SD2 control pads
* Set correct i2c address for io expanders (expander A and B)
* explicit assert io expander reset line for normal operation mode
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Felipe Balbi [Mon, 29 Aug 2011 08:54:08 +0000 (11:54 +0300)]
usb: gadget: audio: queue wLength-sized requests
On Audio class, the wLength field of the Setup
packet, contains the data payload size of the
following Data phase. Instead of harcoding values,
use wLength.
This also fixes a bug where Gadget driver had to
receive 3 bytes, but it was queueing a ZLP.
Felipe Balbi [Fri, 26 Aug 2011 09:48:15 +0000 (12:48 +0300)]
usb: gadget: audio: actually support both speeds
While testing g_audio with HighSpeed UDC on a
FS Hub, we had no configurations to present to
the host. That's because both speeds where
mutually exclusive.
In may gadgets bind and bind like functions were in a init section
as they were only run during initialisation. However, being
callback functions they were referenced from structures in “normal”
sections. Changing the tag from “__init” to “__ref” fixes the
warnings.
Signed-off-by: Michal Nazarewicz <m.nazarewicz@samsung.com> Cc: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Root cause is:
Ipu driver use msleep to wait for smfc idle, msleep isn't a
Accurate timer, but CSI SMFC is a real-time channel, so use
Interrupt handler to replace msleep.
wu guoxing [Fri, 16 Dec 2011 04:15:05 +0000 (12:15 +0800)]
ENGR00170452: gpu-viv: change from dma_sync_single_for_device to outer_clean_range
dma_sync_single_for_device can only used for kernel physical memory,
while in gpu, we will also clean user physical memory for pixmap,
direct texture, etc. outer_clean_range can operate on both.
ENGR00170212: MX6 - Implement a SW workaround for TKT065875
Only CPU0 executes WFI followed by ISBs in uncached iRAM.
All other cores execute the regular cpu_do_idle()
This puts a restriction that all interrupts should only be routed to CPU0.
This bug should be fixed in TO1.1.
Adrian Alonso [Thu, 15 Dec 2011 01:24:18 +0000 (19:24 -0600)]
ENGR00170341 board-mx6q-sabreauto: update spdif for sabreauto platform
* Update spdif config options for sabreauto platform
* Correct pad settings
* Only SPDIF RX in sabreauto, unset SPDIF TX support.
* spdif and i2c3 doesn't conflict in sabreauto platform
remove spdif early param and logic that set either pads.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Jason Chen [Wed, 14 Dec 2011 06:09:08 +0000 (14:09 +0800)]
ENGR00170168-2 mxc_vout: add non FB_VMODE_YWRAP support
when use pan display, the case could be:
1. a small window wrap in a big frame buffer
2. a frame switch in a serial buffers
the ipuv3 fb driver used to support case 1, and for case 2,
if the fb format is interleaved, there is no problem, but for
non-interleaved format (like I420), there will be a display bug.
Jason Chen [Wed, 14 Dec 2011 06:02:16 +0000 (14:02 +0800)]
ENGR00170168-1 ipuv3 fb: add non FB_VMODE_YWRAP support
when use pan display, the case could be:
1. a small window wrap in a big frame buffer
2. a frame switch in a serial buffers
the ipuv3 fb driver used to support case 1, and for case 2,
if the fb format is interleaved, there is no problem, but for
non-interleaved format (like I420), there will be a display bug.