sdk/emulator/emulator-kernel.git
11 years agoVIGS: Remove "ttm shrink disable" hack 30/18130/1
Stanislav Vorobiov [Tue, 18 Jun 2013 06:32:00 +0000 (10:32 +0400)]
VIGS: Remove "ttm shrink disable" hack

There's a right way to do this by specifying 0 in
accounted size for a BO. That way we can allocate as much BOs
as we want with used_mem always remaining 0

Change-Id: Ic1de1b832dea90b18b3441d504118773019ce9ee

11 years agoVIGS: Support custom resolutions 29/18129/1
Stanislav Vorobiov [Mon, 17 Jun 2013 15:29:48 +0000 (19:29 +0400)]
VIGS: Support custom resolutions

Change-Id: I779f469eb5ef9c82dbc06493cdb3a448c1c30a51

11 years agoYaGL: Version bump 28/18128/1
Stanislav Vorobiov [Mon, 10 Jun 2013 15:37:15 +0000 (19:37 +0400)]
YaGL: Version bump

Change-Id: I3c22f8e615f28e17d73747a43c0abab381eaa207

11 years agoVIGS: VRAM <-> GPU movements are now handled via page faults 27/18127/1
Stanislav Vorobiov [Fri, 7 Jun 2013 14:40:28 +0000 (18:40 +0400)]
VIGS: VRAM <-> GPU movements are now handled via page faults

VIGS: Fixed update_gpu command

VRAM <-> GPU movements are now handled via page faults, thus, user space
can mmap as many GEMs as it likes, they'll all be in GPU placement by
default and moved to VRAM as needed on page faults. Page fault handler will
also take care of eviction in case of there's no free space in VRAM

update_gpu command wasn't updated for last protocol change, fixed it

Change-Id: Iaab0c760e68b4cb5f29bdd77d025f655f04ebb51

11 years agoVIGS: kernel now is surface dirty aware 26/18126/1
Stanislav Vorobiov [Thu, 6 Jun 2013 16:48:36 +0000 (20:48 +0400)]
VIGS: kernel now is surface dirty aware

kernel now knows about dirty state of each surface

Change-Id: I7f801fa84f57ee9811fbd79bcb408507439acd62

11 years agoslp_global_lock added 25/18125/1
Stanislav Vorobiov [Mon, 3 Jun 2013 13:29:28 +0000 (17:29 +0400)]
slp_global_lock added

Conflicts:

arch/x86/configs/i386_tizen_emul_defconfig
drivers/misc/Kconfig
drivers/misc/Makefile

Change-Id: I44c9714eafc02e98d35b4a09b6135211dd4d65ab

11 years agoVIGS: Protocol updated 24/18124/1
Stanislav Vorobiov [Mon, 27 May 2013 15:38:40 +0000 (19:38 +0400)]
VIGS: Protocol updated

Change-Id: I4946fd3bee5d63ab22e5dd8fc280b91c23d67cc5

11 years agoYaGL: Version bump 23/18123/1
Stanislav Vorobiov [Wed, 15 May 2013 09:02:34 +0000 (13:02 +0400)]
YaGL: Version bump

Change-Id: I29b65916421e8718dddb17f357c8b928501135d0

11 years agoVIGS: Fixed GEM reserve deadlock 22/18122/1
Stanislav Vorobiov [Mon, 6 May 2013 16:39:28 +0000 (20:39 +0400)]
VIGS: Fixed GEM reserve deadlock

Change-Id: Ic4609ff43ea4689f13a56da41696f6a500d21a64

11 years agoVIGS: Dirty flag support in vigs_surface 21/18121/1
Stanislav Vorobiov [Mon, 6 May 2013 14:48:07 +0000 (18:48 +0400)]
VIGS: Dirty flag support in vigs_surface

Dirty flag in vigs_surface is need in order to tell the kernel
that we want contents of VRAM to be uploaded into GPU when the surface
is evicted from VRAM. The flag is automatically cleared whenever
update_gpu command is found in execbuffer

Change-Id: I78e20f541d56ba958c5ac15d00b2ed7a2c841f2d

11 years agoVIGS: Potential deadlock fixed 20/18120/1
Stanislav Vorobiov [Tue, 30 Apr 2013 13:10:46 +0000 (17:10 +0400)]
VIGS: Potential deadlock fixed

Change-Id: I6e7bfc824fc637bcc77896919c504da17eddfe2b

11 years agoVIGS: Command list patching implemented 19/18119/1
Stanislav Vorobiov [Mon, 29 Apr 2013 14:02:11 +0000 (18:02 +0400)]
VIGS: Command list patching implemented

It's necessary to patch commands such as update_vram and update_gpu
in kernel since only kernel knows about VRAM offset of a surface

Change-Id: Ia4a0f53e768d40d8323cebfe101b8e86c4c21261

11 years agoVIGS: Return some more info for GEMs 18/18118/1
Stanislav Vorobiov [Fri, 26 Apr 2013 13:46:03 +0000 (17:46 +0400)]
VIGS: Return some more info for GEMs

Change-Id: Ia7b4ce407e64f36063b21d987c602af6c5ffbc16

11 years agoVIGS: We now send commands to host again 17/18117/1
Stanislav Vorobiov [Fri, 26 Apr 2013 10:53:59 +0000 (14:53 +0400)]
VIGS: We now send commands to host again

Host side code is fixed to work via new protocol

Change-Id: I4fd731e07e451923e649d1ba8bda3dd903b94023

11 years agoVIGS: Introduce an idr to generate surface ids 16/18116/1
Stanislav Vorobiov [Fri, 26 Apr 2013 06:08:48 +0000 (10:08 +0400)]
VIGS: Introduce an idr to generate surface ids

Using mmap offsets as surface ids is not good since they're 64-bit

Change-Id: I03356f4f5de67153d87cdb73e4c0102b67883793

11 years agoVIGS: Refactoring for DRI2 15/18115/1
Stanislav Vorobiov [Wed, 24 Apr 2013 06:48:55 +0000 (10:48 +0400)]
VIGS: Refactoring for DRI2

In order to support DRI2 we must move surfaces from X.Org
into kernel. This implies having additional TTM placement - GPU placement.
We must support eviction in vigs_mman in order to be able to create
surfaces that don't occupy VRAM (Now this is done in X.Org).
Also, command execution must be moved from userland to kernel as well
and we also want to add ability to batch several commands in order
to minimize user-kernel transitions and target-host transitions.

Change-Id: I0a5d3c7627b262c0011c485d8918d125775e9a53

11 years agoYaGL: bump version 14/18114/1
Igor Mitsyanko [Fri, 18 Jan 2013 17:20:28 +0000 (21:20 +0400)]
YaGL: bump version

Change-Id: I0ce50b9a42ce26f9dabc519a06cbc4fb2cff7ed5
Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com>
11 years agoVIGS: Protocol updated 13/18113/1
Stanislav Vorobiov [Fri, 11 Jan 2013 08:20:10 +0000 (12:20 +0400)]
VIGS: Protocol updated

Change-Id: If8e47f16448a39d5e6e1722fe0f497c03db3d154

11 years agoVIGS: Replace "Virtual" connector with "LVDS" 12/18112/1
Stanislav Vorobiov [Wed, 9 Jan 2013 17:09:57 +0000 (21:09 +0400)]
VIGS: Replace "Virtual" connector with "LVDS"

e17 devicemgr seems to depend on it

Change-Id: I0bbe82c5c6ea28a1af69189ab05e4189545f8b1e

11 years agoVIGS: Implemented first version 11/18111/1
Stanislav Vorobiov [Tue, 25 Dec 2012 14:29:17 +0000 (18:29 +0400)]
VIGS: Implemented first version

Conflicts:

drivers/gpu/drm/Kconfig
drivers/gpu/drm/Makefile

Change-Id: I5ef50259bb6820083274baf5088cee236f7a4bf4

