linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
@ 2014-12-17  9:55 Dudley Du
  2014-12-17 10:03 ` Dudley Du
  0 siblings, 1 reply; 12+ messages in thread
From: Dudley Du @ 2014-12-17  9:55 UTC (permalink / raw)
  To: dmitry.torokhov, jmmahler, rydberg
  Cc: bleung, David Solda, linux-input, linux-kernel

V16 patches have below updates, details of other updates see history list:
1) Fix all miss-spelling and space issue.
2) Rename variables and functions with much more clearer names.
3) Initialize and document tries near where it will be used.
4) Modify cmd buffer to struct for more descriptive way.


This patch series is aimed to re-design the cyapa driver to support
old gen3 trackpad devices and new gen5 trackpad devices in one
cyapa driver, it's for easily productions support based on
customers' requirements. And add sysfs functions and interfaces
supported that required by users and customers.

Since the earlier gen3 and the latest gen5 trackpad devices using
two different chipsets, and have different protocols and interfaces,
so if supported these two type trackpad devices in two different drivers,
then it will be difficult to manage productions and later firmware updates.
e.g.: It will cause customer don't know which one trackpad device firmware
image to use and update when it has been used and integrated
in same one productions, so here we support these two trackpad
devices in same on driver.

The new design cyapa driver contains:
cyapa.c - the core of the re-design, supply interfaces and
functions to system and read trackpad devices.
cyapa.h - header file including macros and data structure definitions.
cyapa_gen3.c - functions support for gen3 trackpad devices,
cyapa_gen5.c - functions support for gen5 trackpad devices.

Beside this introduction patch, it has 12 patches listed as below.
For these patches, each one is patched based on previous one.

patch 1/12: re-design cyapa driver with core functions and interface
to support multi-type trackpad devices.

patch 2/12: add gen5 trackpad device basic functions support in the
re-design cyapa driver.

patch 3/12: add power management interfaces support for the device.

patch 4/12: add runtime power management interfaces support for the device.

patch 5/12: add sysfs interfaces supported in the cyapa driver.
Including read firmware version, get production ID, read baseline,
re-calibrate trackpad baselines and do trackpad firmware update.

patch 6/12: add gen3 trackpad device's firmware update function support.

patch 7/12: add gen3 trackpad device's read baseline function support.

patch 8/12: add gen3 trackpad device's force re-calibrate function support.

patch 9/12: add gen5 trackpad device's firmware update function support.

patch 10/12: add gen5 trackpad device's read baseline function support.

patch 11/12: add gen5 trackpad device's force re-calibrate function.

patch 12/12: add acpi device id support.


History patch series modifications list:
V15 patches have below main updates compared with v14 patches:
1) Fix all warning errors of sparse tool when running with "make C=1".
2) Change variable name "unique_str" to "product_id" for clearer meanings.
3) Update cyapa_i2c_write function to return error directly when length > 31.

V14 patches have below main updates compared with v13 patches:
1) Correct 9 miss spelling issues of "bufferred" to "buffered".
2) Fix the upgrade issue of removing MOUSE_CYAPA config when make oldconfig
   by replase "depends on I2C && CRC_ITU_T" with
	"depends on I2C"
	"select CRC_ITU_T"
   in patch 9.

V13 patches have below main updates compared with v12 patches:
1) Remove all debugfs interface, including read_fw and raw_data interfaces.
2) This patches are made based linux next-20141208.

V12 patches have below main updates compared with v11 patches:
1) Add check that when TP is detected but not operational, do not exit driver
   immediately, but wait and export the update_fw interface for recovering.
2) Re-arrange the function codes, remove unnesseary protype definitions in
   the header file.

V11 patches have below main updates compared with v10 patches:
1) Add add acpi device id supported for old gen3 and new gen5 trackpad devices.
2) Fix the unable to update firmware issue when cyapa_open is not called
   which means the irq for firwmare update process is not enabled. This fix
   by checking if the irq is enabled, if not then enable irq before start to
   do firmware update.

V10 patches have below main updates compared with v9 patches:
1) Modify code to following kernel code style.
   e.g.: correct to use error as return name when there is only error path,
   and fix the checkpatch.sh wanting in the driver.
2) Remove cyapa_remove method and use input open and close interface to
   following device resouse management infrastructure.
3) Modify cyapa_detect method to return tristate issue to make the return value
   much more consistent and clear.
4) Use platform supplied functions as possible instead of driver
   specific rewritten version.

V9 patches have below updates compared with v8 patches:
1) Removed all async thread stuff from the driver.
2) Split driver into 18 patches for each function change one patch.

V8 patches have below updates compared with v7 patches:
1) [PATCH v8 01/13] - Remove the async thread for device detect in
   probe routine, now the device detect process is completely done within
   the device probe routine.
2) [PATCH v8 01/13] - Split the irq cmd hander function to separated
   function cyapa_default_irq_cmd_handler() and set it to interface
   cyapa_default_ops.irq_cmd_handler.
3) [PATCH v8 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
   to avoid miss-enter when device protocol is still in detecting.

V7 patches have below updates compared with v6 patches:
1) [PATCH v7 01/13] - Split the irq cmd hander function to separated
   function cyapa_default_irq_cmd_handler() and set it to interface
   cyapa_default_ops.irq_cmd_handler.
2) [PATCH v7 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
   to avoid miss-enter when device protocol is still in detecting.


V6 patches have below updates compared with v5 patches:
1) Remove patch 14 of the lid filtering from the cyapa driver.

V5 patches have below updates compared with v4 patches:
1) Uses get_device()/put_device() instead of kobject_get()/kobject_put();
2) Fix memories freed before debugfs entries issue;
3) Make cyapa_debugs_root valid in driver module level
   in module_init()/moudle_exit() ;
4) Fix i2c_transfer() may return partial transfer issues.
5) Add cyapa->removed flag to avoid detecting thread may still running
   when driver module is removed.
6) Fix the meanings of some comments and return error code not clear issue.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-17  9:55 [PATCH v16 00/12] input: cyapa: instruction of cyapa patches Dudley Du
@ 2014-12-17 10:03 ` Dudley Du
  0 siblings, 0 replies; 12+ messages in thread
From: Dudley Du @ 2014-12-17 10:03 UTC (permalink / raw)
  To: dmitry.torokhov, jmmahler, rydberg
  Cc: bleung, 'David Solda', linux-input, linux-kernel, Dudley Du

