]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Dec 2013 01:58:49 +0000 (17:58 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 2 Dec 2013 01:58:49 +0000 (17:58 -0800)
added patches:
cpufreq-highbank-cpufreq-enable-midway-ecx-2000.patch
hid-don-t-ignore-egalax-d-wav-eeti-hids.patch
input-cypress_ps2-do-not-consider-data-bad-if-palm-is-detected.patch
input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch
input-i8042-add-pnp-modaliases.patch
input-usbtouchscreen-ignore-egalax-d-wav-eeti-hids.patch
mfd-lpc_ich-add-device-ids-for-intel-wildcat-point-lp-pch.patch
mfd-rtsx-modify-rts5249_optimize_phy.patch
revert-input-alps-add-support-for-model-found-on-dell-xt2.patch
sh-ecovec-fixup-compile-error-on-sdhi.patch

queue-3.12/cpufreq-highbank-cpufreq-enable-midway-ecx-2000.patch [new file with mode: 0644]
queue-3.12/hid-don-t-ignore-egalax-d-wav-eeti-hids.patch [new file with mode: 0644]
queue-3.12/input-cypress_ps2-do-not-consider-data-bad-if-palm-is-detected.patch [new file with mode: 0644]
queue-3.12/input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch [new file with mode: 0644]
queue-3.12/input-i8042-add-pnp-modaliases.patch [new file with mode: 0644]
queue-3.12/input-usbtouchscreen-ignore-egalax-d-wav-eeti-hids.patch [new file with mode: 0644]
queue-3.12/mfd-lpc_ich-add-device-ids-for-intel-wildcat-point-lp-pch.patch [new file with mode: 0644]
queue-3.12/mfd-rtsx-modify-rts5249_optimize_phy.patch [new file with mode: 0644]
queue-3.12/revert-input-alps-add-support-for-model-found-on-dell-xt2.patch [new file with mode: 0644]
queue-3.12/series
queue-3.12/sh-ecovec-fixup-compile-error-on-sdhi.patch [new file with mode: 0644]

diff --git a/queue-3.12/cpufreq-highbank-cpufreq-enable-midway-ecx-2000.patch b/queue-3.12/cpufreq-highbank-cpufreq-enable-midway-ecx-2000.patch
new file mode 100644 (file)
index 0000000..8764576
--- /dev/null
@@ -0,0 +1,36 @@
+From fbbc5bfb44a22e7a8ef753a1c8dfb448d7ac8b85 Mon Sep 17 00:00:00 2001
+From: Mark Langsdorf <mark.langsdorf@calxeda.com>
+Date: Tue, 1 Oct 2013 10:30:24 -0500
+Subject: cpufreq: highbank-cpufreq: Enable Midway/ECX-2000
+
+From: Mark Langsdorf <mark.langsdorf@calxeda.com>
+
+commit fbbc5bfb44a22e7a8ef753a1c8dfb448d7ac8b85 upstream.
+
+Calxeda's new ECX-2000 part uses the same cpufreq interface as highbank,
+so add it to the driver's compatibility list.
+
+This is a minor change that can safely be applied to the 3.10 and 3.11
+stable trees.
+
+Signed-off-by: Mark Langsdorf <mark.langsdorf@calxeda.com>
+Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/cpufreq/highbank-cpufreq.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/cpufreq/highbank-cpufreq.c
++++ b/drivers/cpufreq/highbank-cpufreq.c
+@@ -66,7 +66,8 @@ static int hb_cpufreq_driver_init(void)
+       struct device_node *np;
+       int ret;
+-      if (!of_machine_is_compatible("calxeda,highbank"))
++      if ((!of_machine_is_compatible("calxeda,highbank")) &&
++              (!of_machine_is_compatible("calxeda,ecx-2000")))
+               return -ENODEV;
+       cpu_dev = get_cpu_device(0);
diff --git a/queue-3.12/hid-don-t-ignore-egalax-d-wav-eeti-hids.patch b/queue-3.12/hid-don-t-ignore-egalax-d-wav-eeti-hids.patch
new file mode 100644 (file)
index 0000000..b5055c8
--- /dev/null
@@ -0,0 +1,77 @@
+From 95d50b6c5e18ff7351c5f2a6ff53afaed5f7e664 Mon Sep 17 00:00:00 2001
+From: Forest Bond <forest.bond@rapidrollout.com>
+Date: Mon, 21 Oct 2013 12:38:02 -0400
+Subject: HID: don't ignore eGalax/D-Wav/EETI HIDs
+
+From: Forest Bond <forest.bond@rapidrollout.com>
+
+commit 95d50b6c5e18ff7351c5f2a6ff53afaed5f7e664 upstream.
+
+Certain devices with class HID, protocol None did not work with the HID
+driver at one point, and as a result were bound to usbtouchscreen
+instead as of commit 139ebe8 ("Input: usbtouchscreen - fix eGalax HID
+ignoring").  This change was prompted by the following report:
+
+https://lkml.org/lkml/2009/1/25/127
+
+Unfortunately, the device mentioned in this report is no longer
+available for testing.
+
+We've recently discovered that some devices with class HID, protocol
+None do not work with usbtouchscreen, but do work with usbhid.  Here is
+the report that made this evident:
+
+http://comments.gmane.org/gmane.linux.kernel.input/31710
+
+Driver binding for these devices has flip-flopped a few times, so both
+of the above reports were regressions.
+
+This situation would appear to leave us with no easy way to bind every
+device to the right driver.  However, in my own testing with several
+devices I have not found a device with class HID that does not work with
+the current HID driver.  It is my belief that changes to the HID driver
+since the original report have likely fixed the issue(s) that made it
+unsuitable at the time, and that we should prefer it over usbtouchscreen
+for these devices.  In particular, HID quirks affecting these devices
+were added/removed in the following commits since then:
+
+fe6065d HID: add multi-input quirk for eGalax Touchcontroller
+77933c3 Merge branch 'egalax' into for-linus
+ebd11fe HID: Add quirk for eGalax touch controler.
+d34c4aa HID: add no-get quirk for eGalax touch controller
+
+This patch makes the HID driver no longer ignore eGalax/D-Wav/EETI
+devices with class HID.  If there are in fact devices with class HID
+that still do not work with the HID driver, we will see another round of
+regressions.  In that case I propose we investigate why the device is
+not working with the HID driver rather than re-introduce regressions for
+functioning HID devices by again binding them to usbtouchscreen.
+
+The corresponding change to usbtouchscreen will be made separately.
+
+Signed-off-by: Forest Bond <forest.bond@rapidrollout.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/hid/hid-core.c |    9 ---------
+ 1 file changed, 9 deletions(-)
+
+--- a/drivers/hid/hid-core.c
++++ b/drivers/hid/hid-core.c
+@@ -2376,15 +2376,6 @@ bool hid_ignore(struct hid_device *hdev)
+                               hdev->type == HID_TYPE_USBNONE)
+                       return true;
+               break;
+-      case USB_VENDOR_ID_DWAV:
+-              /* These are handled by usbtouchscreen. hdev->type is probably
+-               * HID_TYPE_USBNONE, but we say !HID_TYPE_USBMOUSE to match
+-               * usbtouchscreen. */
+-              if ((hdev->product == USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER ||
+-                   hdev->product == USB_DEVICE_ID_DWAV_TOUCHCONTROLLER) &&
+-                  hdev->type != HID_TYPE_USBMOUSE)
+-                      return true;
+-              break;
+       case USB_VENDOR_ID_VELLEMAN:
+               /* These are not HID devices.  They are handled by comedi. */
+               if ((hdev->product >= USB_DEVICE_ID_VELLEMAN_K8055_FIRST &&
diff --git a/queue-3.12/input-cypress_ps2-do-not-consider-data-bad-if-palm-is-detected.patch b/queue-3.12/input-cypress_ps2-do-not-consider-data-bad-if-palm-is-detected.patch
new file mode 100644 (file)
index 0000000..a2f7bc7
--- /dev/null
@@ -0,0 +1,79 @@
+From 5df682b297f6b23ec35615ed7bb50cbb25d25869 Mon Sep 17 00:00:00 2001
+From: Joseph Salisbury <joseph.salisbury@canonical.com>
+Date: Wed, 16 Oct 2013 09:19:40 -0700
+Subject: Input: cypress_ps2 - do not consider data bad if palm is detected
+
+From: Joseph Salisbury <joseph.salisbury@canonical.com>
+
+commit 5df682b297f6b23ec35615ed7bb50cbb25d25869 upstream.
+
+If hardware (or firmware) detects palm on the surface of the device it does
+not mean that the data packet is bad from the protocol standpoint. Instead
+of reporting PSMOUSE_BAD_DATA in this case simply threat it as if nothing
+touches the surface.
+
+BugLink: http://bugs.launchpad.net/bugs/1229361
+
+Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
+Tested-by: Kamal Mostafa <kamal@canonical.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/cypress_ps2.c |   19 +++----------------
+ 1 file changed, 3 insertions(+), 16 deletions(-)
+
+--- a/drivers/input/mouse/cypress_ps2.c
++++ b/drivers/input/mouse/cypress_ps2.c
+@@ -439,7 +439,7 @@ static int cypress_get_finger_count(unsi
+                       case 2: return 5;
+                       default:
+                               /* Invalid contact (e.g. palm). Ignore it. */
+-                              return -1;
++                              return 0;
+               }
+       }
+@@ -452,17 +452,10 @@ static int cypress_parse_packet(struct p
+ {
+       unsigned char *packet = psmouse->packet;
+       unsigned char header_byte = packet[0];
+-      int contact_cnt;
+       memset(report_data, 0, sizeof(struct cytp_report_data));
+-      contact_cnt = cypress_get_finger_count(header_byte);
+-
+-      if (contact_cnt < 0) /* e.g. palm detect */
+-              return -EINVAL;
+-
+-      report_data->contact_cnt = contact_cnt;
+-
++      report_data->contact_cnt = cypress_get_finger_count(header_byte);
+       report_data->tap = (header_byte & ABS_MULTIFINGER_TAP) ? 1 : 0;
+       if (report_data->contact_cnt == 1) {
+@@ -535,11 +528,9 @@ static void cypress_process_packet(struc
+       int slots[CYTP_MAX_MT_SLOTS];
+       int n;
+-      if (cypress_parse_packet(psmouse, cytp, &report_data))
+-              return;
++      cypress_parse_packet(psmouse, cytp, &report_data);
+       n = report_data.contact_cnt;
+-
+       if (n > CYTP_MAX_MT_SLOTS)
+               n = CYTP_MAX_MT_SLOTS;
+@@ -605,10 +596,6 @@ static psmouse_ret_t cypress_validate_by
+               return PSMOUSE_BAD_DATA;
+       contact_cnt = cypress_get_finger_count(packet[0]);
+-
+-      if (contact_cnt < 0)
+-              return PSMOUSE_BAD_DATA;
+-
+       if (cytp->mode & CYTP_BIT_ABS_NO_PRESSURE)
+               cypress_set_packet_size(psmouse, contact_cnt == 2 ? 7 : 4);
+       else
diff --git a/queue-3.12/input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch b/queue-3.12/input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch
new file mode 100644 (file)
index 0000000..18a7abc
--- /dev/null
@@ -0,0 +1,69 @@
+From 92eb77d0ffbaa71b501a0a8dabf09a351bf4267f Mon Sep 17 00:00:00 2001
+From: Daniel Stone <daniel@fooishbar.org>
+Date: Thu, 31 Oct 2013 00:25:34 -0700
+Subject: Input: evdev - fall back to vmalloc for client event buffer
+
+From: Daniel Stone <daniel@fooishbar.org>
+
+commit 92eb77d0ffbaa71b501a0a8dabf09a351bf4267f upstream.
+
+evdev always tries to allocate the event buffer for clients using
+kzalloc rather than vmalloc, presumably to avoid mapping overhead where
+possible.  However, drivers like bcm5974, which claims support for
+reporting 16 fingers simultaneously, can have an extraordinarily large
+buffer.  The resultant contiguous order-4 allocation attempt fails due
+to fragmentation, and the device is thus unusable until reboot.
+
+Try kzalloc if we can to avoid the mapping overhead, but if that fails,
+fall back to vzalloc.
+
+Signed-off-by: Daniel Stone <daniels@collabora.com>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/evdev.c |   16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+--- a/drivers/input/evdev.c
++++ b/drivers/input/evdev.c
+@@ -18,6 +18,8 @@
+ #include <linux/poll.h>
+ #include <linux/sched.h>
+ #include <linux/slab.h>
++#include <linux/vmalloc.h>
++#include <linux/mm.h>
+ #include <linux/module.h>
+ #include <linux/init.h>
+ #include <linux/input/mt.h>
+@@ -369,7 +371,11 @@ static int evdev_release(struct inode *i
+       mutex_unlock(&evdev->mutex);
+       evdev_detach_client(evdev, client);
+-      kfree(client);
++
++      if (is_vmalloc_addr(client))
++              vfree(client);
++      else
++              kfree(client);
+       evdev_close_device(evdev);
+@@ -389,12 +395,14 @@ static int evdev_open(struct inode *inod
+ {
+       struct evdev *evdev = container_of(inode->i_cdev, struct evdev, cdev);
+       unsigned int bufsize = evdev_compute_buffer_size(evdev->handle.dev);
++      unsigned int size = sizeof(struct evdev_client) +
++                                      bufsize * sizeof(struct input_event);
+       struct evdev_client *client;
+       int error;
+-      client = kzalloc(sizeof(struct evdev_client) +
+-                              bufsize * sizeof(struct input_event),
+-                       GFP_KERNEL);
++      client = kzalloc(size, GFP_KERNEL | __GFP_NOWARN);
++      if (!client)
++              client = vzalloc(size);
+       if (!client)
+               return -ENOMEM;
diff --git a/queue-3.12/input-i8042-add-pnp-modaliases.patch b/queue-3.12/input-i8042-add-pnp-modaliases.patch
new file mode 100644 (file)
index 0000000..087bb98
--- /dev/null
@@ -0,0 +1,40 @@
+From 78551277e4df57864b0b0e7f85c23ede2be2edb8 Mon Sep 17 00:00:00 2001
+From: Tom Gundersen <teg@jklm.no>
+Date: Thu, 31 Oct 2013 00:33:54 -0700
+Subject: Input: i8042 - add PNP modaliases
+
+From: Tom Gundersen <teg@jklm.no>
+
+commit 78551277e4df57864b0b0e7f85c23ede2be2edb8 upstream.
+
+This allows the module to be autoloaded in the common case.
+
+In order to work on non-PnP systems the module should be compiled in or
+loaded unconditionally at boot (c.f. modules-load.d(5)), as before.
+
+Signed-off-by: Tom Gundersen <teg@jklm.no>
+Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/serio/i8042-x86ia64io.h |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/input/serio/i8042-x86ia64io.h
++++ b/drivers/input/serio/i8042-x86ia64io.h
+@@ -765,6 +765,7 @@ static struct pnp_device_id pnp_kbd_devi
+       { .id = "CPQA0D7", .driver_data = 0 },
+       { .id = "", },
+ };
++MODULE_DEVICE_TABLE(pnp, pnp_kbd_devids);
+ static struct pnp_driver i8042_pnp_kbd_driver = {
+       .name           = "i8042 kbd",
+@@ -786,6 +787,7 @@ static struct pnp_device_id pnp_aux_devi
+       { .id = "SYN0801", .driver_data = 0 },
+       { .id = "", },
+ };
++MODULE_DEVICE_TABLE(pnp, pnp_aux_devids);
+ static struct pnp_driver i8042_pnp_aux_driver = {
+       .name           = "i8042 aux",
diff --git a/queue-3.12/input-usbtouchscreen-ignore-egalax-d-wav-eeti-hids.patch b/queue-3.12/input-usbtouchscreen-ignore-egalax-d-wav-eeti-hids.patch
new file mode 100644 (file)
index 0000000..0912c47
--- /dev/null
@@ -0,0 +1,37 @@
+From ae2aa3a512fa5f50f67feba9e66bc2efb394bd63 Mon Sep 17 00:00:00 2001
+From: Forest Bond <forest.bond@rapidrollout.com>
+Date: Mon, 21 Oct 2013 12:38:18 -0400
+Subject: Input: usbtouchscreen: ignore eGalax/D-Wav/EETI HIDs
+
+From: Forest Bond <forest.bond@rapidrollout.com>
+
+commit ae2aa3a512fa5f50f67feba9e66bc2efb394bd63 upstream.
+
+The HID driver now handles these devices, regardless of what protocol
+the device claims it supports.
+
+Signed-off-by: Forest Bond <forest.bond@rapidrollout.com>
+Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Signed-off-by: Jiri Kosina <jkosina@suse.cz>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/touchscreen/usbtouchscreen.c |    4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+--- a/drivers/input/touchscreen/usbtouchscreen.c
++++ b/drivers/input/touchscreen/usbtouchscreen.c
+@@ -146,12 +146,10 @@ enum {
+ #define USB_DEVICE_HID_CLASS(vend, prod) \
+       .match_flags = USB_DEVICE_ID_MATCH_INT_CLASS \
+-              | USB_DEVICE_ID_MATCH_INT_PROTOCOL \
+               | USB_DEVICE_ID_MATCH_DEVICE, \
+       .idVendor = (vend), \
+       .idProduct = (prod), \
+-      .bInterfaceClass = USB_INTERFACE_CLASS_HID, \
+-      .bInterfaceProtocol = USB_INTERFACE_PROTOCOL_MOUSE
++      .bInterfaceClass = USB_INTERFACE_CLASS_HID
+ static const struct usb_device_id usbtouch_devices[] = {
+ #ifdef CONFIG_TOUCHSCREEN_USB_EGALAX
diff --git a/queue-3.12/mfd-lpc_ich-add-device-ids-for-intel-wildcat-point-lp-pch.patch b/queue-3.12/mfd-lpc_ich-add-device-ids-for-intel-wildcat-point-lp-pch.patch
new file mode 100644 (file)
index 0000000..203cff2
--- /dev/null
@@ -0,0 +1,63 @@
+From 5e90169c5a02da69a1ef721bea7a823e9e48fcb6 Mon Sep 17 00:00:00 2001
+From: James Ralston <james.d.ralston@intel.com>
+Date: Mon, 4 Nov 2013 09:31:20 -0800
+Subject: mfd: lpc_ich: Add Device IDs for Intel Wildcat Point-LP PCH
+
+From: James Ralston <james.d.ralston@intel.com>
+
+commit 5e90169c5a02da69a1ef721bea7a823e9e48fcb6 upstream.
+
+This patch adds the TCO Watchdog Device IDs for the
+Intel Wildcat Point-LP PCH.
+
+Signed-off-by: James Ralston <james.d.ralston@intel.com>
+Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mfd/lpc_ich.c |   13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -53,6 +53,7 @@
+  *    document number TBD : Wellsburg
+  *    document number TBD : Avoton SoC
+  *    document number TBD : Coleto Creek
++ *    document number TBD : Wildcat Point-LP
+  */
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+@@ -211,6 +212,7 @@ enum lpc_chipsets {
+       LPC_WBG,        /* Wellsburg */
+       LPC_AVN,        /* Avoton SoC */
+       LPC_COLETO,     /* Coleto Creek */
++      LPC_WPT_LP,     /* Wildcat Point-LP */
+ };
+ static struct lpc_ich_info lpc_chipset_info[] = {
+@@ -503,6 +505,10 @@ static struct lpc_ich_info lpc_chipset_i
+               .name = "Coleto Creek",
+               .iTCO_version = 2,
+       },
++      [LPC_WPT_LP] = {
++              .name = "Lynx Point_LP",
++              .iTCO_version = 2,
++      },
+ };
+ /*
+@@ -721,6 +727,13 @@ static DEFINE_PCI_DEVICE_TABLE(lpc_ich_i
+       { PCI_VDEVICE(INTEL, 0x1f3a), LPC_AVN},
+       { PCI_VDEVICE(INTEL, 0x1f3b), LPC_AVN},
+       { PCI_VDEVICE(INTEL, 0x2390), LPC_COLETO},
++      { PCI_VDEVICE(INTEL, 0x9cc1), LPC_WPT_LP},
++      { PCI_VDEVICE(INTEL, 0x9cc2), LPC_WPT_LP},
++      { PCI_VDEVICE(INTEL, 0x9cc3), LPC_WPT_LP},
++      { PCI_VDEVICE(INTEL, 0x9cc5), LPC_WPT_LP},
++      { PCI_VDEVICE(INTEL, 0x9cc6), LPC_WPT_LP},
++      { PCI_VDEVICE(INTEL, 0x9cc7), LPC_WPT_LP},
++      { PCI_VDEVICE(INTEL, 0x9cc9), LPC_WPT_LP},
+       { 0, },                 /* End of list */
+ };
+ MODULE_DEVICE_TABLE(pci, lpc_ich_ids);
diff --git a/queue-3.12/mfd-rtsx-modify-rts5249_optimize_phy.patch b/queue-3.12/mfd-rtsx-modify-rts5249_optimize_phy.patch
new file mode 100644 (file)
index 0000000..781cb4a
--- /dev/null
@@ -0,0 +1,166 @@
+From 26b818511c6562ce372566c219a2ef1afea35fe6 Mon Sep 17 00:00:00 2001
+From: Wei WANG <wei_wang@realsil.com.cn>
+Date: Fri, 13 Sep 2013 17:45:43 +0800
+Subject: mfd: rtsx: Modify rts5249_optimize_phy
+
+From: Wei WANG <wei_wang@realsil.com.cn>
+
+commit 26b818511c6562ce372566c219a2ef1afea35fe6 upstream.
+
+In some platforms, specially Thinkpad series, rts5249 won't be
+initialized properly. So we need adjust some phy parameters to
+improve the compatibility issue.
+
+It is a little different between simulation and real chip. We have
+no idea about which configuration is better before tape-out. We set
+default settings according to simulation, but need to tune these
+parameters after getting the real chip.
+
+I can't explain every change in detail here. The below information is
+just a rough description:
+
+PHY_REG_REV: Disable internal clkreq_tx, enable rx_pwst
+PHY_BPCR: No change, just turn the magic number to macro definitions
+PHY_PCR: Change OOBS sensitivity, from 60mV to 90mV
+PHY_RCR2: Control charge-pump current automatically
+PHY_FLD4: Use TX cmu reference clock
+PHY_RDR: Change RXDSEL from 30nF to 1.9nF
+PHY_RCR1: Change the duration between adp_st and asserting cp_en from
+0.32 us to 0.64us
+PHY_FLD3: Adjust internal timers
+PHY_TUNE: Fine tune the regulator12 output voltage
+
+Signed-off-by: Wei WANG <wei_wang@realsil.com.cn>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+Cc: Chris Ball <cjb@laptop.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mfd/rts5249.c        |   48 +++++++++++++++++++++++++++++++++++++-
+ include/linux/mfd/rtsx_pci.h |   53 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 99 insertions(+), 2 deletions(-)
+
+--- a/drivers/mfd/rts5249.c
++++ b/drivers/mfd/rts5249.c
+@@ -130,13 +130,57 @@ static int rts5249_optimize_phy(struct r
+ {
+       int err;
+-      err = rtsx_pci_write_phy_register(pcr, PHY_REG_REV, 0xFE46);
++      err = rtsx_pci_write_phy_register(pcr, PHY_REG_REV,
++                      PHY_REG_REV_RESV | PHY_REG_REV_RXIDLE_LATCHED |
++                      PHY_REG_REV_P1_EN | PHY_REG_REV_RXIDLE_EN |
++                      PHY_REG_REV_RX_PWST | PHY_REG_REV_CLKREQ_DLY_TIMER_1_0 |
++                      PHY_REG_REV_STOP_CLKRD | PHY_REG_REV_STOP_CLKWR);
+       if (err < 0)
+               return err;
+       msleep(1);
+-      return rtsx_pci_write_phy_register(pcr, PHY_BPCR, 0x05C0);
++      err = rtsx_pci_write_phy_register(pcr, PHY_BPCR,
++                      PHY_BPCR_IBRXSEL | PHY_BPCR_IBTXSEL |
++                      PHY_BPCR_IB_FILTER | PHY_BPCR_CMIRROR_EN);
++      if (err < 0)
++              return err;
++      err = rtsx_pci_write_phy_register(pcr, PHY_PCR,
++                      PHY_PCR_FORCE_CODE | PHY_PCR_OOBS_CALI_50 |
++                      PHY_PCR_OOBS_VCM_08 | PHY_PCR_OOBS_SEN_90 |
++                      PHY_PCR_RSSI_EN);
++      if (err < 0)
++              return err;
++      err = rtsx_pci_write_phy_register(pcr, PHY_RCR2,
++                      PHY_RCR2_EMPHASE_EN | PHY_RCR2_NADJR |
++                      PHY_RCR2_CDR_CP_10 | PHY_RCR2_CDR_SR_2 |
++                      PHY_RCR2_FREQSEL_12 | PHY_RCR2_CPADJEN |
++                      PHY_RCR2_CDR_SC_8 | PHY_RCR2_CALIB_LATE);
++      if (err < 0)
++              return err;
++      err = rtsx_pci_write_phy_register(pcr, PHY_FLD4,
++                      PHY_FLD4_FLDEN_SEL | PHY_FLD4_REQ_REF |
++                      PHY_FLD4_RXAMP_OFF | PHY_FLD4_REQ_ADDA |
++                      PHY_FLD4_BER_COUNT | PHY_FLD4_BER_TIMER |
++                      PHY_FLD4_BER_CHK_EN);
++      if (err < 0)
++              return err;
++      err = rtsx_pci_write_phy_register(pcr, PHY_RDR, PHY_RDR_RXDSEL_1_9);
++      if (err < 0)
++              return err;
++      err = rtsx_pci_write_phy_register(pcr, PHY_RCR1,
++                      PHY_RCR1_ADP_TIME | PHY_RCR1_VCO_COARSE);
++      if (err < 0)
++              return err;
++      err = rtsx_pci_write_phy_register(pcr, PHY_FLD3,
++                      PHY_FLD3_TIMER_4 | PHY_FLD3_TIMER_6 |
++                      PHY_FLD3_RXDELINK);
++      if (err < 0)
++              return err;
++      return rtsx_pci_write_phy_register(pcr, PHY_TUNE,
++                      PHY_TUNE_TUNEREF_1_0 | PHY_TUNE_VBGSEL_1252 |
++                      PHY_TUNE_SDBUS_33 | PHY_TUNE_TUNED18 |
++                      PHY_TUNE_TUNED12);
+ }
+ static int rts5249_turn_on_led(struct rtsx_pcr *pcr)
+--- a/include/linux/mfd/rtsx_pci.h
++++ b/include/linux/mfd/rtsx_pci.h
+@@ -756,6 +756,59 @@
+ #define PCR_SETTING_REG2              0x814
+ #define PCR_SETTING_REG3              0x747
++/* Phy bits */
++#define PHY_PCR_FORCE_CODE                    0xB000
++#define PHY_PCR_OOBS_CALI_50                  0x0800
++#define PHY_PCR_OOBS_VCM_08                   0x0200
++#define PHY_PCR_OOBS_SEN_90                   0x0040
++#define PHY_PCR_RSSI_EN                               0x0002
++
++#define PHY_RCR1_ADP_TIME                     0x0100
++#define PHY_RCR1_VCO_COARSE                   0x001F
++
++#define PHY_RCR2_EMPHASE_EN                   0x8000
++#define PHY_RCR2_NADJR                                0x4000
++#define PHY_RCR2_CDR_CP_10                    0x0400
++#define PHY_RCR2_CDR_SR_2                     0x0100
++#define PHY_RCR2_FREQSEL_12                   0x0040
++#define PHY_RCR2_CPADJEN                      0x0020
++#define PHY_RCR2_CDR_SC_8                     0x0008
++#define PHY_RCR2_CALIB_LATE                   0x0002
++
++#define PHY_RDR_RXDSEL_1_9                    0x4000
++
++#define PHY_TUNE_TUNEREF_1_0                  0x4000
++#define PHY_TUNE_VBGSEL_1252                  0x0C00
++#define PHY_TUNE_SDBUS_33                     0x0200
++#define PHY_TUNE_TUNED18                      0x01C0
++#define PHY_TUNE_TUNED12                      0X0020
++
++#define PHY_BPCR_IBRXSEL                      0x0400
++#define PHY_BPCR_IBTXSEL                      0x0100
++#define PHY_BPCR_IB_FILTER                    0x0080
++#define PHY_BPCR_CMIRROR_EN                   0x0040
++
++#define PHY_REG_REV_RESV                      0xE000
++#define PHY_REG_REV_RXIDLE_LATCHED            0x1000
++#define PHY_REG_REV_P1_EN                     0x0800
++#define PHY_REG_REV_RXIDLE_EN                 0x0400
++#define PHY_REG_REV_CLKREQ_DLY_TIMER_1_0      0x0040
++#define PHY_REG_REV_STOP_CLKRD                        0x0020
++#define PHY_REG_REV_RX_PWST                   0x0008
++#define PHY_REG_REV_STOP_CLKWR                        0x0004
++
++#define PHY_FLD3_TIMER_4                      0x7800
++#define PHY_FLD3_TIMER_6                      0x00E0
++#define PHY_FLD3_RXDELINK                     0x0004
++
++#define PHY_FLD4_FLDEN_SEL                    0x4000
++#define PHY_FLD4_REQ_REF                      0x2000
++#define PHY_FLD4_RXAMP_OFF                    0x1000
++#define PHY_FLD4_REQ_ADDA                     0x0800
++#define PHY_FLD4_BER_COUNT                    0x00E0
++#define PHY_FLD4_BER_TIMER                    0x000A
++#define PHY_FLD4_BER_CHK_EN                   0x0001
++
+ #define rtsx_pci_init_cmd(pcr)                ((pcr)->ci = 0)
+ struct rtsx_pcr;
diff --git a/queue-3.12/revert-input-alps-add-support-for-model-found-on-dell-xt2.patch b/queue-3.12/revert-input-alps-add-support-for-model-found-on-dell-xt2.patch
new file mode 100644 (file)
index 0000000..85bdb64
--- /dev/null
@@ -0,0 +1,28 @@
+From 936816161978ca716a56c5e553c68f25972b1e3a Mon Sep 17 00:00:00 2001
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+Date: Thu, 14 Nov 2013 17:36:42 -0800
+Subject: Revert "Input: ALPS - add support for model found on Dell XT2"
+
+From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
+
+commit 936816161978ca716a56c5e553c68f25972b1e3a upstream.
+
+This reverts commit 5beea882e64121dfe3b33145767d3302afa784d5 as it
+breaks trackpoint operation on XT2.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/alps.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/input/mouse/alps.c
++++ b/drivers/input/mouse/alps.c
+@@ -103,7 +103,6 @@ static const struct alps_model_info alps
+       /* Dell Latitude E5500, E6400, E6500, Precision M4400 */
+       { { 0x62, 0x02, 0x14 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf,
+               ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },
+-      { { 0x73, 0x00, 0x14 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_DUALPOINT },              /* Dell XT2 */
+       { { 0x73, 0x02, 0x50 }, 0x00, ALPS_PROTO_V2, 0xcf, 0xcf, ALPS_FOUR_BUTTONS },           /* Dell Vostro 1400 */
+       { { 0x52, 0x01, 0x14 }, 0x00, ALPS_PROTO_V2, 0xff, 0xff,
+               ALPS_PASS | ALPS_DUALPOINT | ALPS_PS2_INTERLEAVED },                            /* Toshiba Tecra A11-11L */
index b933e9cceae001d649ff287e963d99d5cda491d2..3bdfd007a58a2eda188efe4c2b3cd8c8f1d5593c 100644 (file)
@@ -162,3 +162,13 @@ alsa-hda-create-headhpone-mic-jack-mode-when-really-needed.patch
 alsa-hda-initialize-missing-bass-speaker-pin-for-asus-aio-et2700.patch
 alsa-hda-check-leaf-nodes-to-find-aamix-amps.patch
 tracing-allow-events-to-have-null-strings.patch
+revert-input-alps-add-support-for-model-found-on-dell-xt2.patch
+input-evdev-fall-back-to-vmalloc-for-client-event-buffer.patch
+input-cypress_ps2-do-not-consider-data-bad-if-palm-is-detected.patch
+input-i8042-add-pnp-modaliases.patch
+hid-don-t-ignore-egalax-d-wav-eeti-hids.patch
+input-usbtouchscreen-ignore-egalax-d-wav-eeti-hids.patch
+mfd-lpc_ich-add-device-ids-for-intel-wildcat-point-lp-pch.patch
+mfd-rtsx-modify-rts5249_optimize_phy.patch
+cpufreq-highbank-cpufreq-enable-midway-ecx-2000.patch
+sh-ecovec-fixup-compile-error-on-sdhi.patch
diff --git a/queue-3.12/sh-ecovec-fixup-compile-error-on-sdhi.patch b/queue-3.12/sh-ecovec-fixup-compile-error-on-sdhi.patch
new file mode 100644 (file)
index 0000000..393121d
--- /dev/null
@@ -0,0 +1,33 @@
+From 357002b9c09e5332c9fcd4fa3d3c0fa00ca6ae4f Mon Sep 17 00:00:00 2001
+From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Date: Tue, 24 Sep 2013 18:55:22 -0700
+Subject: sh: ecovec: fixup compile error on sdhi
+
+From: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+
+commit 357002b9c09e5332c9fcd4fa3d3c0fa00ca6ae4f upstream.
+
+afa2c9407f8908 ("sh: ecovec24: Use MMC/SDHI CD and RO GPIO") added
+.tmio_flags = TMIO_MMC_USE_GPIO_CD on sh_mobile_sdhi_info, but it needs
+<linux/mfd/tmio.h> header.  This patch adds it.
+
+Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
+Reviewed-by: Yusuke Goda <yusuke.goda.sx@renesas.com>
+Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
+Signed-off-by: Chris Ball <cjb@laptop.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/sh/boards/mach-ecovec24/setup.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/sh/boards/mach-ecovec24/setup.c
++++ b/arch/sh/boards/mach-ecovec24/setup.c
+@@ -15,6 +15,7 @@
+ #include <linux/mmc/sh_mmcif.h>
+ #include <linux/mmc/sh_mobile_sdhi.h>
+ #include <linux/mtd/physmap.h>
++#include <linux/mfd/tmio.h>
+ #include <linux/gpio.h>
+ #include <linux/interrupt.h>
+ #include <linux/io.h>