11 years agoYaGL: bump version 10/18110/1
Igor Mitsyanko [Thu, 13 Dec 2012 13:26:29 +0000 (17:26 +0400)]
YaGL: bump version

Bump version after GLES1 support was merged to QEMU and target parts.

Change-Id: I11e266c393297a9fc2f4212c46000ae77d980f92
Signed-off-by: Igor Mitsyanko <i.mitsyanko@samsung.com>
11 years agoYaGL: Version bump 09/18109/1
Stanislav Vorobiov [Wed, 12 Dec 2012 08:01:38 +0000 (12:01 +0400)]
YaGL: Version bump

Change-Id: I117206cb1ba1eae0bf86e482b41bdd52c075458e

11 years agoYaGL: We now report render type to user space 08/18108/1
Stanislav Vorobiov [Fri, 7 Dec 2012 09:20:23 +0000 (13:20 +0400)]
YaGL: We now report render type to user space

Change-Id: Iedf70ba5452640a76b68dcbe08dc0e9cdff321ea

11 years agoYaGL: Version bump 07/18107/1
Stanislav Vorobiov [Fri, 21 Sep 2012 08:41:53 +0000 (12:41 +0400)]
YaGL: Version bump

Change-Id: Ie977471bf45db15bce21b8fcbe1c6e937c2ef75c

11 years agoYaGL: We can now allocate more than one page for marshalling buffer 06/18106/1
Stanislav Vorobiov [Mon, 17 Sep 2012 09:19:58 +0000 (13:19 +0400)]
YaGL: We can now allocate more than one page for marshalling buffer

Change-Id: Ic5d41b2c75248e2440c85be29ab34183d4a26849

11 years agoYaGL: Allow user to specify marshal buffer size 05/18105/1
Stanislav Vorobiov [Thu, 13 Sep 2012 13:30:18 +0000 (17:30 +0400)]
YaGL: Allow user to specify marshal buffer size

It still has to be 1 page, to be fixed later

Change-Id: I5c1d8a276922008621a468485f61e69566abd0c6

11 years agoYaGL: version bump 04/18104/1
Stanislav Vorobiov [Thu, 13 Sep 2012 07:05:02 +0000 (11:05 +0400)]
YaGL: version bump

Change-Id: I975a676573c24188e96d0066193233e43a9ecd03

11 years agoYaGL: passthrough device added 03/18103/1
Stanislav Vorobiov [Mon, 10 Sep 2012 10:10:19 +0000 (14:10 +0400)]
YaGL: passthrough device added

Conflicts:

arch/arm/configs/tizen_defconfig
drivers/gpu/Makefile

Change-Id: I76daea09e8d27338b763109dbfffa674f400e626

11 years agomaru_camera : Add new camera device for Tizen emulator 73/17973/1
jinhyung.jo [Thu, 13 Mar 2014 10:05:11 +0000 (19:05 +0900)]
maru_camera : Add new camera device for Tizen emulator

Add new camera device for Tizen emulator

Change-Id: Ie909aad4e7e4ae9009f92f76a1458a37efd93998
Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
11 years agomaru_overlay : Add new overlay device for Tizen emulator 72/17972/1
jinhyung.jo [Thu, 13 Mar 2014 09:48:28 +0000 (18:48 +0900)]
maru_overlay : Add new overlay device for Tizen emulator

Add new overlay device for Tizen emulator

Change-Id: I0bcb64e69d6152b9b1bf3cac1322ab840970ec6c
Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
11 years agomaru_bl : Add new backlight device for Tizen emulator 71/17971/1
jinhyung.jo [Thu, 13 Mar 2014 09:16:29 +0000 (18:16 +0900)]
maru_bl : Add new backlight device for Tizen emulator

Add new backlight(& lcd) device for Tizen emulator

Change-Id: I76299ceac5d347fb69d8f4c6f7c60097d95b9b2a
Signed-off-by: Jinhyung Jo <jinhyung.jo@samsung.com>
11 years agoSENSOR: removed the warning of __ATTR_RW duplication 37/16937/1
Jinhyung Choi [Thu, 27 Feb 2014 08:17:33 +0000 (17:17 +0900)]
SENSOR: removed the warning of __ATTR_RW duplication

Change-Id: Ib77bec32159781acf034c6be8f33ab7907d163f0
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
11 years agomaru: replace virtqueue_add_buf function 34/16934/1
GiWoong Kim [Thu, 27 Feb 2014 07:37:53 +0000 (16:37 +0900)]
maru: replace virtqueue_add_buf function

replace virtqueue_add_buf function with add_inbuf
or add_outbuf

Change-Id: I09224954e1d603ea723bc6e4b7c9d64b9f5fa3df
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
11 years agosensor driver: added virtio sensor device
Jinhyung Choi [Thu, 23 Jan 2014 07:59:42 +0000 (16:59 +0900)]
sensor driver: added virtio sensor device

Change-Id: Id68afed696a04c622c84deb1dc9f70e69fbdf355
Signed-off-by: Jinhyung Choi <jinhyung2.choi@samsung.com>
11 years agovdpram: merge vdpram driver.
Sooyoung Ha [Wed, 22 Jan 2014 05:27:51 +0000 (14:27 +0900)]
vdpram: merge vdpram driver.

merge drivers/char/vdpram.c to 3.10 branch.

Change-Id: I3498343fc7811230c7911f7b219ead917938c91a
Signed-off-by: Sooyoung Ha <yoosah.ha@samsung.com>
11 years agomaru: add NFC, EVDI driver
Munkyu Im [Tue, 21 Jan 2014 08:43:17 +0000 (17:43 +0900)]
maru: add NFC, EVDI driver

Change-Id: Ibe28c591a31039609a5ad1a10ac99cb471e0099b
Signed-off-by: Munkyu Im <munkyu.im@samsung.com>
11 years agobrillcodec: remove deprecated attributes.
Kitae Kim [Tue, 14 Jan 2014 03:09:00 +0000 (12:09 +0900)]
brillcodec: remove deprecated attributes.

The attributes such as __devinit causes compilation errors.
In addition, VM_IO flag is removed because it is set by remap_pfn_range().

Change-Id: I33d69322b304679186fb767948347929600623a4
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: changed module name and config file.
Kitae Kim [Mon, 30 Sep 2013 02:43:50 +0000 (11:43 +0900)]
brillcodec: changed module name and config file.

Change-Id: Idfd67412afcd17bef283bc08867ed409285bd79e
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: add memory disposal routine.
Kitae Kim [Thu, 28 Nov 2013 09:45:28 +0000 (18:45 +0900)]
brillcodec: add memory disposal routine.

When a process has been killed, occupied memory blocks have to be disposed.
In addition to this, add memory disposal routine in case of deinit
to check if there are unleased memory blocks or not.

Change-Id: I6396595497d760cd07290904f4c446838396e7a8
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: fix release memory routine.
Kitae Kim [Thu, 28 Nov 2013 07:27:00 +0000 (16:27 +0900)]
brillcodec: fix release memory routine.

If release memory occurs twice with the same memory offset,
it might cause an error.
semaphore for memory block should be increased in the if-statement.

Change-Id: Ic332eec1e64d5b134b8671b38552b470196e01a0
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: remove unnecessary I/O command.
Kitae Kim [Fri, 22 Nov 2013 10:53:33 +0000 (19:53 +0900)]
brillcodec: remove unnecessary I/O command.

Since file_index is not used to identify codec context,
its i/o command is removed.

Change-Id: Ied7ec997c08eabe9dd981f6bdc359eafc2df81f9
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: unified I/O commands between gst-plugins-emulator and this driver.
Kitae Kim [Wed, 20 Nov 2013 08:13:59 +0000 (17:13 +0900)]
brillcodec: unified I/O commands between gst-plugins-emulator and this driver.

Include write operation in ioctl operation as per its functionality because
using both ioctl and write operation might be confusing to understand control flow.