Jmmahler,

Thank you very much for your review and comments based on v15 patches.
I have modified all points based on your comments and generate this v16 patches.
Could you please help review again when have time.

By the way, since gmail is blocked again in my side, so I use private email
dudlx@outlook.com instead to send these patches manually.

Thanks,
Dudley

> -----Original Message-----
> From: Dudley Du [mailto:dudlx@outlook.com]
> Sent: 2014年12月17日 17:55
> To: dmitry.torokhov@gmail.com; jmmahler@gmail.com; rydberg@euromail.se
> Cc: bleung@google.com; David Solda; linux-input@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
> 
> V16 patches have below updates, details of other updates see history list:
> 1) Fix all miss-spelling and space issue.
> 2) Rename variables and functions with much more clearer names.
> 3) Initialize and document tries near where it will be used.
> 4) Modify cmd buffer to struct for more descriptive way.
> 
> 
> This patch series is aimed to re-design the cyapa driver to support
> old gen3 trackpad devices and new gen5 trackpad devices in one
> cyapa driver, it's for easily productions support based on
> customers' requirements. And add sysfs functions and interfaces
> supported that required by users and customers.
> 
> Since the earlier gen3 and the latest gen5 trackpad devices using
> two different chipsets, and have different protocols and interfaces,
> so if supported these two type trackpad devices in two different drivers,
> then it will be difficult to manage productions and later firmware updates.
> e.g.: It will cause customer don't know which one trackpad device firmware
> image to use and update when it has been used and integrated
> in same one productions, so here we support these two trackpad
> devices in same on driver.
> 
> The new design cyapa driver contains:
> cyapa.c - the core of the re-design, supply interfaces and
> functions to system and read trackpad devices.
> cyapa.h - header file including macros and data structure definitions.
> cyapa_gen3.c - functions support for gen3 trackpad devices,
> cyapa_gen5.c - functions support for gen5 trackpad devices.
> 
> Beside this introduction patch, it has 12 patches listed as below.
> For these patches, each one is patched based on previous one.
> 
> patch 1/12: re-design cyapa driver with core functions and interface
> to support multi-type trackpad devices.
> 
> patch 2/12: add gen5 trackpad device basic functions support in the
> re-design cyapa driver.
> 
> patch 3/12: add power management interfaces support for the device.
> 
> patch 4/12: add runtime power management interfaces support for the device.
> 
> patch 5/12: add sysfs interfaces supported in the cyapa driver.
> Including read firmware version, get production ID, read baseline,
> re-calibrate trackpad baselines and do trackpad firmware update.
> 
> patch 6/12: add gen3 trackpad device's firmware update function support.
> 
> patch 7/12: add gen3 trackpad device's read baseline function support.
> 
> patch 8/12: add gen3 trackpad device's force re-calibrate function support.
> 
> patch 9/12: add gen5 trackpad device's firmware update function support.
> 
> patch 10/12: add gen5 trackpad device's read baseline function support.
> 
> patch 11/12: add gen5 trackpad device's force re-calibrate function.
> 
> patch 12/12: add acpi device id support.
> 
> 
> History patch series modifications list:
> V15 patches have below main updates compared with v14 patches:
> 1) Fix all warning errors of sparse tool when running with "make C=1".
> 2) Change variable name "unique_str" to "product_id" for clearer meanings.
> 3) Update cyapa_i2c_write function to return error directly when length > 31.
> 
> V14 patches have below main updates compared with v13 patches:
> 1) Correct 9 miss spelling issues of "bufferred" to "buffered".
> 2) Fix the upgrade issue of removing MOUSE_CYAPA config when make oldconfig
>    by replase "depends on I2C && CRC_ITU_T" with
> 	"depends on I2C"
> 	"select CRC_ITU_T"
>    in patch 9.
> 
> V13 patches have below main updates compared with v12 patches:
> 1) Remove all debugfs interface, including read_fw and raw_data interfaces.
> 2) This patches are made based linux next-20141208.
> 
> V12 patches have below main updates compared with v11 patches:
> 1) Add check that when TP is detected but not operational, do not exit driver
>    immediately, but wait and export the update_fw interface for recovering.
> 2) Re-arrange the function codes, remove unnesseary protype definitions in
>    the header file.
> 
> V11 patches have below main updates compared with v10 patches:
> 1) Add add acpi device id supported for old gen3 and new gen5 trackpad
devices.
> 2) Fix the unable to update firmware issue when cyapa_open is not called
>    which means the irq for firwmare update process is not enabled. This fix
>    by checking if the irq is enabled, if not then enable irq before start to
>    do firmware update.
> 
> V10 patches have below main updates compared with v9 patches:
> 1) Modify code to following kernel code style.
>    e.g.: correct to use error as return name when there is only error path,
>    and fix the checkpatch.sh wanting in the driver.
> 2) Remove cyapa_remove method and use input open and close interface to
>    following device resouse management infrastructure.
> 3) Modify cyapa_detect method to return tristate issue to make the return
value
>    much more consistent and clear.
> 4) Use platform supplied functions as possible instead of driver
>    specific rewritten version.
> 
> V9 patches have below updates compared with v8 patches:
> 1) Removed all async thread stuff from the driver.
> 2) Split driver into 18 patches for each function change one patch.
> 
> V8 patches have below updates compared with v7 patches:
> 1) [PATCH v8 01/13] - Remove the async thread for device detect in
>    probe routine, now the device detect process is completely done within
>    the device probe routine.
> 2) [PATCH v8 01/13] - Split the irq cmd hander function to separated
>    function cyapa_default_irq_cmd_handler() and set it to interface
>    cyapa_default_ops.irq_cmd_handler.
> 3) [PATCH v8 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
>    to avoid miss-enter when device protocol is still in detecting.
> 
> V7 patches have below updates compared with v6 patches:
> 1) [PATCH v7 01/13] - Split the irq cmd hander function to separated
>    function cyapa_default_irq_cmd_handler() and set it to interface
>    cyapa_default_ops.irq_cmd_handler.
> 2) [PATCH v7 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
>    to avoid miss-enter when device protocol is still in detecting.
> 
> 
> V6 patches have below updates compared with v5 patches:
> 1) Remove patch 14 of the lid filtering from the cyapa driver.
> 
> V5 patches have below updates compared with v4 patches:
> 1) Uses get_device()/put_device() instead of kobject_get()/kobject_put();
> 2) Fix memories freed before debugfs entries issue;
> 3) Make cyapa_debugs_root valid in driver module level
>    in module_init()/moudle_exit() ;
> 4) Fix i2c_transfer() may return partial transfer issues.
> 5) Add cyapa->removed flag to avoid detecting thread may still running
>    when driver module is removed.
> 6) Fix the meanings of some comments and return error code not clear issue.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-22  2:39       ` Dmitry Torokhov
@ 2014-12-22  2:56         ` Dudley Du
  0 siblings, 0 replies; 12+ messages in thread
