Age | Commit message (Collapse) | Author |
|
3.0-vybrid-ts2.16
Conflicts:
drivers/tty/serial/mvf.c
|
|
Use the more common name "fsl_nfc" instead of "NAND" for this
device. This also affects the mtdparts option of the kernel
command line.
|
|
Add correct chip select handling. This is required when using
mainline U-Boot since chip select is properly done there as well.
|
|
Hardware ECC was enabled, however the result of the ECC check was
actually ignored. This patch checks the result and acts accordingly.
Also, enable ECC hardware for every page (which is required for
UBIFS, this might be a relict of JFFS2 support).
The driver passes the mtd_pagetest.
Bits an pieces taken from the RFC mainline driver from Bill
Pringlemeir.
|
|
In order to properly support VF50 V1.1 and older modules we need
to move the GPIOs to platform data. This is anyway the cleaner
and easier maintainable solution.
Also raise pressure threshold to a reasonable level for our
resistive touchscreens.
|
|
UART3 and UART4 are possible additions to a custom Colibri carrier
board. This patch muxes RX/TX pins for those UARTs, as well as
enables DMA and FIFO for those instances.
However, UART3 conflicts with Colibris default SD card data pins,
so this option disables SD-Card support (SDHC1).
|
|
Add alternative pinmux and platform data for second Ethernet. Also
make sure MAC address is calculated from first Ethernet MAC address,
which is derived from part serial number. Note that FEC1 is the
default Ethernet controller (and hence eth0), while FEC0 is the
additional Ethernet controller (eth1).
|
|
Since update_sched_clock only supports 32-bit timer, we should
initialize sched_clock with this bitness too. This avoids sched
clock time jumping backwards from time to time.
|
|
In low latency mode, tty_flip_buffer_push should be called from
interrupt context. However, because flush_to_ldisc is not safe
to call from interrupt, the user get a kernel message "BUG:
scheduling while atomic". This is actually a kernel bug, which
essentially breaks low latency.
Using a work queue works around this, however, it also makes
the low latency mode useless. In non-low latency mode, the
tty code uses a work queue too.
So, don't use our own work queue to work around a kernel bug.
Instead rely on work queue implementation in the tty code,
disable the UPF_LOW_LATENCY feature and hope the low latency
bug itself gets fixed eventually.
This is also the way the proposed upstream driver works.
|
|
When data are pending and altering FIFO size and flushing FIFO,
we end up having the UARTSR1_RDRF (receive data register full)
bit set while UARTSFIFO_RXEMPT (FIFO empty) is set too. We check
the second flag in the interrupt routine, which is set, and hence
don't read the data register. This leads to an interrupt storm,
which never gets handled properly.
However, we can not check the UARTSR1_RDRF flag in the interrupt
routine, since reading data in this case would misalign the
FIFO buffer. Hence we should make sure there are no data before
dealing with the FIFO.
This fixes a race condition during bootup: when a character was
sent between imx_console_setup and imx_startup, the kernel got
stuck in a interrupt storm. Another character usually fixed
that storm.
|
|
|
|
|
|
EDMA enabled in the UART configuration prevents ADC from working in MQX 4.0.2.
We also disable EDMA with UART in other Vybrid variants due to an
incompatibility with sysvinit.
|
|
is disabled in UART config. The receive interrupt was attempting to schedule a work queue only defined if EDMA is enabled.
kernel BUG at kernel/workqueue.c:1037!
Unable to handle kernel NULL pointer dereference at virtual address 00000000
|
|
3.0-vybrid-ts2.13
|
|
Add platform data for PWM channels B, C and D to be LED PWM. The
PWM value can now be set from userspace using /sys/class/leds/PWM*.
|
|
The AC97 driver is not yet finished and has problems with power
management. Build it as a module so users can load it if required.
|
|
The Colibri Evaluation Board V3.1a has a on-board SPI CAN controller
MCP251X. This patch adds platform data for this device. However, to
have CAN support, some configuration have to be enabled:
CONFIG_CAN
CONFIG_CAN_RAW
CONFIG_CAN_BCM
CONFIG_CAN_DEV
Plus support for the SPI device itself:
CONFIG_CAN_MCP251X
|
|
Fix registers and channels for SPI1, however using SPI with DMA
still doesn't work (dspi_interrupt doesn't fire).
|
|
Use the supplied parent clock for SPI clock calculation. This
results in correct clock calculation for 396MHz/500MHz Vybrid
SoCs. Also fix an calculation issue: Another division by 2 is
not required, the prescaler is taken into account already.
|
|
Enable Colibri SPI pins using DSPI1. Define required clocks for
DSPI1 and initialize the device on init. Currently the device
is available through spidev (/dev/spidev1.0).
|
|
Define drivers supported mode using mode_bits. This fixes warnings
which claim that hardware don't support modes which actually are
supported, e.g.
[ 64.586777] spidev spi1.0: setup: unsupported mode bits 3
|
|
All supported Micrel PHYs implement the standard "power down" bit 11 of BMCR,
so this patch adds support using the generic genphy_{suspend,resume} functions.
Backported patch by Patrice Vilchez, see
1a5465f5d6a23e84ef5c06cb32f3d8c26632f42a
|
|
Register wake-up pins on SO-DIMM 43/45 (PTB19/PTB20) to trigger
on falling edge. This allows to wake up the SoC from low-power
modes such das suspend-to-RAM or standby.
Also, on standby (when pheripherials are on) we allow to wake
using serial interrupt (UART0).
|
|
Add boot time parameters for pixelclock, hsync and vsync polarity.
The parameters are aligned with pxafb and tegrafb, e.g.
video=dcufb:pixclockpol:1,800x480@60
|
|
By registring a power_off command the kernel does not go to halt
state but instead tries to power off. Our power off function sets
the SoC in a low power stop mode, which essentially turns itself
off almost completely.
|
|
Enable FIFO unconditionally, even when CONFIG_SERIAL_CORE_CONSOLE
is turned on. Serial consoles get enabled anyway, but this compile
time switch lead to disabling FIFO for all serial ports. Not using
FIFO when using a serial port might lead to missing characters
quite easily.
|
|
|
|
When a process is closed while work is pending, the receiving tty
might be closed when the work is actually scheduled. This leads
to a kernel NULL pointer dereference. Check if tty is still there
before submitting new data.
Unable to handle kernel NULL pointer dereference at virtual address 000000bc
pgd = c0004000
[000000bc] *pgd=00000000
Internal error: Oops: 17 [#1] PREEMPT
Modules linked in:
CPU: 0 Not tainted (3.0.15-00021-gc52df36 #198)
PC is at tty_flip_buffer_push+0x28/0x84
LR is at rx_work+0x20/0x2c
pc : [<c025a380>] lr : [<c026ba9c>] psr: 200f0093
sp : ca015f78 ip : 00000001 fp : 00000000
r10: 00000000 r9 : c026ba7c r8 : 00000000
r7 : cfff0a00 r6 : c067d2ec r5 : cfebc31c r4 : 00000000
r3 : ca014000 r2 : 200f0013 r1 : 00000001 r0 : 00000000
Flags: nzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c53c7d Table: 8a19c059 DAC: 00000015
Process kworker/0:0 (pid: 558, stack limit = 0xca0142e8)
Stack: (0xca015f78 to 0xca016000)
5f60: cfebc31c c026ba9c
5f80: cf83ce80 c005dff4 cfff0a05 cf83ce80 ca014000 c067d2ec c06d804c cf83ce90
5fa0: 00000009 c067d2ec 00000000 c005e35c ca197f3c cf83ce80 c005e188 00000013
5fc0: 00000000 00000000 00000000 c0062d08 00000000 00000000 cf83ce80 00000000
5fe0: ca015fe0 ca015fe0 ca197f3c c0062c8c c00350e8 c00350e8 00000000 00000000
[<c025a380>] (tty_flip_buffer_push+0x28/0x84) from [<c026ba9c>] (rx_work+0x20/0x2c)
[<c026ba9c>] (rx_work+0x20/0x2c) from [<c005dff4>] (process_one_work+0x1f4/0x35c)
[<c005dff4>] (process_one_work+0x1f4/0x35c) from [<c005e35c>] (worker_thread+0x1d4/0x314)
[<c005e35c>] (worker_thread+0x1d4/0x314) from [<c0062d08>] (kthread+0x7c/0x88)
[<c0062d08>] (kthread+0x7c/0x88) from [<c00350e8>] (kernel_thread_exit+0x0/0x8)
Code: e3c3303f e5931004 e2811001 e5831004 (e59030bc)
---[ end trace d9cc3df0e23f6c96 ]---
|
|
3.0-vybrid-ts2.10
Conflicts:
arch/arm/mach-mvf/clock.c
|
|
Enable Fusion touchscreen driver and provide platform data. Use the
mux helper function to mux the pen down/reset GPIO pins.
|
|
Fix chip reset by sleeping long enought after reset. Do proper error
handling (free GPIO on failure). Use dev_* for message logging to get
similar messages for all fusion driver related errors and warnings.
|
|
To avoid warnings use the new I2C power management function for
suspend and resume.
|
|
Added platform data struct to define interrupt and reset GPIO. This
allows to initialize the touchscreen controller inside the driver
rather then in each platform and use the driver as a module.
|
|
When the next interrupt request apeares between the confirmation of
the previous (a write via I2C, fusion_F0710A_write_complete) and
the reenable of the GPIO interrupt, the driver hangs and no more
touch inputs are reported.
This patch moves the confirmation after the reenabling of the GPIO
interrupt.
|
|
Recent evdev X-Server input driver implementation complain when
only multitouch axes have been reported ("found only multitouch-axes.
That shouldn't happen."). Therefor also report the primary touch
detection with default axis.
|
|
This patch adds the multi-touch input driver for the TouchRevolution
Fusion 7 and 10 panels (See Fusion 7 and 10 drivers for Linux.pdf and
Linux Drivers Fusion 10.zip).
Conflicts:
drivers/input/touchscreen/Makefile
|
|
|
|
This patch use higher drive strength as well as alter pin speed
options in order to get nicer VGA/LVDS signal even with higher
pixel clocks.
|
|
Use modedb helper function to get video mode from kernel cmd line.
Video mode can now be choosen at boot time using video=dcufb:...
|
|
In order to support different video modes the driver needs to calculate
the DCU div ratio from the pixelclock.
Taken from mainline framebuffer proposal by Alison Wang.
|
|
- NULL pointer after removing unsupported devices
- only print "hub 2-0:1.0: port 1 nyet suspended" for
device who has enumerated successfully
Signed-off-by: Peter Chen <peter.chen@freescale.com>
|
|
- change PHY TX/RX parameters accoording to Richard's email
- Disable OTG descripor
- Add Freescale VID/PID
Signed-off-by: Peter Chen <peter.chen@freescale.com>
|
|
This patch introduces support for test modes as
defined by the USB OTG & Embedded host Specification.
Note that we _must_ be able to suspend & resume ports
as we wish, so this driver depends on USB_SUSPEND and
makes use (well, somewhat abuses) usb autopm features
to achieve what we want.
Signed-off-by: Felipe Balbi <balbi@ti.com>
|
|
The patch include:
- USB test mode on hub port and Root-hub port
- support 3 types of message:
too much hub ties for hub attachment
too much power consumption for device attachment
unsupported device class warning
- support menuconfig select the FSL_USB_TEST_MODE, located in:
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> FSL High-speed Electrical Test Mode support
Signed-off-by: make shi <b15407@freescale.com>
|
|
|
|
Fixes issue reported in ticket #52637
|
|
The touch configuration differs between the two module versions. While
the Colibri VF50 uses the Vybrid internal ADCs together with dedicated
GPIO controlled FETs the Colibri VF61 uses the Wolfson WM9715L AC97
audio/touch codec chip.
While at it make our board file more check-patch conform.
|
|
Initial software ac97 driver without any audio functionality yet. Only
touch controller is fully functional.
Note: current Colibri VF61 V1.0b samples require an audio master clock
modification. Colibri VF61 V1.1a are expected to have this fixed.
|
|
The PLL4 is exclusively used for audio clocking.
While at it implement CKO1 external clock pin.
|