Change-Id: Iac5445f0e15282f40561cfb62f01db90af803c7e
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: added functions to manage context_id.
Kitae Kim [Tue, 19 Nov 2013 06:53:24 +0000 (15:53 +0900)]
brillcodec: added functions to manage context_id.

This driver does not need to use struct file pointer as a unique id,
because applications derived from gst-plugins-emulator use one file descriptor per a process,
So, it needs to manage id of codec context per a process.

Change-Id: I1a15a602674e5abe0fec9899adfa447222fbc360
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: Change a way to protect critical section.
SeokYeon Hwang [Fri, 15 Nov 2013 10:01:46 +0000 (19:01 +0900)]
brillcodec: Change a way to protect critical section.

Change-Id: Ib63f099bb6d2993da6c946bb70123e454b327b8b
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agobrillcodec: Avoid some multi-threading unsafe issue.
SeokYeon Hwang [Wed, 13 Nov 2013 06:01:51 +0000 (15:01 +0900)]
brillcodec: Avoid some multi-threading unsafe issue.

Change-Id: Idc46d39b0c5044b54ef3a2d5778d2bdb19c98a1e
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agobrillcodec: Remove unused command.
SeokYeon Hwang [Tue, 12 Nov 2013 10:34:55 +0000 (19:34 +0900)]
brillcodec: Remove unused command.

Change-Id: I5a41a14300c0028fef15798cfa272ecf351741b0
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agobrillcodec: enhancement logic about using direct buffer.
SeokYeon Hwang [Tue, 12 Nov 2013 08:15:09 +0000 (17:15 +0900)]
brillcodec: enhancement logic about using direct buffer.

Use a device buffer wisely.
Adjust numbers of buffers.

Change-Id: I726c76ddee4c99d12f7a3b6f629508e227ad4d62
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agobrillcodec: change major ioctl command.
SeokYeon Hwang [Wed, 6 Nov 2013 07:29:37 +0000 (16:29 +0900)]
brillcodec: change major ioctl command.

1. Memory block is chosen by device driver depending on buffer size.
2. Reduce number of ioctl commands.
3. Introduce "try_secure_mem" and source clean-up.

Change-Id: Ie67cb2c2e382322cc842a0bb3af5aca42286577b
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agobrillcodec: source clean-up and store each codec information
Kitae Kim [Thu, 24 Oct 2013 16:44:40 +0000 (01:44 +0900)]
brillcodec: source clean-up and store each codec information

When a process tried to use codec at first, codec device from qemu
copied codec information such as name, media type and etc.
In addtion to this, codec set is determined at libav compile time.
That's why driver stores codec information as a cache.

Change-Id: I4c4734301bc12419ee92d789ddd35d2bc3348cc3
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: disable debug messages.
Kitae Kim [Thu, 24 Oct 2013 05:30:20 +0000 (14:30 +0900)]
brillcodec: disable debug messages.

Debug messages might affect performance, especially on Windows
even if the messages are not printed into klog file.

Change-Id: I11ee2dc9d3173e64267de1c6076f0dd3b0d599e9
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: handle flush_buffer routine.
Kitae Kim [Fri, 18 Oct 2013 02:52:02 +0000 (11:52 +0900)]
brillcodec: handle flush_buffer routine.

Change-Id: I414167e8e14145a1b71d892e8492da60de8983c4
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agobrillcodec: Source clean-up and rename device name.
Kitae Kim [Wed, 11 Sep 2013 11:42:50 +0000 (20:42 +0900)]
brillcodec: Source clean-up and rename device name.

Changed the driver name from newcodec to brillcodec.

Change-Id: I5630c18507c31e79995ed29bd6a736bdcaff10ba
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: source clean-up.
Kitae Kim [Thu, 5 Sep 2013 02:39:10 +0000 (11:39 +0900)]
new_codec: source clean-up.

Change-Id: Iebc004176bef6ce96edd0aa1eba75c00f30372a7
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: modified the method of memory usage to improve performance.
Kitae Kim [Sun, 1 Sep 2013 13:32:28 +0000 (22:32 +0900)]
new_codec: modified the method of memory usage to improve performance.

Separate the memory to use effectively from several regions
when processing mutli contexts.

Change-Id: I4e4269d31aac6ad5ba53e76eedb7c4733e8e95db
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: changed a way to look up available memory block.
Kitae Kim [Thu, 22 Aug 2013 05:31:07 +0000 (14:31 +0900)]
new_codec: changed a way to look up available memory block.

Use a list instead of an array to manage device memory.
In addition, remove useless source in this moudle.

Change-Id: I2f421c8d786ae5edb623713922279d64fe9f8ba2
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: changed cmd messages and source clean-up.
Kitae Kim [Thu, 16 May 2013 01:30:30 +0000 (10:30 +0900)]
new_codec: changed cmd messages and source clean-up.

get version of device module during probing driver.
And remove or change cmd messages.

Change-Id: I09964c7b5a1bdda90b19d6b742f903245e102ef2
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: improved performance as codec reduced the number of memory copies.
SeokYeon Hwang [Wed, 15 May 2013 12:34:54 +0000 (21:34 +0900)]
new_codec: improved performance as codec reduced the number of memory copies.

When giving decoded outbuffer to plugin of user process from device,
use device memory region directly as an buffer to reduce memcpy overheads.

Change-Id: If440dcf304affc47ca4ec2d596a60e2e51963fef
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agonew_codec: change lock routine between user and kernel.
Kitae Kim [Sat, 11 May 2013 08:56:21 +0000 (17:56 +0900)]
new_codec: change lock routine between user and kernel.

Change-Id: Ic82cd689872b862c875a04368a0228313cfa9147
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: modified wrong value assignment.
Kitae Kim [Fri, 10 May 2013 05:02:04 +0000 (14:02 +0900)]
new_codec: modified wrong value assignment.

Change-Id: I6794d820c4b58538bf4ffa6d125460f4dca48f38
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: change device_id
Kitae Kim [Fri, 10 May 2013 02:55:11 +0000 (11:55 +0900)]
new_codec: change device_id

pci_device_id was wrong.

Change-Id: I79f9bb8d124cafd390d4e362a7f3087a7546ed90
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: changed a way to copy data between guest and host.
Kitae Kim [Fri, 10 May 2013 02:24:15 +0000 (11:24 +0900)]
new_codec: changed a way to copy data between guest and host.

Use mutex to reduce frequent context switching from user to kernel.
And removed a routine that occupies device memory exclusively.

Change-Id: I4cb8e0a255bafb3fec6b01307ad31ddc6666ce64
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: change log macro.
Kitae Kim [Wed, 8 May 2013 14:27:29 +0000 (23:27 +0900)]
new_codec: change log macro.

Change-Id: Ia04178bcfa80ab8904bc62c36b0d293539ec31ef
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: source clean-up
Kitae Kim [Fri, 19 Apr 2013 02:52:00 +0000 (11:52 +0900)]
new_codec: source clean-up

Removed unnecessary sources and added a way to check null pointer.

Change-Id: Ib8fef0c7d63921d31265dc12e5e9ca07b893816c
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: remove unnecessary whitespaces and code.
Kitae Kim [Thu, 28 Mar 2013 03:06:48 +0000 (12:06 +0900)]
new_codec: remove unnecessary whitespaces and code.

Change-Id: Ie5f8351ea4ee783c2e78b121326bad9e21658c12
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agonew_codec: added new codec driver module.
Kitae Kim [Tue, 12 Mar 2013 10:50:04 +0000 (19:50 +0900)]
new_codec: added new codec driver module.

Change-Id: I11f4959d4abbddd4aff33aea5812fe700aafdb72
Signed-off-by: Kitae Kim <kt920.kim@samsung.com>
11 years agokeyboard: added Maru virtio keyboard driver
GiWoong Kim [Thu, 9 Jan 2014 07:10:50 +0000 (16:10 +0900)]
keyboard: added Maru virtio keyboard driver