From: Dudley Du @ 2014-12-22  2:56 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Jeremiah Mahler, rydberg, bleung, David Solda, linux-input, linux-kernel

Got it.
Thanks, Dmitry.

Dudley

> -----Original Message-----
> From: Dmitry Torokhov [mailto:dmitry.torokhov@gmail.com]
> Sent: 2014?12?22? 10:40
> To: Dudley Du
> Cc: Jeremiah Mahler; rydberg@euromail.se; bleung@google.com; David Solda;
> linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
>
> Hi Dudley,
>
> On Mon, Dec 22, 2014 at 02:09:36AM +0000, Dudley Du wrote:
> > Thanks, Dmitry and Jeremiah,
> >
> > I reproduced this issue in my side when putting fingers on trackpad when system
> booting up.
> > It only happened on gen3 trackpad device.
> > The root cause is, for gen3 TP, the cyapa->ops->sort_empty_output_data is not
> set, so when cyapa->input is not set,
> > the interrupt process should be passed, but since the logica error, it's not, so this
> issue happen.
> >
> > The fix code should be as below.
> > I will correct it and resubmited the patches.
>
> Please hold off resubmitting the patches just yet, let me go over the
> last version you posted.
>
> Thanks!
>
>
> --
> Dmitry

This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-22  2:09     ` Dudley Du
@ 2014-12-22  2:39       ` Dmitry Torokhov
  2014-12-22  2:56         ` Dudley Du
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Torokhov @ 2014-12-22  2:39 UTC (permalink / raw)
  To: Dudley Du
  Cc: Jeremiah Mahler, rydberg, bleung, David Solda, linux-input, linux-kernel

Hi Dudley,

On Mon, Dec 22, 2014 at 02:09:36AM +0000, Dudley Du wrote:
> Thanks, Dmitry and Jeremiah,
> 
> I reproduced this issue in my side when putting fingers on trackpad when system booting up.
> It only happened on gen3 trackpad device.
> The root cause is, for gen3 TP, the cyapa->ops->sort_empty_output_data is not set, so when cyapa->input is not set,
> the interrupt process should be passed, but since the logica error, it's not, so this issue happen.
> 
> The fix code should be as below.
> I will correct it and resubmited the patches.

Please hold off resubmitting the patches just yet, let me go over the
last version you posted.

Thanks!


-- 
Dmitry

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-20  7:31   ` Dmitry Torokhov
@ 2014-12-22  2:09     ` Dudley Du
  2014-12-22  2:39       ` Dmitry Torokhov
  0 siblings, 1 reply; 12+ messages in thread
From: Dudley Du @ 2014-12-22  2:09 UTC (permalink / raw)
  To: Dmitry Torokhov, Jeremiah Mahler, rydberg, bleung, David Solda,
	linux-input, linux-kernel

Thanks, Dmitry and Jeremiah,

I reproduced this issue in my side when putting fingers on trackpad when system booting up.
It only happened on gen3 trackpad device.
The root cause is, for gen3 TP, the cyapa->ops->sort_empty_output_data is not set, so when cyapa->input is not set,
the interrupt process should be passed, but since the logica error, it's not, so this issue happen.

The fix code should be as below.
I will correct it and resubmited the patches.

