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
...
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
...
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
...
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>
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>
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>
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>
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>
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>
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>
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
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
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
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>
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>
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
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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
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
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
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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]
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>
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>
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]
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
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
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)
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)
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)
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)
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)
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)
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)