Change-Id: I9372dee6c75e6580cbf944e0a3c3f41610c822c3
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
11 years agohwkey: added Maru virtio hwkey driver
GiWoong Kim [Thu, 9 Jan 2014 03:14:24 +0000 (12:14 +0900)]
hwkey: added Maru virtio hwkey driver

Change-Id: I90f8409eb62c2b52f9c9787f88d3df450ca4db45
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
11 years agotouchscreen: modified input_mt_init_slots argument
GiWoong Kim [Wed, 8 Jan 2014 06:57:29 +0000 (15:57 +0900)]
touchscreen: modified input_mt_init_slots argument

Depending on the flags set, it also performs pointer
emulation and frame synchronization.

Change-Id: I600bb335a8839fdb2c9860503e2244bbfdd709ff
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
Conflicts:
drivers/maru/maru_virtio_touchscreen.c

11 years agovirtio: added Maru device ids
GiWoong Kim [Wed, 8 Jan 2014 06:56:01 +0000 (15:56 +0900)]
virtio: added Maru device ids

Change-Id: Ia6b3ae3412bb936d3302410364b211c1f629b34f
Signed-off-by: GiWoong Kim <giwoong.kim@samsung.com>
11 years agoAdd "maru virtio touchscreen" to build.
SeokYeon Hwang [Wed, 8 Jan 2014 05:04:48 +0000 (14:04 +0900)]
Add "maru virtio touchscreen" to build.

Change-Id: I133b224afdabc8d11de086ad19c1615bf1e719d5
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
11 years agoPrepare initial structure for maru
SeokYeon Hwang [Wed, 8 Jan 2014 04:58:06 +0000 (13:58 +0900)]
Prepare initial structure for maru

Change-Id: I4a6f9d3d862a85668917e058f28d3936dd4fed57
Signed-off-by: SeokYeon Hwang <syeon.hwang@samsung.com>
Conflicts:
drivers/Kconfig
drivers/Makefile

11 years agoLinux 3.12.13
Greg Kroah-Hartman [Sat, 22 Feb 2014 21:32:50 +0000 (13:32 -0800)]
Linux 3.12.13

11 years agoEDAC: Correct workqueue setup path
Borislav Petkov [Wed, 12 Feb 2014 17:15:00 +0000 (18:15 +0100)]
EDAC: Correct workqueue setup path

commit cb6ef42e516cb8948f15e4b70dc03af8020050a2 upstream.

We're using edac_mc_workq_setup() both on the init path, when
we load an edac driver and when we change the polling period
(edac_mc_reset_delay_period) through /sys/.../edac_mc_poll_msec.

On that second path we don't need to init the workqueue which has been
initialized already.

Thanks to Tejun for workqueue insights.

Signed-off-by: Borislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1391457913-881-1-git-send-email-prarit@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoEDAC: Poll timeout cannot be zero, p2
Borislav Petkov [Mon, 3 Feb 2014 20:05:13 +0000 (15:05 -0500)]
EDAC: Poll timeout cannot be zero, p2

commit 9da21b1509d8aa7ab4846722817d16c72d656c91 upstream.

Sanitize code even more to accept unsigned longs only and to not allow
polling intervals below 1 second as this is unnecessary and doesn't make
much sense anyway for polling errors.

Signed-off-by: Borislav Petkov <bp@suse.de>
Link: http://lkml.kernel.org/r/1391457913-881-1-git-send-email-prarit@redhat.com
Cc: Doug Thompson <dougthompson@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agodrivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero
Prarit Bhargava [Mon, 10 Feb 2014 22:25:43 +0000 (14:25 -0800)]
drivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero

commit 79040cad3f8235937e229f1b9401ba36dd5ad69b upstream.

If you do

  echo 0 > /sys/module/edac_core/parameters/edac_mc_poll_msec

