cascardo/linux.git
12 years agoMerge branch 'chromeos-input-3.4' into chromeos-3.4
Olof Johansson [Fri, 1 Jun 2012 07:06:15 +0000 (00:06 -0700)]
Merge branch 'chromeos-input-3.4' into chromeos-3.4

By Daniel Kurtz (51) and others
* chromeos-input-3.4: (79 commits)
  CHROMIUM: Input: atmel_mxt_ts - Add sysfs entry for r/w config file name
  CHROMIUM: Input: atmel_mxt_ts - Add sysfs entry for r/w fw file name
  CHROMIUM: Input: atmel_mxt_ts - Wait on auto calibration msg in suspend
  CHROMIUM: Input: atmel_mxt_ts - Support the case with no platform data
  CHROMIUM: Input: atmel_mxt_ts - Set default irqflags when there is no pdata
  CHROMIUM: Input: atmel_mxt_ts - Move object from sysfs to debugfs
  CHROMIUM: Input: atmel_mxt_ts - add deltas and refs debugfs entries
  CHROMIUM: Input: atmel_mxt_ts - Wait for CHG after bootloader resets
  CHROMIUM: Input: atmel_mxt_ts - Wait for CHG assert in mxt_check_bootloader
  CHROMIUM: Input: atmel_mxt_ts - Cleanup load_fw
  CHROMIUM: Input: atmel_mxt_ts - Add IDLE/DEEP-SLEEP modes when suspend
  CHROMIUM: Input: atmel_mxt_ts - Read resolution from device memory
  CHROMIUM: Input: atmel_mxt_ts - Remove matrix size update
  CHROMIUM: Input: cyapa - refactor debugfs mutex init/destruction
  CHROMIUM: Input: atmel_mxt_ts - add debugfs infrastructure
  CHROMIUM: Input: atmel_mxt_tx - add matrix_size sysfs entry
  CHROMIUM: Input: atmel_mxt_ts - refactor input device creation
  CHROMIUM: Input: atmel_mxt_ts - register input device before request_irq
  CHROMIUM: Input: atmel_mxt_ts - verify info block checksum
  CHROMIUM: Input: atmel_mxt_ts - add sysfs entry to read info checksum
  ...

12 years agoMerge branch 'chromeos-gobi-3.4' into chromeos-3.4
Olof Johansson [Fri, 1 Jun 2012 07:06:10 +0000 (00:06 -0700)]
Merge branch 'chromeos-gobi-3.4' into chromeos-3.4

By ttuttle (33) and others
via Grant Grundler
* chromeos-gobi-3.4: (59 commits)
  CHROMIUM: qcusbnet: don't spew "failed to autoresume" by default
  CHROMIUM: gobi: fix compiler warnings
  CHROMIUM: gobi: don't wait forever to close qmi fds
  CHROMIUM: gobi: Raise QMI timeout to 2000ms.
  CHROMIUM: gobi: Add SYNC_UNINTERRUPTIBLE sync_flags, and use it.
  CHROMIUM: gobi: Make qc_register log message better.
  CHROMIUM: gobi: Return -ENODEV on probe failures.
  CHROMIUM: gobi: Make probe failures WARN, not ERROR.
  CHROMIUM: gobi: Print error codes in qmidms_getmeid.
  CHROMIUM: gobi: Log cid_free errors in client_free.
  CHROMIUM: gobi: poison urbs instead of killing in stopread
  CHROMIUM: gobi: Proper error handling in getmeid.
  CHROMIUM: gobi: Fail instead of zeroing MEID on failed getmeid.
  CHROMIUM: gobi: Rearrange error handling in qc_deregister.
  CHROMIUM: gobi: time out sync operations in register
  CHROMIUM: gobi: qc_deregister in qcnet_disconnect, not _unbind
  CHROMIUM: gobi: proper error handling in qc_register
  CHROMIUM: gobi: fail qcnet_probe when qc_register fails
  CHROMIUM: gobi: usbnet_probe failure is a warning
  CHROMIUM: gobi: Set FLAG_WWAN so we are named wwan%d
  ...

12 years agoMerge branch 'chromeos-base-3.4' into chromeos-3.4
Olof Johansson [Fri, 1 Jun 2012 07:05:14 +0000 (00:05 -0700)]
Merge branch 'chromeos-base-3.4' into chromeos-3.4

* chromeos-base-3.4: (72 commits)
  CHROMIUM: config: Enable USB audio.
  CHROMIUM: config: remove i386/chromeos-intel-menlow
  CHROMIUM: config: rerun oldconfig for 3.4
  CHROMIUM: Fix "Work around Intel GPU bug with some physical pages."
  CHROMIUM: Work around Intel GPU bug with some physical pages.
  CHROMIUMOS: config: Enable verbose logging in mac80211
  CHROMIUM: make it easier to skip architectures in kernelconfig
  CHROMIUM: config: Add bogus chromiumos-exynos5 until we have the real one
  CHROMIUM: drm/i915: Replace pin count BUG_ON with warning
  CHROMIUM: scripts: Allow prepareconfig to accept a destination
  CHROMIUM: acpi- add printk and dumpstack at acpi_disable/enable
  CHROMIUM: config: enable joystick drivers
  CHROMIUM: config: re-normalize split configs
  CHROMIUM: config: Enabling RT3090 WiFi module.
  CHROMIUM: kick lockup detector on resume
  CHROMIUM: config: turn on ZRAM and SWAP on x86 arches
  CHROMIUM: config: i386: Enable xhci (USB 3.0) module.
  CHROMIUM: config: x86_64: Enable xhci (USB 3.0) module.
  CHROMIUM: config: Re-enable net namespaces in the kernel.
  CHROMIUM: config: turn off some rtl wifi drivers on chromeos configs
  ...

