26 Apr, 2013
3 commits
-
In DMA mode, when the data is received from host before the next request
is programmed, the pio interrupt occurs and data lost since no request.This scenario occurs sometimes in android gadget, when adb protocol receive
bigger size (>4KB) files.The fix is not to disable the dma after completion of current rx request
so that dma interrupt will occur correctly for next request
when data received from host before next request is programmed.Signed-off-by: Ravi Babu
-
fixes the missing declaration for manufacturer & vendorID
for multi gadget configurationSigned-off-by: Ravi Babu
-
- bug fixes for schedular table add_(remove) channel API's
- adds the sched_tbl_control flag to add/remove channel dynamically.
- This fixes the g_multi gadget issue.Signed-off-by: Ravi Babu
17 Apr, 2013
1 commit
-
This adds the function for AM335x SGX device registration using HWMOD APIs.
Also added is omap_device handle creation for SGX module.
This is required for supporting pm_runtime APIs in SGX driver.
This patch is required for 3.2 kernel only.Signed-off-by: Prathap M S
16 Apr, 2013
2 commits
-
Add support for rtc wakeup from standby by keeping RTC module
enabled during standby.RTC wakeup is corrected in the PG2.0 and hence it is supported
only on PG2.x boards.To test RTC wakeup use below command:
@ rtcwake -d /dev/rtc0 -m standby -s 5Signed-off-by: Vaibhav Hiremath
-
Add support for chip id detection of AM335x PG2.1 Silicon.
Currently omap3xxx_check_revision() detects PG1.0 and PG2.0,
so this patch extends it by adding PG2.1 Si support.Signed-off-by: Vaibhav Hiremath
04 Apr, 2013
12 commits
-
Currently coupld of instances where code checks only for
PG2.0, which requires change when we add PG2.1 Si support.So change the condition check from '==' to '>='.
Signed-off-by: Vaibhav Hiremath
-
The ADC needs to go through a proper initialization sequence after
resuming from suspend.Signed-off-by: Russ Dill
-
This reverts commit 478af139295b451c59eeba8f851654964321cbfe.
With a proper fix to this code, this is no longer neccessary.
Signed-off-by: Russ Dill
-
Allocating an extra byte is not necessary here. The driver will check
that the allocation is large enough to satisfy the IIO subsystem.Signed-off-by: Russ Dill
-
In the case that the FIFO threshold handler gets called when the
FIFO has not actually reached the threshold, the driver will pass
uninitialized memory to the IIO subsystem.In the past, this would occur due to bugs in the driver, those bugs
have been fixed. However, it is still a good idea to close this just
in case additional bugs in hardware or software exist.Signed-off-by: Russ Dill
-
If we fail to allocate a buffer, unmask the interrupt to allow a retry.
The interrupt handler will be re-run, and our workqueue rescheduled.
If we are able to allocate memory next time around, everything will
continue as normal, otherwise, we will eventually get an underrun.Before this patch, the driver would stop capturing without any
indication of error to the IIO subsystem or the user.Signed-off-by: Russ Dill
-
While not pulling out samples, the FIFO will fill up causing an
overrun event. Before starting up another continuous sample, clear that
event.Signed-off-by: Russ Dill
-
When an overrun occurs, the FIFO is cleared. If a FIFO threshold event
was pending, the data is now gone. Clear the threshold event when
handling an overrun (or underflow).Signed-off-by: Russ Dill
-
The threshold event handler is being called before the FIFO has
actually reached the threshold.The current code receives a FIFO threshold event, masks the interrupt,
clears the event, and schedules a workqueue. The workqueue is run, it
empties the FIFO, and unmasks the interrupt.In the above sequence, after the event is cleared, it immediately
retriggers since the FIFO remains beyond the threshold. When the IRQ is
unmasked, this triggered event generates another IRQ. However, as the
FIFO has just been emptied, it is likely to not contain enough samples.The waits to clear the event until the FIFO has actually been emptied,
in the workqueue. The unmasking and masking of the interrupt remains
unchanged.Signed-off-by: Russ Dill
-
If an overrun occurs, the threshold event is meaningless, handle
the overrun event first.Signed-off-by: Russ Dill
-
The driver is currently mishandling the IRQSTATUS register by peforming
a read/update/write cycle. The actual functionality of the register is as follows:Write 0 = No action.
Read 0 = No (enabled) event pending.
Read 1 = Event pending.
Write 1 = Clear (raw) event.By reading the status and writing it back, the driver is clearing
all pending events, not just the one indicated in the bitmask.Signed-off-by: Russ Dill
-
The driver is currently mishandling the IRQENABLE register. The driver
should write a 1 for bits it wishes to set, and a zero for bits it does not
wish to change. The read of the current register contents is not
necessary.Write 0 = No action.
Read 0 = Interrupt disabled (masked).
Read 1 = Interrupt enabled.
Write 1 = Enable interrupt.The current read/update/write method is currently not causing any
problems, but could cause confusion in the future.Signed-off-by: Russ Dill
07 Mar, 2013
1 commit
-
The current code does not enable all the input channels asked for.
For example if we want to read continuous data from 3 channels at a
time, the code only enables one channel.
Also the step configuration while switching from one shot to continuous,
configured the 1st input to the rest of the channels as well.
Hence in continuous mode voltage from 1st channel appears on all
the remaining channels. Fix the issue by configuring to correct input
channels.Signed-off-by: Patil, Rachna
Signed-off-by: Vaibhav Hiremath
01 Mar, 2013
9 commits
-
Touchscreen once enabled in standby needs to be disabled again.
Writing 0x02 will only re-enable touchscreen. Fix the same by writing
0x00 to the registers.Signed-off-by: Patil, Rachna
-
Since TSC is configured to use FIFO 0 to store the touch data,
enable FIFO 0 underflow and overflow interrupts, so that all states of
FIFO can be addressed.Signed-off-by: Patil, Rachna
-
Handle wakeup from TSC where in we could have data pending In FIFO
which needs to be flushed out.
Also make sure that we don't have any interrupts pending due to wakeup
from TSC.Signed-off-by: Patil, Rachna
-
The MFD device has 2 fifo's FIFO0 and FIFO1.
Previously these FIFO's were shared between touchscreen and ADC.
This led to a situation were in while using TSC, ADC interrupts were
also getting generated. Ideally this should not be the condition.
Hence TSC now has been updated to use FIFO 0 only to store touchscreen
samples.
By this we can even make sure that data between the clients is not lost
and corrupted.Signed-off-by: Patil, Rachna
-
The remove module and the error return path missed checks for buffer
management. Add the same in ADC driver.Signed-off-by: Patil, Rachna
-
ADC is ideally expected to work at a frequency of 3MHz.
The present code had a check, which returned error if the frequency
went below the threshold value. But since AM335x supports various
working frequencies, this check is not required.
Now the code just uses the internal ADC clock divider to set the ADC
frequency w.r.t the sys clock.Signed-off-by: Patil, Rachna
-
This line was added during debug, missed removing
fifo1count variable. Update the code.Signed-off-by: Patil, Rachna
-
The code did not have context save done on IRQ register bits
for the MFD device.
Also the control register bits after resume were loaded to the
default value. Now changes have been made to save both IRQ and control
register bits in MFD core.
In ADC client the mode in which ADC is operating has to store,
hence modify the step_config function to pass the current mode.Signed-off-by: Patil, Rachna
-
Since IRQ is a part of continuous mode feature, Enabling should also
take place when continuous data is asked for.
In default mode ADC is configured as one shot, IRQ need not be enabled
if one wants to use one shot mode only.Signed-off-by: Patil, Rachna
28 Feb, 2013
2 commits
-
The timer TISTAT register is a read-only register and therefore restoring the
context is not needed. Furthermore, the context of TISTAT is never saved
anywhere in the current code. The TISTAT register is read-only for all OMAP
devices from OMAP1 to OMAP4. OMAP5 timers no longer have this register.[akshay.s@ti.com: Observed a crash when adding support for the
DMTIMER wakeup for standby mode.
This crash occurred during context restore when restoring values
to TIOCP_CFG and TISTAT registers in the function
omap_timer_restore_context().
This issue was fixed in the mainline. So backporting it to fix the same]Signed-off-by: Jon Hunter
Acked-by: Santosh Shilimkar
Signed-off-by: ShankarMurthy, Akshay
Signed-off-by: Satyanarayana Sandhya -
Since hwmod framework now manages sysconfig context save/restore
there is no more need to touch this register in driver. Hence,
remove restore of sysconfig register in omap_timer_restore_context.
This was causing incorrect context restore of sysconfig register.[akshay.s@ti.com: Observed a warning when adding support for the
DMTIMER wakeup for standby mode.WARNING: at arch/arm/plat-omap/dmtimer.c:77
omap_dm_timer_write_reg+0x6c/0x74()This issue was fixed in the mainline. So backporting this patch
to fix the same]Signed-off-by: Tarun Kanti DebBarma
Acked-by: Santosh Shilimkar
Acked-by: Kevin Hilman
Signed-off-by: Tony Lindgren
Signed-off-by: ShankarMurthy, Akshay
Signed-off-by: Satyanarayana Sandhya
22 Feb, 2013
10 commits
-
Wakeup from standby mode is supported via GPIO method where peripherals
can be configured as gpios while entering standby and wakeup happens
through gpio interrupt.This patch provides an method to handle the same through a debugfs
approach.User should know the IO pads to be configured and the trigger value to
be written to them. The PAD offset & gpio configuration depends mainly
on the wake-up source selected.Inside /omap_mux/board/ (Directory where these
features are available)standby_gpio_pad_conf
standby_gpio_pad_conf
Expected input: pinmux_name=,
Pin-mux name that is to be setup as gpio during standby
suspend with gpio interrupt trigger mode as per field
with value .
Pin-mux name should be in "mode0_name.mode7_function_name"
format. Internally the pin-mux offset is calculated from the
pin-mux names. Invalid pin-mux names and values are ignored.
Remember,
- No spaces anywhere in the input.
- field is a must
- field is a must and must be one of "rising",
"falling"Example:
echo uart0_rxd.gpio1_10=0x27,rising > standby_gpio_pad_conf
sets up uart0_rxd.gpio1_10 for gpio mode with interrupt trigger
as rising and pin-mux value as 0x27 when entering standby mode.During standby, If "standby_gpio_pad_conf" is configured, then the
respective pin-mux value is saved, the gpio pin-mux mode is selected
for the pin. Relevant gpio settings & interrupts are configured.
During resume, the original values saved are restored back.User should make sure that the mux mode exists for the selected pin-mux
and the trigger is proper.When here a duplicate header include (linux/io.h> is removed
Signed-off-by: Hebbar Gururaja
-
Keep GPIO0 module enabled during standby to support
GPIO0 io-pads to wakeup the system from standby mode.Signed-off-by: Satyanarayana Sandhya
-
This patch enables touch screen wakeup from standby by keeping
TSC module enabled during standby.Signed-off-by: Satyanarayana Sandhya
-
This patch adds support for USB remote wakeup from standby mode.
This has been tested as below.
- Connect a USB mouse to EVM.
- Run the following two commands
echo enabled > /sys/bus/usb/devices/1-1/power/wakeup
echo enabled > /sys/bus/usb/devices/usb1/power/wakeup
- Run "echo standby > /sys/power/state"
- Click the mouse to resume from standby
- Also tested for a keyboard key press.Suggested-by: Vaibhav Bedia
Signed-off-by: Satyanarayana Sandhya -
This patch adds basic support for Standby mode
wherein SDRAM is placed in self-refresh,
PLLs are put in bypass and MPU is power gated.
GFX power domain is under user control,
PER power domain is ON.Wakeup happens via MPU_WAKE interrupt to Cortex-M3.
To enter standby mode, run
"echo standby > /sys/power/state"Wakeup from standby mode is through gpio.
Signed-off-by: Satyanarayana Sandhya
-
The ADC driver did not check for FIFO1 underflow and overrun
conditions. Add support to handle these conditions.
TSC/ADC module does not recover from this state by itself,
a module reset is required.Signed-off-by: Patil, Rachna
-
ADC reports few wrong/erroneous data on read in continuous mode.
Providing an appropriate delay so that ADC has sufficient time to
sequence data present on the input channel.Signed-off-by: Patil, Rachna
-
This patch adds context loss related platform data for mcasp.
This allows mcasp driver to check for the loss of context depending upon
the status it will decide whether to restore or not.Signed-off-by: ShankarMurthy, Akshay
-
Context restore is not required when there is no loss of context which
is the case with standby.This patch adds support to check for loss of context and context restore
is done if there has been a loss of context.This reduces the overall resume latency of Standby.
Signed-off-by: ShankarMurthy, Akshay
-
This patch adds context loss related platform data for lcd.
This allows lcd driver to check for the loss of context and
depending upon the status it will decide whether to restore or not.Signed-off-by: ShankarMurthy, Akshay