the following stack trace is output because the edac module is not
designed to poll with a timeout of zero.

  WARNING: CPU: 12 PID: 0 at lib/list_debug.c:33 __list_add+0xac/0xc0()
  list_add corruption. prev->next should be next (ffff8808291dd1b8), but was           (null). (prev=ffff8808286fe3f8).
  Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
  CPU: 12 PID: 0 Comm: swapper/12 Not tainted 3.13.0+ #1
  Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
  Call Trace:
   <IRQ>
    __list_add+0xac/0xc0
    __internal_add_timer+0xab/0x130
    internal_add_timer+0x17/0x40
    mod_timer_pinned+0xca/0x170
    intel_pstate_timer_func+0x28a/0x380
    call_timer_fn+0x36/0x100
    run_timer_softirq+0x1ff/0x2f0
    __do_softirq+0xf5/0x2e0
    irq_exit+0x10d/0x120
    smp_apic_timer_interrupt+0x45/0x60
    apic_timer_interrupt+0x6d/0x80
   <EOI>
    cpuidle_idle_call+0xb9/0x1f0
    arch_cpu_idle+0xe/0x30
    cpu_startup_entry+0x9e/0x240
    start_secondary+0x1e4/0x290

  kernel BUG at kernel/timer.c:1084!
  invalid opcode: 0000 [#1] SMP
  Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
  CPU: 12 PID: 0 Comm: swapper/12 Tainted: G        W    3.13.0+ #1
  Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
  Call Trace:
   <IRQ>
    run_timer_softirq+0x245/0x2f0
    __do_softirq+0xf5/0x2e0
    irq_exit+0x10d/0x120
    smp_apic_timer_interrupt+0x45/0x60
    apic_timer_interrupt+0x6d/0x80
   <EOI>
    cpuidle_idle_call+0xb9/0x1f0
    arch_cpu_idle+0xe/0x30
    cpu_startup_entry+0x9e/0x240
    start_secondary+0x1e4/0x290
  RIP   cascade+0x93/0xa0

  WARNING: CPU: 36 PID: 1154 at kernel/workqueue.c:1461 __queue_delayed_work+0xed/0x1a0()
  Modules linked in: sg nfsv3 rpcsec_gss_krb5 nfsv4 dns_resolver nfs fscache cfg80211 rfkill x86_pkg_temp_thermal coretemp kvm_intel kvm ixgbe e1000e crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt ptp sb_edac iTCO_vendor_support pps_core mdio ipmi_devintf edac_core ioatdma microcode shpchp lpc_ich pcspkr i2c_i801 dca mfd_core ipmi_si wmi ipmi_msghandler nfsd auth_rpcgss nfs_acl lockd sunrpc xfs libcrc32c sd_mod sr_mod cdrom crc_t10dif crct10dif_common mgag200 syscopyarea sysfillrect sysimgblt isci i2c_algo_bit drm_kms_helper ttm drm libsas ahci libahci scsi_transport_sas libata i2c_core dm_mirror dm_region_hash dm_log dm_mod
  CPU: 36 PID: 1154 Comm: kworker/u481:3 Tainted: G        W    3.13.0+ #1
  Hardware name: Intel Corporation LH Pass ........../SVRBD-ROW_T, BIOS SE5C600.86B.01.08.0003.022620131521 02/26/2013
  Workqueue: edac-poller edac_mc_workq_function [edac_core]
  Call Trace:
    dump_stack+0x45/0x56
    warn_slowpath_common+0x7d/0xa0
    warn_slowpath_null+0x1a/0x20
    __queue_delayed_work+0xed/0x1a0
    queue_delayed_work_on+0x27/0x50
    edac_mc_workq_function+0x72/0xa0 [edac_core]
    process_one_work+0x17b/0x460
    worker_thread+0x11b/0x400
    kthread+0xd2/0xf0
    ret_from_fork+0x7c/0xb0

This patch adds a range check in the edac_mc_poll_msec code to check for 0.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Doug Thompson <dougthompson@xmission.com>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agogenirq: Add missing irq_to_desc export for CONFIG_SPARSE_IRQ=n
Paul Gortmaker [Mon, 10 Feb 2014 18:39:53 +0000 (13:39 -0500)]
genirq: Add missing irq_to_desc export for CONFIG_SPARSE_IRQ=n

commit 2c45aada341121438affc4cb8d5b4cfaa2813d3d upstream.

In allmodconfig builds for sparc and any other arch which does
not set CONFIG_SPARSE_IRQ, the following will be seen at modpost:

  CC [M]  lib/cpu-notifier-error-inject.o
  CC [M]  lib/pm-notifier-error-inject.o
ERROR: "irq_to_desc" [drivers/gpio/gpio-mcp23s08.ko] undefined!
make[2]: *** [__modpost] Error 1

This happens because commit 3911ff30f5 ("genirq: export
handle_edge_irq() and irq_to_desc()") added one export for it, but
there were actually two instances of it, in an if/else clause for
CONFIG_SPARSE_IRQ.  Add the second one.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Link: http://lkml.kernel.org/r/1392057610-11514-1-git-send-email-paul.gortmaker@windriver.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agotarget: Fix free-after-use regression in PR unregister
Nicholas Bellinger [Thu, 30 Jan 2014 21:08:49 +0000 (13:08 -0800)]
target: Fix free-after-use regression in PR unregister

commit fc09149df6e20cfbb0bb86f10899607c321a31eb upstream.

This patch addresses a >= v3.11 free-after-use regression
in core_scsi3_emulate_pro_register() that was introduced
in the following commit:

commit bc118fe4c4a8cfa453491ba77c0a146a6d0e73e0
Author: Andy Grover <agrover@redhat.com>
Date:   Thu May 16 10:41:04 2013 -0700

    target: Further refactoring of core_scsi3_emulate_pro_register()

To avoid the free-after-use, save an type value before hand, and
only call core_scsi3_put_pr_reg() with a valid *pr_reg.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Andy Grover <agrover@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoring-buffer: Fix first commit on sub-buffer having non-zero delta
Steven Rostedt (Red Hat) [Tue, 11 Feb 2014 18:38:54 +0000 (13:38 -0500)]
ring-buffer: Fix first commit on sub-buffer having non-zero delta

commit d651aa1d68a2f0a7ee65697b04c6a92f8c0a12f2 upstream.

Each sub-buffer (buffer page) has a full 64 bit timestamp. The events on
that page use a 27 bit delta against that timestamp in order to save on
bits written to the ring buffer. If the time between events is larger than
what the 27 bits can hold, a "time extend" event is added to hold the
entire 64 bit timestamp again and the events after that hold a delta from
that timestamp.

As a "time extend" is always paired with an event, it is logical to just
allocate the event with the time extend, to make things a bit more efficient.

Unfortunately, when the pairing code was written, it removed the "delta = 0"
from the first commit on a page, causing the events on the page to be
slightly skewed.

Fixes: 69d1b839f7ee "ring-buffer: Bind time extend and data events together"
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agopower: max17040: Fix NULL pointer dereference when there is no platform_data
Krzysztof Kozlowski [Thu, 30 Jan 2014 13:32:45 +0000 (14:32 +0100)]
power: max17040: Fix NULL pointer dereference when there is no platform_data

commit ac323d8d807060f7c95a685a9fe861e7b6300993 upstream.

Fix NULL pointer dereference of "chip->pdata" if platform_data was not
supplied to the driver.

The driver during probe stored the pointer to the platform_data:
chip->pdata = client->dev.platform_data;
Later it was dereferenced in max17040_get_online() and
max17040_get_status().

If platform_data was not supplied, the NULL pointer exception would
happen:

[    6.626094] Unable to handle kernel  of a at virtual address 00000000
[    6.628557] pgd = c0004000
[    6.632868] [00000000] *pgd=66262564
[    6.634636] Unable to handle kernel paging request at virtual address e6262000
[    6.642014] pgd = de468000
[    6.644700] [e6262000] *pgd=00000000
[    6.648265] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[    6.653552] Modules linked in:
[    6.656598] CPU: 0 PID: 31 Comm: kworker/0:1 Not tainted 3.10.14-02717-gc58b4b4 #505
[    6.664334] Workqueue: events max17040_work
[    6.668488] task: dfa11b80 ti: df9f6000 task.ti: df9f6000
[    6.673873] PC is at show_pte+0x80/0xb8
[    6.677687] LR is at show_pte+0x3c/0xb8
[    6.681503] pc : [<c001b7b8>]    lr : [<c001b774>]    psr: 600f0113
[    6.681503] sp : df9f7d58  ip : 600f0113  fp : 00000009
[    6.692965] r10: 00000000  r9 : 00000000  r8 : dfa11b80
[    6.698171] r7 : df9f7ea0  r6 : e6262000  r5 : 00000000  r4 : 00000000
[    6.704680] r3 : 00000000  r2 : e6262000  r1 : 600f0193  r0 : c05b3750
[    6.711194] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    6.718485] Control: 10c53c7d  Table: 5e46806a  DAC: 00000015
[    6.724218] Process kworker/0:1 (pid: 31, stack limit = 0xdf9f6238)
[    6.730465] Stack: (0xdf9f7d58 to 0xdf9f8000)
[    6.914325] [<c001b7b8>] (show_pte+0x80/0xb8) from [<c047107c>] (__do_kernel_fault.part.9+0x44/0x74)
[    6.923425] [<c047107c>] (__do_kernel_fault.part.9+0x44/0x74) from [<c001bb7c>] (do_page_fault+0x2c4/0x360)
[    6.933144] [<c001bb7c>] (do_page_fault+0x2c4/0x360) from [<c0008400>] (do_DataAbort+0x34/0x9c)
[    6.941825] [<c0008400>] (do_DataAbort+0x34/0x9c) from [<c000e5d8>] (__dabt_svc+0x38/0x60)
[    6.950058] Exception stack(0xdf9f7ea0 to 0xdf9f7ee8)
[    6.955099] 7ea0: df0c1790 00000000 00000002 00000000 df0c1794 df0c1790 df0c1790 00000042
[    6.963271] 7ec0: df0c1794 00000001 00000000 00000009 00000000 df9f7ee8 c0306268 c0306270
[    6.971419] 7ee0: a00f0113 ffffffff
[    6.974902] [<c000e5d8>] (__dabt_svc+0x38/0x60) from [<c0306270>] (max17040_work+0x8c/0x144)
[    6.983317] [<c0306270>] (max17040_work+0x8c/0x144) from [<c003f364>] (process_one_work+0x138/0x440)
[    6.992429] [<c003f364>] (process_one_work+0x138/0x440) from [<c003fa64>] (worker_thread+0x134/0x3b8)
[    7.001628] [<c003fa64>] (worker_thread+0x134/0x3b8) from [<c00454bc>] (kthread+0xa4/0xb0)
[    7.009875] [<c00454bc>] (kthread+0xa4/0xb0) from [<c000eb28>] (ret_from_fork+0x14/0x2c)
[    7.017943] Code: e1a03005 e2422480 e0826104 e59f002c (e7922104)
[    7.024017] ---[ end trace 73bc7006b9cc5c79 ]---

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Fixes: c6f4a42de60b981dd210de01cd3e575835e3158e
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agotime: Fix overflow when HZ is smaller than 60
Mikulas Patocka [Fri, 24 Jan 2014 21:41:36 +0000 (16:41 -0500)]
time: Fix overflow when HZ is smaller than 60

commit 80d767d770fd9c697e434fd080c2db7b5c60c6dd upstream.

When compiling for the IA-64 ski emulator, HZ is set to 32 because the
emulation is slow and we don't want to waste too many cycles processing
timers. Alpha also has an option to set HZ to 32.

This causes integer underflow in
kernel/time/jiffies.c:
kernel/time/jiffies.c:66:2: warning: large integer implicitly truncated to unsigned type [-Woverflow]
  .mult  = NSEC_PER_JIFFY << JIFFIES_SHIFT, /* details above */
  ^

This patch reduces the JIFFIES_SHIFT value to avoid the overflow.

Signed-off-by: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Link: http://lkml.kernel.org/r/alpine.LRH.2.02.1401241639100.23871@file01.intranet.prod.int.rdu2.redhat.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoi2c: mv64xxx: refactor message start to ensure proper initialization
Wolfram Sang [Thu, 13 Feb 2014 20:36:29 +0000 (21:36 +0100)]
i2c: mv64xxx: refactor message start to ensure proper initialization

commit 79970db213344b4a4034645db5ebfc31571f3fa3 upstream.

Because the offload mechanism can fall back to a standard transfer,
having two seperate initialization states is unfortunate. Let's just
have one state which does things consistently. This fixes a bug where
some preparation was missing when the fallback happened. And it makes
the code much easier to follow. To implement this, we put the check
if offload is possible at the top of the offload setup function.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
Fixes: 930ab3d403ae (i2c: mv64xxx: Add I2C Transaction Generator support)
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agomd/raid5: Fix CPU hotplug callback registration
Oleg Nesterov [Wed, 5 Feb 2014 22:12:45 +0000 (03:42 +0530)]
md/raid5: Fix CPU hotplug callback registration

commit 789b5e0315284463617e106baad360cb9e8db3ac upstream.

Subsystems that want to register CPU hotplug callbacks, as well as perform
initialization for the CPUs that are already online, often do it as shown
below:

get_online_cpus();

for_each_online_cpu(cpu)
init_cpu(cpu);

register_cpu_notifier(&foobar_cpu_notifier);

put_online_cpus();

This is wrong, since it is prone to ABBA deadlocks involving the
cpu_add_remove_lock and the cpu_hotplug.lock (when running concurrently
with CPU hotplug operations).

Interestingly, the raid5 code can actually prevent double initialization and
hence can use the following simplified form of callback registration:

register_cpu_notifier(&foobar_cpu_notifier);

get_online_cpus();

for_each_online_cpu(cpu)
init_cpu(cpu);

put_online_cpus();

A hotplug operation that occurs between registering the notifier and calling
get_online_cpus(), won't disrupt anything, because the code takes care to
perform the memory allocations only once.

So reorganize the code in raid5 this way to fix the deadlock with callback
registration.

Cc: linux-raid@vger.kernel.org
Fixes: 36d1c6476be51101778882897b315bd928c8c7b5
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
[Srivatsa: Fixed the unregister_cpu_notifier() deadlock, added the
free_scratch_buffer() helper to condense code further and wrote the changelog.]
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agomd/raid1: restore ability for check and repair to fix read errors.
NeilBrown [Wed, 5 Feb 2014 01:17:01 +0000 (12:17 +1100)]
md/raid1: restore ability for check and repair to fix read errors.

commit 1877db75589a895bbdc4c4c3f23558e57b521141 upstream.

commit 30bc9b53878a9921b02e3b5bc4283ac1c6de102a
    md/raid1: fix bio handling problems in process_checks()

Move the bio_reset() to a point before where BIO_UPTODATE is checked,
so that check now always report that the bio is uptodate, even if it is not.

This causes process_check() to sometimes treat read-errors as
successful matches so the good data isn't written out.

This patch preserves the flag until it is needed.

Bug was introduced in 3.11, but backported to 3.10-stable (as it fixed
an even worse bug).  So suitable for any -stable since 3.10.

Reported-and-tested-by: Michael Tokarev <mjt@tls.msk.ru>
Fixed: 30bc9b53878a9921b02e3b5bc4283ac1c6de102a
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agotick: Clear broadcast pending bit when switching to oneshot
Thomas Gleixner [Tue, 11 Feb 2014 13:35:40 +0000 (14:35 +0100)]
tick: Clear broadcast pending bit when switching to oneshot

commit dd5fd9b91a77b4c9c28b7ef9c181b1a875820d0a upstream.

AMD systems which use the C1E workaround in the amd_e400_idle routine
trigger the WARN_ON_ONCE in the broadcast code when onlining a CPU.

The reason is that the idle routine of those AMD systems switches the
cpu into forced broadcast mode early on before the newly brought up
CPU can switch over to high resolution / NOHZ mode. The timer related
CPU1 bringup looks like this:

  clockevent_register_device(local_apic);
  tick_setup(local_apic);
  ...
  idle()
tick_broadcast_on_off(FORCE);
tick_broadcast_oneshot_control(ENTER)
  cpumask_set(cpu, broadcast_oneshot_mask);
halt();

Now the broadcast interrupt on CPU0 sets CPU1 in the
broadcast_pending_mask and wakes CPU1. So CPU1 continues:

local_apic_timer_interrupt()
   tick_handle_periodic();
   softirq()
     tick_init_highres();
       cpumask_clr(cpu, broadcast_oneshot_mask);

tick_broadcast_oneshot_control(ENTER)
   WARN_ON(cpumask_test(cpu, broadcast_pending_mask);

So while we remove CPU1 from the broadcast_oneshot_mask when we switch
over to highres mode, we do not clear the pending bit, which then
triggers the warning when we go back to idle.

The reason why this is only visible on C1E affected AMD systems is
that the other machines enter the deep sleep states via
acpi_idle/intel_idle and exit the broadcast mode before executing the
remote triggered local_apic_timer_interrupt. So the pending bit is
already cleared when the switch over to highres mode is clearing the
oneshot mask.

The solution is simple: Clear the pending bit together with the mask
bit when we switch over to highres mode.

Stanislaw came up independently with the same patch by enforcing the
C1E workaround and debugging the fallout. I picked mine, because mine
has a changelog :)

Reported-by: poma <pomidorabelisima@gmail.com>
Debugged-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Olaf Hering <olaf@aepfle.de>
Cc: Dave Jones <davej@redhat.com>
Cc: Justin M. Forbes <jforbes@redhat.com>
Cc: Josh Boyer <jwboyer@redhat.com>
Link: http://lkml.kernel.org/r/alpine.DEB.2.02.1402111434180.21991@ionos.tec.linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoKVM: return an error code in kvm_vm_ioctl_register_coalesced_mmio()
Dan Carpenter [Wed, 29 Jan 2014 13:16:39 +0000 (16:16 +0300)]
KVM: return an error code in kvm_vm_ioctl_register_coalesced_mmio()

commit aac5c4226e7136c331ed384c25d5560204da10a0 upstream.

If kvm_io_bus_register_dev() fails then it returns success but it should
return an error code.

I also did a little cleanup like removing an impossible NULL test.

Fixes: 2b3c246a682c ('KVM: Make coalesced mmio use a device per zone')
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoIB/qib: Add missing serdes init sequence
Mike Marciniszyn [Wed, 12 Feb 2014 16:54:15 +0000 (11:54 -0500)]
IB/qib: Add missing serdes init sequence

commit 2f75e12c4457a9b3d042c0a0d748fa198dc2ffaf upstream.

Research has shown that commit a77fcf895046 ("IB/qib: Use a single
txselect module parameter for serdes tuning") missed a key serdes init
sequence.

This patch add that sequence.

Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agocompiler/gcc4: Make quirk for asm_volatile_goto() unconditional
Steven Noonan [Thu, 13 Feb 2014 07:01:07 +0000 (23:01 -0800)]
compiler/gcc4: Make quirk for asm_volatile_goto() unconditional

commit a9f180345f5378ac87d80ed0bea55ba421d83859 upstream.

I started noticing problems with KVM guest destruction on Linux
3.12+, where guest memory wasn't being cleaned up. I bisected it
down to the commit introducing the new 'asm goto'-based atomics,
and found this quirk was later applied to those.

Unfortunately, even with GCC 4.8.2 (which ostensibly fixed the
known 'asm goto' bug) I am still getting some kind of
miscompilation. If I enable the asm_volatile_goto quirk for my
compiler, KVM guests are destroyed correctly and the memory is
cleaned up.

So make the quirk unconditional for now, until bug is found
and fixed.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Jakub Jelinek <jakub@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Link: http://lkml.kernel.org/r/1392274867-15236-1-git-send-email-steven@uplinklabs.net
Link: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoACPI / hotplug / PCI: Relax the checking of _STA return values
Mika Westerberg [Tue, 11 Feb 2014 10:42:37 +0000 (12:42 +0200)]
ACPI / hotplug / PCI: Relax the checking of _STA return values

commit 7282059489868e0ed1b0d79765730c6b233a8399 upstream.

The ACPI specification (ACPI 5.0A, Section 6.3.7) says:

 _STA may return bit 0 clear (not present) with bit 3 set (device is
 functional). This case is used to indicate a valid device for which
 no device driver should be loaded (for example, a bridge device.)
 Children of this device may be present and valid. OSPM should
 continue enumeration below a device whose _STA returns this bit
 combination.

Evidently, some BIOSes follow that and return 0x0A from _STA, which
causes problems to happen when they trigger bus check or device check
notifications for those devices too.  Namely, ACPIPHP thinks that they
are gone and may drop them, for example, if such a notification is
triggered during a resume from system suspend.

To fix that, modify ACPICA to regard devies as present and
functioning if _STA returns both the ACPI_STA_DEVICE_ENABLED
and ACPI_STA_DEVICE_FUNCTIONING bits set for them.

Reported-and-tested-by: Peter Wu <lekensteyn@gmail.com>
[rjw: Subject and changelog, minor code modifications]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoblock: add cond_resched() to potentially long running ioctl discard loop
Jens Axboe [Wed, 12 Feb 2014 16:34:01 +0000 (09:34 -0700)]
block: add cond_resched() to potentially long running ioctl discard loop

commit c8123f8c9cb517403b51aa41c3c46ff5e10b2c17 upstream.

When mkfs issues a full device discard and the device only
supports discards of a smallish size, we can loop in
blkdev_issue_discard() for a long time. If preempt isn't enabled,
this can turn into a softlock situation and the kernel will
start complaining.

Add an explicit cond_resched() at the end of the loop to avoid
that.

Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoblock: Fix nr_vecs for inline integrity vectors
Martin K. Petersen [Thu, 6 Feb 2014 20:14:13 +0000 (15:14 -0500)]
block: Fix nr_vecs for inline integrity vectors

commit 087787959ce851d7bbb19f10f6e9241b7f85a3ca upstream.

Commit 9f060e2231ca changed the way we handle allocations for the
integrity vectors. When the vectors are inline there is no associated
slab and consequently bvec_nr_vecs() returns 0. Ensure that we check
against BIP_INLINE_VECS in that case.

Reported-by: David Milburn <dmilburn@redhat.com>
Tested-by: David Milburn <dmilburn@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoblock: __elv_next_request() shouldn't call into the elevator if bypassing
Tejun Heo [Wed, 29 Jan 2014 21:56:16 +0000 (14:56 -0700)]
block: __elv_next_request() shouldn't call into the elevator if bypassing

commit 556ee818c06f37b2e583af0363e6b16d0e0270de upstream.

request_queue bypassing is used to suppress higher-level function of a
request_queue so that they can be switched, reconfigured and shut
down.  A request_queue does the followings while bypassing.

* bypasses elevator and io_cq association and queues requests directly
  to the FIFO dispatch queue.

* bypasses block cgroup request_list lookup and always uses the root
  request_list.

Once confirmed to be bypassing, specific elevator and block cgroup
policy implementations can assume that nothing is in flight for them
and perform various operations which would be dangerous otherwise.

Such confirmation is acheived by short-circuiting all new requests
directly to the dispatch queue and waiting for all the requests which
were issued before to finish.  Unfortunately, while the request
allocating and draining sides were properly handled, we forgot to
actually plug the request dispatch path.  Even after bypassing mode is
confirmed, if the attached driver tries to fetch a request and the
dispatch queue is empty, __elv_next_request() would invoke the current
elevator's elevator_dispatch_fn() callback.  As all in-flight requests
were drained, the elevator wouldn't contain any request but once
bypass is confirmed we don't even know whether the elevator is even
there.  It might be in the process of being switched and half torn
down.

Frank Mayhar reports that this actually happened while switching
elevators, leading to an oops.

Let's fix it by making __elv_next_request() avoid invoking the
elevator_dispatch_fn() callback if the queue is bypassing.  It already
avoids invoking the callback if the queue is dying.  As a dying queue
is guaranteed to be bypassing, we can simply replace blk_queue_dying()
check with blk_queue_bypass().

Reported-by: Frank Mayhar <fmayhar@google.com>
References: http://lkml.kernel.org/g/1390319905.20232.38.camel@bobble.lax.corp.google.com
Tested-by: Frank Mayhar <fmayhar@google.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoModpost: fixed USB alias generation for ranges including 0x9 and 0xA
Jan Moskyto Matejka [Fri, 7 Feb 2014 18:15:11 +0000 (19:15 +0100)]
Modpost: fixed USB alias generation for ranges including 0x9 and 0xA

commit 03b56329f9bb5a1cb73d7dc659d529a9a9bf3acc upstream.

Commit afe2dab4f6 ("USB: add hex/bcd detection to usb modalias generation")
changed the routine that generates alias ranges. Before that change, only
digits 0-9 were supported; the commit tried to fix the case when the range
includes higher values than 0x9.

Unfortunately, the commit didn't fix the case when the range includes both
0x9 and 0xA, meaning that the final range must look like [x-9A-y] where
x <= 0x9 and y >= 0xA -- instead the [x-9A-x] range was produced.

Modprobe doesn't complain as it sees no difference between no-match and
bad-pattern results of fnmatch().

Fixing this simple bug to fix the aliases.
Also changing the hardcoded beginning of the range to uppercase as all the
other letters are also uppercase in the device version numbers.

Fortunately, this affects only the dvb-usb-dib0700 module, AFAIK.

Signed-off-by: Jan Moskyto Matejka <mq@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoRevert "usbcore: set lpm_capable field for LPM capable root hubs"
Sarah Sharp [Wed, 22 Jan 2014 21:35:02 +0000 (13:35 -0800)]
Revert "usbcore: set lpm_capable field for LPM capable root hubs"

commit 140e3026a57ab7d830dab2f2c57796c222db0ea9 upstream.

Commit 9df89d85b407690afa46ddfbccc80bec6869971d "usbcore: set
lpm_capable field for LPM capable root hubs" was created under the
assumption that all USB host controllers should have USB 3.0 Link PM
enabled for all devices under the hosts.

Unfortunately, that's not the case.  The xHCI driver relies on knowledge
of the host hardware scheduler to calculate the LPM U1/U2 timeout
values, and it only sets lpm_capable to one for Intel host controllers
(that have the XHCI_LPM_SUPPORT quirk set).

When LPM is enabled for some Fresco Logic hosts, it causes failures with
a AgeStar 3UBT USB 3.0 hard drive dock:

Jan 11 13:59:03 sg-laptop kernel: usb 3-1: new SuperSpeed USB device number 2 using xhci_hcd
Jan 11 13:59:03 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U1 failed.
Jan 11 13:59:08 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U2 failed.
Jan 11 13:59:08 sg-laptop kernel: usb-storage 3-1:1.0: USB Mass Storage device detected
Jan 11 13:59:08 sg-laptop mtp-probe[613]: checking bus 3, device 2: "/sys/devices/pci0000:00/0000:00:1c.3/0000:04:00.0/usb3/3-1"
Jan 11 13:59:08 sg-laptop mtp-probe[613]: bus: 3, device: 2 was not an MTP device
Jan 11 13:59:08 sg-laptop kernel: scsi6 : usb-storage 3-1:1.0
Jan 11 13:59:13 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U1 failed.
Jan 11 13:59:18 sg-laptop kernel: usb 3-1: Set SEL for device-initiated U2 failed.
Jan 11 13:59:18 sg-laptop kernel: usbcore: registered new interface driver usb-storage
Jan 11 13:59:40 sg-laptop kernel: usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 11 13:59:41 sg-laptop kernel: usb 3-1: device descriptor read/8, error -71
Jan 11 13:59:41 sg-laptop kernel: usb 3-1: reset SuperSpeed USB device number 2 using xhci_hcd
Jan 11 13:59:46 sg-laptop kernel: usb 3-1: device descriptor read/8, error -110
Jan 11 13:59:46 sg-laptop kernel: scsi 6:0:0:0: Device offlined - not ready after error recovery
Jan 11 13:59:46 sg-laptop kernel: usb 3-1: USB disconnect, device number 2

lspci for the affected host:

04:00.0 0c03: 1b73:1000 (rev 04) (prog-if 30 [XHCI])
        Subsystem: 1043:1039
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 19
        Region 0: Memory at dd200000 (32-bit, non-prefetchable) [size=64K]
        Capabilities: [50] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [80] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <2us, L1 <32us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Kernel driver in use: xhci_hcd
        Kernel modules: xhci_hcd

The commit was backported to stable kernels, and will need to be
reverted there as well.

Signed-off-by: Sarah Sharp <sarah.a.sharp@intel.com>
Reported-by: Sergey Galanov <sergey.e.galanov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoRevert "usb: xhci: Link TRB must not occur within a USB payload burst"
Sarah Sharp [Fri, 31 Jan 2014 19:52:57 +0000 (11:52 -0800)]
Revert "usb: xhci: Link TRB must not occur within a USB payload burst"

commit 3d4b81eda2211f32886e2978daf6f39885042fc4 upstream.

This reverts commit 35773dac5f862cb1c82ea151eba3e2f6de51ec3e.  It's a
hack that caused regressions in the usb-storage and userspace USB
drivers that use usbfs and libusb.  Commit 70cabb7d992f "xhci 1.0: Limit
arbitrarily-aligned scatter gather." should fix the issues seen with the
ax88179_178a driver on xHCI 1.0 hosts, without causing regressions.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoRevert "xhci: Avoid infinite loop when sg urb requires too many trbs"
Sarah Sharp [Fri, 31 Jan 2014 19:51:59 +0000 (11:51 -0800)]
Revert "xhci: Avoid infinite loop when sg urb requires too many trbs"

commit 9cf00d91708221ff2d8a11143315f7ebab8d5da8 upstream.

This reverts commit d6c9ea9069af684358efedcaf2f2f687f51c58ee.

We are ripping out commit 35773dac5f862cb1c82ea151eba3e2f6de51ec3e "usb:
xhci: Link TRB must not occur within a USB payload burst" because it's a
hack that caused regressions in the usb-storage and userspace USB
drivers that use usbfs and libusb.  This commit attempted to fix the
issues with that patch.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoRevert "xhci: Set scatter-gather limit to avoid failed block writes."
Sarah Sharp [Fri, 31 Jan 2014 19:45:02 +0000 (11:45 -0800)]
Revert "xhci: Set scatter-gather limit to avoid failed block writes."

commit 1386ff75797a187df324062fb4e929152392da88 upstream.

This reverts commit f2d9b991c549f159dc9ae81f77d8206c790cbfee.

We are ripping out commit 35773dac5f862cb1c82ea151eba3e2f6de51ec3e "usb:
xhci: Link TRB must not occur within a USB payload burst" because it's a
hack that caused regressions in the usb-storage and userspace USB
drivers that use usbfs and libusb.  This commit attempted to fix the
issues with that patch.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoxhci 1.0: Limit arbitrarily-aligned scatter gather.
Sarah Sharp [Fri, 31 Jan 2014 19:26:25 +0000 (11:26 -0800)]
xhci 1.0: Limit arbitrarily-aligned scatter gather.

commit 247bf557273dd775505fb9240d2d152f4f20d304 upstream.

xHCI 1.0 hosts have a set of requirements on how to align transfer
buffers on the endpoint rings called "TD fragment" rules.  When the
ax88179_178a driver added support for scatter gather in 3.12, with
commit 804fad45411b48233b48003e33a78f290d227c8 "USBNET: ax88179_178a:
enable tso if usb host supports sg dma", it broke the device under xHCI
1.0 hosts.  Under certain network loads, the device would see an
unexpected short packet from the host, which would cause the device to
stop sending ethernet packets, even through USB packets would still be
sent.

Commit 35773dac5f86 "usb: xhci: Link TRB must not occur within a USB
payload burst" attempted to fix this.  It was a quick hack to partially
implement the TD fragment rules.  However, it caused regressions in the
usb-storage layer and userspace USB drivers using libusb.  The patches
to attempt to fix this are too far reaching into the USB core, and we
really need to implement the TD fragment rules correctly in the xHCI
driver, instead of continuing to wallpaper over the issues.

Disable arbitrarily-aligned scatter-gather in the xHCI driver for 1.0
hosts.  Only the ax88179_178a driver checks the no_sg_constraint flag,
so don't set it for 1.0 hosts.  This should not impact usb-storage or
usbfs behavior, since they pass down max packet sized aligned sg-list
entries (512 for USB 2.0 and 1024 for USB 3.0).

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Tested-by: Mark Lord <mlord@pobox.com>
Cc: David Laight <David.Laight@ACULAB.COM>
Cc: Bjørn Mork <bjorn@mork.no>
Cc: Freddy Xin <freddy@asix.com.tw>
Cc: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agoUSB: simple: add Dynastream ANT USB-m Stick device support
Kristóf Ralovich [Fri, 24 Jan 2014 11:18:35 +0000 (12:18 +0100)]
USB: simple: add Dynastream ANT USB-m Stick device support

commit 2240c365108adbc4100a55654a5707e8e877a401 upstream.

Add support for ANT USB-m Stick from Dynastream Innovations, by listing
USB pid

[34366.944805] usb 6-1: New USB device found, idVendor=0fcf, idProduct=1009
[34366.944817] usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[34366.944824] usb 6-1: Product: ANT USB-m Stick
[34366.944831] usb 6-1: Manufacturer: Dynastream Innovations

Device reported (https://code.google.com/p/antpm/issues/detail?id=5) to
work through:
$ modprobe usbserial vendor=0x0fcf product=0x1009

Signed-off-by: Kristóf Ralovich <kristof.ralovich@gmail.com>
Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agousb: option: blacklist ZTE MF667 net interface
Raymond Wanyoike [Sun, 9 Feb 2014 08:59:46 +0000 (11:59 +0300)]
usb: option: blacklist ZTE MF667 net interface

commit 3635c7e2d59f7861afa6fa5e87e2a58860ff514d upstream.

Interface #5 of 19d2:1270 is a net interface which has been submitted to the
qmi_wwan driver so consequently remove it from the option driver.

Signed-off-by: Raymond Wanyoike <raymond.wanyoike@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
11 years agousb-storage: enable multi-LUN scanning when needed
Alan Stern [Thu, 30 Jan 2014 15:43:22 +0000 (10:43 -0500)]
usb-storage: enable multi-LUN scanning when needed

commit 823d12c95c666fa7ab7dad208d735f6bc6afabdc upstream.

People sometimes create their own custom-configured kernels and forget
to enable CONFIG_SCSI_MULTI_LUN.  This causes problems when they plug
in a USB storage device (such as a card reader) with more than one
LUN.

Fortunately, we can tell fairly easily when a storage device claims to
have more than one LUN.  When that happens, this patch asks the SCSI
layer to probe all the LUNs automatically, regardless of the config
setting.

The patch also updates the Kconfig help text for usb-storage,
explaining that CONFIG_SCSI_MULTI_LUN may be necessary.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Thomas Raschbacher <lordvan@lordvan.com>
CC: Matthew Dharm <mdharm-usb@one-eyed-alien.net>
CC: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>