12 years agoCHROMIUM: Input: atmel_mxt_ts - Add sysfs entry for r/w config file name
Yufeng Shen [Wed, 16 May 2012 22:38:14 +0000 (18:38 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Add sysfs entry for r/w config file name

In the preparation for adding support of loading atmel config data
from file, this CL adds the sysfs entry config_file so that which
config file to be used is configurable from userspace. The config
file under /lib/firmware/ will be loaded through request_firmware()
call. The default config file is "maxtouch.cfg".

This support is necessary on system with more than 1 atmel chip and
each needs a different configuration file.

Signed-off-by: Yufeng Shen <miletus@chromium.org>
BUG=chrome-os-partner:9103
TEST=cat path-to-atmel-sysfs/config_file
     and make sure "maxtouch.cfg" is returned
     echo XXX > path-to-atmel-sysfs/config_file
     cat path-to-atmel-sysfs/config_file
     and make sure XXX is returned

Change-Id: If87a4956c46b4a27e40f689be6304691b79cbf00
Reviewed-on: https://gerrit.chromium.org/gerrit/21663
Reviewed-by: Benson Leung <bleung@chromium.org>
Commit-Ready: Yufeng Shen <miletus@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - Add sysfs entry for r/w fw file name
Yufeng Shen [Wed, 16 May 2012 22:20:43 +0000 (18:20 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Add sysfs entry for r/w fw file name

On system with more than 1 Atmel chip, a fixed firmware file name
"maxtouch.fw" does not work since different chips need different
firmware files. This CL adds the sysfs entry that make it possible
for userspace to specify the file name of the firmware to be loaded.
If no file name is specified, the default "maxtouch.fw" is used for
compatibility with existing code.

Signed-off-by: Yufeng Shen <miletus@chromium.org>
BUG=chrome-os-partner:9103
TEST=cat path-to-atmel-sysfs/fw_file
     and make sure "maxtouch.fw" is returned
     echo XXX > path-to-atmel-sysfs/fw_file
     cat path-to-atmel-sysfs/fw_file
     and make sure XXX is returned
     echo 1 > path-to-atmel-sysfs/update_fw
     and make sure the driver tries to load XXX
     if XXX exists in /lib/firmware, check that
     firmware update succeeds
     if XXX does not exist in /lib/firmware, check
     that firmware update fails

Change-Id: Icdff2851866b36de08c6fd75c29947a8d27f7dfe
Reviewed-on: https://gerrit.chromium.org/gerrit/22867
Reviewed-by: Benson Leung <bleung@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
Commit-Ready: Yufeng Shen <miletus@chromium.org>

12 years agoCHROMIUM: Input: atmel_mxt_ts - Wait on auto calibration msg in suspend
Yufeng Shen [Wed, 16 May 2012 18:52:02 +0000 (14:52 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Wait on auto calibration msg in suspend

If the atmel chip enters suspend mode and wants to be able to
wakeup from suspend, T9 object has to be enabled during suspend.
If T9 is enalbed from a disabled state, the chip will perform an
auto calibration and send back the status of the calibration.
We have to wait for these messages to be read before entering
suspend, otherwise these message will wakeup the system automatically.

Signed-off-by: Yufeng Shen <miletus@chromium.org>
BUG=chrome-os-partner:8722
TEST=run powerd_suspend to put system into sleep and make sure it
     does not wakeup automatically. And touch the TS/TP to wake the
     system up

Change-Id: Iaf8175c8e6d523edfd152172e1966303ac8fd65f
Reviewed-on: https://gerrit.chromium.org/gerrit/22842
Reviewed-by: Benson Leung <bleung@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
Commit-Ready: Yufeng Shen <miletus@chromium.org>

12 years agoCHROMIUM: Input: atmel_mxt_ts - Support the case with no platform data
Yufeng Shen [Mon, 14 May 2012 16:29:52 +0000 (12:29 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Support the case with no platform data

Add the support that the device finishes initialization even when no
platform data is provided. Most of the time the device needs configured
only once and later on it can just use backed up config from NVRAM.
So the code path with no platform saves on device initialization time.

Rename mxt_check_reg_init() to be mxt_apply_pdata_config() and move it
into mxt_handle_pdata() so that all the platform data processing is in
one fucntion.

Signed-off-by: Yufeng Shen <miletus@chromium.org>
BUG=chrome-os-partner:9103
TEST=Rebuild the kernel with no platform data provided, boot the device
     with a previously working atmel chip, and make sure the atmel chip
     still works.

Change-Id: I2440c58ab9b9baa1160406827ba9d08aee52a554
Reviewed-on: https://gerrit.chromium.org/gerrit/22587
Commit-Ready: Yufeng Shen <miletus@chromium.org>
Reviewed-by: Yufeng Shen <miletus@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - Set default irqflags when there is no pdata
Yufeng Shen [Mon, 14 May 2012 16:06:29 +0000 (12:06 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Set default irqflags when there is no pdata

This is the preparation for supporting the code path when there is
platform data provided and still boot the device into a sane state
with backup NVRAM config.

This CL makes the irqflags default to be IRQF_TRIGGER_FALLING if no
platform data is provided.

Signed-off-by: Yufeng Shen <miletus@chromium.org>
BUG=chrome-os-partner:9103
TEST=The code path for no pdata is not supported yet, so no test can
     be done at this point. And no funtional change along the normal
     code path with platform data provided.

Change-Id: Icea0fff544c77b38eb380851d7e7d8f857b76745
Reviewed-on: https://gerrit.chromium.org/gerrit/22417
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Commit-Ready: Yufeng Shen <miletus@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - Move object from sysfs to debugfs
Yufeng Shen [Thu, 10 May 2012 20:19:04 +0000 (16:19 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Move object from sysfs to debugfs

The object sysfs entry is used to read the current register value
of all the objects. Each read on the sysfs entry can only return
up to PAGE_SIZE (usually 4k) bytes, which is not enough for showing
all the object values for some atmel chips. This CL moves the sysfs
entry to debugfs which does not have this PAGE_SIZE limit on read.

Signed-off-by: Yufeng Shen <miletus@chromium.org>
BUG=chrome-os-partner:9253
TEST=cd /sys/kernel/debug/atmel_mxt_ts/*DEVICE-I2C-ADDR*/
     cat object
     it should show the register value for all the objects

Change-Id: Ic2f0df0c17655b5208ef5746f602fdb8af1c3467
Reviewed-on: https://gerrit.chromium.org/gerrit/21812
Commit-Ready: Yufeng Shen <miletus@chromium.org>
Reviewed-by: Yufeng Shen <miletus@chromium.org>
Tested-by: Yufeng Shen <miletus@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - add deltas and refs debugfs entries
Daniel Kurtz [Wed, 9 May 2012 06:06:10 +0000 (14:06 +0800)]
CHROMIUM: Input: atmel_mxt_ts - add deltas and refs debugfs entries

Reading these two debugfs entries returns a binary blob containing the
contents of all pages of the T37 object when the DELTAS and REFERENCES
commands are requested, respectively.
The values are written to the file as they are arranged in the device's
T37 object,  that is, as a 2D array with matrix_ysize columns and
matrix_xsize rows of 2-byte (little endian) values.

It is left to userspace to parse the 2-byte values.
 * Deltas are signed 2's complement 2-byte little-endian values.
     s32 delta = (b[0] + (b[1] << 8));

 * Refs are signed 'offset binary' 2-byte little-endian values,
   with offset 16384 (0x4000):
    s32 ref = (b[0] + (b[1] << 8)) - 16384;

Userspace should use the 'matrix_size' sysfs entry to determine the
dimensions of the returned arrays.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
BUG=chromium-os:29899
TEST=hexdump -e '52/2 "%6d" "\n"' /sys/kernel/debug/atmel_mxt_ts/<dev>/deltas
 => dumps 'delta' values in a 52-column wide grid
TEST=hexdump -e '12/2 "%6d" "\n"' /sys/kernel/debug/atmel_mxt_ts/<dev>/deltas
 => dumps the 'ref' values in a 12-column wide grid

Change-Id: I9deb64074dd9947739961aa4323573f4544e9dc1
Reviewed-on: https://gerrit.chromium.org/gerrit/21052
Commit-Ready: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - Wait for CHG after bootloader resets
Benson Leung [Thu, 3 May 2012 03:21:12 +0000 (20:21 -0700)]
CHROMIUM: Input: atmel_mxt_ts - Wait for CHG after bootloader resets

Rather than msleep for MXT_RESET_TIME and MXT_FWRESET_TIME
during the transition to bootloader mode and the transition
back from app, wait for the CHG assert to indicate that the
transition is done.

This change replaces the msleep with a wait for completion that
the mxt_interrupt handler signals.

This improves firmware update time at 300ms as we no longer
wait longer than necessary for each reset.

BUG=chrome-os-partner:8716,chrome-os-partner:8732
TEST=Verify fw update works, and device is initialized properly after.

Change-Id: Id8982144d3966ccd8227da2a2ea47f9e73115d8e
Signed-off-by: Benson Leung <bleung@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21832

12 years agoCHROMIUM: Input: atmel_mxt_ts - Wait for CHG assert in mxt_check_bootloader
Benson Leung [Thu, 26 Apr 2012 06:08:12 +0000 (23:08 -0700)]
CHROMIUM: Input: atmel_mxt_ts - Wait for CHG assert in mxt_check_bootloader

The driver should not immediately read bootloader status when
in Application Update Mode. The CHG line will assert when the device
has made a state transition and is ready to report a new status
via i2c.

This change adds a wait for completion in mxt_check_bootloader,
and changes the mxt_interrupt handler to signal the completion.

This will allow this commit in the intel_i2c driver to be reverted,
as the time is no longer spent waiting for i2c read:
3414f39 CHROMIUM: drm/i915/intel_i2c: Increase bitbang fallback timeout for atmel_mx

BUG=chrome-os-partner:8730
TEST=(a) Verify when device not in BL (normal case), no functional change.
TEST=(b) Verify fw update works, and device is initialized properly
       after.

Change-Id: I5d20a9d63361fb91cb59aa7351e581f55422b924
Signed-off-by: Benson Leung <bleung@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21173

12 years agoCHROMIUM: Input: atmel_mxt_ts - Cleanup load_fw
Benson Leung [Thu, 3 May 2012 20:57:46 +0000 (13:57 -0700)]
CHROMIUM: Input: atmel_mxt_ts - Cleanup load_fw

Handle error conditions in the load_fw path.
Refactor Entry/Exit bootloader in load_fw.
Other misc cleanup, including only changing the address
back to APP when a firmware update is successful. If a failure
is encountered during the firmware update, the device will remain
at the bootloader address.

BUG=chrome-os-partner:8716
TEST=Place an firmware file at /lib/firmware/maxtouch.fw
echo 1 > update_fw
Ensure that a normal firmware update works.

Change-Id: I49bf582be90ffc8c4dd2696413ceff060fd8926e
Signed-off-by: Benson Leung <bleung@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21831

12 years agoCHROMIUM: Input: atmel_mxt_ts - Add IDLE/DEEP-SLEEP modes when suspend
Yufeng Shen [Sat, 5 May 2012 00:47:32 +0000 (20:47 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Add IDLE/DEEP-SLEEP modes when suspend

Currently when system enters/leaves sleep mode, the driver dis/enables
T9 object. It has the limitation that 1) it does not allow the device
to wakeup the system 2) the device is not in it's best power saving mode
when the system is sleeping.

This patch adds the support to put the device into 1) Idle mode, when the
need of wakeup from sleep is needed 2) Deepsleep mode when wakeup from
sleep is not needed.

To achieve this, when the system enters sleep mode, the current T7 Power
Config value is first saved and then it is re-configured to be Idle mode
(with largest Idle Acquisition Interval and largest Active Acquisition
Interval) or Deepsleep mode. Also if wakeup from sleep is needed, the
current T9 Ctrl field is saved and a resonable value 0x03 is used to
enable T9 so that we can be sure touch contact will generate IRQ to wake
the system up.

When resume, before-suspend T7 and T9 values are restored accordingly.

BUG=chrome-os-partner:9413
TEST=On system with atmel trackpad
     cd /sys/bus/i2c/drivers/atmel_mxt_ts/2-004b/power
     echo "enabled" > wakeup
     powerd_suspend
     touch trackpad should wakeup the system
     echo "disabled" > wakeup
     powerd_suspend
     touch trackpad should not wakeup the system

Change-Id: I85896691ddd69d854a923f548edf8b7d6caa9f8e
Signed-off-by: Yufeng Shen <miletus@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21919
Reviewed-by: Benson Leung <bleung@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - Read resolution from device memory
Yufeng Shen [Tue, 1 May 2012 20:58:46 +0000 (16:58 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Read resolution from device memory

Currently mxt_calc_resolution() computes device resolution from
provided platform data. Since we are going to support loading
configuration data from file instead of platform data, we rework
mxt_calc_resolution() so it reads the actual resolution from the
configured device memory.

And also move mxt_calc_resolution() into mxt_initialize() after
the device is configured.

BUG=chrome-os-partner:9103
TEST=Use evtest to check that the range of ABS_X/Y and
     ABS_MT_POSITION_X/Y are correct.

Change-Id: Ibf66af4c656b138b52ce5608d7357bf15ee423ac
Signed-off-by: Yufeng Shen <miletus@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21544
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - Remove matrix size update
Yufeng Shen [Tue, 1 May 2012 21:31:04 +0000 (17:31 -0400)]
CHROMIUM: Input: atmel_mxt_ts - Remove matrix size update

The matrix x/y size in the Info Block represents the max x/y lines
availble on the device and it will only be updated by the firmware
but not the platform data configuration, which sets the x/y lines
in T9 object.

BUG=None
TEST=None

Change-Id: I18e4f9855fe2018c2b55256ce25821a6197b9f81
Signed-off-by: Yufeng Shen <miletus@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21547

12 years agoCHROMIUM: Input: cyapa - refactor debugfs mutex init/destruction
Daniel Kurtz [Mon, 30 Apr 2012 07:31:14 +0000 (15:31 +0800)]
CHROMIUM: Input: cyapa - refactor debugfs mutex init/destruction

Make debugfs mutex init conditional on successful debugfs init, and
destroy mutex when debugfs is removed.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
BUG=chromium-os:23454
TEST=builds clean; cyapa debugfs entry read_fw still dumps firmware.

Change-Id: Iada91346af524521e2642d461aa0bc55753666a5
Reviewed-on: https://gerrit.chromium.org/gerrit/21454
Commit-Ready: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
12 years agoCHROMIUM: Input: atmel_mxt_ts - add debugfs infrastructure
Daniel Kurtz [Wed, 9 May 2012 02:18:14 +0000 (02:18 +0000)]
CHROMIUM: Input: atmel_mxt_ts - add debugfs infrastructure

This patch just creates a per-device debugfs root directory.
Actual debugfs entries will be added in subsequent patches.

Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
BUG=chromium-os:29899
TEST=ls /sys/kernel/debug/atmel_mxt_ts
   => Should show directories for each atmel_mxt_ts device on the system

Change-Id: I82e5470f5d1658dae03ad8d66bf348cc4fb2edb2
Reviewed-on: https://gerrit.chromium.org/gerrit/21051
Commit-Ready: Daniel Kurtz <djkurtz@chromium.org>
Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
Tested-by: Daniel Kurtz <djkurtz@chromium.org>
12 years agoCHROMIUM: config: Enable USB audio.
Dylan Reid [Wed, 4 Apr 2012 04:54:12 +0000 (21:54 -0700)]
CHROMIUM: config: Enable USB audio.

Turn on USB audio devices.  User space will now route audio to/from
these devices.

BUG=chromium-os:20620
TEST=Manual, plug in USB webcam and test it works with Talk plugin.

Change-Id: I8ab1952c176c50f631bbf6829abdce92ef7cb092
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23475
Reviewed-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Taylor Hutt <thutt@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23549

12 years agoCHROMIUM: config: remove i386/chromeos-intel-menlow
Olof Johansson [Thu, 17 May 2012 05:42:26 +0000 (22:42 -0700)]
CHROMIUM: config: remove i386/chromeos-intel-menlow

It's no longer used (and has been a link to chromeos-pinetrail-i386 for
the longest time.

One of these months we'll fix up the config file naming to not be quite
so random.

BUG=none
TEST=repo grep chromeos-intel-menlow, find a match only in an archaic
debian packaging file.

Change-Id: Ic35e471c4f6cc37654b7ead9e753ffb1476369d2
Signed-off-by: Olof Johansson <olofj@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/22905
Reviewed-by: Grant Grundler <grundler@chromium.org>
12 years agoCHROMIUM: config: rerun oldconfig for 3.4
Olof Johansson [Thu, 17 May 2012 03:02:45 +0000 (20:02 -0700)]
CHROMIUM: config: rerun oldconfig for 3.4

Went almost entirely with defaults. The list of questions answered below:

chromeos-intel-pineview:
Checkpoint/restore support (CHECKPOINT_RESTORE) [N/y/?] (NEW)
  EFI stub support (EFI_STUB) [N/y/?] (NEW)
  Boottime Graphics Resource Table support (ACPI_BGRT) [N/m/y/?] (NEW)
      Default ASPM policy
      > 1. BIOS default (PCIEASPM_DEFAULT) (NEW)
        2. Powersave (PCIEASPM_POWERSAVE) (NEW)
        3. Performance (PCIEASPM_PERFORMANCE) (NEW)
      choice[1-3]:
Enable PCI resource re-allocation detection (PCI_REALLOC_ENABLE_AUTO) [N/y/?] (NEW)
  x32 ABI for 64-bit mode (EXPERIMENTAL) (X86_X32) [N/y/?] (NEW)
  UNIX: socket monitoring interface (UNIX_DIAG) [N/m/y/?] (NEW)
  Supply CT list in procfs (OBSOLETE) (NF_CONNTRACK_PROCFS) [Y/n/?] (NEW)
  LOG target support (NETFILTER_XT_TARGET_LOG) [M/n/y/?] (NEW) n
  Plug network traffic until release (PLUG) (NET_SCH_PLUG) [N/m/y/?] (NEW)
Open vSwitch (OPENVSWITCH) [N/m/y/?] (NEW)
Network priority cgroup (NETPRIO_CGROUP) [N/m/y/?] (NEW)
  Block Device Driver for Micron PCIe SSDs (BLK_DEV_PCIESSD_MTIP32XX) [N/m/y/?] (NEW)
  NVM Express block device (BLK_DEV_NVME) [N/m/y/?] (NEW)
Ethernet team driver support (EXPERIMENTAL) (NET_TEAM) [N/m/y/?] (NEW)
  Calxeda 1G/10G XGMAC Ethernet driver (NET_CALXEDA_XGMAC) [N/m/y/?] (NEW)
  Drivers for the AMD PHYs (AMD_PHY) [N/m/y/?] (NEW)
  Micrel KS8995MA 5-ports 10/100 managed Ethernet switch (MICREL_KS8995MA) [N/m/y] (NEW)
    QMI WWAN driver for Qualcomm MSM based 3G and LTE modems (USB_NET_QMI_WWAN) [N/m/?] (NEW)
    Atheros bluetooth coexistence support (ATH9K_BTCOEX_SUPPORT) [Y/n/?] (NEW)
      Atheros DFS support for certified platforms (ATH9K_DFS_CERTIFIED) [N/y/?] (NEW)
    Atheros MAC statistics (ATH9K_MAC_DEBUG) [Y/n/?] (NEW)
    Atheros mobile chipsets support (ATH6KL) [N/m] (NEW)
    Broadcom IEEE802.11n embedded FullMAC WLAN driver (BRCMFMAC) [N/m/?] (NEW)
      iwlwifi experimental P2P support (IWLWIFI_P2P) [N/y/?] (NEW)
      support MFP (802.11w) even if uCode doesn't advertise (IWLWIFI_EXPERIMENTAL_MFP) [N/y/?] (NEW)
    Enable full debugging output in iwlegacy (iwl 3945/4965) drivers (IWLEGACY_DEBUG) [N/y/?] (NEW)
    iwlegacy (iwl 3945/4965) debugfs support (IWLEGACY_DEBUGFS) [N/y/?] (NEW)
        rt2800pci - Include support for rt33xx devices (RT2800PCI_RT33XX) [Y/n/?] (NEW) n
        rt2800pci - Include support for rt35xx devices (EXPERIMENTAL) (RT2800PCI_RT35XX) [Y/n/?] (NEW) n
        rt2800pci - Include support for rt53xx devices (EXPERIMENTAL) (RT2800PCI_RT53XX) [Y/n/?] (NEW) n
      Ralink debugfs support (RT2X00_LIB_DEBUGFS) [N/y/?] (NEW)
      Ralink debug output (RT2X00_DEBUG) [N/y/?] (NEW)
    Additional debugging output (RTLWIFI_DEBUG) [Y/n] (NEW) n
  TCA8418 Keypad Support (KEYBOARD_TCA8418) [N/m/y/?] (NEW)
  TI OMAP4 keypad support (KEYBOARD_OMAP4) [N/m/y/?] (NEW)
  Synaptics USB device support (MOUSE_SYNAPTICS_USB) [N/m/y/?] (NEW)
  AUO in-cell touchscreen using Pixcir ICs (TOUCHSCREEN_AUO_PIXCIR) [N/m/y/?] (NEW)
  Cypress TTSP touchscreen (TOUCHSCREEN_CYTTSP_CORE) [N/m/y/?] (NEW)
  EETI eGalax multi-touch panel support (TOUCHSCREEN_EGALAX) [N/m/y/?] (NEW)
  Ilitek ILI210X based touchscreen (TOUCHSCREEN_ILI210X) [N/m/y/?] (NEW)
  PIXCIR I2C touchscreens (TOUCHSCREEN_PIXCIR) [N/m/y/?] (NEW)
  Sharp GP2AP002A00F I2C Proximity/Opto sensor driver (INPUT_GP2A) [N/m/y/?] (NEW)
  Polled GPIO tilt switch (INPUT_GPIO_TILT_POLLED) [N/m/y/?] (NEW)
HSI support (HSI) [N/m/y/?] (NEW)
  2781 battery driver (BATTERY_DS2781) [N/m/y/?] (NEW)
  SBS Compliant gas gauge (BATTERY_SBS) [N/m/y/?] (NEW)
  TI/National Semiconductor LP8727 charger driver (CHARGER_LP8727) [N/m/y/?] (NEW)
  Summit Microelectronics SMB347 Battery Charger (CHARGER_SMB347) [N/m/y/?] (NEW)
  Microchip MCP3021 (SENSORS_MCP3021) [N/m/y/?] (NEW)
  VIA Watchdog Timer (VIA_WDT) [N/m/y/?] (NEW)
TPS65217 Power Management / White LED chips (MFD_TPS65217) [N/m/y/?] (NEW)
Support for TWL6040 audio codec (TWL6040_CORE) [N/y/?] (NEW)
Support Dialog Semiconductor DA9052/53 PMIC variants with SPI (MFD_DA9052_SPI) [N/y/?] (NEW)
Support Dialog Semiconductor DA9052/53 PMIC variants with I2C (MFD_DA9052_I2C) [N/y/?] (NEW)
SAMSUNG S5M Series Support (MFD_S5M_CORE) [N/y/?] (NEW)
TPS65090 Power Management chips (MFD_TPS65090) [N/y/?] (NEW)
Ricoh RC5T583 Power Management system device (MFD_RC5T583) [N/y/?] (NEW)
  Enable IR raw decoder for the Sanyo protocol (IR_SANYO_DECODER) [M/n/?] (NEW)
  GPIO IR remote control (IR_GPIO_CIR) [N/m/?] (NEW)
Analog Devices ADV7183 decoder (VIDEO_ADV7183) [N/m/?] (NEW)
ST VS6624 sensor support (VIDEO_VS6624) [N/m/?] (NEW)
V4L PCI(e) devices (V4L_PCI_DRIVERS) [Y/n/?] (NEW) n
V4L platform devices (V4L_PLATFORM_DRIVERS) [N/y/?] (NEW)
  Allow to specify an EDID data set instead of probing for it (DRM_LOAD_EDID_FIRMWARE) [N/y/?] (NEW)
  Intel GMA5/600 KMS Framebuffer (DRM_GMA500) [N/m/y/?] (NEW)
  DisplayLink (DRM_UDL) [N/m/y/?] (NEW)
  Intel740 support (EXPERIMENTAL) (FB_I740) [N/m/y/?] (NEW)
Exynos Video driver support (EXYNOS_VIDEO) [N/y/?] (NEW)
    Backlight driver for TI LP855X (BACKLIGHT_LP855X) [N/m/y/?] (NEW)
Saitek non-fully HID-compliant devices (HID_SAITEK) [N/m/y/?] (NEW)
TiVo Slide Bluetooth remote control support (HID_TIVO) [N/m/y/?] (NEW)
  Nintendo Wii Remote Extension support (HID_WIIMOTE_EXT) [Y/n/?] (NEW)
    Generic OHCI driver for a platform device (USB_OHCI_HCD_PLATFORM) [N/y/?] (NEW)
  Generic EHCI driver for a platform device (USB_EHCI_HCD_PLATFORM) [N/y/?] (NEW)
    USB Fintek F81232 Single Port Serial Driver (USB_SERIAL_F81232) [N/m/y/?] (NEW)
    USB Metrologic Instruments USB-POS Barcode Scanner Driver (USB_SERIAL_METRO) [N/m/y/?] (NEW)
  LED support for PCA9633 I2C chip (LEDS_PCA9633) [N/m/y/?] (NEW)
  LED Support for TCA6507 I2C chip (LEDS_TCA6507) [N/m/y/?] (NEW)
  LED support for the Bachmann OT200 (LEDS_OT200) [N/m/y/?] (NEW)
  Support for rtllib wireless devices (RTLLIB) [N/m/?] (NEW)
    Hwmon driver that uses channels specified via iio maps (IIO_ST_HWMON) [N/m/?] (NEW)
    Analog Devices AD5380/81/82/83/84/90/91/92 DAC driver (AD5380) [N/m/?] (NEW)
    Analog Devices AD5421 DAC driver (AD5421) [N/m/?] (NEW)
    Analog Devices AD5764/64R/44/44R DAC driver (AD5764) [N/m/?] (NEW)
  Memory allocator for compressed pages (ZSMALLOC) [M/y/?] (NEW)
  Android Drivers (ANDROID) [N/y/?] (NEW)
  USB over WiFi Host Controller (USB_WPAN_HCD) [N/m/y/?] (NEW)
  Fujitsu Tablet Extras (FUJITSU_TABLET) [N/m/y/?] (NEW)
  Fujitsu-Siemens Amilo rfkill support (AMILO_RFKILL) [N/m/y/?] (NEW)
  Apple Gmux Driver (APPLE_GMUX) [N/m/y/?] (NEW)
  QNX6 file system support (read only) (QNX6FS_FS) [N/m/y/?] (NEW)
Print additional diagnostics on RCU CPU stall (RCU_CPU_STALL_INFO) [N/y/?] (NEW)
NMI Selftest (DEBUG_NMI_SELFTEST) [N/y/?] (NEW)
  Camellia cipher algorithm (x86_64) (CRYPTO_CAMELLIA_X86_64) [N/m/y/?] (NEW)
  Serpent cipher algorithm (x86_64/SSE2) (CRYPTO_SERPENT_SSE2_X86_64) [N/m/y/?] (NEW)
  CRC32 perform self test on init (CRC32_SELFTEST) [N/y/?] (NEW)
  CRC32 implementation
  > 1. Slice by 8 bytes (CRC32_SLICEBY8) (NEW)
    2. Slice by 4 bytes (CRC32_SLICEBY4) (NEW)
    3. Sarwate's Algorithm (one byte at a time) (CRC32_SARWATE) (NEW)
    4. Classic Algorithm (one bit at a time) (CRC32_BIT) (NEW)
  choice[1-4?]:

chromiumos-x86_64:

same besides:
    Broadcom IEEE802.11n embedded FullMAC WLAN driver (BRCMFMAC) [N/m/?] (NEW) m
      USB bus interface support for FullMAC driver (BRCMFMAC_USB) [N/y/?] (NEW) y
        rt2800pci - Include support for rt33xx devices (RT2800PCI_RT33XX) [Y/n/?] (NEW) y
        rt2800pci - Include support for rt35xx devices (EXPERIMENTAL) (RT2800PCI_RT35XX) [Y/n/?] (NEW) y
        rt2800pci - Include support for rt53xx devices (EXPERIMENTAL) (RT2800PCI_RT53XX) [Y/n/?] (NEW) y
  Synaptics USB device support (MOUSE_SYNAPTICS_USB) [N/m/y/?] (NEW) m
  Intel GMA5/600 KMS Framebuffer (DRM_GMA500) [N/m/y/?] (NEW) y
    Intel GMA600 support (Experimental) (DRM_GMA600) [N/y/?] (NEW) y
    Intel GMA3600/3650 support (Experimental) (DRM_GMA3600) [N/y/?] (NEW) y
  DisplayLink (DRM_UDL) [N/m/y/?] (NEW)
  Support for rtllib wireless devices (RTLLIB) [N/m/?] (NEW) m
    Support for rtllib CCMP crypto (RTLLIB_CRYPTO_CCMP) [M/n/?] (NEW)
    Support for rtllib TKIP crypto (RTLLIB_CRYPTO_TKIP) [M/n/?] (NEW)
    Support for rtllib WEP crypto (RTLLIB_CRYPTO_WEP) [M/n/?] (NEW)
    RealTek RTL8192E Wireless LAN NIC driver (RTL8192E) [N/m/?] n

chromeos-intel-menlow:
same besides:
Soekris Engineering net5501 System Support (LEDS, GPIO, etc) (NET5501) [N/y/?] (NEW)
Traverse Technologies GEOS System Support (LEDS, GPIO, etc) (GEOS) [N/y/?] (NEW)

chromeos-pinetrail-i386:
same

chromiumos-i386:
same besides:
    Broadcom IEEE802.11n embedded FullMAC WLAN driver (BRCMFMAC) [N/m/?] (NEW) m
      USB bus interface support for FullMAC driver (BRCMFMAC_USB) [N/y/?] (NEW) y
        rt2800pci - Include support for rt33xx devices (RT2800PCI_RT33XX) [Y/n/?] (NEW) y
        rt2800pci - Include support for rt35xx devices (EXPERIMENTAL) (RT2800PCI_RT35XX) [Y/n/?] (NEW) y
        rt2800pci - Include support for rt53xx devices (EXPERIMENTAL) (RT2800PCI_RT53XX) [Y/n/?] (NEW) y
  Synaptics USB device support (MOUSE_SYNAPTICS_USB) [N/m/y/?] (NEW) m
  Intel GMA5/600 KMS Framebuffer (DRM_GMA500) [N/m/y/?] (NEW) y
    Intel GMA600 support (Experimental) (DRM_GMA600) [N/y/?] (NEW) y
    Intel GMA3600/3650 support (Experimental) (DRM_GMA3600) [N/y/?] (NEW) y
  DisplayLink (DRM_UDL) [N/m/y/?] (NEW)
  Support for rtllib wireless devices (RTLLIB) [N/m/?] (NEW) m
    Support for rtllib CCMP crypto (RTLLIB_CRYPTO_CCMP) [M/n/?] (NEW)
    Support for rtllib TKIP crypto (RTLLIB_CRYPTO_TKIP) [M/n/?] (NEW)
    Support for rtllib WEP crypto (RTLLIB_CRYPTO_WEP) [M/n/?] (NEW)
    RealTek RTL8192E Wireless LAN NIC driver (RTL8192E) [N/m/?] n

chromeos-tegra2:
Enable support for Tegra30 family (ARCH_TEGRA_3x_SOC) [N/y/?] (NEW)

      Atheros ath6kl SDIO support (ATH6KL_SDIO) [N/m/?] (NEW) m
      Atheros ath6kl USB support (ATH6KL_USB) [N/m/?] (NEW)

BUG=chromium-os:27679
TEST=build for {arm,x86,amd64}-generic

Change-Id: Ia20c5360d5d6e8cafc57187d9ef346567340d277
Signed-off-by: Olof Johansson <olofj@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/22897
Reviewed-by: Grant Grundler <grundler@chromium.org>
12 years agoCHROMIUM: Fix "Work around Intel GPU bug with some physical pages."
Stéphane Marchesin [Thu, 10 May 2012 23:35:12 +0000 (16:35 -0700)]
CHROMIUM: Fix "Work around Intel GPU bug with some physical pages."

The previous change could have caused crashes when we fail to
allocate the page. Instead, pass the NULL pointer back when we fail.

BUG=none
TEST=none

Change-Id: I5e83370a5b20146cc3e63b880c6972d630ee1ef6
Reviewed-on: https://gerrit.chromium.org/gerrit/22420
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Commit-Ready: Stéphane Marchesin <marcheu@chromium.org>

12 years agoCHROMIUM: Work around Intel GPU bug with some physical pages.
Stéphane Marchesin [Mon, 7 May 2012 21:57:11 +0000 (14:57 -0700)]
CHROMIUM: Work around Intel GPU bug with some physical pages.

Some intel GPUs don't like using those physical pages, resulting in
garbage all over the place. We could fix it by adding an e820 region,
but that prevents the machine from booting. We could fix it in i915,
but since the allocation is done by the backing shmem it's not
possible. So we have to do the workaround in shmem.c.

As a side note, if we have that workaround in place, we can probably
reclaim 4 megabytes of memory (twice 2 megs) which are marked
reserved by the bios.

BUG=chromium:120949
TEST=by hand; set mem=450M and play with Chrome OS, corruption is gone.

Signed-off-by: Stéphane Marchesin <marcheu@chromium.org>
Change-Id: I957e125fb280e0b0d6b05a83cc4068df2f05aa0a
Reviewed-on: https://gerrit.chromium.org/gerrit/22054
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
Commit-Ready: Stéphane Marchesin <marcheu@chromium.org>

12 years agoCHROMIUMOS: config: Enable verbose logging in mac80211
Gary Morain [Mon, 21 May 2012 22:07:38 +0000 (15:07 -0700)]
CHROMIUMOS: config: Enable verbose logging in mac80211

Enable CONFIG_MAC80211_VERBOSE_DEBUG, which causes the wireless
mac80211 module to emit more debug info into the syslog.  This
is necessary so that connectivity issues can be correctly
diagnosed from the data provided by the feedback tool.

BUG=chromium-os:31145
TEST=manual.  Build a kernel, load it onto Alex, and create a
"connectivity event" by unplugging the AP to which the machine
is connected.  Use the "Report An Issue" tool and look at the
system information, particularly the syslog, to see kernel events
that are under the CONFIG_MAC80211_VERBOSE_DEBUG compile flag.

Change-Id: I32e0985df0d2f584944b77e4e7949d9de1686d8a
Signed-off-by: Gary Morain <gmorain@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23162
Reviewed-by: Paul Stewart <pstew@chromium.org>
12 years agoCHROMIUM: make it easier to skip architectures in kernelconfig
Luigi Semenzato [Fri, 18 May 2012 04:44:43 +0000 (21:44 -0700)]
CHROMIUM: make it easier to skip architectures in kernelconfig

Often when we run "kernelconfig editconfig" we leave alone
all architectures except one.  This makes it easier to skip
the ones we don't want to change.

BUG=none
TEST=tested manually

Change-Id: I8d33c8a5eb429f206b5788481639cf573c4fd21c
Signed-off-by: Luigi Semenzato <semenzato@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23014
Reviewed-by: Olof Johansson <olofj@chromium.org>
12 years agoCHROMIUM: config: Add bogus chromiumos-exynos5 until we have the real one
Doug Anderson [Fri, 18 May 2012 17:34:46 +0000 (10:34 -0700)]
CHROMIUM: config: Add bogus chromiumos-exynos5 until we have the real one

We are going to put the right file in RealSoonNow(TM), but this will
keep the builders happy until then.

BUG=chrome-os-partner:9814
TEST=Built this kernel with the exynos config.

Change-Id: I4cb75b9b1f2a9e24d70ce279854a43f23a37c7cf
Signed-off-by: Doug Anderson <dianders@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/23039
Reviewed-by: Olof Johansson <olofj@chromium.org>
12 years agoCHROMIUM: drm/i915: Replace pin count BUG_ON with warning
Sean Paul [Wed, 16 May 2012 17:25:22 +0000 (13:25 -0400)]
CHROMIUM: drm/i915: Replace pin count BUG_ON with warning

This patch reduces the BUG_ON when pin_count reaches max to a warning.
The reason we want to just warn is because the unpin_work_fn work
function can get starved out during soft lockup. When the unpin worker
is starved, the pin_count rises, and the gem BUG_ON races the soft
lockup crash reporter.

The original intent of this BUG was to catch overflow cases when all of
the small bitfields in drm_i915_gem_object were combined into one
bitfield (commit 778c35444). Since pin leaks aren't an issue in steady
state, it should be fine to downgrade the error.

Signed-off-by: Sean Paul <seanpaul@chromium.org>
BUG=chrome-os-partner:8552,chromium-os:30733
TEST=Tested on lumpy

Change-Id: Ibd7377385f36a722b588cfe4989b3e26d2647bd2
Reviewed-on: https://gerrit.chromium.org/gerrit/22829
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Tested-by: Sean Paul <seanpaul@chromium.org>
Commit-Ready: Sean Paul <seanpaul@chromium.org>

12 years agoCHROMIUM: scripts: Allow prepareconfig to accept a destination
Jonathan Kliegman [Tue, 8 May 2012 20:03:35 +0000 (16:03 -0400)]
CHROMIUM: scripts: Allow prepareconfig to accept a destination

This is necessary to allow kernel sources to not be copied
and the .config file written directly to the build directory.

BUG=chromium-os:30559
TEST=x86, amd64, arm-tegra2 and daisy paladin trybots
  Ran with no destination parameter and confirmed existing behavior
  Ran with destination parameter and confirmed it was written to
Signed-off-by: Jonathan Kliegman <kliegs@chromium.org>
Change-Id: Idd8842cff8756717fd866dbd7a48da16411479b0
Reviewed-on: https://gerrit.chromium.org/gerrit/22148
Reviewed-by: Olof Johansson <olofj@chromium.org>
Commit-Ready: Jon Kliegman <kliegs@chromium.org>
Tested-by: Jon Kliegman <kliegs@chromium.org>
12 years agoCHROMIUM: acpi- add printk and dumpstack at acpi_disable/enable
Benson Leung [Tue, 1 May 2012 23:35:07 +0000 (16:35 -0700)]
CHROMIUM: acpi- add printk and dumpstack at acpi_disable/enable

Add some printks to help debug issue 25619. Sometimes the EC
is put into non-acpi enabled mode, causing the power button
and the lid to stop responding.

BUG=chromium-os:25619
TEST=build, load kernel. Check that acpi_enable! shows up
early in dmesg

Change-Id: I7532934e760456a8e118a7e127fc480bb3854e4b
Signed-off-by: Benson Leung <bleung@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21585
Reviewed-by: Olof Johansson <olofj@chromium.org>
12 years agoCHROMIUM: config: enable joystick drivers
Scott James Remnant [Tue, 1 May 2012 22:25:01 +0000 (15:25 -0700)]
CHROMIUM: config: enable joystick drivers

BUG=chromium-os:30273
TEST=verified /dev/input/js* appears on connection

Change-Id: I5a93843253bf6d6c03d3452b5f85199d02e65e4a
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21559

12 years agoCHROMIUM: config: re-normalize split configs
Scott James Remnant [Tue, 1 May 2012 22:24:22 +0000 (15:24 -0700)]
CHROMIUM: config: re-normalize split configs

No changes, just running "kernelconfig oldconfig", no questions were
asked.

BUG=none
TEST=none

Change-Id: Ib4c7be9fcef1d46a96cbcd597a7ae47e551d1e01
Signed-off-by: Scott James Remnant <keybuk@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21558

12 years agoCHROMIUM: config: Enabling RT3090 WiFi module.
Vincent Wang [Fri, 27 Apr 2012 17:44:21 +0000 (10:44 -0700)]
CHROMIUM: config: Enabling RT3090 WiFi module.

BUG=chrome-os-partner:9308
TEST=Using Chrome OS WiFi autotest suites via WIFi testbed environment.
Signed-off-by: Vincent Wang <vwang@chromium.org>
Change-Id: Ic1231d5f0f5025b189354b36c60fd7cfbf377ea6
Reviewed-on: https://gerrit.chromium.org/gerrit/21346
Commit-Ready: Vincent Wang <vwang@chromium.org>
Reviewed-by: Vincent Wang <vwang@chromium.org>
Tested-by: Vincent Wang <vwang@chromium.org>
12 years agoCHROMIUM: kick lockup detector on resume
Sameer Nanda [Thu, 26 Apr 2012 18:45:22 +0000 (11:45 -0700)]
CHROMIUM: kick lockup detector on resume

On the suspend/resume path the boot CPU does not go though the
offline->online transition. This breaks the NMI detector
post-resume since it depends on PMU MSR state that gets
lost when the system gets suspended.

As a workaround, force a CPU offline->online transition for the
lockup detector on the boot CPU during resume.

I still need to take this upstream but wanted to get this checked
into the Chrome OS kernel repo first since we are getting significant
number of system freezing reports from the field. We have no good way
of debugging these without the stack trace that the NMI watchdog
generates in such situations.

BUG=chrome-os-partner:9303
TEST=do a suspend resume cycle and then issue this command:
taskset 1 sh -c "echo nmilockup > /proc/breakme". The system should
reboot in about 10 seconds.

Change-Id: Ica9b206fa8b1b96475f136e31068a0a7621c758f
Signed-off-by: Sameer Nanda <snanda@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21212
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
12 years agoCHROMIUM: config: turn on ZRAM and SWAP on x86 arches
Olof Johansson [Wed, 25 Apr 2012 04:21:53 +0000 (21:21 -0700)]
CHROMIUM: config: turn on ZRAM and SWAP on x86 arches

We want to experiment with ZRAM swap so we need to enable these.

Since it was on for some ARM configs already, just make all of them
common.

BUG=none
TEST=none (both are inactive by default)

Change-Id: I14cc0cff0d225f2fd20f98f94e8475e6cecca111
Signed-off-by: Olof Johansson <olofj@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/21021

12 years agoCHROMIUM: config: i386: Enable xhci (USB 3.0) module.
Dave Parker [Sat, 21 Apr 2012 01:20:44 +0000 (18:20 -0700)]
CHROMIUM: config: i386: Enable xhci (USB 3.0) module.

BUG=chromium-os:28607
TEST=emerge-x86-generic chromeos-kernel
xhci-hcd.ko is built succesfully.

Change-Id: Ia4de6fcd81eb43084625c32a5d7802bbfa60f247
Signed-off-by: David Parker <dparker@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/20791
Reviewed-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
12 years agoCHROMIUM: config: x86_64: Enable xhci (USB 3.0) module.
Dave Parker [Sat, 21 Apr 2012 01:47:04 +0000 (18:47 -0700)]
CHROMIUM: config: x86_64: Enable xhci (USB 3.0) module.

BUG=chromium-os:28607
TEST=emerge-amd64-generic chromeos-kernel
xhci-hcd.ko is built succesfully.

Signed-off-by: David Parker <dparker@chromium.org>
Change-Id: I19b3933692d72af8592c05ff3805de86b4c18666
Reviewed-on: https://gerrit.chromium.org/gerrit/20792
Reviewed-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Ready: Dave Parker <dparker@chromium.org>
Tested-by: Dave Parker <dparker@chromium.org>
12 years agoCHROMIUM: config: Re-enable net namespaces in the kernel.
Jorge Lucangeli Obes [Fri, 20 Apr 2012 16:43:13 +0000 (09:43 -0700)]
CHROMIUM: config: Re-enable net namespaces in the kernel.

Net namespaces got disabled in the kernel around R13.
We need net namespaces to make sure Chrome renderers
cannot access the network.

BUG=None
TEST=kernel_ConfigVerify

Signed-off-by: jorgelo@chromium.org
Change-Id: I00bdd13ae3009f82d40bdf556f0a563e5cbef80f
Reviewed-on: https://gerrit.chromium.org/gerrit/20698
Tested-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Commit-Ready: Jorge Lucangeli Obes <jorgelo@chromium.org>
Reviewed-by: Will Drewry <wad@chromium.org>
12 years agoCHROMIUM: config: turn off some rtl wifi drivers on chromeos configs
Olof Johansson [Mon, 12 Mar 2012 17:15:07 +0000 (10:15 -0700)]
CHROMIUM: config: turn off some rtl wifi drivers on chromeos configs

Sync up RTL wifi driver options with the 32-bit 3.0 config, only enabling
RTL8192CE as a module.

Keep more drivers enabled on chromiumos, but not chromeos.

BUG=chromium-os:27639
TEST=build

Change-Id: I0a7cd322389d45bd251875079c5b91c5b44bd285
Signed-off-by: Olof Johansson <olof@lixom.net>
Reviewed-on: https://gerrit.chromium.org/gerrit/17842
Tested-by: Olof Johansson <olofj@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Commit-Ready: Olof Johansson <olofj@chromium.org>

12 years agoCHROMIUM: config: re-normalize split configs
Olof Johansson [Wed, 18 Apr 2012 21:00:47 +0000 (14:00 -0700)]
CHROMIUM: config: re-normalize split configs

No changes, just running "kernelconfig oldconfig", no questions were
asked.

BUG=none
TEST=none

Change-Id: I5f7e7dee8063a3941c4cb4340462539f75bd5890
Signed-off-by: Olof Johansson <olofj@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/20497
Reviewed-by: Anush Elangovan <anush@chromium.org>
12 years agoCHROMIUM: config: enable Logitech Unifying Receiver support.
Andrew de los Reyes [Thu, 29 Mar 2012 16:51:48 +0000 (09:51 -0700)]
CHROMIUM: config: enable Logitech Unifying Receiver support.

This is needed for many Logitech wireless mice to work. We supported
it in earlier kernels, but accidentally disabled it with the switch to
3.2.

BUG=chromium-os:28672
TEST=built; tested problematic devices; saw them function correctly.

Change-Id: I0582a5c90e36db74016521e772d285bad40bb76e
Signed-off-by: Andrew de los Reyes <adlr@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/19304
Reviewed-by: Grant Grundler <grundler@chromium.org>
12 years agoCHROMIUM: config: base.config: enable uinput driver
Joseph Hwang [Tue, 21 Feb 2012 09:55:44 +0000 (17:55 +0800)]
CHROMIUM: config: base.config: enable uinput driver

Enable uinput driver for all platforms so that we could
emulate input devices when needed. Note that only test
images will be installed with this driver.

BUG=chromium-os:26707
TEST=On test images, install the uinput module by executing
    $ modprobe uinput
and check the module by
    $ lsmod | grep uinput
There should be no uinput module on non-test images.

Change-Id: Ie96242c4d56403866a2298db2ba3bd6459248c1b
Signed-off-by: Joseph Hwang <josephsih@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/18942
Reviewed-on: https://gerrit.chromium.org/gerrit/19063
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Mandeep Singh Baines <msb@chromium.org>
12 years agoCHROMIUM: config: Disable USB audio.
Dylan Reid [Wed, 21 Mar 2012 16:36:52 +0000 (09:36 -0700)]
CHROMIUM: config: Disable USB audio.

We don't support this yet.  With it enabled, the behavior of the
system is random, often getting to a state where no audio is output
when booted with a USB device attached.  Turn off for R19, will
re-enable when full USB device support is merged for R20.

BUG=chrome-os-partner:8412, chromium-os:20085
TEST=build and run kernel on stumpy/lumpy/alex, plug and unplug audio devices.

Change-Id: I79a761120e5840a85f512f5583f8c1fd6d99e665
Signed-off-by: Dylan Reid <dgreid@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/18665
Reviewed-by: Taylor Hutt <thutt@chromium.org>
Reviewed-by: Sameer Nanda <snanda@chromium.org>
12 years agoCHROMIUM: drm/i915: Reeneable FB compression and semaphores for kernel 3.2
Simon Que [Tue, 8 May 2012 15:30:51 +0000 (15:30 +0000)]
CHROMIUM: drm/i915: Reeneable FB compression and semaphores for kernel 3.2

marcheu added these changes in kernel 3.0:
 https://gerrit.chromium.org/gerrit/12367
 https://gerrit.chromium.org/gerrit/12368

They were undone in kernel 3.2.  This patch restores them.

BUG=chromium-os:27468
TEST=power_x86Settings autotest passes with kernel 3.2

Change-Id: Ic5a104eb73697cfa9a437ae2c4868051a77ad91f
Signed-off-by: Simon Que <sque@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/18687
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
12 years agoCHROMIUM: qcusbnet: don't spew "failed to autoresume" by default
ttuttle [Wed, 28 Mar 2012 14:40:43 +0000 (10:40 -0400)]
CHROMIUM: qcusbnet: don't spew "failed to autoresume" by default

In certain situations, we can get into a loop where we repeatedly
try to wake up the interface to send a packet.  Demote the "failed
to autoresume interface" error message to warning level so it does
not flood the logs in this case by default.

BUG=chromium-os:24525
TEST=none, can't repro on demand

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I1d1b4e2e61c125ea25c97ec9c460f2309a6b35fd
Reviewed-on: https://gerrit.chromium.org/gerrit/19245
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Commit-Ready: ttuttle <ttuttle@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: fix compiler warnings
ttuttle [Tue, 27 Mar 2012 17:58:18 +0000 (13:58 -0400)]
CHROMIUM: gobi: fix compiler warnings

Fix a bunch of compiler warnings in qmidevice, because they're annoying.

BUG=None
TEST=network_3GSmokeTest passes

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I785d6da99c8329dc7f00c81ffee37230189d0880
Reviewed-on: https://gerrit.chromium.org/gerrit/19172
Tested-by: ttuttle <ttuttle@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Commit-Ready: ttuttle <ttuttle@chromium.org>

12 years agoCHROMIUM: gobi: don't wait forever to close qmi fds
ttuttle [Fri, 2 Dec 2011 18:29:26 +0000 (13:29 -0500)]
CHROMIUM: gobi: don't wait forever to close qmi fds

Don't wait forever to close qmi fds; if we kill a process, the kernel will
close open file descriptors, and will not be happy (i.e., will panic) if we
wait forever.

We also do this when userspace asks us (via ioctl) to close a channel, for
consistency.

BUG=chromium-os:23691
TEST=None (has only happened once)

Change-Id: I371d924a872015f8338812fa5401ee789bd0b76d
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/12378
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Raise QMI timeout to 2000ms.
ttuttle [Thu, 17 Nov 2011 18:22:06 +0000 (13:22 -0500)]
CHROMIUM: gobi: Raise QMI timeout to 2000ms.

We've been seeing some timed-out getmeid calls in BVT, so raise the
QMI timeout to 2000ms to see if that helps.

BUG=chromium-os:22799
TEST=suite_Cellular passes

Change-Id: If94dce06381803d847946cc2072c6f8e804da643
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11862
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Add SYNC_UNINTERRUPTIBLE sync_flags, and use it.
ttuttle [Wed, 16 Nov 2011 22:07:57 +0000 (17:07 -0500)]
CHROMIUM: gobi: Add SYNC_UNINTERRUPTIBLE sync_flags, and use it.

There are some times when we would rather hang userspace than allow
ourselves to be interrupted (for example, if we are freeing clients
on the card).  Make these operations uninterruptible.

BUG=chromium-os:22799
TEST=suite_Cellular passes; open-abort causes no cid_free failures

Change-Id: Iff896a60987a39a4b08aa9b6a6ef5c2dcb20b299
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11817
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Make qc_register log message better.
ttuttle [Thu, 17 Nov 2011 19:32:46 +0000 (14:32 -0500)]
CHROMIUM: gobi: Make qc_register log message better.

The logs should show that we've just registered the QMI device, not
that we're about to create it.

BUG=None
TEST=Adhoc; message shows up properly

Change-Id: I8a3ddf28f22a575c975850a91aef8efc532c293a
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11861
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Return -ENODEV on probe failures.
ttuttle [Thu, 17 Nov 2011 19:53:36 +0000 (14:53 -0500)]
CHROMIUM: gobi: Return -ENODEV on probe failures.

We were returning -EINVAL before, which annoys the driver subsystem
(it prints it to the log as an error),  Return -ENODEV if we don't
accept the interface.

BUG=None
TEST=Adhoc; no longer get probe failure messages

Change-Id: Ibb72a5c25dfa48fd66ebee0f1915c2da35e26960
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11860
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Make probe failures WARN, not ERROR.
ttuttle [Thu, 17 Nov 2011 16:46:10 +0000 (11:46 -0500)]
CHROMIUM: gobi: Make probe failures WARN, not ERROR.

It is entirely expected that we will fail to probe the non-usbnet
interfaces on the Gobi.  Don't log these failures as errors.

BUG=None
TEST=Adhoc; driver is less noisy at load

Change-Id: Ib3840cb03d71bcc4870d5b1be8d6afedaef1aa0d
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11859
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Print error codes in qmidms_getmeid.
ttuttle [Thu, 17 Nov 2011 16:21:45 +0000 (11:21 -0500)]
CHROMIUM: gobi: Print error codes in qmidms_getmeid.

I forgot to print error codes when logging errors in qmidms_getmeid.

BUG=chromium-os:22799
TEST=None

Change-Id: I42af54a377b5a42565d8dc37f2a8d6c3d01b8dce
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11858
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Log cid_free errors in client_free.
ttuttle [Wed, 16 Nov 2011 22:01:36 +0000 (17:01 -0500)]
CHROMIUM: gobi: Log cid_free errors in client_free.

Right now, we silently ignore if we fail to free a cid when we're
freeing a client.  We can't fail to free the client in all cases,
but print a log message at the very least.

BUG=chromium-os:22799
TEST=None, it's just a log message

Change-Id: Ib8da8562b1dd564cb3678e134f5b15c04c06e0cf
Signed-off-by: ttuttle <ttuttle@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/11816
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: poison urbs instead of killing in stopread
ttuttle [Tue, 15 Nov 2011 16:01:32 +0000 (11:01 -0500)]
CHROMIUM: gobi: poison urbs instead of killing in stopread

There's a really narrow race condition where we kill the read urb,
the int urb completes and resubmits the read urb, we kill the int
urb, we NULL the urb pointers and free the urbs (which just drops a
ref), the read urb completes, we try to resubmit the int urb, and we
panic because the int urb pointer is NULL.

This will fix that.

BUG=chromium-os:22798
TEST=None; this has only happened once anyway.

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Id68ef599e3402b73a56eef5db8de54894c02dc71
Reviewed-on: https://gerrit.chromium.org/gerrit/11702
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Proper error handling in getmeid.
ttuttle [Tue, 15 Nov 2011 15:36:54 +0000 (10:36 -0500)]
CHROMIUM: gobi: Proper error handling in getmeid.

Free client if we error out of qmidms_getmeid.

BUG=None
TEST=None

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I71bf4732669358e73887b7f815e53828110e3cdc
Reviewed-on: https://gerrit.chromium.org/gerrit/11701
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Fail instead of zeroing MEID on failed getmeid.
ttuttle [Tue, 15 Nov 2011 15:30:48 +0000 (10:30 -0500)]
CHROMIUM: gobi: Fail instead of zeroing MEID on failed getmeid.

If we can't parse the MEID, don't paper over it by zeroing the MEID.

BUG=None
TEST=None

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I9fe17a20091805b4f8e638ce5a07c7ab29d96734
Reviewed-on: https://gerrit.chromium.org/gerrit/11700

12 years agoCHROMIUM: gobi: Rearrange error handling in qc_deregister.
ttuttle [Tue, 15 Nov 2011 15:26:51 +0000 (10:26 -0500)]
CHROMIUM: gobi: Rearrange error handling in qc_deregister.

Rearrange error handling in qc_deregister to match qc_register
better, and don't bother with the IS_ERR check since we're doing
that in the right place (qc_register) now.

BUG=None
TEST=Adhoc

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I7b26085de6433846e4be45ccdad34a3a03aec201
Reviewed-on: https://gerrit.chromium.org/gerrit/11699

12 years agoCHROMIUM: gobi: time out sync operations in register
ttuttle [Fri, 4 Nov 2011 16:49:22 +0000 (12:49 -0400)]
CHROMIUM: gobi: time out sync operations in register

To make sure we don't hang indefinitely in qc_register, we pass a flag all
the way down from qc_register to read_sync and write_sync that causes them
to use down_timeout instead of down_interruptible.

BUG=chromium-os:22326
TEST=put LTE SIM in gobi2k; kernel will not panic from a watchdog timeout

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I60f5d1900229d96c5f3cefaafa0e39fc6a3a8ad7
Reviewed-on: https://gerrit.chromium.org/gerrit/11211
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: Elly Jones <ellyjones@chromium.org>
(cherry picked from commit 22b8bfb472671c13f422fc56e92cedc367f467e9)
Reviewed-on: https://gerrit.chromium.org/gerrit/11539

12 years agoCHROMIUM: gobi: qc_deregister in qcnet_disconnect, not _unbind
ttuttle [Mon, 31 Oct 2011 22:30:44 +0000 (18:30 -0400)]
CHROMIUM: gobi: qc_deregister in qcnet_disconnect, not _unbind

Right now, if qc_register fails, we are obligated to call
usbnet_disconnect to undo usbnet_probe, but by calling that, we call
qc_deregister, which tries to undo what qc_register already undid.

So, move the call to qc_deregister to qcnet_disconnect.  This makes it
symmetric with the call to qc_register in qcnet_bind, and allows us to
recover after a failed qc_register in qcnet_probe.

BUG=chromium-os:22320
TEST=Adhoc; forcing qmidms_getmeid to fail no longer panics

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I78d3415c73a4a3526ef022abe0ff82db3623e712
Reviewed-on: https://gerrit.chromium.org/gerrit/10935
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit 96d0e9fc0e50f728f518a7881e8d615093253b57)
Reviewed-on: https://gerrit.chromium.org/gerrit/11538

12 years agoCHROMIUM: gobi: proper error handling in qc_register
ttuttle [Mon, 31 Oct 2011 22:30:21 +0000 (18:30 -0400)]
CHROMIUM: gobi: proper error handling in qc_register

qc_register currently bails out instantly on any error.  Give it a proper
kernel-style set of rollback labels at the bottom, so it actually undoes
what it did before returning an error.

BUG=chromium-os:22320
TEST=Adhoc; printk statements show that rollback happens

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I6dd89eee1164ea3ae3b05447bd7b1be21a35468a
Reviewed-on: https://gerrit.chromium.org/gerrit/10934
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit b6afd445cd9cff1138e044a95fc0bf7da87a07f9)
Reviewed-on: https://gerrit.chromium.org/gerrit/11537

12 years agoCHROMIUM: gobi: fail qcnet_probe when qc_register fails
ttuttle [Mon, 31 Oct 2011 22:29:44 +0000 (18:29 -0400)]
CHROMIUM: gobi: fail qcnet_probe when qc_register fails

Currently, in qcnet_probe, if qc_register fails, we call qc_deregister
in an ineffectual attempt to undo what qc_register may or may not have
done, and we then continue setting the device up anyway!

If qc_register fails, we should fail qcnet_probe.  (This will currently
leave the QMI device half-initialized; my next patch will give qc_register
proper error handling.)

Also, organize the error handling in a more kernelish style.

BUG=chromium-os:22320
TEST=Adhoc; forcing qc_register to fail makes qcnet_probe fail

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I251a83019cbad9ab142d50a97feb21a3c1ce68f5
Reviewed-on: https://gerrit.chromium.org/gerrit/10933
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit 0a64bdcf9fe4b9aa4fe48719d5259e128d1bab94)
Reviewed-on: https://gerrit.chromium.org/gerrit/11536

12 years agoCHROMIUM: gobi: usbnet_probe failure is a warning
ttuttle [Mon, 31 Oct 2011 23:25:11 +0000 (19:25 -0400)]
CHROMIUM: gobi: usbnet_probe failure is a warning

usbnet_probe fails all the time as the kernel looks at different interfaces.
Demote the error to a warning.

BUG=None
TEST=Adhoc; error no longer appears with gobi_debug=0

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Ib604a1294cdb1d300b435fd775c890f6cd9a7dd8
Reviewed-on: https://gerrit.chromium.org/gerrit/10932
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Set FLAG_WWAN so we are named wwan%d
ttuttle [Tue, 27 Sep 2011 17:22:46 +0000 (13:22 -0400)]
CHROMIUM: gobi: Set FLAG_WWAN so we are named wwan%d

Ensure the gobi network device is named wwan%d (instead of usb%d or eth%d)
by setting FLAG_WWAN in the driver_info flags.

(Without this, a change to usbnet causes it to be named usb%d before 3.0
and eth%d after 3.0, which makes life complicated for the qmidevice code
that has to pick a qcqmi%d.)

BUG=chromium-os:20842
TEST=suite_Cellular (except ConnmanCromoCrash) passes with kernel-next

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Ida87906a51b8e5f9a009fb432a0142b0b5fc3482
Reviewed-on: http://gerrit.chromium.org/gerrit/8363
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Commit-Ready: ttuttle <ttuttle@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Don't startxmit if device is dying
ttuttle [Wed, 7 Sep 2011 21:36:50 +0000 (17:36 -0400)]
CHROMIUM: gobi: Don't startxmit if device is dying

Set dev->dying in qcnet_{probe,unbind} instead of qc_{,de}register, and
check it in qcnet_bg_startxmit to avoid infinitely requeueing the same
work if we try to send a packet just as the device is disappearing.

BUG=chrome-os-partner:5866
TEST=suite_Cellular (except network_ConnmanCromoCrash)

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I37840b617437cbb99e6833edcbd05c020318612e
Reviewed-on: http://gerrit.chromium.org/gerrit/7361
Reviewed-by: ttuttle <ttuttle@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: fix syntax errors
ttuttle [Wed, 7 Sep 2011 22:11:28 +0000 (18:11 -0400)]
CHROMIUM: gobi: fix syntax errors

Forgot to repo upload between fixing errors and submitting. >.<

BUG=None
TEST=it compiles now

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Iace600bfb1bd1e612411fac46d2a4748109f3909
Reviewed-on: http://gerrit.chromium.org/gerrit/7363
Tested-by: ttuttle <ttuttle@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Reviewed-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Port dynamic endpoint discovery (2 of 2)
ttuttle [Tue, 6 Sep 2011 19:36:37 +0000 (15:36 -0400)]
CHROMIUM: gobi: Port dynamic endpoint discovery (2 of 2)

Actually use the discovered interface number and interrupt endpoint.

Also, rewrite int_callback so it doesn't treat the entire USB packet header
as a single u64, and so it pays even a little attention to endianness.

BUG=chromium-os:18547
TEST=suite_Cellular passes (except ConnmanCromoCrash, which always fails)

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I51ed85ad55e9a73161721199793efac353b83b93
Reviewed-on: http://gerrit.chromium.org/gerrit/7289
Reviewed-by: Elly Jones <ellyjones@chromium.org>
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Port dynamic endpoint discovery (1 of 2)
ttuttle [Wed, 31 Aug 2011 21:45:17 +0000 (17:45 -0400)]
CHROMIUM: gobi: Port dynamic endpoint discovery (1 of 2)

Port dynamic endpoint discovery from version 1050 of Qualcomm's gobi driver,
but don't actually use the discovered endpoints yet.

BUG=chromium-os:18547
TEST=None

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I510bee03687fa8e2fe1b8551c71251bd1f164ad1
Reviewed-on: http://gerrit.chromium.org/gerrit/7108
Tested-by: ttuttle <ttuttle@chromium.org>
Reviewed-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Fix endpoint detection
ttuttle [Wed, 31 Aug 2011 21:32:27 +0000 (17:32 -0400)]
CHROMIUM: gobi: Fix endpoint detection

We had some of the boolean logic wrong in qcnet_bind, albeit in a way that
didn't cause any problems.  (We were selecting the interrupt endpoint instead
of the bulk out endpoint, but it turns out they map to the same endpoint
number.)

BUG=None
TEST=suite_Cellular (except network_ConnmanCromoCrash) passed

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I844ecf6e7af2d8f1dce9e3a2e36eae31110db410
Reviewed-on: http://gerrit.chromium.org/gerrit/7107
Reviewed-by: Elly Jones <ellyjones@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Create a constant for "no CID".
ttuttle [Wed, 31 Aug 2011 15:40:48 +0000 (11:40 -0400)]
CHROMIUM: gobi: Create a constant for "no CID".

Instead of (u16)-1 everywhere, we have CID_NONE.

BUG=None
TEST=suite_Cellular (except ConnmanCromoCrash) passes

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I26176fa2ad6c9b8d70a04883ff61c7006c92a192
Reviewed-on: http://gerrit.chromium.org/gerrit/7106
Reviewed-by: Elly Jones <ellyjones@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Add support for poll.
ttuttle [Wed, 31 Aug 2011 00:10:55 +0000 (20:10 -0400)]
CHROMIUM: gobi: Add support for poll.

Port support for poll from Qualcomm's driver (Code Aurora release
1060-06302011).

network_3GSmokeTest passes, but the real test will be running an SDK
that uses select against it.

BUG=chromium-os:18547
TEST=network_3GSmokeTest passes

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Iabc81cd73d83619e6a453c4c26dfed4e621ae205
Reviewed-on: http://gerrit.chromium.org/gerrit/6973
Tested-by: ttuttle <ttuttle@chromium.org>
Reviewed-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: drop locks when code path might sleep
Jason Glasgow [Tue, 16 Aug 2011 21:57:11 +0000 (17:57 -0400)]
CHROMIUM: gobi: drop locks when code path might sleep

drop locks while submitting urbs, and reset interupt context when
notifying clients.  In general, ensure that might_sleep is never
called when a spinlock is held.

Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
BUG=chrome-os-partner:5222
TEST=run kernel with CONFIG_DEBUG_SPINLOCK_SLEEP=y

Change-Id: I730644d9bd97590ef896da8e1876c6f739360c03
Reviewed-on: http://gerrit.chromium.org/gerrit/6110
Tested-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Elly Jones <ellyjones@chromium.org>
12 years agoCHROMIUM: gobi: Eliminate urbreq from qcusbnet
ttuttle [Mon, 1 Aug 2011 19:21:21 +0000 (15:21 -0400)]
CHROMIUM: gobi: Eliminate urbreq from qcusbnet

Instead of using urbreq to chain urbs together, use the built-in
urb_list.  Note that we lose ownership of this list_head when we
submit the urb, so we can't use it in qmidevice, which currently
keeps urbs in a list even after they've been submitted.

BUG=chromium-os:16294
TEST=network_3GSmokeTest passes

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Ieb3ce4663752d0608c521905beebf012ba60dbc5
Reviewed-on: http://gerrit.chromium.org/gerrit/5088
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Reuse skb buffer in urb instead of copying
ttuttle [Wed, 27 Jul 2011 17:11:26 +0000 (13:11 -0400)]
CHROMIUM: gobi: Reuse skb buffer in urb instead of copying

We are needlessly making a copy of each sk_buff we transmit to put into
the bulk urb.  We can instead reuse the copy in the sk_buff, and hold
on to our reference until the urb has completed.

BUG=chromium-os:17703
TEST=network_3GSmokeTest passed

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Id9305b46d10bd42f837d85ec423dcdf368e7824e
Reviewed-on: http://gerrit.chromium.org/gerrit/4826
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Don't leak urb data buffers
ttuttle [Wed, 27 Jul 2011 15:35:22 +0000 (11:35 -0400)]
CHROMIUM: gobi: Don't leak urb data buffers

We make a copy of the data in each skb we send, and pass it off to the usb
subsystem.  Unfortunately, we weren't setting the "please free the buffer
when you don't need it anymore" flag, and we weren't freeing it ourselves,
so we leaked all of the urb data buffers.

Now we set the flag, and we don't leak the buffers.

BUG=None
TEST=network_3GSmokeTest

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: Ie624dcc074485e374ebdd82d15396a5741cecb4e
Reviewed-on: http://gerrit.chromium.org/gerrit/4838
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: set needs_remote_wakeup to fix problems with autosuspend
Jason Glasgow [Fri, 22 Jul 2011 20:56:54 +0000 (16:56 -0400)]
CHROMIUM: gobi: set needs_remote_wakeup to fix problems with autosuspend

set needs_remote_wakeup to 1 when probing the device.  Otherwise the
device does not seem to wake up properly when autosuspend occurs.
This can cause problems when connecting and the connect does not
finish before autosuspend, or when an SMS arrives but the module is suspended.

BUG=chrome-os-partner:4832
TEST=run without AC power, connect and disconnect many times

Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Change-Id: I48f11ffea6cd894c143acda5cac4017641bf80d5
Reviewed-on: http://gerrit.chromium.org/gerrit/4609
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: three log levels
ttuttle [Thu, 21 Jul 2011 18:09:24 +0000 (14:09 -0400)]
CHROMIUM: gobi: three log levels

Instead of qcusbnet_debug, we now have gobi_debug, with three levels:
gobi_debug=0 logs only real error conditions that the driver can't
do anything about.
gobi_debug=1 logs enough information to trace why we are returning
errors to userspace, and interesting but not terrible internal conditions,
but doesn't print packet dumps or noise.
gobi_debug=2 logs everything, including packet dumps and noise from
functions that iterate over lists or such.

BUG=None
TEST=Adhoc; tested all log levels, and they seem reasonable

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: If0b2d2e63252daac667c48fc2062770d13557cef
Reviewed-on: http://gerrit.chromium.org/gerrit/4502
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: make tlv_get return an int so -errno works.
ttuttle [Tue, 19 Jul 2011 14:33:59 +0000 (10:33 -0400)]
CHROMIUM: gobi: make tlv_get return an int so -errno works.

tlv_get returns -ENOMEM or -ENOMSG, but it was declared as returning u16,
so those errors got squashed.

BUG=None
TEST=None (nobody currently checks for -errno anyway, just specific values)

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I841de0570b4f4b255697bd7a9da9e49ae1b42e74
Reviewed-on: http://gerrit.chromium.org/gerrit/4501
Reviewed-by: Elly Jones <ellyjones@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: Clean up log messages and error handling
ttuttle [Thu, 14 Jul 2011 15:00:01 +0000 (11:00 -0400)]
CHROMIUM: gobi: Clean up log messages and error handling

This patch does several things:

1. Adds a WRN macro that prints the same info as DBG, but is not conditional.
2. Rewords all warning and debug messages to be more informative.
3. Changes DBG to WRN in all interesting cases.
4. Split cid allocation into separate functions from client allocation.

This should make finding misbehavior much easier, as some amount of useful
debugging information will show up even without debugging turned on.

Currently, some messages (marked with TODO) are set as DBG, thought they
should be WRN, to avoid cluttering the logs.

There are also some legitimate errors (alloccid failures) that will now show
up in the logs, but they aren't too chatty.

BUG=None
TEST=ran 3GSmokeTest, it passed

Signed-off-by: ttuttle <ttuttle@chromium.org>
Change-Id: I90e3fa6028011d921c34fcb4c16424433b21c32a
Reviewed-on: http://gerrit.chromium.org/gerrit/4184
Reviewed-by: ttuttle <ttuttle@chromium.org>
Tested-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: protect access to dev->urbs, initialize active
Jason Glasgow [Sun, 17 Jul 2011 01:54:30 +0000 (21:54 -0400)]
CHROMIUM: gobi: protect access to dev->urbs, initialize active

Protect access to dev->urbs, otherwise urbs can be added to the
dev->urbs at the same time that the urbs in a worker thread are
removing urbs.  The could corrupt the list.

Initialize the active urb to NULL, otherwise the module might always
think that an urb is in progress and never submit any urbs thus
blocking all IP traffic.

Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
BUG=chrome-os-partner:4649
TEST=beat on the 3G system.  Connect/Disconnect repeatedly.  Suspend/Resume

Change-Id: Ic560fdc790893c75c3fc3781fbd9126dfcf51128
Reviewed-on: http://gerrit.chromium.org/gerrit/4240
Tested-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
12 years agoCHROMIUM: gobi: Do not resubmit int urb if read_usb submitted
Jason Glasgow [Tue, 12 Jul 2011 22:52:32 +0000 (18:52 -0400)]
CHROMIUM: gobi: Do not resubmit int urb if read_usb submitted

Do not resubmit int urb if read_usb submitted.  To do so could lead to
race conditions in which the int urb is resubmitted while the
int_complete is processing and urb.  In the best case this causes a
message to be delayed, in the worst case, the message arrives too
late and is ignored.

BUG=chromium-os:17530
TEST=run_remote_test suite_Cellular

Change-Id: If55e7626fa7467a55d455dfb865c08465d7ad2b2
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/3976
Reviewed-by: Elly Jones <ellyjones@chromium.org>
Reviewed-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: fix use-after-free of setup buffer.
Elly Jones [Wed, 6 Jul 2011 19:22:56 +0000 (15:22 -0400)]
CHROMIUM: gobi: fix use-after-free of setup buffer.

The buffer might outlive the function if semaphores are broken (i.e., if we have
a pending signal), so stick it in the refcounted context so it only gets cleaned
up when we're done with it.

Additionally, fix some double-frees in error cleanup paths, and document a bit.

BUG=chromium-os:15017
TEST=network_GobiUncleanDisconnect

Change-Id: Ie58a912c1d7c9eba87a0516970a63347150676a1
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/3686
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: ttuttle <ttuttle@chromium.org>
12 years agoCHROMIUM: gobi: release resources on error path
Jason Glasgow [Fri, 10 Jun 2011 20:37:19 +0000 (16:37 -0400)]
CHROMIUM: gobi: release resources on error path

prevents leaking urbs and context when devices disappear by explicitly
calling usb_free_urb and dropping the reference on the ctx.  Ensure
that the proper urb is removed from the list of client urbs.

BUG=none
TEST=adhoc

Change-Id: Ifceefe6113c15cd040fb47c85c70d53eb5181843
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/2469
Reviewed-by: Elly Jones <ellyjones@chromium.org>
12 years agoCHROMIUM: gobi: worker thread -> workqueue
Elly Jones [Mon, 6 Jun 2011 17:23:13 +0000 (13:23 -0400)]
CHROMIUM: gobi: worker thread -> workqueue

This removes all the locking and concurrency issues involved in submitting urbs
by serializing these operations in the workqueue.

BUG=chromium-os:16109,chromium-os:16182
TEST=network_3GStressEnable,network_3GSuspendResume,network_3GSafetyDance

Change-Id: Ief42a02e2c12cd2531aaa8c6b864dd3ea9ba7680
Signed-off-by: Elly Jones <ellyjones@chromium.org>
(cherry picked from commit e057c6a13551e33c3dbe4de8d0b45eb6eea83ecd)
Reviewed-on: http://gerrit.chromium.org/gerrit/2171
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Introduce refcounted buffers.
Elly Jones [Mon, 16 May 2011 16:54:56 +0000 (12:54 -0400)]
CHROMIUM: gobi: Introduce refcounted buffers.

This prevents a use-after-free of URB content buffers that was added in
802a2d60b5a5859abf78c1289e24ce2e6a560255. The root cause for this failure was
that I changed the invariant required for a buffer (i.e., I required the buffer
to live past function exit) without changing the call sites. I have introduced a
reference-counted buffer type which we use to make sure the buffer lives until
the urb layer is done with it.

This has the pleasant side-effect of killing a lot of variables.

BUG=chromium-os:15346
TEST=network_GobiUncleanDisconnect

Change-Id: I322dea4c4022b381616b13de75b49f82e9f5cd05
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/933
Reviewed-by: Olof Johansson <olofj@chromium.org>
12 years agoCHROMIUM: gobi: use wait_interruptible().
Elly Jones [Thu, 19 May 2011 20:18:06 +0000 (16:18 -0400)]
CHROMIUM: gobi: use wait_interruptible().

There's no reason *not* to be interruptible here, and it prevents us from
setting off the hung-task detector.

BUG=chromium-os:15512
TEST=Adhoc

Change-Id: Ib28f6119e807dd34cdcfb0bac1b3c3f0288da749
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/1199
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Fix integer overflow in buffer-size.
Elly Jones [Wed, 18 May 2011 15:02:58 +0000 (11:02 -0400)]
CHROMIUM: gobi: Fix integer overflow in buffer-size.

This bug could allow userspace code with access to /dev/qcqmi to smash the
kernel heap. Oops.

BUG=chromium-os:15476
TEST=Adhoc
'modem status'

Change-Id: I7c44157c89b852188974f4ce0b7322de5911c13f
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/1108
Reviewed-by: <hawkes@google.com>
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
12 years agoCHROMIUM: gobi: Introduce refcounted buffers.
Elly Jones [Mon, 16 May 2011 16:54:56 +0000 (12:54 -0400)]
CHROMIUM: gobi: Introduce refcounted buffers.

This prevents a use-after-free of URB content buffers that was added in
802a2d60b5a5859abf78c1289e24ce2e6a560255. The root cause for this failure was
that I changed the invariant required for a buffer (i.e., I required the buffer
to live past function exit) without changing the call sites. I have introduced a
reference-counted buffer type which we use to make sure the buffer lives until
the urb layer is done with it.

This has the pleasant side-effect of killing a lot of variables.

BUG=chromium-os:15346
TEST=network_GobiUncleanDisconnect

Change-Id: I322dea4c4022b381616b13de75b49f82e9f5cd05
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/933
Reviewed-by: Olof Johansson <olofj@chromium.org>
12 years agoCHROMIUM: Add Sony Gobi 3000 vid:pid.
Jason Glasgow [Fri, 13 May 2011 14:02:57 +0000 (10:02 -0400)]
CHROMIUM: Add Sony Gobi 3000 vid:pid.

Note that the QDL vid:pid is not yet tested, since I don't have a physical
sample.

BUG=chrome-os-partner:3778
TEST=Adhoc
Built. No hardware yet, so no test yet.

Change-Id: Ibf130fd6abd0add77ca214daac27955570ead58a
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/846
Reviewed-by: Elly Jones <ellyjones@chromium.org>
[v3.4 dropped changes to qcserial.c]

12 years agoCHROMIUM: gobi: Remove worker.exit hack.
Elly Jones [Tue, 26 Apr 2011 16:37:07 +0000 (12:37 -0400)]
CHROMIUM: gobi: Remove worker.exit hack.

The exit member was added to hack around crosbug.com/14190, but we need a proper
fix. I discussed with olofj, and we think the right thing is to use a waitqueue
and wait for there to be work available or for the thread to be asked to exit.

BUG=chromium-os:14205
TEST=Adhoc
Build, modem status, suspend/resume

Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Review URL: http://codereview.chromium.org/6883145

Change-Id: I8eaeb95c5c1a4426768f632c5144f7d5356e3a3a
(cherry picked from commit c69b798ef6849b97f23b0b9047592193b99f13af)
Reviewed-on: http://gerrit.chromium.org/gerrit/597
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Tested-by: Elly Jones <ellyjones@chromium.org>
12 years agoCHROMIUM: gobi: Don't kill urbs in failed synchronous writes.
Elly Jones [Fri, 6 May 2011 15:32:57 +0000 (11:32 -0400)]
CHROMIUM: gobi: Don't kill urbs in failed synchronous writes.

If we kill urbs, we may or may not send what we meant to send, which is fine in
most cases, since we're about to report the failure to userspace anyway.
However, if the connection manager is being killed, the driver needs to tear
down its remaining QMI connections itself. Furthermore, if we're being killed,
we can't necessarily down_interruptible(), since we have a pending signal, so we
want to send those urbs on to the card whether or not down_interruptible()
succeeds.

In the 'common' case (i.e., no interrupt), this change makes no functional
difference. If we receive a signal, it guarantees that the urb we submitted is
sent, where previously whether it had been sent or not was a matter of chance.

TEST=network_3GStressEnable, network_GobiUncleanDisconnect
BUG=chromium-os:14945

Change-Id: I1cc558dd748b0db11edfd592c8caff832d97ea46
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/431
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
12 years agoCHROMIUM: Add Dell Gobi 3000 vid:pid.
Elly Jones [Thu, 5 May 2011 22:16:51 +0000 (18:16 -0400)]
CHROMIUM: Add Dell Gobi 3000 vid:pid.

Note that the QDL vid:pid is not yet tested, since I don't have a physical
sample.

BUG=chromium-os:14957
TEST=Adhoc
Built. No hardware yet, so no test yet.

Change-Id: I38f29d0cf782c570c76c777cf6100087f5d43cb4
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Reviewed-on: http://gerrit.chromium.org/gerrit/380
Reviewed-by: Jason Glasgow <jglasgow@chromium.org>
[v3.4: dropped changes to qcserial.c]

12 years agoCHROMIUM: gobi: wrap compat_ioctl with CONFIG_COMPAT
Elly Jones [Thu, 21 Apr 2011 14:21:08 +0000 (10:21 -0400)]
CHROMIUM: gobi: wrap compat_ioctl with CONFIG_COMPAT

BUG=chromium-os:12060
TEST=Adhoc
modem status

Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Review URL: http://codereview.chromium.org/6873124

Change-Id: Id698ff1fcecad972aede581142e5127b71ae2677

12 years agoCHROMIUM: gobi: 64-bit port and minor cleanup
Elly Jones [Wed, 20 Apr 2011 21:32:20 +0000 (17:32 -0400)]
CHROMIUM: gobi: 64-bit port and minor cleanup

Add a compat ioctl wrapper and use it. Also, update to the unlocked_ioctl()
interface.

Change-Id: I94ac12c74ca2dfe22ac03e7ac717ea32c9f296cd
(cherry picked from commit 391a7f3ca9957a4e279743be0de6d2d852452b70)

BUG=chromium-os:12060
TEST=Adhoc
modem status

Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Olof Johansson <olofj@chromium.org>
Review URL: http://codereview.chromium.org/6873123

12 years agoCHROMIUM: qcusbnet: Signal to worker that we expect an exit before waking it.
Elly Jones [Fri, 15 Apr 2011 21:16:36 +0000 (17:16 -0400)]
CHROMIUM: qcusbnet: Signal to worker that we expect an exit before waking it.

If we don't do this, the worker can wake up (when we signal completion), see
that there is no work to do, and go back to sleep, leaving us waiting forever.
Oops.

Change-Id: Ida9c4d691d77138ca4b7ee5c6cb7adee5b0cb13d
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
BUG=chromium-os:14190
TEST=Adhoc
Disable and enable cellular.

Review URL: http://codereview.chromium.org/6865017
(cherry picked from commit 654c4249c7d0e7aa2ee5cde918f82870b7fba543)
(cherry picked from commit 256030b8555e0ceca05f7c38674a9e202d48212c)

12 years agoCHROMIUM: qcusbnet Set the network interface's MAC address based on the MEID
Jason Glasgow [Wed, 13 Apr 2011 15:28:32 +0000 (11:28 -0400)]
CHROMIUM: qcusbnet Set the network interface's MAC address based on the MEID

Signed-off-by: Jason R. Glasgow <jglasgow@chromium.org>
BUG=chromium-os:14101
TEST=reboot machine, examine list-devices output, notice device
address is similar to MEID.  Disable Cellular Data, reboot ensure that
cellular data is still off.

Change-Id: Id45d2a11b2315d104a1f00b38095ad7ae7143dd5

Review URL: http://codereview.chromium.org/6839020
(cherry picked from commit fb97887bc0e902913ea520904824a8cb14bd9b3c)
(cherry picked from commit 963cf47a83ce64ad948370cabb7295c95cde07d6)

12 years agoCHROMIUM: gobi: resubmit interrupt urb on failed reads
Elly Jones [Wed, 30 Mar 2011 17:56:54 +0000 (13:56 -0400)]
CHROMIUM: gobi: resubmit interrupt urb on failed reads

If we don't do this and there are pending reads when the card suspends, we can
fail to re-request interrupt urbs when the card comes back up, and we fall into
a hole. Oops.

BUG=None
TEST=Adhoc
suspend/resume a few times; make sure 'modem status' is sensible after each.

Change-Id: Ia0e1b96e983249113c1e1dbf35490487f60a205c
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Review URL: http://codereview.chromium.org/6731086
(cherry picked from commit 900b6e1c5881ba4f9badb0a584ee466458e3c375)
(cherry picked from commit ea53081c54d165d3f9b8df6b506be883c0085f5b)

12 years agoCHROMIUM: Hide packet dumps behind a flag.
Elly Jones [Wed, 23 Mar 2011 19:58:47 +0000 (15:58 -0400)]
CHROMIUM: Hide packet dumps behind a flag.

BUG=None
TEST=Adhoc
built, installed, dmesg | grep gobi, modem status

Change-Id: Ic9152dad864d4125204620b7f93b1170cf0d7159
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Review URL: http://codereview.chromium.org/6731002
(cherry picked from commit 3288bce5d87f5fff3dfadc09668038e173069b9d)
(cherry picked from commit 782a838787dd1d92bc99206e2b499317ecfa659d)

12 years agoCHROMIUM: gobi: Fix races in qc_deregister() once and for all.
Elly Jones [Thu, 17 Mar 2011 18:12:48 +0000 (14:12 -0400)]
CHROMIUM: gobi: Fix races in qc_deregister() once and for all.

This is a fix to my rewritten driver, and is ported from the fix at http://codereview.chromium.org/6602058/.

Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
BUG=chromium-os:10342
TEST=/opt/Qualcomm/bin/open-deauth

Review URL: http://codereview.chromium.org/6612045

Change-Id: I404edbfde49a154604bc657b7f76776b7423f51e
(cherry picked from commit 41b9938a183c1f5c84d27c717f6e8556054271f5)
(cherry picked from commit 8c1f28642d7ca7de6dfdbafa7eae45976de5996a)

12 years agoCHROMIUM: qcusbnet: Add gobi3k support.
Elly Jones [Wed, 16 Mar 2011 18:30:06 +0000 (14:30 -0400)]
CHROMIUM: qcusbnet: Add gobi3k support.

This entails:
1) Adding a couple of new vid:pid pairs for known Gobi3k devices.
2) Handling the extra USB interface gobi3ks have
3) Installing a proper 'parent' pointer to help udev emit the correct number of
   device events, and
4) Changing the driver's registration name.

The latter change was requested by upstream when I first submitted this driver.
It is correct, in that the driver's name should reflect that it does not just
drive gobi2ks, but it will require changes in userspace to match.

BUG=chromium-os:12380
TEST=Adhoc
ls /dev/qcqmi* with both a g2k and g3k present; try 'gobi3k list', too.

Change-Id: I0e86fcbce22f3a1f3fd58caf0e8d47e39a1af9ed
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Review URL: http://codereview.chromium.org/6672003
(cherry picked from commit b4fd3f92bdb53f0a47b3a2d31425e62c700900df)
(cherry picked from commit 6121797f1025b0d8ea65973a3db00da0204a115f)

12 years agoCHROMIUM: qcusbnet: fix devqmi_close() races.
Elly Jones [Wed, 16 Mar 2011 18:03:34 +0000 (14:03 -0400)]
CHROMIUM: qcusbnet: fix devqmi_close() races.

Originally, devqmi_close() was attached to the flush hook (instead of the
release hook), meaning it would be called whenever a userspace task called
close() (instead of just when the last ref to the file was dropped), which
necessitated the task-list-walking song and dance. Instead, add a new ioctl
which userspace can use to tear down the QMI connection and remove the refcount
check stuff.

This fixes a whole raft of nasty races in devqmi_close().

Note that it is not required that userspace use the ioctl; if it doesn't
(because, for example, it crashes), we'll still clean up any dangling QMI
contexts at release time.

BUG=chromium-os:10360
TEST=Adhoc
Reproducing the bug this fixes (see 10360) is almost impossible. :(

Change-Id: Ic64f64d89757f2ad95d2df9e8da04ddda3209bda
Signed-off-by: Elly Jones <ellyjones@chromium.org>
Signed-off-by: Jason Glasgow <jglasgow@chromium.org>
Signed-off-by: Mandeep Singh Baines <msb@chromium.org>
Review URL: http://codereview.chromium.org/6694028
(cherry picked from commit 4b00239a9ecc343ed9a8aee9cb753fe19ac88917)
(cherry picked from commit 3adf0b36dfd8da52a61658712b2d089d667afbca)