#
64464ae8 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - send all MT-B slots in one input report
Each interrupt contains information for all contacts with changing properties. Process all of this information at once, and send it all
Input: atmel_mxt_ts - send all MT-B slots in one input report
Each interrupt contains information for all contacts with changing properties. Process all of this information at once, and send it all in a a single input report (ie input events ending in EV_SYN/SYN_REPORT).
This patch was tested using an MXT224E.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
cb159115 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - use T9 reportid range to init number of mt slots
Atmel mxt devices can report one finger for each T9 reportid. Therefore, this range can be used to report the max number of MT-
Input: atmel_mxt_ts - use T9 reportid range to init number of mt slots
Atmel mxt devices can report one finger for each T9 reportid. Therefore, this range can be used to report the max number of MT-B slots to userspace instead of assuming a fixed 10.
Note that mxt_initialized() must complete early, since the input_dev properties now depend on values in the object table.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
04a79181 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - refactor reportid checking in mxt_interrupt
This small refactor is in preparation for checking more report types in the mxt_interrupt message processing loop.
Signed-off-by: D
Input: atmel_mxt_ts - refactor reportid checking in mxt_interrupt
This small refactor is in preparation for checking more report types in the mxt_interrupt message processing loop.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
333e5a9a |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - cache T9 reportid range when reading object table
Streamline interrupt processing by caching the T9 reportid range when first reading the object table.
In the process, refacto
Input: atmel_mxt_ts - cache T9 reportid range when reading object table
Streamline interrupt processing by caching the T9 reportid range when first reading the object table.
In the process, refactor reading the object descriptor table. First, since the object_table entries are now exactly the same layout in device memory and in the driver, allocate an appropriately sized array and fetch the entire table directly into it in a single i2c transaction. Since a 6 byte table object requires 10 bytes to read, doing this dramatically reduces overhead.
Note: The cached T9 reportid's are initialized to 0, which is an invalid reportid. Thus, the checks in the interrupt handler will always fail for devices that do not support the T9 object. Therefore, after doing a firmware update, the old object table is destroyed and all cached object values are reset to 0, before reading the new object table, in case the new firmware does not have the old objects.
This patch tested on an MXT224E.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
7d4fa100 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - refactor when and how object table is freed
The Object Table is freed in three cases: 1) When the driver is being removed. 2) In the error path of mxt_initialize(). 3) Ju
Input: atmel_mxt_ts - refactor when and how object table is freed
The Object Table is freed in three cases: 1) When the driver is being removed. 2) In the error path of mxt_initialize(). 3) Just after a firmware update, when a new object table is about to be read.
For cases 2 & 3, the driver is not immediately unloaded, so this patch refactors these cases to use a common cleanup function. It also refactors the mxt_initialize error paths to ensure that this cleanup happens.
Note: mxt_update_fw_store() does not handle errors during mxt_initialize(). A proposed fix for this is in a subsequent patchset.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
b2e459b8 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - add detail to touchevent debug message
Update the debug message: * print inidividual status bits * print the pressure value * use '%u' for unsigned quantities
Signed-off-by
Input: atmel_mxt_ts - add detail to touchevent debug message
Update the debug message: * print inidividual status bits * print the pressure value * use '%u' for unsigned quantities
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
fba5bc31 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - simplify event reporting
Instead of carrying around per-finger state in the driver instance, just report each finger as it arrives to the input layer, and let the input layer (
Input: atmel_mxt_ts - simplify event reporting
Instead of carrying around per-finger state in the driver instance, just report each finger as it arrives to the input layer, and let the input layer (evdev) hold the event state (which it does anyway).
Note: this driver does not really do MT-B properly. Each input report (a group of input events followed by a SYN_REPORT) only contains data for a single contact. When multiple fingers are present on a device, each is properly reported in its own MT_SLOT. However, there is only ever one MT_SLOT per SYN_REPORT. This is fixed in a subsequent patch.
This patch was tested with an mXT224E.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
b19fc9ec |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - add sysfs entries to read fw and hw version
Make firmware and hardware version strings available to userspace. This is useful, for example, to allow a userspace program to impl
Input: atmel_mxt_ts - add sysfs entries to read fw and hw version
Make firmware and hardware version strings available to userspace. This is useful, for example, to allow a userspace program to implement a firwmare update policy.
Change-Id: I1eddb4bbf5f3f9ae6947a8528598973ddead18cf Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
e0e0269f |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - update driver ID info logging
Print unsigned values as '%u'. Also, parse and print the firmware version in its canonical format, as suggested by Nick Dyer.
Signed-off-by: Dani
Input: atmel_mxt_ts - update driver ID info logging
Print unsigned values as '%u'. Also, parse and print the firmware version in its canonical format, as suggested by Nick Dyer.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
23003a84 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - read ID information block in one i2c transaction
Reading the whole info block in one i2c transaction speeds up driver probe significantly, especially on slower i2c busses.
Sig
Input: atmel_mxt_ts - read ID information block in one i2c transaction
Reading the whole info block in one i2c transaction speeds up driver probe significantly, especially on slower i2c busses.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
cf94bc09 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - optimize writing of object table entries
Write each object using a single bulk i2c write transfer.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Joonyoung Sh
Input: atmel_mxt_ts - optimize writing of object table entries
Write each object using a single bulk i2c write transfer.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
9638ab7c |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - add variable length __mxt_write_reg
The i2c bus requires 4 bytes to do a 1-byte write (1 byte i2c address + 2 byte offset + 1 byte data).
By taking a length with writes, the d
Input: atmel_mxt_ts - add variable length __mxt_write_reg
The i2c bus requires 4 bytes to do a 1-byte write (1 byte i2c address + 2 byte offset + 1 byte data).
By taking a length with writes, the driver can amortize transaction overhead by performing larger transactions where appropriate.
This patch just sets up the new API. Later patches refactor writes to take advantage of the larger transactions.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
771733e3 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - return errors from i2c layer
The i2c layer can report a variety of errors, including -ENXIO for an i2c NAK. Instead of treating them all as -EIO, pass the actual i2c layer err
Input: atmel_mxt_ts - return errors from i2c layer
The i2c layer can report a variety of errors, including -ENXIO for an i2c NAK. Instead of treating them all as -EIO, pass the actual i2c layer error up to the caller.
However, still report as -EIO the unlikely case that a transaction was partially completed, and no error message was returned from i2c_*().
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
794eb67e |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - print all instances when dumping objects
For objects with multiple instances, dump them all, prepending each with its "Instance #".
[rydberg@euromail.se: break out mxt_show_in
Input: atmel_mxt_ts - print all instances when dumping objects
For objects with multiple instances, dump them all, prepending each with its "Instance #".
[rydberg@euromail.se: break out mxt_show_instance()] Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
91630955 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - print less overhead when dumping objects
Conserve limited (PAGE_SIZE) sysfs output buffer space by only showing readable objects and not printing the object's index, which is n
Input: atmel_mxt_ts - print less overhead when dumping objects
Conserve limited (PAGE_SIZE) sysfs output buffer space by only showing readable objects and not printing the object's index, which is not useful to userspace.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
43a91d51 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - optimize reading objects in object sysfs entry
Read each object in a single i2c transaction instead of byte-by-byte
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-o
Input: atmel_mxt_ts - optimize reading objects in object sysfs entry
Read each object in a single i2c transaction instead of byte-by-byte
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
9c67b789 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - use scnprintf for object sysfs entry
Using scnprintf() is a cleaner way to ensure that we don't overwrite the PAGE_SIZE sysfs output buffer.
Signed-off-by: Daniel Kurtz <djkur
Input: atmel_mxt_ts - use scnprintf for object sysfs entry
Using scnprintf() is a cleaner way to ensure that we don't overwrite the PAGE_SIZE sysfs output buffer.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
55d6867f |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - don't read T5 when dumping objects
T5 is the message processor object. Reading it will only have two outcomes, neither of which is particularly useful: 1) the message count d
Input: atmel_mxt_ts - don't read T5 when dumping objects
T5 is the message processor object. Reading it will only have two outcomes, neither of which is particularly useful: 1) the message count decrements, and a valid message will be lost 2) an invalid message will be read (reportid == 0xff)
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
63990038 |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - warn if sysfs could not be created
If sysfs entry creation fails, the driver is still usable, so don't just abort probe. Just warn and continue.
Signed-off-by: Daniel Kurtz <
Input: atmel_mxt_ts - warn if sysfs could not be created
If sysfs entry creation fails, the driver is still usable, so don't just abort probe. Just warn and continue.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
e1e1658d |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - detect OOM when creating mt slots
Hopefully this new code path will never be used, but better safe than sorry...
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-
Input: atmel_mxt_ts - detect OOM when creating mt slots
Hopefully this new code path will never be used, but better safe than sorry...
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
c2ef9a1a |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - use client name for irq
The atmel_mxt_ts driver can support multiple devices simultaneously. Use the i2c_client name instead of the driver name when requesting an interrupt to
Input: atmel_mxt_ts - use client name for irq
The atmel_mxt_ts driver can support multiple devices simultaneously. Use the i2c_client name instead of the driver name when requesting an interrupt to make the different interrupts distinguishable in /proc/interrupts and top.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
#
ec02ac2b |
| 28-Jun-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - derive phys from i2c client adapter
This allows userspace to more easily distinguish which bus a particular atmel_mxt_ts device is attached to.
The resulting phys will be some
Input: atmel_mxt_ts - derive phys from i2c client adapter
This allows userspace to more easily distinguish which bus a particular atmel_mxt_ts device is attached to.
The resulting phys will be something like: i2c-1-0067/input0
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
show more ...
|
Revision tags: v3.5-rc4, v3.5-rc3, v3.5-rc2, v3.5-rc1, v3.4, v3.4-rc7 |
|
#
6ee3dbf9 |
| 09-May-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - dump each message on just 1 line
Helps ensure all bytes for a single message together in the system log.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Joonyo
Input: atmel_mxt_ts - dump each message on just 1 line
Helps ensure all bytes for a single message together in the system log.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Acked-by: Nick Dyer <nick.dyer@itdev.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
show more ...
|
#
822115ff |
| 09-May-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - do not read extra (checksum) byte
atmel_mxt devices will send a checksum byte at the end of a message if the MSB of the object address is set. However, since this driver does n
Input: atmel_mxt_ts - do not read extra (checksum) byte
atmel_mxt devices will send a checksum byte at the end of a message if the MSB of the object address is set. However, since this driver does not set this bit, the checksum byte isn't actually sent, so don't even try to read it.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
show more ...
|
#
d1ff320f |
| 09-May-2012 |
Daniel Kurtz <djkurtz@chromium.org> |
Input: atmel_mxt_ts - verify object size in mxt_write_object
Don't allow writing past the length of an object.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dto
Input: atmel_mxt_ts - verify object size in mxt_write_object
Don't allow writing past the length of an object.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
show more ...
|