Code to fix this issue.
@@ -585,9 +585,10 @@ static irqreturn_t cyapa_irq(int irq, void *dev_id)
        /* Interrupt event maybe from trackpad device input reporting. */
        if (cont && cyapa->ops->irq_handler) {
                /* Still in probling or in firware image udpating or reading. */
-               if (!cyapa->input && cyapa->ops->sort_empty_output_data) {
-                       cyapa->ops->sort_empty_output_data(cyapa,
-                               NULL, NULL, NULL);
+               if (!cyapa->input) {
+                       if (cyapa->ops->sort_empty_output_data)
+                               cyapa->ops->sort_empty_output_data(cyapa,
+                                       NULL, NULL, NULL);
                        goto out;
                }

Thanks,
Dudley


> -----Original Message-----
> From: Dmitry Torokhov [mailto:dmitry.torokhov@gmail.com]
> Sent: 2014?12?20? 15:32
> To: Jeremiah Mahler; Dudley Du; rydberg@euromail.se; bleung@google.com;
> David Solda; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
>
> On Fri, Dec 19, 2014 at 11:15:33PM -0800, Jeremiah Mahler wrote:
> > Dudley,
> >
> > On Thu, Dec 18, 2014 at 06:00:44PM +0800, Dudley Du wrote:
> > > V16 patches have below updates, details of other updates see history list:
> > [...]
> >
> > This version has problems.  I am getting an oops (below) and then things
> > quit working and usually my machine hangs.
> >
> > [    2.388284] input: HDA Intel PCH Headphone as
> /devices/pci0000:00/0000:00:1b.0/sound/card1/input10
> > [    2.412938] FS-Cache: Netfs 'nfs' registered for caching
> > [    2.427645] [drm] Initialized i915 1.6.0 20141121 for 0000:00:02.0 on minor 0
> > [    2.428320] __add_probed_i2c_device failed to register device 1-4a
> > [    2.428331] platform chromeos_laptop: Driver chromeos_laptop requests
> probe deferral
> > [    2.429126] fbcon: inteldrmfb (fb0) is primary device
> > [    2.449066] BUG: unable to handle kernel NULL pointer dereference at
> 0000000000000160
> > [    2.449073] IP: [<ffffffff813f7b2b>] input_mt_sync_frame+0xb/0x60
>
> Sounds like we got an interrupts before we had a chance to initialize
> input device...
>
> Thanks.
>
> --
> Dmitry

This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-20  7:15 ` Jeremiah Mahler
@ 2014-12-20  7:31   ` Dmitry Torokhov
  2014-12-22  2:09     ` Dudley Du
  0 siblings, 1 reply; 12+ messages in thread
From: Dmitry Torokhov @ 2014-12-20  7:31 UTC (permalink / raw)
  To: Jeremiah Mahler, Dudley Du, rydberg, bleung, dso, linux-input,
	linux-kernel

On Fri, Dec 19, 2014 at 11:15:33PM -0800, Jeremiah Mahler wrote:
> Dudley,
> 
> On Thu, Dec 18, 2014 at 06:00:44PM +0800, Dudley Du wrote:
> > V16 patches have below updates, details of other updates see history list:
> [...]
> 
> This version has problems.  I am getting an oops (below) and then things
> quit working and usually my machine hangs.
> 
> [    2.388284] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input10
> [    2.412938] FS-Cache: Netfs 'nfs' registered for caching
> [    2.427645] [drm] Initialized i915 1.6.0 20141121 for 0000:00:02.0 on minor 0
> [    2.428320] __add_probed_i2c_device failed to register device 1-4a
> [    2.428331] platform chromeos_laptop: Driver chromeos_laptop requests probe deferral
> [    2.429126] fbcon: inteldrmfb (fb0) is primary device
> [    2.449066] BUG: unable to handle kernel NULL pointer dereference at 0000000000000160
> [    2.449073] IP: [<ffffffff813f7b2b>] input_mt_sync_frame+0xb/0x60

Sounds like we got an interrupts before we had a chance to initialize
input device...

Thanks.

-- 
Dmitry

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-18 10:00 Dudley Du
  2014-12-18 11:06 ` Dudley Du
@ 2014-12-20  7:15 ` Jeremiah Mahler
  2014-12-20  7:31   ` Dmitry Torokhov
  1 sibling, 1 reply; 12+ messages in thread
From: Jeremiah Mahler @ 2014-12-20  7:15 UTC (permalink / raw)
  To: Dudley Du
  Cc: dmitry.torokhov, rydberg, bleung, dso, linux-input, linux-kernel

Dudley,

On Thu, Dec 18, 2014 at 06:00:44PM +0800, Dudley Du wrote:
> V16 patches have below updates, details of other updates see history list:
[...]

This version has problems.  I am getting an oops (below) and then things
quit working and usually my machine hangs.

[    2.388284] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card1/input10
[    2.412938] FS-Cache: Netfs 'nfs' registered for caching
[    2.427645] [drm] Initialized i915 1.6.0 20141121 for 0000:00:02.0 on minor 0
[    2.428320] __add_probed_i2c_device failed to register device 1-4a
[    2.428331] platform chromeos_laptop: Driver chromeos_laptop requests probe deferral
[    2.429126] fbcon: inteldrmfb (fb0) is primary device
[    2.449066] BUG: unable to handle kernel NULL pointer dereference at 0000000000000160
[    2.449073] IP: [<ffffffff813f7b2b>] input_mt_sync_frame+0xb/0x60
[    2.449075] PGD 0 
[    2.449077] Oops: 0000 [#1] SMP 
[    2.449112] Modules linked in: ath9k_hw auth_rpcgss oid_registry nfs_acl nfs ath mac80211 lockd i915 tpm_infineon grace cyapatp(+) crc_itu_t fscache iTCO_wdt sunrpc iTCO_vendor_support crct10dif_pclmul crc32_pclmul crc32c_intel cfg80211 chromeos_laptop ghash_clmulni_intel cryptd snd_hda_codec_realtek snd_hda_codec_generic i2c_algo_bit snd_hda_intel rfkill snd_hda_controller xhci_pci evdev snd_hda_codec serio_raw xhci_hcd pcspkr drm_kms_helper snd_hwdep snd_pcm i2c_i801 usbcore snd_timer snd shpchp i2c_designware_pci lpc_ich i2c_designware_core mfd_core drm usb_common soundcore tpm_tis battery tpm ac video i2c_core processor button fuse autofs4 ext4 crc16 mbcache jbd2 sg sd_mod sdhci_acpi sdhci mmc_core ahci thermal libahci libata scsi_mod fan thermal_sys
[    2.449115] CPU: 0 PID: 448 Comm: irq/37-cyapa Not tainted 3.18.0-next-20141219+ #157
[    2.449116] Hardware name: Acer Peppy, BIOS          04/30/2014
[    2.449117] task: ffff8800364e6310 ti: ffff880068c9c000 task.ti: ffff880068c9c000
[    2.449121] RIP: 0010:[<ffffffff813f7b2b>]  [<ffffffff813f7b2b>] input_mt_sync_frame+0xb/0x60
[    2.449122] RSP: 0018:ffff880068c9fd88  EFLAGS: 00010296
[    2.449123] RAX: 0000000000000003 RBX: ffff88007050ac20 RCX: 0000000000000000
[    2.449124] RDX: 0000000000000083 RSI: ffff880068c9fd6a RDI: 0000000000000000
[    2.449125] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000001
[    2.449126] R10: 000000000000007c R11: 0000000000000067 R12: ffff88007050ac20
[    2.449127] R13: ffff880072fb2c18 R14: ffffffff810bd230 R15: ffff8800364e6310
[    2.449128] FS:  0000000000000000(0000) GS:ffff880100200000(0000) knlGS:0000000000000000
[    2.449129] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.449130] CR2: 0000000000000160 CR3: 00000000749a9000 CR4: 00000000000407f0
[    2.449131] Stack:
[    2.449134]  0000000000000000 ffff88007050ac20 0000000000000000 ffffffffa03f2c59
[    2.449135]  0008830000000092 0000000000000000 0000000000000000 0000000000000000
[    2.449137]  ffff88007541d000 ffff880072fb2c18 ffff88007050ac00 ffff88007050ac20
[    2.449138] Call Trace:
[    2.449146]  [<ffffffffa03f2c59>] ? cyapa_gen3_irq_handler+0x119/0x200 [cyapatp]
[    2.449151]  [<ffffffffa03f1502>] ? cyapa_irq+0xb2/0x120 [cyapatp]
[    2.449155]  [<ffffffff810bd24b>] ? irq_thread_fn+0x1b/0x40
[    2.449157]  [<ffffffff810bd81b>] ? irq_thread+0x13b/0x160
[    2.449160]  [<ffffffff810bd310>] ? wake_threads_waitq+0x40/0x40
[    2.449162]  [<ffffffff810bd6e0>] ? irq_thread_check_affinity+0xb0/0xb0
[    2.449165]  [<ffffffff81089013>] ? kthread+0xd3/0xf0
[    2.449168]  [<ffffffff81088f40>] ? kthread_create_on_node+0x1a0/0x1a0
[    2.449172]  [<ffffffff8154583c>] ? ret_from_fork+0x7c/0xb0
[    2.449174]  [<ffffffff81088f40>] ? kthread_create_on_node+0x1a0/0x1a0
[    2.449193] Code: 0f 1f 44 00 00 53 48 8b 9f 60 01 00 00 48 85 db 74 0c 48 89 de e8 76 ff ff ff 83 43 10 01 5b c3 0f 1f 44 00 00 55 53 48 83 ec 08 <48> 8b 9f 60 01 00 00 48 85 db 74 24 f6 43 0c 04 48 89 fd 75 28 
[    2.449195] RIP  [<ffffffff813f7b2b>] input_mt_sync_frame+0xb/0x60
[    2.449196]  RSP <ffff880068c9fd88>
[    2.449197] CR2: 0000000000000160
[    2.449199] ---[ end trace 3561783fbbc1b06d ]---
[    2.449211] BUG: unable to handle kernel paging request at ffffffffffffffc8
[    2.449214] IP: [<ffffffff8108966c>] kthread_data+0xc/0x20
[    2.449216] PGD 1816067 PUD 1818067 PMD 0 
[    2.449217] Oops: 0000 [#2] SMP 
[    2.449243] Modules linked in: ath9k_hw auth_rpcgss oid_registry nfs_acl nfs ath mac80211 lockd i915 tpm_infineon grace cyapatp(+) crc_itu_t fscache iTCO_wdt sunrpc iTCO_vendor_support crct10dif_pclmul crc32_pclmul crc32c_intel cfg80211 chromeos_laptop ghash_clmulni_intel cryptd snd_hda_codec_realtek snd_hda_codec_generic i2c_algo_bit snd_hda_intel rfkill snd_hda_controller xhci_pci evdev snd_hda_codec serio_raw xhci_hcd pcspkr drm_kms_helper snd_hwdep snd_pcm i2c_i801 usbcore snd_timer snd shpchp i2c_designware_pci lpc_ich i2c_designware_core mfd_core drm usb_common soundcore tpm_tis battery tpm ac video i2c_core processor button fuse autofs4 ext4 crc16 mbcache jbd2 sg sd_mod sdhci_acpi sdhci mmc_core ahci thermal libahci libata scsi_mod fan thermal_sys
[    2.449245] CPU: 0 PID: 448 Comm: irq/37-cyapa Tainted: G      D        3.18.0-next-20141219+ #157
[    2.449246] Hardware name: Acer Peppy, BIOS          04/30/2014
[    2.449247] task: ffff8800364e6310 ti: ffff880068c9c000 task.ti: ffff880068c9c000
[    2.449250] RIP: 0010:[<ffffffff8108966c>]  [<ffffffff8108966c>] kthread_data+0xc/0x20
[    2.449251] RSP: 0018:ffff880068c9fa70  EFLAGS: 00010202
[    2.449252] RAX: 0000000000000000 RBX: ffff8800364e6310 RCX: 000000000000000d
[    2.449253] RDX: 0000000000000000 RSI: 000000000000000d RDI: ffff8800364e6310
[    2.449254] RBP: ffffffff81a8ac30 R08: ffff880068c9ff28 R09: 0000000000000024
[    2.449254] R10: ffffffff81a9ab30 R11: 000000000001463c R12: ffff8800364e6998
[    2.449255] R13: ffff8800364e6310 R14: 0000000000000001 R15: 0000000000030001
[    2.449256] FS:  0000000000000000(0000) GS:ffff880100200000(0000) knlGS:0000000000000000
[    2.449257] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.449258] CR2: ffffffffffffffc8 CR3: 00000000749a9000 CR4: 00000000000407f0
[    2.449258] Stack:
[    2.449260]  ffffffff810bd33b ffff8800364e6310 0000000000000000 ffffffff81a8ac30
[    2.449262]  ffffffff81087707 ffff8800364e69c8 ffff8800364e6310 ffff880068c9faf8
[    2.449264]  ffff880068c9fcd8 0000000000000000 ffffffff8106e41d 0000000000030001
[    2.449264] Call Trace:
[    2.449267]  [<ffffffff810bd33b>] ? irq_thread_dtor+0x2b/0xc0
[    2.449269]  [<ffffffff81087707>] ? task_work_run+0xa7/0xe0
[    2.449271]  [<ffffffff8106e41d>] ? do_exit+0x2ed/0xac0
[    2.449276]  [<ffffffff810178e6>] ? oops_end+0x96/0xe0
[    2.449280]  [<ffffffff8105b016>] ? no_context+0x106/0x380
[    2.449283]  [<ffffffff8105b77e>] ? __do_page_fault+0xae/0x550
[    2.449289]  [<ffffffffa01ae871>] ? i2c_transfer+0x81/0xd0 [i2c_core]
[    2.449294]  [<ffffffffa01aea7e>] ? i2c_smbus_xfer_emulated+0x11e/0x550 [i2c_core]
[    2.449297]  [<ffffffff810bd230>] ? irq_finalize_oneshot.part.30+0xd0/0xd0
[    2.449301]  [<ffffffff815479e8>] ? page_fault+0x28/0x30
[    2.449303]  [<ffffffff810bd230>] ? irq_finalize_oneshot.part.30+0xd0/0xd0
[    2.449305]  [<ffffffff813f7b2b>] ? input_mt_sync_frame+0xb/0x60
[    2.449310]  [<ffffffffa03f2c59>] ? cyapa_gen3_irq_handler+0x119/0x200 [cyapatp]
[    2.449314]  [<ffffffffa03f1502>] ? cyapa_irq+0xb2/0x120 [cyapatp]
[    2.449316]  [<ffffffff810bd24b>] ? irq_thread_fn+0x1b/0x40
[    2.449318]  [<ffffffff810bd81b>] ? irq_thread+0x13b/0x160
[    2.449320]  [<ffffffff810bd310>] ? wake_threads_waitq+0x40/0x40
[    2.449322]  [<ffffffff810bd6e0>] ? irq_thread_check_affinity+0xb0/0xb0
[    2.449324]  [<ffffffff81089013>] ? kthread+0xd3/0xf0
[    2.449327]  [<ffffffff81088f40>] ? kthread_create_on_node+0x1a0/0x1a0
[    2.449329]  [<ffffffff8154583c>] ? ret_from_fork+0x7c/0xb0
[    2.449331]  [<ffffffff81088f40>] ? kthread_create_on_node+0x1a0/0x1a0
[    2.449349] Code: 40 04 00 00 48 8b 40 b8 48 c1 e8 02 83 e0 01 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 8b 87 40 04 00 00 <48> 8b 40 c8 c3 66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 0f 
[    2.449351] RIP  [<ffffffff8108966c>] kthread_data+0xc/0x20
[    2.449351]  RSP <ffff880068c9fa70>
[    2.449352] CR2: ffffffffffffffc8
[    2.449353] ---[ end trace 3561783fbbc1b06e ]---
[    2.449353] Fixing recursive fault but reboot is needed!
[    2.467991] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[    2.471174] usb 1-3: new high-speed USB device number 2 using xhci_hcd
[    2.486523] ath: phy0: ASPM enabled: 0x43
[    2.486525] ath: EEPROM regdomain: 0x6c
[    2.486526] ath: EEPROM indicates we should expect a direct regpair map
[    2.486528] ath: Country alpha2 being used: 00
[    2.486528] ath: Regpair used: 0x6c
[    2.488258] cfg80211: World regulatory domain updated:
[    2.488260] cfg80211:  DFS Master region: unset

-- 
- Jeremiah Mahler

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-18 22:14   ` Jeremiah Mahler
@ 2014-12-19  1:45     ` Dudley Du
  0 siblings, 0 replies; 12+ messages in thread
From: Dudley Du @ 2014-12-19  1:45 UTC (permalink / raw)
  To: Jeremiah Mahler
  Cc: dmitry.torokhov, rydberg, bleung, David Solda, linux-input, linux-kernel

Benson, Jeremiah,

Thank you for the help and confirm.

Dudley

> -----Original Message-----
> From: Jeremiah Mahler [mailto:jmmahler@gmail.com]
> Sent: 2014?12?19? 6:14
> To: Dudley Du
> Cc: dmitry.torokhov@gmail.com; rydberg@euromail.se; bleung@google.com;
> David Solda; linux-input@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
>
> Dudley,
>
> On Thu, Dec 18, 2014 at 11:06:40AM +0000, Dudley Du wrote:
> > Jeremiah,
> >
> > I re-sent the v16 patches through the new internal email server with my emal
> dudl@cypress.com.
> > Could you help check if all patches were fine and not broken.
> >
> > Thanks,
> > Dudley
> >
> [...]
>
> These patches apply without any problems.
>
> I will have a look and review them again.
>
> --
> - Jeremiah Mahler

This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-18 11:06 ` Dudley Du
  2014-12-18 20:17   ` Benson Leung
@ 2014-12-18 22:14   ` Jeremiah Mahler
  2014-12-19  1:45     ` Dudley Du
  1 sibling, 1 reply; 12+ messages in thread
From: Jeremiah Mahler @ 2014-12-18 22:14 UTC (permalink / raw)
  To: Dudley Du
  Cc: dmitry.torokhov, rydberg, bleung, David Solda, linux-input, linux-kernel

Dudley,

On Thu, Dec 18, 2014 at 11:06:40AM +0000, Dudley Du wrote:
> Jeremiah,
> 
> I re-sent the v16 patches through the new internal email server with my emal dudl@cypress.com.
> Could you help check if all patches were fine and not broken.
> 
> Thanks,
> Dudley
> 
[...]

These patches apply without any problems.

I will have a look and review them again.

-- 
- Jeremiah Mahler

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-18 11:06 ` Dudley Du
@ 2014-12-18 20:17   ` Benson Leung
  2014-12-18 22:14   ` Jeremiah Mahler
  1 sibling, 0 replies; 12+ messages in thread
From: Benson Leung @ 2014-12-18 20:17 UTC (permalink / raw)
  To: Dudley Du
  Cc: dmitry.torokhov, jmmahler, rydberg, David Solda, linux-input,
	linux-kernel

Hi Dudley,


On Thu, Dec 18, 2014 at 3:06 AM, Dudley Du <dudl@cypress.com> wrote:
> Jeremiah,
>
> I re-sent the v16 patches through the new internal email server with my emal dudl@cypress.com.
> Could you help check if all patches were fine and not broken.

I tried applying your patches onto dtor's input branch master, and it
applied clean for me. Thanks!


-- 
Benson Leung
Software Engineer, Chrome OS
Google Inc.
bleung@google.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
  2014-12-18 10:00 Dudley Du
@ 2014-12-18 11:06 ` Dudley Du
  2014-12-18 20:17   ` Benson Leung
  2014-12-18 22:14   ` Jeremiah Mahler
  2014-12-20  7:15 ` Jeremiah Mahler
  1 sibling, 2 replies; 12+ messages in thread
From: Dudley Du @ 2014-12-18 11:06 UTC (permalink / raw)
  To: Dudley Du, dmitry.torokhov, jmmahler, rydberg
  Cc: bleung, David Solda, linux-input, linux-kernel

Jeremiah,

I re-sent the v16 patches through the new internal email server with my emal dudl@cypress.com.
Could you help check if all patches were fine and not broken.

Thanks,
Dudley

> -----Original Message-----
> From: Dudley Du [mailto:dudl@cypress.com]
> Sent: 2014?12?18? 18:01
> To: dmitry.torokhov@gmail.com; jmmahler@gmail.com; rydberg@euromail.se
> Cc: Dudley Du; bleung@google.com; David Solda; linux-input@vger.kernel.org;
> linux-kernel@vger.kernel.org
> Subject: [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
>
> V16 patches have below updates, details of other updates see history list:
> 1) Fix all miss-spelling and space issue.
> 2) Rename variables and functions with much more clearer names.
> 3) Initialize and document tries near where it will be used.
> 4) Modify cmd buffer to struct for more descriptive way.
>
>
> This patch series is aimed to re-design the cyapa driver to support
> old gen3 trackpad devices and new gen5 trackpad devices in one
> cyapa driver, it's for easily productions support based on
> customers' requirements. And add sysfs functions and interfaces
> supported that required by users and customers.
>
> Since the earlier gen3 and the latest gen5 trackpad devices using
> two different chipsets, and have different protocols and interfaces,
> so if supported these two type trackpad devices in two different drivers,
> then it will be difficult to manage productions and later firmware updates.
> e.g.: It will cause customer don't know which one trackpad device firmware
> image to use and update when it has been used and integrated
> in same one productions, so here we support these two trackpad
> devices in same on driver.
>
>
> Dudley Du (12):
>   input: cyapa: re-design driver to support multi-trackpad in one driver
>   input: cyapa: add gen5 trackpad device basic functions support
>   input: cyapa: add power management interfaces support for the device
>   input: cyapa: add runtime power management interfaces support for the
>     device
>   input: cyapa: add sysfs interfaces support in the cyapa driver
>   input: cyapa: add gen3 trackpad device firmware update function
>     support
>   input: cyapa: add gen3 trackpad device read baseline function support
>   input: cyapa: add gen3 trackpad device force re-calibrate function
>     support
>   input: cyapa: add gen5 trackpad device firmware update function
>     support
>   input: cyapa: add gen5 trackpad device read baseline function support
>   input: cyapa: add gen5 trackpad device force re-calibrate function
>     support
>   input: cyapa: add acpi device id support
>
>  drivers/input/mouse/Kconfig      |    1 +
>  drivers/input/mouse/Makefile     |    3 +-
>  drivers/input/mouse/cyapa.c      | 1692 ++++++++++++++---------
>  drivers/input/mouse/cyapa.h      |  314 +++++
>  drivers/input/mouse/cyapa_gen3.c | 1220 +++++++++++++++++
>  drivers/input/mouse/cyapa_gen5.c | 2767
> ++++++++++++++++++++++++++++++++++++++
>  6 files changed, 5325 insertions(+), 672 deletions(-)
>  create mode 100644 drivers/input/mouse/cyapa.h
>  create mode 100644 drivers/input/mouse/cyapa_gen3.c
>  create mode 100644 drivers/input/mouse/cyapa_gen5.c
>
>
> History patch series modifications list:
> V15 patches have below main updates compared with v14 patches:
> 1) Fix all warning errors of sparse tool when running with "make C=1".
> 2) Change variable name "unique_str" to "product_id" for clearer meanings.
> 3) Update cyapa_i2c_write function to return error directly when length > 31.
>
> V14 patches have below main updates compared with v13 patches:
> 1) Correct 9 miss spelling issues of "bufferred" to "buffered".
> 2) Fix the upgrade issue of removing MOUSE_CYAPA config when make oldconfig
>    by replase "depends on I2C && CRC_ITU_T" with
> "depends on I2C"
> "select CRC_ITU_T"
>    in patch 9.
>
> V13 patches have below main updates compared with v12 patches:
> 1) Remove all debugfs interface, including read_fw and raw_data interfaces.
> 2) This patches are made based linux next-20141208.
>
> V12 patches have below main updates compared with v11 patches:
> 1) Add check that when TP is detected but not operational, do not exit driver
>    immediately, but wait and export the update_fw interface for recovering.
> 2) Re-arrange the function codes, remove unnesseary protype definitions in
>    the header file.
>
> V11 patches have below main updates compared with v10 patches:
> 1) Add add acpi device id supported for old gen3 and new gen5 trackpad devices.
> 2) Fix the unable to update firmware issue when cyapa_open is not called
>    which means the irq for firwmare update process is not enabled. This fix
>    by checking if the irq is enabled, if not then enable irq before start to
>    do firmware update.
>
> V10 patches have below main updates compared with v9 patches:
> 1) Modify code to following kernel code style.
>    e.g.: correct to use error as return name when there is only error path,
>    and fix the checkpatch.sh wanting in the driver.
> 2) Remove cyapa_remove method and use input open and close interface to
>    following device resouse management infrastructure.
> 3) Modify cyapa_detect method to return tristate issue to make the return value
>    much more consistent and clear.
> 4) Use platform supplied functions as possible instead of driver
>    specific rewritten version.
>
> V9 patches have below updates compared with v8 patches:
> 1) Removed all async thread stuff from the driver.
> 2) Split driver into 18 patches for each function change one patch.
>
> V8 patches have below updates compared with v7 patches:
> 1) [PATCH v8 01/13] - Remove the async thread for device detect in
>    probe routine, now the device detect process is completely done within
>    the device probe routine.
> 2) [PATCH v8 01/13] - Split the irq cmd hander function to separated
>    function cyapa_default_irq_cmd_handler() and set it to interface
>    cyapa_default_ops.irq_cmd_handler.
> 3) [PATCH v8 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
>    to avoid miss-enter when device protocol is still in detecting.
>
> V7 patches have below updates compared with v6 patches:
> 1) [PATCH v7 01/13] - Split the irq cmd hander function to separated
>    function cyapa_default_irq_cmd_handler() and set it to interface
>    cyapa_default_ops.irq_cmd_handler.
> 2) [PATCH v7 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
>    to avoid miss-enter when device protocol is still in detecting.
>
>
> V6 patches have below updates compared with v5 patches:
> 1) Remove patch 14 of the lid filtering from the cyapa driver.
>
> V5 patches have below updates compared with v4 patches:
> 1) Uses get_device()/put_device() instead of kobject_get()/kobject_put();
> 2) Fix memories freed before debugfs entries issue;
> 3) Make cyapa_debugs_root valid in driver module level
>    in module_init()/moudle_exit() ;
> 4) Fix i2c_transfer() may return partial transfer issues.
> 5) Add cyapa->removed flag to avoid detecting thread may still running
>    when driver module is removed.
> 6) Fix the meanings of some comments and return error code not clear issue.

This message and any attachments may contain Cypress (or its subsidiaries) confidential information. If it has been received in error, please advise the sender and immediately delete this message.

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v16 00/12] input: cyapa: instruction of cyapa patches
@ 2014-12-18 10:00 Dudley Du
  2014-12-18 11:06 ` Dudley Du
  2014-12-20  7:15 ` Jeremiah Mahler
  0 siblings, 2 replies; 12+ messages in thread
From: Dudley Du @ 2014-12-18 10:00 UTC (permalink / raw)
  To: dmitry.torokhov, jmmahler, rydberg
  Cc: Dudley Du, bleung, dso, linux-input, linux-kernel

V16 patches have below updates, details of other updates see history list:
1) Fix all miss-spelling and space issue.
2) Rename variables and functions with much more clearer names.
3) Initialize and document tries near where it will be used.
4) Modify cmd buffer to struct for more descriptive way.


This patch series is aimed to re-design the cyapa driver to support
old gen3 trackpad devices and new gen5 trackpad devices in one
cyapa driver, it's for easily productions support based on
customers' requirements. And add sysfs functions and interfaces
supported that required by users and customers.

Since the earlier gen3 and the latest gen5 trackpad devices using
two different chipsets, and have different protocols and interfaces,
so if supported these two type trackpad devices in two different drivers,
then it will be difficult to manage productions and later firmware updates.
e.g.: It will cause customer don't know which one trackpad device firmware
image to use and update when it has been used and integrated
in same one productions, so here we support these two trackpad
devices in same on driver.


Dudley Du (12):
  input: cyapa: re-design driver to support multi-trackpad in one driver
  input: cyapa: add gen5 trackpad device basic functions support
  input: cyapa: add power management interfaces support for the device
  input: cyapa: add runtime power management interfaces support for the
    device
  input: cyapa: add sysfs interfaces support in the cyapa driver
  input: cyapa: add gen3 trackpad device firmware update function
    support
  input: cyapa: add gen3 trackpad device read baseline function support
  input: cyapa: add gen3 trackpad device force re-calibrate function
    support
  input: cyapa: add gen5 trackpad device firmware update function
    support
  input: cyapa: add gen5 trackpad device read baseline function support
  input: cyapa: add gen5 trackpad device force re-calibrate function
    support
  input: cyapa: add acpi device id support

 drivers/input/mouse/Kconfig      |    1 +
 drivers/input/mouse/Makefile     |    3 +-
 drivers/input/mouse/cyapa.c      | 1692 ++++++++++++++---------
 drivers/input/mouse/cyapa.h      |  314 +++++
 drivers/input/mouse/cyapa_gen3.c | 1220 +++++++++++++++++
 drivers/input/mouse/cyapa_gen5.c | 2767 ++++++++++++++++++++++++++++++++++++++
 6 files changed, 5325 insertions(+), 672 deletions(-)
 create mode 100644 drivers/input/mouse/cyapa.h
 create mode 100644 drivers/input/mouse/cyapa_gen3.c
 create mode 100644 drivers/input/mouse/cyapa_gen5.c


History patch series modifications list:
V15 patches have below main updates compared with v14 patches:
1) Fix all warning errors of sparse tool when running with "make C=1".
2) Change variable name "unique_str" to "product_id" for clearer meanings.
3) Update cyapa_i2c_write function to return error directly when length > 31.

V14 patches have below main updates compared with v13 patches:
1) Correct 9 miss spelling issues of "bufferred" to "buffered".
2) Fix the upgrade issue of removing MOUSE_CYAPA config when make oldconfig
   by replase "depends on I2C && CRC_ITU_T" with
	"depends on I2C"
	"select CRC_ITU_T"
   in patch 9.

V13 patches have below main updates compared with v12 patches:
1) Remove all debugfs interface, including read_fw and raw_data interfaces.
2) This patches are made based linux next-20141208.

V12 patches have below main updates compared with v11 patches:
1) Add check that when TP is detected but not operational, do not exit driver
   immediately, but wait and export the update_fw interface for recovering.
2) Re-arrange the function codes, remove unnesseary protype definitions in
   the header file.

V11 patches have below main updates compared with v10 patches:
1) Add add acpi device id supported for old gen3 and new gen5 trackpad devices.
2) Fix the unable to update firmware issue when cyapa_open is not called
   which means the irq for firwmare update process is not enabled. This fix
   by checking if the irq is enabled, if not then enable irq before start to
   do firmware update.

V10 patches have below main updates compared with v9 patches:
1) Modify code to following kernel code style.
   e.g.: correct to use error as return name when there is only error path,
   and fix the checkpatch.sh wanting in the driver.
2) Remove cyapa_remove method and use input open and close interface to
   following device resouse management infrastructure.
3) Modify cyapa_detect method to return tristate issue to make the return value
   much more consistent and clear.
4) Use platform supplied functions as possible instead of driver
   specific rewritten version.

V9 patches have below updates compared with v8 patches:
1) Removed all async thread stuff from the driver.
2) Split driver into 18 patches for each function change one patch.

V8 patches have below updates compared with v7 patches:
1) [PATCH v8 01/13] - Remove the async thread for device detect in
   probe routine, now the device detect process is completely done within
   the device probe routine.
2) [PATCH v8 01/13] - Split the irq cmd hander function to separated
   function cyapa_default_irq_cmd_handler() and set it to interface
   cyapa_default_ops.irq_cmd_handler.
3) [PATCH v8 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
   to avoid miss-enter when device protocol is still in detecting.

V7 patches have below updates compared with v6 patches:
1) [PATCH v7 01/13] - Split the irq cmd hander function to separated
   function cyapa_default_irq_cmd_handler() and set it to interface
   cyapa_default_ops.irq_cmd_handler.
2) [PATCH v7 06/13] - Add cyapa->gen check in cyapa_gen3_irq_cmd_handler()
   to avoid miss-enter when device protocol is still in detecting.


V6 patches have below updates compared with v5 patches:
1) Remove patch 14 of the lid filtering from the cyapa driver.

V5 patches have below updates compared with v4 patches:
1) Uses get_device()/put_device() instead of kobject_get()/kobject_put();
2) Fix memories freed before debugfs entries issue;
3) Make cyapa_debugs_root valid in driver module level
   in module_init()/moudle_exit() ;
4) Fix i2c_transfer() may return partial transfer issues.
5) Add cyapa->removed flag to avoid detecting thread may still running
   when driver module is removed.
6) Fix the meanings of some comments and return error code not clear issue.

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2014-12-22  2:56 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-17  9:55 [PATCH v16 00/12] input: cyapa: instruction of cyapa patches Dudley Du
2014-12-17 10:03 ` Dudley Du
2014-12-18 10:00 Dudley Du
2014-12-18 11:06 ` Dudley Du
2014-12-18 20:17   ` Benson Leung
2014-12-18 22:14   ` Jeremiah Mahler
2014-12-19  1:45     ` Dudley Du
2014-12-20  7:15 ` Jeremiah Mahler
2014-12-20  7:31   ` Dmitry Torokhov
2014-12-22  2:09     ` Dudley Du
2014-12-22  2:39       ` Dmitry Torokhov
2014-12-22  2:56         ` Dudley Du

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).