Linaro Linux 3.2-2012.01
Milestone information
- Project:
- Linaro Linux
- Series:
- 3.2
- Version:
- 3.2-2012.01
- Released:
- Registrant:
- Deepak Saxena
- Release registered:
- Active:
- No. Drivers cannot target bugs and blueprints to this milestone.
Activities
- Assigned to you:
- No blueprints or bugs assigned to you.
- Assignees:
- No users assigned to blueprints and bugs.
- Blueprints:
- No blueprints are targeted to this milestone.
- Bugs:
- No bugs are targeted to this milestone.
Download files for this release
Release notes
The Linaro Kernel Working Group (KWG) is excited to announce the
availability our January 2012 development snapshot:
linux-linaro-
As the word "snapshot" implies, these are meant as development kernels
and have not been fully validated. You should expect issues and to help
us deliver a better kernel in the future, please file bugs in Launchpad at
https:/
This is our first kernel release run by Andrey Konovalov and I want to
thank him for getting up and running in short time period and getting
this release out the door. Andrey will be creating a 3.3 tracking branch
soon and we can then start merging code from the other WGs and LTs to
provide a common baseline for the 2012.02 release.
The source tarball is available at:
http://
The kernel sources can also be accessed using git at:
git://
tag: linux-linaro-
This kernel includes the following changes from the 2011.11 kernel:
- Update to 3.2.1 stable kernel
- Various patches from 3.3-rc1 and other trees:
- Restart code cleanup (Russell King)
- Config fragment support (John Stultz)
- Pinctrl updates (Dong Aishang, Rajendra Nayak, Linus Walleij)
- Thermal cpu cooling branch from PMWG (Amit Kacchap, Jaecheol Lee)
- LPAE support (Catalin Marinas)
- MULTI_IRQ_HANDLER support (Marc Zyngier)
- ioremap() consolidation (Nicolas Pitre)
A full change log against the 3.2.1 release is available at:
http://
High Priority Known Issues:
- None at this time
Mailing list: http://
Questions? https:/
Changelog
commit d200db2f2df5a58
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:06:26 2012 +0400
Get rid of "ERROR: "omap_bus_sync" undefined!" when building modules
Signed-off-by: Andrey Konovalov <email address hidden>
commit c2a5a3cfab76c6b
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 23 21:00:43 2012 +0400
arm: omap4: Fix omap_barriers_init for generic ioremap changes
From: Tony Lindgren <email address hidden>
Date: Thu, 12 Jan 2012 10:42:57 -0800
Cc: Santosh Shilimkar <email address hidden>
Commit 73829af71fdb865
(Merge branch 'vmalloc' of git://git.
into devel-stable) merged generic ioremap changes.
Commit 137d105d50f6e6c
(ARM: OMAP4: Fix errata i688 with MPU interconnect barriers)
added a workaround for omap4.
In order for the errata to work, we now need the following
patch or else we'll get:
kernel BUG at mm/vmalloc.c:1134!
Signed-off-by: Tony Lindgren <email address hidden>
Signed-off-by: Andrey Konovalov <email address hidden>
commit 34e7c4f3f9e5403
Author: Santosh Shilimkar <email address hidden>
Date: Sat Jun 25 18:04:31 2011 -0700
ARM: OMAP4: Fix errata i688 with MPU interconnect barriers.
On OMAP4 SOC, intecronnects has many write buffers in the async bridges
and they need to be drained before CPU enters into standby state.
Patch 'OMAP4: PM: Add CPUX OFF mode support' added CPU PM support
but OMAP errata i688 (Async Bridge Corruption) needs to be taken
care to avoid issues like system freeze, CPU deadlocks, random
crashes with register accesses, synchronisation loss on initiators
operating on both interconnect port simultaneously.
As per the errata, if a data is stalled inside asynchronous bridge
because of back pressure, it may be accepted multiple times, creating
pointer misalignment that will corrupt next transfers on that data
path until next reset of the system (No recovery procedure once
the issue is hit, the path remains consistently broken).
Async bridge can be found on path between MPU to EMIF and
MPU to L3 interconnect. This situation can happen only when the
idle is initiated by a Master Request Disconnection (which is
trigged by software when executing WFI on CPU).
The work-around for this errata needs all the initiators
connected through async bridge must ensure that data path
is properly drained before issuing WFI. This condition will be
met if one Strongly ordered access is performed to the
target right before executing the WFI. In MPU case, L3 T2ASYNC
FIFO and DDR T2ASYNC FIFO needs to be drained. IO barrier ensure
that there is no synchronisation loss on initiators operating
on both interconnect port simultaneously.
Thanks to Russell for a tip to conver assembly function to
C fuction there by reducing 40 odd lines of code from the patch.
Signed-off-by: Santosh Shilimkar <email address hidden>
Signed-off-by: Richard Woodruff <email address hidden>
Acked-by: Jean Pihet <email address hidden>
Reviewed-by: Kevin Hilman <email address hidden>
Tested-by: Vishwanath BS <email address hidden>
Signed-off-by: Kevin Hilman <email address hidden>
Conflicts:
arch/
arch/
commit 8511c8cce280177
Merge: b93b9d9 b8ed9e5
Author: Andrey Konovalov <email address hidden>
Date: Thu Jan 19 18:25:13 2012 +0400
Merge branch 'linux-3.2.y' into linux-linaro-3.2
commit b93b9d935637fc8
Merge: ddd0651 027d7c3
Author: Andrey Konovalov <email address hidden>
Date: Tue Jan 17 00:05:56 2012 +0400
Merge device tree support patches from linux-linaro-3.1
commit ddd06511cec6181
Merge: e50ef51 904f06d
Author: Andrey Konovalov <email address hidden>
Date: Mon Jan 16 19:36:58 2012 +0400
Merge branch 'config-fragments' into linux-linaro-
commit e50ef516f9f0d28
Merge: 70df977 0d2006b
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:39:38 2012 +0400
Merge branch 'linusw-
commit 70df977b8157276
Merge: b6d31b9 17c05c6
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:36:05 2012 +0400
Merge branch 'thermal_
commit b6d31b946185ce8
Merge: 3d07054 29a443b
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 13 21:33:30 2012 +0400
Merge branch 'samsung_
commit b8ed9e5b8c34dc9
Author: Greg Kroah-Hartman <email address hidden>
Date: Thu Jan 12 11:42:45 2012 -0800
Linux 3.2.1
commit da777f649cf9685
Author: Xi Wang <email address hidden>
Date: Mon Dec 12 21:55:52 2011 +0000
xfs: fix acl count validation in xfs_acl_from_disk()
commit 093019cf1b18dd3
Commit fa8b18ed didn't prevent the integer overflow and possible
memory corruption. "count" can go negative and bypass the check.
Signed-off-by: Xi Wang <email address hidden>
Reviewed-by: Christoph Hellwig <email address hidden>
Signed-off-by: Ben Myers <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit f9fd8d6232137e2
Author: Thilo-Alexander Ginkel <email address hidden>
Date: Sat Dec 17 10:55:10 2011 +0100
usb: cdc-acm: Fix acm_tty_hangup() vs. acm_tty_close() race
[Not upstream as it was fixed differently for 3.3 with a much more
"intrusive" rework of the driver - gregkh]
There is a race condition involving acm_tty_hangup() and acm_tty_close()
where hangup() would attempt to access tty->driver_data without proper
locking and NULL checking after close() has potentially already set it
to NULL. One possibility to (sporadically) trigger this behavior is to
perform a suspend/resume cycle with a running WWAN data connection.
This patch addresses the issue by introducing a NULL check for
tty-
gracefully when hangup() is invoked on a device that has already been
closed.
Signed-off-by: Thilo-Alexander Ginkel <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit f60d8cd0b0e0def
Author: stephen hemminger <email address hidden>
Date: Sat Dec 31 13:26:46 2011 +0000
bonding: fix error handling if slave is busy (v2)
commit f7d9821a6a9c834
If slave device already has a receive handler registered, then the
error unwind of bonding device enslave function is broken.
The following will leave a pointer to freed memory in the slave
device list, causing a later kernel panic.
# modprobe dummy
# ip li add dummy0-1 link dummy0 type macvlan
# modprobe bonding
# echo +dummy0 >/sys/class/
The fix is to detach the slave (which removes it from the list)
in the unwind path.
Signed-off-by: Stephen Hemminger <email address hidden>
Reviewed-by: Nicolas de Pesloüan <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 4a75c219087a407
Author: Aurelien Jacobs <email address hidden>
Date: Sat Jan 7 12:15:16 2012 -0800
asix: fix infinite loop in rx_fixup()
commit 6c15d74defd38e7
At this point if skb->len happens to be 2, the subsequant skb_pull(skb, 4)
call won't work and the skb->len won't be decreased and won't ever reach 0,
resulting in an infinite loop.
With an ASIX 88772 under heavy load, without this patch, rx_fixup() reaches
an infinite loop in less than a minute. With this patch applied,
no infinite loop even after hours of heavy load.
Signed-off-by: Aurelien Jacobs <email address hidden>
Cc: Jussi Kivilinna <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
commit 25c413ad0029ea8
Author: Ben Hutchings <email address hidden>
Date: Mon Jan 9 14:06:46 2012 -0800
igmp: Avoid zero delay when receiving odd mixture of IGMP queries
commit a8c1f65c79cbbb2
Commit 5b7c84066733c5d
behavior on v3 query during v2-compatibility mode') added yet another
case for query parsing, which can result in max_delay = 0. Substitute
a value of 1, as in the usual v3 case.
Reported-by: Simon McVittie <email address hidden>
References: http://
Signed-off-by: Ben Hutchings <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
commit d2570fc048ca130
Author: Felipe Balbi <email address hidden>
Date: Mon Jan 2 13:35:41 2012 +0200
usb: ch9: fix up MaxStreams helper
commit 18b7ede5f7ee209
[ removed the dwc3 portion of the patch as it didn't apply to
older kernels - gregkh]
According to USB 3.0 Specification Table 9-22, if
bmAttributes [4:0] are set to zero, it means "no
streams supported", but the way this helper was
defined on Linux, we will *always* have one stream
which might cause several problems.
For example on DWC3, we would tell the controller
endpoint has streams enabled and yet start transfers
with Stream ID set to 0, which would goof up the host
side.
While doing that, convert the macro to an inline
function due to the different checks we now need.
Signed-off-by: Felipe Balbi <email address hidden>
Signed-off-by: Sarah Sharp <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 5b511b783385bc6
Author: Hans de Goede <email address hidden>
Date: Wed Jan 4 23:29:18 2012 +0100
xhci: Properly handle COMP_2ND_BW_ERR
commit 71d85724bdd947a
I encountered a result of COMP_2ND_BW_ERR while improving how the pwc
webcam driver handles not having the full usb1 bandwidth available to
itself.
I created the following test setup, a NEC xhci controller with a
single TT USB 2 hub plugged into it, with a usb keyboard and a pwc webcam
plugged into the usb2 hub. This caused the following to show up in dmesg
when trying to stream from the pwc camera at its highest alt setting:
xhci_hcd 0000:01:00.0: ERROR: unexpected command completion code 0x23.
usb 6-2.1: Not enough bandwidth for altsetting 9
And usb_set_interface returned -EINVAL, which caused my pwc code to not
do the right thing as it expected -ENOSPC.
This patch makes the xhci driver properly handle COMP_2ND_BW_ERR and makes
usb_
This should be backported to stable kernels as old as 2.6.32.
Signed-off-by: Hans de Goede <email address hidden>
Signed-off-by: Sarah Sharp <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 4781ace0ddff805
Author: Clemens Ladisch <email address hidden>
Date: Sat Dec 3 23:41:31 2011 +0100
usb: fix number of mapped SG DMA entries
commit bc677d5b64644c3
Add a new field num_mapped_sgs to struct urb so that we have a place to
store the number of mapped entries and can also retain the original
value of entries in num_sgs. Previously, usb_hcd_
would overwrite this with the number of mapped entries, which would
break dma_unmap_sg() because it requires the original number of entries.
This fixes warnings like the following when using USB storage devices:
------------[ cut here ]------------
WARNING: at lib/dma-debug.c:902 check_unmap+
ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
Modules linked in: ohci_hcd ehci_hcd
Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
Call Trace:
<IRQ> [<ffffffff81036
[
[
[
[
[
[
[
[
[
[
[
...
---[ end trace f29ac88a5a48c580 ]---
Mapped at:
[
[
[
[
[
Signed-off-by: Clemens Ladisch <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit d2758dc6e9a3a02
Author: Malte Schröder <email address hidden>
Date: Thu Jan 5 20:34:40 2012 +0100
USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c
commit 08e87d0d773dc9c
Hi, below patch adds the USB-ID of the serial adapters sold by
Multiplex RC (www.multiplex-
Signed-off-by: Malte Schröder <email address hidden>
Cc: stable <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 3ff8999cb9dabca
Author: Janne Snabb <email address hidden>
Date: Wed Dec 28 19:36:00 2011 +0000
usb: option: add ZD Incorporated HSPA modem
commit 3c8c9316710b83e
Add support for Chinese Noname HSPA USB modem which is apparently
manufactured by a company called ZD Incorporated (based on texts in the
Windows drivers).
This product is available at least from Dealextreme (SKU 80032) and
possibly in India with name Olive V-MW250. It is based on Qualcomm
MSM6280 chip.
I needed to also add "options usb-storage quirks=0685:7000:i" in modprobe
configuration because udevd or the kernel keeps poking the embedded
fake-cd-rom which fails and causes the device to reset. There might be
a better way to accomplish the same. usb_modeswitch is not needed with
this device.
Signed-off-by: Janne Snabb <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit b4868343c4dde53
Author: Johan Hovold <email address hidden>
Date: Sun Nov 6 19:06:21 2011 +0100
USB: omninet: fix write_room
commit 694c6301e515bad
Fix regression introduced by commit 507ca9bc047666 ([PATCH] USB: add
ability for usb-serial drivers to determine if their write urb is
currently being used.) which inverted the logic in write_room so that it
returns zero when the write urb is actually free.
Signed-off-by: Johan Hovold <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 945d49b38f4e3aa
Author: Felipe Contreras <email address hidden>
Date: Mon Dec 19 22:01:54 2011 +0200
usb: musb: fix pm_runtime mismatch
commit 772aed45b604c5f
In musb_init_
pm_
sleep when it shouldn't.
This was introduced in 7acc619[1], but it wasn't triggered in my setup
until 18a2689[2] was merged to Linus' branch at point df0914[3]. IOW;
when PM is working as it was supposed to.
However, it seems most of the time this is used in a way that keeps the
counter above 0, so nobody noticed. Also, it seems to depend on the
configuration used in versions before 3.1, but not later (or in it).
I found the problem by loading isp1704_charger before any usb gadgets:
http://
All versions after 2.6.39 are affected.
[1] usb: musb: Idle path retention and offmode support for OMAP3
[2] OMAP2+: musb: hwmod adaptation for musb registration
[3] Merge branch 'omap-for-linus' of git://git.
Cc: Hema HK <email address hidden>
Signed-off-by: Felipe Contreras <email address hidden>
Signed-off-by: Felipe Balbi <email address hidden>
commit dd857f5b4dc1d8d
Author: Oliver Neukum <email address hidden>
Date: Tue Jan 3 09:58:54 2012 +0100
USB: add quirk for another camera
commit 35284b3d2f68a8a
The Guillemot Webcam Hercules Dualpix Exchange camera
has been reported with a second ID.
Signed-off-by: Oliver Neukum <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 966c248e661ce7d
Author: Tanmay Upadhyay <email address hidden>
Date: Thu Dec 8 10:03:49 2011 +0530
USB: pxa168: Fix compilation error
commit 35657c4d7292593
After commit c430131a02d677a
controllers with big endian capability regs), HC_LENGTH takes
two arguments. This patch fixes following compilation error:
In file included from drivers/
drivers/
In file included from drivers/
drivers/
drivers/
drivers/
drivers/
Signed-off-by: Tanmay Upadhyay <email address hidden>
Acked-by: Alan Stern <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit ab8887268c60a5d
Author: Huajun Li <email address hidden>
Date: Wed Jan 4 19:25:33 2012 +0800
usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops
commit 1a3a026ba1b6bbf
Echo vendor and product number of a non usb-storage device to
usb-storage driver's new_id, then plug in the device to host and you
will find following oops msg, the root cause is usb_stor_probe1()
refers invalid id entry if giving a dynamic id, so just disable the
feature.
[ 3105.018012] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 3105.018062] CPU 0
[ 3105.018075] Modules linked in: usb_storage usb_libusual bluetooth
dm_crypt binfmt_misc snd_hda_
snd_hwdep hp_wmi ppdev sparse_keymap snd_pcm snd_seq_midi snd_rawmidi
snd_
serio_raw tpm_infineon soundcore i915 snd_page_alloc tpm_tis
parport_pc tpm tpm_bios drm_kms_helper drm i2c_algo_bit video lp
parport usbhid hid sg sr_mod sd_mod ehci_hcd uhci_hcd usbcore e1000e
usb_common floppy
[ 3105.018408]
[ 3105.018419] Pid: 189, comm: khubd Tainted: G I 3.2.0-rc7+
#29 Hewlett-Packard HP Compaq dc7800p Convertible Minitower/0AACh
[ 3105.018481] RIP: 0010:[<
usb_
[ 3105.018536] RSP: 0018:ffff880056
[ 3105.018562] RAX: ffff880065f4e648 RBX: ffff88006bb28000 RCX: 0000000000000000
[ 3105.018597] RDX: ffff88006f23c7b0 RSI: 0000000000000001 RDI: 0000000000000206
[ 3105.018632] RBP: ffff880056a3d900 R08: 0000000000000000 R09: ffff880067365000
[ 3105.018665] R10: 00000000000002ac R11: 0000000000000010 R12: ffff6000b41a7340
[ 3105.018698] R13: ffff880065f4ef60 R14: ffff88006bb28b88 R15: ffff88006f23d270
[ 3105.018733] FS: 000000000000000
knlGS:
[ 3105.018773] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3105.018801] CR2: 00007fc99c8c4650 CR3: 0000000001e05000 CR4: 00000000000006f0
[ 3105.018835] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3105.018870] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3105.018906] Process khubd (pid: 189, threadinfo ffff880056a3c000,
task ffff88005677a400)
[ 3105.018945] Stack:
[ 3105.018959] 0000000000000000 0000000000000000 ffff880056a3d8d0
00000000000
[ 3105.019011] 0000000000000000 ffff880056a3d918 ffff880000000000
00000000000
[ 3105.019058] ffff880056a3d8d0 0000000000000012 ffff880056a3d8d0
00000000000
[ 3105.019105] Call Trace:
[ 3105.019128] [<ffffffffa0458
[ 3105.019173] [<ffffffffa0097
[ 3105.019211] [<ffffffff815fd
[ 3105.019243] [<ffffffff815fd
[ 3105.019272] [<ffffffff815fd
[ 3105.019303] [<ffffffff815fb
[ 3105.019334] [<ffffffff815fd
[ 3105.019364] [<ffffffff815fc
[ 3105.019396] [<ffffffff815f9
[ 3105.019434] [<ffffffffa0094
[ 3105.019479] [<ffffffffa00a3
[ 3105.019518] [<ffffffffa0097
[ 3105.019555] [<ffffffff815fd
[ 3105.019589] [<ffffffff815fd
[ 3105.019617] [<ffffffff815fd
[ 3105.019648] [<ffffffff815fb
[ 3105.019680] [<ffffffff815fd
[ 3105.019709] [<ffffffff815fc
[ 3105.021040] usb usb6: usb auto-resume
[ 3105.021045] usb usb6: wakeup_rh
[ 3105.024849] [<ffffffff815f9
[ 3105.025086] [<ffffffffa0088
[ 3105.025086] [<ffffffffa008a
[ 3105.025086] [<ffffffff810d5
[ 3105.025086] [<ffffffffa0089
[ 3105.025086] [<ffffffff810d4
[ 3105.025086] [<ffffffff81939
[ 3105.025086] [<ffffffff8192a
[ 3105.025086] [<ffffffff8192b
[ 3105.025086] [<ffffffff810d4
[ 3105.025086] [<ffffffff81939
[ 3105.025086] Code: 00 48 83 05 cd ad 00 00 01 48 83 05 cd ad 00 00
01 4c 8b ab 30 0c 00 00 48 8b 50 08 48 83 c0 30 48 89 45 a0 4c 89 a3
40 0c 00 00 <41> 0f b6 44 24 10 48 89 55 a8 3c ff 0f 84 b8 04 00 00 48
83 05
[ 3105.025086] RIP [<ffffffffa0458
[usb_storage]
[ 3105.025086] RSP <ffff880056a3d830>
[ 3105.060037] hub 6-0:1.0: hub_resume
[ 3105.062616] usb usb5: usb auto-resume
[ 3105.064317] ehci_hcd 0000:00:1d.7: resume root hub
[ 3105.094809] ---[ end trace a7919e7f17c0a727 ]---
[ 3105.130069] hub 5-0:1.0: hub_resume
[ 3105.132131] usb usb4: usb auto-resume
[ 3105.132136] usb usb4: wakeup_rh
[ 3105.180059] hub 4-0:1.0: hub_resume
[ 3106.290052] usb usb6: suspend_rh (auto-stop)
[ 3106.290077] usb usb4: suspend_rh (auto-stop)
Signed-off-by: Huajun Li <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit d6b3d54200b7b29
Author: Greg Kroah-Hartman <email address hidden>
Date: Mon Dec 5 14:02:59 2011 -0800
USB: isight: fix kernel bug when loading firmware
commit 59bf5cf94f0fa3b
We were sending data on the stack when uploading firmware, which causes
some machines fits, and is not allowed. Fix this by using the buffer we
already had around for this very purpose.
Reported-by: Wouter M. Koolen <email address hidden>
Tested-by: Wouter M. Koolen <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 30234e2694cbc1d
Author: Julia Lawall <email address hidden>
Date: Fri Dec 23 14:02:55 2011 +0100
drivers/
commit e7c8e8605d0bafc
On some failures, the country_code field of an acm structure is freed
without freeing the acm structure itself. Elsewhere, operations including
memcpy and kfree are performed on the country_code field. The patch sets
the country_code field to NULL when it is freed, and likewise sets the
country_
Signed-off-by: Julia Lawall <email address hidden>
Acked-by: Oliver Neukum <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 9e9f6a20b59570c
Author: Jan Kara <email address hidden>
Date: Sat Dec 10 02:30:48 2011 +0100
udf: Fix deadlock when converting file from in-ICB one to normal one
commit d2eb8c359309ec4
During BKL removal in 2.6.38, conversion of files from in-ICB format to normal
format got broken. We call ->writepage with i_data_sem held but udf_get_block()
also acquires i_data_sem thus creating A-A deadlock.
We fix the problem by dropping i_data_sem before calling ->writepage() which is
safe since i_mutex still protects us against any changes in the file. Also fix
pagelock - i_data_sem lock inversion in udf_expand_
i_data_sem before calling find_or_
Reported-by: Matthias Matiak <email address hidden>
Tested-by: Matthias Matiak <email address hidden>
Reviewed-by: Namjae Jeon <email address hidden>
Signed-off-by: Jan Kara <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 62cf6918d66acca
Author: Li Zefan <email address hidden>
Date: Tue Dec 27 14:25:55 2011 +0800
cgroup: fix to allow mounting a hierarchy by name
commit 0d19ea866562e46
If we mount a hierarchy with a specified name, the name is unique,
and we can use it to mount the hierarchy without specifying its
set of subsystem names. This feature is documented is
Documentati
Here's an example:
# mount -t cgroup -o cpuset,name=myhier xxx /cgroup1
# mount -t cgroup -o name=myhier xxx /cgroup2
But it was broken by commit 32a8cf235e2f192
(cgroup: make the mount options parsing more accurate)
This fixes the regression.
Signed-off-by: Li Zefan <email address hidden>
Signed-off-by: Tejun Heo <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit b71bb82900b7491
Author: Claudio Scordino <email address hidden>
Date: Fri Dec 16 15:08:49 2011 +0100
atmel_serial: fix spinlock lockup in RS485 code
commit dbf1115d3f8c705
Patch to fix a spinlock lockup in the driver that sometimes happens when the
tasklet starts.
Signed-off-by: Claudio Scordino <email address hidden>
Signed-off-by: Dave Bender <email address hidden>
Tested-by: Dave Bender <email address hidden>
Acked-by: Nicolas Ferre <email address hidden>
Acked-by: Alan Cox <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 7f35a6941c20af6
Author: Sarah Sharp <email address hidden>
Date: Fri Dec 16 11:26:30 2011 -0800
usbfs: Fix oops related to user namespace conversion.
commit 1b41c8321e49533
When running the Point Grey "flycap" program for their USB 3.0 camera
(which was running as a USB 2.0 device for some reason), I trigger this
oops whenever I try to open a video stream:
Dec 15 16:48:34 puck kernel: [ 1798.715559] BUG: unable to handle kernel NULL pointer dereference at (null)
Dec 15 16:48:34 puck kernel: [ 1798.719153] IP: [<ffffffff81478
Dec 15 16:48:34 puck kernel: [ 1798.720991] PGD 6f833067 PUD 6fc56067 PMD 0
Dec 15 16:48:34 puck kernel: [ 1798.722815] Oops: 0002 [#1] SMP
Dec 15 16:48:34 puck kernel: [ 1798.724627] CPU 0
Dec 15 16:48:34 puck kernel: [ 1798.724636] Modules linked in: ecryptfs encrypted_keys sha1_generic trusted binfmt_misc sha256_generic aesni_intel cryptd aes_x86_64 aes_generic parport_pc dm_crypt ppdev joydev snd_hda_codec_hdmi snd_hda_
Dec 15 16:48:34 puck kernel: [ 1798.734212]
Dec 15 16:48:34 puck kernel: [ 1798.736162] Pid: 2713, comm: FlyCap2 Not tainted 3.2.0-rc5+ #28 LENOVO 4286CTO/4286CTO
Dec 15 16:48:34 puck kernel: [ 1798.738148] RIP: 0010:[<
Dec 15 16:48:34 puck kernel: [ 1798.740134] RSP: 0018:ffff880057
Dec 15 16:48:34 puck kernel: [ 1798.742118] RAX: 00000000fffffff4 RBX: ffff88006fe8f900 RCX: 0000000000004118
Dec 15 16:48:34 puck kernel: [ 1798.744116] RDX: 0000000001000000 RSI: 0000000000016390 RDI: 0000000000000000
Dec 15 16:48:34 puck kernel: [ 1798.746087] RBP: ffff88005715fd88 R08: 0000000000000000 R09: ffffffff8146f22e
Dec 15 16:48:34 puck kernel: [ 1798.748018] R10: ffff88006e520ac0 R11: 0000000000000001 R12: ffff88005715fe28
Dec 15 16:48:34 puck kernel: [ 1798.749916] R13: ffff88005d31df00 R14: ffff88006fe8f900 R15: 00007f688c995cb8
Dec 15 16:48:34 puck kernel: [ 1798.751785] FS: 00007f68a366da4
Dec 15 16:48:34 puck kernel: [ 1798.753659] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Dec 15 16:48:34 puck kernel: [ 1798.755509] CR2: 0000000000000000 CR3: 00000000706bb000 CR4: 00000000000406f0
Dec 15 16:48:34 puck kernel: [ 1798.757334] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Dec 15 16:48:34 puck kernel: [ 1798.759124] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Dec 15 16:48:34 puck kernel: [ 1798.760871] Process FlyCap2 (pid: 2713, threadinfo ffff88005715e000, task ffff88006c675b80)
Dec 15 16:48:34 puck kernel: [ 1798.762605] Stack:
Dec 15 16:48:34 puck kernel: [ 1798.764297] ffff88005715fe28 0000000000000000 ffff88005715fe08 ffffffff81479058
Dec 15 16:48:34 puck kernel: [ 1798.766020] 0000000000000000 ffffea0000004000 ffff880000004118 0000000000000000
Dec 15 16:48:34 puck kernel: [ 1798.767750] ffff880000000001 ffff88006e520ac0 fffffff46fd81180 0000000000000000
Dec 15 16:48:34 puck kernel: [ 1798.769472] Call Trace:
Dec 15 16:48:34 puck kernel: [ 1798.771147] [<ffffffff81479
Dec 15 16:48:34 puck kernel: [ 1798.772798] [<ffffffff8147a
Dec 15 16:48:34 puck kernel: [ 1798.774410] [<ffffffff8147b
Dec 15 16:48:34 puck kernel: [ 1798.775975] [<ffffffff81189
Dec 15 16:48:34 puck kernel: [ 1798.777534] [<ffffffff81189
Dec 15 16:48:34 puck kernel: [ 1798.779088] [<ffffffff81624
ec 15 16:48:34 puck kernel: [ 1798.780634] Code: 51 ff ff ff e9 29 ff ff ff 0f 1f 40 00 55 48 89 e5 53 48 83 ec 08 66 66 66 66 90 48 89 fb 48 8b 7f 18 e8 a6 ea c0 ff 4
8 8b 7b 20 <f0> ff 0f 0f 94 c0 84 c0 74 05 e8 d3 99 c1 ff 48 8b 43 40 48 8b
Dec 15 16:48:34 puck kernel: [ 1798.783970] RIP [<ffffffff81478
Dec 15 16:48:34 puck kernel: [ 1798.785630] RSP <ffff88005715fd78>
Dec 15 16:48:34 puck kernel: [ 1798.787274] CR2: 0000000000000000
Dec 15 16:48:34 puck kernel: [ 1798.794728] ---[ end trace 52894d3355f88d19 ]---
markup_oops.pl says the oops is in put_cred:
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
*/
static inline int atomic_
{
asm volatile(
*ffffffff81
ffffffff81
static inline void put_cred(const struct cred *_cred)
{
struct cred *cred = (struct cred *) _cred;
if (atomic_
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
ffffffff81
This bug seems to have been introduced by commit
d178bc3a708
urbs user namespace aware (v2)"
I'm not sure if this is right fix, but it does stop the oops.
Unfortunately, the Point Grey software still refuses to work, but it's a
closed source app, so I can't fix it.
Signed-off-by: Sarah Sharp <email address hidden>
Acked-by: Serge Hallyn <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 170b209abef5278
Author: Alan Stern <email address hidden>
Date: Wed Jan 4 16:36:35 2012 -0500
USB: update documentation for usbmon
commit d8cae98cddd286e
The documentation for usbmon is out of date; the usbfs "devices" file
now exists in /sys/kernel/
patch (as1505) updates the documentation accordingly, and also
mentions that the necessary information can be found by running lsusb.
Signed-off-by: Alan Stern <email address hidden>
CC: Pete Zaitcev <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit d1883e7052eeffc
Author: K. Y. Srinivasan <email address hidden>
Date: Tue Dec 27 13:49:37 2011 -0800
Drivers:hv: Fix a bug in vmbus_driver_
commit 8f257a142fc3868
The function vmbus_exists() was introduced recently to deal with cases where
the vmbus driver failed to initialize and yet other Hyper-V drivers attempted
to register with the vmbus bus driver. This patch introduced a bug where
vmbus_
fixes the problem.
Signed-off-by: K. Y. Srinivasan <email address hidden>
Signed-off-by: Fuzhou Chen <email address hidden>
Cc: Sasha Levin <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 32eef9ed02e483c
Author: K. Y. Srinivasan <email address hidden>
Date: Thu Dec 1 09:59:34 2011 -0800
drivers: hv: Don't OOPS when you cannot init vmbus
commit cf6a2eacbcb2593
The hv vmbus driver was causing an OOPS since it was trying to register drivers
on top of the bus even if initialization of the bus has failed for some
reason (such as the odd chance someone would run a hv enabled kernel in a
non-hv environment).
Signed-off-by: Sasha Levin <email address hidden>
Signed-off-by: K. Y. Srinivasan <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 0558681f027b24a
Author: Jan Kara <email address hidden>
Date: Thu Dec 22 16:49:05 2011 +0100
ext3: Don't warn from writepage when readonly inode is spotted after error
commit 33c104d415e92a5
WARN_
remounted read-only. This unnecessarily scares users (well, they should be
scared because of filesystem error, but the stack trace distracts them from the
right source of their fear ;-). We could as well just remove the WARN_ON but
it's not hard to fix it to not trip on filesystem with errors and not use more
cycles in the common case so that's what we do.
Signed-off-by: Jan Kara <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 04e06ee56d4667d
Author: Jeff Mahoney <email address hidden>
Date: Wed Dec 21 21:18:43 2011 +0100
reiserfs: Force inode evictions before umount to avoid crash
commit a9e36da655e5454
This patch fixes a crash in reiserfs_
When shrink_
generic_
evicted inode has extended attributes associated with it, it will
need to walk the xattr tree to locate and remove them.
But since shrink_
dentries, the xattr tree must be released before it's called or it will
crash during every umount.
This patch forces the evictions to occur before generic_
by calling shrink_dcache_sb first. The additional evictions caused
by the removal of each associated xattr file and dir will be automatically
handled as they're added to the LRU list.
CC: <email address hidden>
Signed-off-by: Jeff Mahoney <email address hidden>
Signed-off-by: Jan Kara <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit e75c11aceb7c871
Author: Jan Kara <email address hidden>
Date: Wed Dec 21 17:35:34 2011 +0100
reiserfs: Fix quota mount option parsing
commit a06d789b424190e
When jqfmt mount option is not specified on remount, we mistakenly clear
s_jquota_fmt value stored in superblock. Fix the problem.
CC: <email address hidden>
Signed-off-by: Jan Kara <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 88e02818005ddaf
Author: Boaz Harrosh <email address hidden>
Date: Tue Nov 29 15:35:53 2011 -0800
ore: FIX breakage when MISC_FILESYSTEMS is not set
commit 831c2dc5f47c1dc
As Reported by Randy Dunlap
When MISC_FILESYSTEMS is not enabled and NFS4.1 is:
fs/built-in.o: In function `objio_
objio_
fs/built-in.o: In function `_write_done':
objio_
fs/built-in.o: In function `_read_done':
...
When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
is not selected. exofs/Kconfig is never examined during Kconfig,
and it can not do it's magic stuff to automatically select everything
needed.
We must split exofs/Kconfig in two. The ore one is always included.
And the exofs one is left in it's old place in the menu.
Reported-by: Randy Dunlap <email address hidden>
Signed-off-by: Boaz Harrosh <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 673a3083dc48d45
Author: Boaz Harrosh <email address hidden>
Date: Wed Dec 28 19:21:45 2011 +0200
ore: Must support none-PAGE-aligned IO
commit 724577ca355795b
NFS might send us offsets that are not PAGE aligned. So
we must read in the reminder of the first/last pages, in cases
we need it for Parity calculations.
We only add an sg segments to read the partial page. But
we don't mark it as read=true because it is a lock-for-write
page.
TODO: In some cases (IO spans a single unit) we can just
adjust the raid_unit offset/length, but this is left for
later Kernels.
Signed-off-by: Boaz Harrosh <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 0889c179651f57c
Author: Boaz Harrosh <email address hidden>
Date: Wed Dec 28 19:14:23 2011 +0200
ore: fix BUG_ON, too few sgs when reading
commit 361aba569f55dd1
When reading RAID5 files, in rare cases, we calculated too
few sg segments. There should be two extra for the beginning
and end partial units.
Also "too few sg segments" should not be a BUG_ON there is
all the mechanics in place to handle it, as a short read.
So just return -ENOMEM and the rest of the code will gracefully
split the IO.
Signed-off-by: Boaz Harrosh <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 688485273b3173d
Author: Boaz Harrosh <email address hidden>
Date: Tue Dec 27 19:23:36 2011 +0200
ore: Fix crash in case of an IO error.
commit ffefb8eaa367e8a
The users of ore_check_io() expect the reported device
(In case of error) to be indexed relative to the passed-in
ore_components table, and not the logical dev index.
This causes a crash inside objlayoutdriver in case of
an IO error.
Signed-off-by: Boaz Harrosh <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 923415295307845
Author: Steven Rostedt <email address hidden>
Date: Fri Nov 4 16:32:25 2011 -0400
perf: Fix parsing of __print_flags() in TP_printk()
commit 49908a1b25d448d
A update is made to the sched:sched_switch event that adds some
logic to the first parameter of the __print_flags() that shows the
state of tasks. This change cause perf to fail parsing the flags.
A simple fix is needed to have the parser be able to process ops
within the argument.
Reported-by: Andrew Vagin <email address hidden>
Signed-off-by: Steven Rostedt <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 0b58bf9909d4ef7
Author: Johannes Berg <email address hidden>
Date: Mon Dec 19 14:00:59 2011 -0800
iwlagn: fix (remove) use of PAGE_SIZE
commit 106671369e6d046
The ICT code erroneously uses PAGE_SIZE. The bug
is that PAGE_SIZE isn't necessarily 4096, so on
such platforms this code will not work correctly
as we'll try to attempt to read an index in the
table that the device never wrote, it always has
4096-byte pages.
Additionally, the manual alignment code here is
unnecessary -- Documentation/
states:
The cpu return address and the DMA bus master address are both
guaranteed to be aligned to the smallest PAGE_SIZE order which
is greater than or equal to the requested size. This invariant
exists (for example) to guarantee that if you allocate a chunk
which is smaller than or equal to 64 kilobytes, the extent of the
buffer you receive will not cross a 64K boundary.
Just use appropriate new constants and get rid of
the alignment code.
Cc: Emmanuel Grumbach <email address hidden>
Signed-off-by: Johannes Berg <email address hidden>
Signed-off-by: Wey-Yi Guy <email address hidden>
Signed-off-by: John W. Linville <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 01b366aa69f3348
Author: Johannes Berg <email address hidden>
Date: Fri Dec 2 12:22:54 2011 -0800
iwlagn: fix TID use bug
commit 9a215e40d70ae63
The driver everywhere uses max TID count as 9,
which is wrong, it should be 8.
I think the reason it uses 9 here is off-by-one
confusion by whoever wrote this. We do use the
value IWL_MAX_TID_COUNT for "not QoS/no TID"
but that is completely correct even if it is 8
and not 9 since 0-7 are only valid.
As a side effect, this fixes the following bug:
Open BA session requested for 00:23:cd:16:8a:7e tid 8
------------[ cut here ]------------
kernel BUG at drivers/
...
when you do
echo "tx start 8" > /sys/kernel/
Reported-by: Nikolay Martynov <email address hidden>
Signed-off-by: Johannes Berg <email address hidden>
Signed-off-by: Wey-Yi Guy <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 585ea9bc6752c41
Author: Eli Cohen <email address hidden>
Date: Tue Jan 3 20:36:48 2012 -0800
IB/uverbs: Protect QP multicast list
commit e214a0fe2b382fa
Userspace verbs multicast attach/detach operations on a QP are done
while holding the rwsem of the QP for reading. That's not sufficient
since a reader lock allows more than one reader to acquire the
lock. However, multicast attach/detach does list manipulation that
can corrupt the list if multiple threads run in parallel.
Fix this by acquiring the rwsem as a writer to serialize attach/detach
operations. Add idr_write_qp() and put_qp_write() to encapsulate
this.
This fixes oops seen when running applications that perform multicast
joins/leaves.
Reported by: Mike Dubman <email address hidden>
Signed-off-by: Eli Cohen <email address hidden>
Signed-off-by: Roland Dreier <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 0d878668d0a4663
Author: Ram Vepa <email address hidden>
Date: Fri Dec 23 08:01:43 2011 -0500
IB/qib: Fix a possible data corruption when receiving packets
commit eddfb675256f49d
Prevent a receive data corruption by ensuring that the write to update
the rcvhdrheadn register to generate an interrupt is at the very end
of the receive processing.
Signed-off-by: Ramkrishna Vepa <email address hidden>
Signed-off-by: Mike Marciniszyn <email address hidden>
Signed-off-by: Roland Dreier <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit ddcf85d72ffe4fd
Author: Li Zhong <email address hidden>
Date: Sun Dec 18 16:03:04 2011 +0000
powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit
commit e4f387d8db3ba3c
Unpaired calling of probe_hcall_entry and probe_hcall_exit might happen
as following, which could cause incorrect preempt count.
__trace_
get_cpu_var => preempt_disable
__trace_
put_cpu_var => preempt_enable
where:
A => B and A -> B means A calls B, but
=> means A will call B through function name, and B will definitely be
called.
-> means A will call B through function pointer, so B might not be
called if the function pointer is not set.
So error happens when only one of probe_hcall_entry and probe_hcall_exit
get called during a hcall.
This patch tries to move the preempt count operations from
probe_
Reported-by: Paul E. McKenney <email address hidden>
Signed-off-by: Li Zhong <email address hidden>
Tested-by: Paul E. McKenney <email address hidden>
Signed-off-by: Benjamin Herrenschmidt <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 8e04782a0688291
Author: Anton Blanchard <email address hidden>
Date: Wed Nov 23 20:07:17 2011 +0000
powerpc/time: Handle wrapping of decrementer
commit 37fb9a0231ee43d
When re-enabling interrupts we have code to handle edge sensitive
decrementers by resetting the decrementer to 1 whenever it is negative.
If interrupts were disabled long enough that the decrementer wrapped to
positive we do nothing. This means interrupts can be delayed for a long
time until it finally goes negative again.
While we hope interrupts are never be disabled long enough for the
decrementer to go positive, we have a very good test team that can
drive any kernel into the ground. The softlockup data we get back
from these fails could be seconds in the future, completely missing
the cause of the lockup.
We already keep track of the timebase of the next event so use that
to work out if we should trigger a decrementer exception.
Signed-off-by: Anton Blanchard <email address hidden>
Signed-off-by: Benjamin Herrenschmidt <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit f92fed3f1de1942
Author: Pontus Fuchs <email address hidden>
Date: Thu Dec 1 12:13:44 2011 +0100
wl12xx: Restore testmode ABI
commit 3f1764945eaac53
Commit 80900d0140a7648
the ABI for testmode commands. Restore the ABI again.
Signed-off-by: Pontus Fuchs <email address hidden>
Signed-off-by: Luciano Coelho <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 67d3bda61b6cf7b
Author: Pontus Fuchs <email address hidden>
Date: Tue Oct 18 09:23:42 2011 +0200
wl12xx: Check buffer bound when processing nvs data
commit f6efe96edd9c41c
An nvs with malformed contents could cause the processing of the
calibration data to read beyond the end of the buffer. Prevent this
from happening by adding bound checking.
Signed-off-by: Pontus Fuchs <email address hidden>
Reviewed-by: Luciano Coelho <email address hidden>
Signed-off-by: Luciano Coelho <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 240ecc4a6fa0449
Author: Pontus Fuchs <email address hidden>
Date: Tue Oct 18 09:23:41 2011 +0200
wl12xx: Validate FEM index from ini file and FW
commit 2131d3c2f99b081
Check for out of bound FEM index to prevent reading beyond ini
memory end.
Signed-off-by: Pontus Fuchs <email address hidden>
Reviewed-by: Luciano Coelho <email address hidden>
Signed-off-by: Luciano Coelho <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 618bbbe723e697e
Author: Rafał Miłecki <email address hidden>
Date: Fri Dec 9 22:16:07 2011 +0100
bcma: support for suspend and resume
commit 775ab52142b0223
bcma used to lock up machine without enabling PCI or initializing CC.
Signed-off-by: Rafał Miłecki <email address hidden>
Signed-off-by: John W. Linville <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit dd4f146b63d18b2
Author: Andres Salomon <email address hidden>
Date: Mon Dec 19 12:22:58 2011 -0800
libertas: clean up scan thread handling
commit afbca95f95f2bf7
The libertas scan thread expects priv->scan_req to be non-NULL. In theory,
it should always be set. In practice, we've seen the following oops:
[ 8363.067444] Unable to handle kernel NULL pointer dereference at virtual address 00000004
[ 8363.067490] pgd = c0004000
[ 8363.078393] [00000004] *pgd=00000000
[ 8363.086711] Internal error: Oops: 17 [#1] PREEMPT
[ 8363.091375] Modules linked in: fuse libertas_sdio libertas psmouse mousedev ov7670 mmp_camera joydev videobuf2_core videobuf2_dma_sg videobuf2_memops [last unloaded: scsi_wait_scan]
[ 8363.107490] CPU: 0 Not tainted (3.0.0-gf7ccc69 #671)
[ 8363.112799] PC is at lbs_scan_
[ 8363.118326] LR is at 0x0
[ 8363.120836] pc : [<bf03a854>] lr : [<00000000>] psr: 60000113
[ 8363.120845] sp : ee66bf48 ip : 00000000 fp : 00000000
[ 8363.120845] r10: ee2c2088 r9 : c04e2efc r8 : eef97005
[ 8363.132231] r7 : eee0716f r6 : ee2c02c0 r5 : ee2c2088 r4 : eee07160
[ 8363.137419] r3 : 00000000 r2 : a0000113 r1 : 00000001 r0 : eee07160
[ 8363.143896] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 8363.157630] Control: 10c5387d Table: 2e754019 DAC: 00000015
[ 8363.163334] Process kworker/u:1 (pid: 25, stack limit = 0xee66a2f8)
While I've not found a smoking gun, there are two places that raised red flags
for me. The first is in _internal_
first queue the worker, and then set priv->scan_req. There's theoretically
a 50mS delay which should be plenty, but doing things that way just seems
racy (and not in the good way).
The second is in the scan worker thread itself. Depending on the state of
priv-
300mS. We then send the scan command down to the hardware, sleep, and if
we get scan results for all the desired channels, we set priv->scan_req to
NULL. However, it that's happened in less than 300mS, what happens with
the pending scan run?
This patch addresses both of those concerns. With the patch applied, we
have not seen the oops in the past two weeks.
Signed-off-by: Andres Salomon <email address hidden>
Signed-off-by: John W. Linville <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 69236e6011d1445
Author: Benjamin Herrenschmidt <email address hidden>
Date: Tue Jan 3 12:09:15 2012 +1100
offb: Fix bug in calculating requested vram size
commit c055fe0797b7bd8
We used to try to request 8 times more vram than needed, which would
fail if the card has a too small BAR (observed with qemu & kvm).
Signed-off-by: Benjamin Herrenschmidt <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit dfedad611959d25
Author: Benjamin Herrenschmidt <email address hidden>
Date: Wed Dec 28 00:10:16 2011 +0000
offb: Fix setting of the pseudo-palette for >8bpp
commit 1bb0b7d21584b3f
When using a >8bpp framebuffer, offb advertises truecolor, not directcolor,
and doesn't touch the color map even if it has a corresponding access method
for the real hardware.
Thus it needs to set the pseudo-palette with all 3 components of the color,
like other truecolor framebuffers, not with copies of the color index like
a directcolor framebuffer would do.
This went unnoticed for a long time because it's pretty hard to get offb
to kick in with anything but 8bpp (old BootX under MacOS will do that and
qemu does it).
Signed-off-by: Benjamin Herrenschmidt <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 2289fb57dc2caea
Author: Larry Finger <email address hidden>
Date: Tue Dec 27 12:22:51 2011 -0600
rt2800usb: Move ID out of unknown
commit 3f81f8f1524ccca
Testing on the openSUSE wireless forum has shown that a Linksys
WUSB54GC v3 with USB ID 1737:0077 works with rt2800usb when the ID is
written to /sys/.../new_id. This ID can therefore be moved out of UNKNOWN.
Signed-off-by: Larry Finger <email address hidden>
Acked-by: Gertjan van Wingerde <email address hidden>
Acked-by: Ivo van Doorn <email address hidden>
Signed-off-by: John W. Linville <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit a5a0cdd640258b8
Author: Neil Horman <email address hidden>
Date: Mon Jan 2 15:31:23 2012 -0500
firmware: Fix an oops on reading fw_priv->fw in sysfs loading file
commit eea915bb0d13587
This oops was reported recently:
firmware_
dev_
sysfs_
vfs_
sys_
system_
The complete backtrace was unfortunately not captured, but details can be found
here:
https:/
The cause is fairly clear.
Its caused by the fact that firmware_
switch statement that reads and writes the fw_priv->fw poniter without the
protection of the fw_lock mutex. since there is a window between the time that
_request_
file is unregistered, its possible for a user space application to race in, and
write a zero to the loading file, causing a NULL dereference in
firmware_
to cover all of the firware_
Signed-off-by: Neil Horman <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 170797705f7ccb3
Author: Joe Perches <email address hidden>
Date: Fri Dec 9 14:12:00 2011 -0800
Documentation: Update stable address
commit 2eb7f204db51969
The Japanese/
Also, the stable kernel 2.6.x.y descriptions are out of date
and should be updated as well.
Signed-off-by: Joe Perches <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 13e864be180093e
Author: Joe Perches <email address hidden>
Date: Fri Dec 9 13:54:34 2011 -0800
MAINTAINERS: stable: Update address
commit bc7a2f3abc636d7
The old address hasn't worked since the great intrusion of August 2011.
Signed-off-by: Joe Perches <email address hidden>
Signed-off-by: Greg Kroah-Hartman <email address hidden>
commit 904f06d14d0b5de
Author: Arnaud Lacombe <email address hidden>
Date: Sat Nov 19 01:51:30 2011 -0500
merge_
Three issues:
1) bail out early on error.
This fixes handling of non-existant file:
Before:
% sh scripts/
Merging non
sed: can't read non: No such file or directory
cat: non: No such file or directory
Merging existant
sed: can't read existant: No such file or directory
cat: existant: No such file or directory
Merging files
sed: can't read files: No such file or directory
cat: files: No such file or directory
#
# configuration written to .config
#
After:
% sh scripts/
Merging non
sed: can't read non: No such file or directory
2) re-implement argument parsing using sh(1) getopts builtin
3) verify that the script was given enough argument to proceed. There isn't
much point running the script with less than 2 arguments.
CC: Sam Ravnborg <email address hidden>
CC: <email address hidden>
CC: <email address hidden>
CC: Dmitry Fink <email address hidden>
CC: Darren Hart <email address hidden>
CC: Eric B Munson <email address hidden>
CC: Bruce Ashfield <email address hidden>
CC: Michal Marek <email address hidden>
CC: <email address hidden>
Signed-off-by: Arnaud Lacombe <email address hidden>
[jstultz: Slight tweaks to patch description]
[jstultz: Avoid using "set -e", and catch non-existing files explicitly]
Signed-off-by: John Stultz <email address hidden>
commit e58af63725fa5df
Author: John Stultz <email address hidden>
Date: Mon Nov 21 15:29:45 2011 -0800
merge_
Arnaud Lacombe pointed out the final checking that
the requested configs were included in the final .config
was broken.
The example was that if you had a fragment that disabled
CONFIG_
there would be no final warning that CONFIG_
was acutally set in the final .config.
This bug was introduced by me in v3 of the original patch, and
the following patch reverts the invalid change.
Reported-by: Arnaud Lacombe <email address hidden>
Signed-off-by: John Stultz <email address hidden>
commit 6d778591c6db7e4
Author: Darren Hart <email address hidden>
Date: Mon Nov 21 11:42:30 2011 -0800
merge_
Fix whitespace usage in the clean_up routine.
Signed-off-by: Darren Hart <email address hidden>
Signed-off-by: John Stultz <email address hidden>
commit 2559983204c0572
Author: Darren Hart <email address hidden>
Date: Mon Nov 21 11:42:29 2011 -0800
merge_
The SIGHUP SIGINT and SIGTERM names caused failures when running
merge_config.sh with the dash shell. Dropping the "SIG" component
makes the script work in both bash and dash.
Signed-off-by: Darren Hart <email address hidden>
Signed-off-by: John Stultz <email address hidden>
commit d346dd1f67570d2
Author: John Stultz <email address hidden>
Date: Wed Aug 24 14:35:24 2011 -0700
kconfig: Add merge_config.sh script
After noticing almost every distro has their own method of managing
config fragments, I went looking at some best practices, and wanted
to try to consolidate some of the different approaches so this fairly
simple infrastructure can be shared (and new distros/build systems
don't have to implement yet another config fragment merge script).
This script is most influenced by the Windriver tools used in
the Yocto Project, reusing some portions found there.
This script merges multiple config fragments, warning on any
overrided values. It then sets any unspecified values to their
default, then finally checks to make sure no specified value was
dropped due to unsatisfied dependencies.
I'm sure this implementation won't work for everyone, and I expect
it will need to evolve to adapt for various use cases. But I think
its a reasonable starting point.
v2:
* Reworked to use alldefconfig instead of the proposed
olddefconfig as suggested by Sam Ravnborg.
v3:
* Script improvements from Dmitri.
* allnoconfig option from Darren
* pre-make exit option from Darren
* lots of other fixes/cleanups from Darren.
* Fix final check to not compain about config values in comments
v4:
* No code change, only properly add Darren's signed-off-by line.
Please let me know if you have any comments or thoughts!
CC: Sam Ravnborg <email address hidden>
CC: <email address hidden>
CC: <email address hidden>
CC: Dmitry Fink <email address hidden>
CC: Darren Hart <email address hidden>
CC: Eric B Munson <email address hidden>
CC: Bruce Ashfield <email address hidden>
CC: Michal Marek <email address hidden>
CC: <email address hidden>
Signed-off-by: John Stultz <email address hidden>
Signed-off-by: Darren Hart <email address hidden>
Signed-off-by: John Stultz <email address hidden>
commit 17c05c6dee35a7e
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 16:38:23 2011 +0530
ARM: exynos4: Add thermal sensor driver platform device support
This patch adds necessary source definations needed for TMU driver and
the platform device support.
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit a1d8ad20f836f6c
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 14:32:48 2011 +0530
thermal: exynos4: Register the tmu sensor with the thermal interface layer
Export and register information from the hwmon tmu sensor to the samsung
exynos kernel thermal framework where different cooling devices and thermal
zone are binded. The exported information is based according to the data
structure thermal_sensor_conf present in exynos_thermal.h. HWMON sysfs
functions are currently left although all of them are present in generic
linux thermal layer.
Also the platform data structure is modified to pass frequency cooling
in percentages for each thermal level.
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 6437b2693ca0bda
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Dec 21 15:23:55 2011 +0530
thermal: exynos: Add thermal interface support for linux thermal layer
This codes uses the generic linux thermal layer and creates a bridge
between temperature sensors, linux thermal framework and cooling devices
for samsung exynos platform. This layer recieves or monitor the
temperature from the sensor and informs the generic thermal layer to take
the necessary cooling action.
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 807ebf2427a3f20
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Dec 13 20:40:01 2011 +0530
thermal: Add generic cpu cooling implementation
This patch adds support for generic cpu thermal cooling low level
implementations using frequency scaling and cpuhotplugg currently.
Different cpu related cooling devices can be registered by the
user and the binding of these cooling devices to the corresponding
trip points can be easily done as the registration API's return the
cooling device pointer.
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 7308530279ffbb0
Author: Amit Daniel Kachhap <email address hidden>
Date: Thu Dec 1 18:51:39 2011 +0530
thermal: Add a new trip type to use cooling device instance number
This patch adds a new trip type THERMAL_
trip behaves same as THERMAL_TRIP_ACTIVE but also passes the cooling
device instance number. This helps the cooling device registered as
different instances to perform appropriate cooling action decision in
the set_cur_state call back function.
Also since the trip temperature's are in ascending order so some logic
is put in place to skip the un-necessary checks.
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 92a78c5dfff148e
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:10 2011 +0530
EXYNOS: Removed useless headers and codes
This patch removes no referencing header files and cleaned up
useless code.
Signed-off-by: Jaecheol Lee <email address hidden>
Signed-off-by: Kukjin Kim <email address hidden>
commit cdc0ab6d14b0808
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:09 2011 +0530
EXYNOS: Make EXYNOS common cpufreq driver
To support various EXYNOS series SoCs commonly,
added exynos common structure.
exynos-
exynos4210-
Signed-off-by: Jaecheol Lee <email address hidden>
Signed-off-by: Kukjin Kim <email address hidden>
commit c1859cf917f3734
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:08 2011 +0530
EXYNOS4210: cpufreq code is changed for stable working
This patch is modify code for stable working
1. Remove unused register access code
2. Change sequence for frequency changing
Signed-off-by: Jaecheol Lee <email address hidden>
Signed-off-by: Jonghwan Choi <email address hidden>
Signed-off-by: Jongpill Lee <email address hidden>
Signed-off-by: Kukjin Kim <email address hidden>
commit b2dc5704dbe07b4
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:07 2011 +0530
EXYNOS4210: Update frequency table for cpu divider
This patch is changes frequency table for cpu divider for stable frequency.
Signed-off-by: Jaecheol Lee <email address hidden>
Signed-off-by: Jongpill Lee <email address hidden>
Signed-off-by: Kukjin Kim <email address hidden>
commit 9d6614da322c00d
Author: Jaecheol Lee <email address hidden>
Date: Tue Dec 6 15:43:06 2011 +0530
EXYNOS4210: Remove code about bus on cpufreq
This patch removes code for bus on cpufreq because the code
for bus frequency changing moves to busfreq driver.
So code about bus on cpufreq is not necessary.
Signed-off-by: Jaecheol Lee <email address hidden>
Signed-off-by: Jongpill Lee <email address hidden>
Signed-off-by: Kukjin Kim <email address hidden>
commit 29a443b2f2b0d3e
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:49:19 2012 +0530
ARM: exynos: Enable l2 configuration through device tree
This patch enables calling generic l2 setup functions if device tree is used.
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 0e751a7fd1547a2
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:45:16 2012 +0530
ARM: exynos: remove useless code to save/restore L2
Following the merge of CPU PM notifiers and L2 resume code, this patch
removes useless code to save and restore L2 registers.
This is now automatically covered by suspend calls which integrated
CPU PM notifiers and new sleep code that allows to resume L2 before MMU
is turned on.
Signed-off-by: Lorenzo Pieralisi <email address hidden>
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit c054d6bd3be5c41
Author: Amit Daniel Kachhap <email address hidden>
Date: Tue Jan 10 10:39:46 2012 +0530
ARM: exynos: save L2 settings during bootup
This patch adds code to save L2 register configuration at boot, and
later used to resume L2 before MMU is enabled in suspend and cpuidle
resume paths.
Signed-off-by: Lorenzo Pieralisi <email address hidden>
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 36c3124de174d3e
Author: Amit Daniel Kachhap <email address hidden>
Date: Mon Dec 5 15:24:33 2011 +0530
ARM: s5p: add L2 early resume code
This patch adds code to resume L2 before MMU is enabled in
suspend and cpuidle resume paths. s3c_cpu_resume is moved to the
data section with appropriate comments.
Signed-off-by: Lorenzo Pieralisi <email address hidden>
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 1c6ff422e74e1a5
Author: Amit Daniel Kachhap <email address hidden>
Date: Wed Jan 4 13:46:19 2012 +0530
ARM: exynos: Add support AFTR mode on EXYNOS4210
This patch adds support AFTR(ARM OFF TOP RUNNING) mode in
cpuidle driver. L2 cache keeps their data in this mode.
This patch ports the code to the latest interfaces to
save/restore CPU state inclusive of CPU PM notifiers, l2
resume and cpu_suspend/resume.
Signed-off-by: Jaecheol Lee <email address hidden>
Signed-off-by: Lorenzo Pieralisi <email address hidden>
Signed-off-by: Amit Daniel Kachhap <email address hidden>
commit 027d7c326426cc8
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:15 2011 +0200
dt: Linux dt usage model documentation
v2: 2nd draft
- Editorial cleanups from Randy Dunlap
Signed-off-by: Grant Likely <email address hidden>
commit b155f49f99013f9
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:12 2011 +0200
arm/dt: vexpress: add basic DT platform matching support
This patch adds a DT match table to the Versatile Express machine
description in order to enable basic device tree support.
Tested on a Versatile Express board where the device tree blob is
passed to the kernel by u-boot.
Signed-off-by: Lorenzo Pieralisi <email address hidden>
[converted .dts file to use skeleton.dtsi, and added 'dtbs' targets]
Signed-off-by: Grant Likely <email address hidden>
commit 924374e93b4fc8b
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:11 2011 +0200
arm/dt: Add basic device tree support for mx51 and mx53 boards
This patch add support for the Genesi Efika MX Smarttop and Smartbook,
the Freescale mx51 babbage board, and the Freescale mx53 loco board
Signed-off-by: Jason Liu <email address hidden>
Signed-off-by: Grant Likely <email address hidden>
commit 9c50b33c062467a
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 23:12:42 2012 +0400
arm/dt: Add basic device tree support for smdkv310 board
Enable basic device tree support for Exynos4 smdkv310 board.
Signed-off-by: Thomas Abraham <email address hidden>
Signed-off-by: Grant Likely <email address hidden>
commit fb722352d16890b
Author: Grant Likely <email address hidden>
Date: Mon Oct 24 11:09:10 2011 +0200
arm/dt: omap3 basic device tree board support
Enable basic device tree support for the Gumstix Overo, IGEP, Panda
and Beagle OMAP boards
Signed-off-by: Andy Doan <email address hidden>
Signed-off-by: Jon Medhurst <email address hidden>
Signed-off-by: Grant Likely <email address hidden>
Conflicts:
arch/
arch/
arch/
commit eefbee38f4dc7f3
Author: Shawn Guo <email address hidden>
Date: Mon Oct 24 11:09:07 2011 +0200
arm/dt: add versatile dtb build rules
Makes 'make dtbs' build the versatile .dtb files when versatile is enabled.
Signed-off-by: Grant Likely <email address hidden>
commit e16821697678134
Author: John Bonesio <email address hidden>
Date: Mon Oct 24 11:09:06 2011 +0200
dt: Add id to AUXDATA structure
This patch adds the ability to set the device id in the AUXDATA structure for
those few device drivers that just have to have a statically defined device id.
Signed-off-by: John Bonesio <email address hidden>
Signed-off-by: Grant Likely <email address hidden>
commit 3d07054219c4185
Author: Kautuk Consul <email address hidden>
Date: Tue Nov 22 13:31:30 2011 -0500
arm: fault.c: Port OOM changes into do_page_fault
Commit d065bd810b6deb6
(mm: retry page fault when blocking on disk transfer) and
commit 37b23e0525d393d
(x86,mm: make pagefault killable)
The above commits introduced changes into the x86 pagefault handler
for making the page fault handler retryable as well as killable.
These changes reduce the mmap_sem hold time, which is crucial
during OOM killer invocation.
Port these changes to ARM.
Without these changes, my ARM board encounters many hang and livelock
scenarios.
After applying this patch, OOM feature performance improves according to
my testing.
Signed-off-by: Kautuk Consul <email address hidden>
"I think this is fine"-by Russell King - ARM Linux <email address hidden>
Signed-off-by: Nicolas Pitre <email address hidden>
commit 2eb6f8b98d8471c
Author: Vincent Guittot <email address hidden>
Date: Fri Oct 21 09:02:47 2011 +0200
sched: Ensure cpu_power periodic update
With a lot of small task, the softirq sched is nearly never called
when no_hz is enable. Te load_balance is mainly called with
the newly_idle mode which doesn't update the cpu_power.
Add a next_update field which ensure a maximum update period when
there is short activity
Signed-off-by: Vincent Guittot <email address hidden>
commit 2b21b9809176625
Author: Arnd Bergmann <email address hidden>
Date: Sat Oct 8 17:07:50 2011 +0200
ARM: kprobes: work around build errors
I got a few build errors for kprobes playing with randconfig on the
latest kernel. While this patch manages to avoid these errors, I'm
pretty sure that it is not the ideal solution.
The errors I got in arm are while building for ARMv6 with
the arm-linux-
results in these messages:
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
/tmp/
[ NP: I didn't reproduce the T2 errors, and Tixy was doubtful about them.
Merged Tixy's change suggestions and his ACK. ]
Signed-off-by: Arnd Bergmann <email address hidden>
Acked-by: Jon Medhurst <email address hidden>
Signed-off-by: Nicolas Pitre <email address hidden>
commit 61d24dd4d0528d3
Author: Ming Lei <email address hidden>
Date: Wed Aug 31 00:03:13 2011 +0800
usb: ehci: make HC see up-to-date qh/qtd descriptor ASAP
This patch introduces the helper of ehci_sync_mem to flush
qtd/qh into memory immediately on some ARM, so that HC can
see the up-to-date qtd/qh descriptor asap.
This patch fixs one performance bug on ARM Cortex A9 dual core
platform, which has been reported on quite a few ARM machines
(OMAP4, Tegra 2, snowball...), see details from link of
https:/
The patch has been tested ok on OMAP4 panda A1 board, and the
performance of 'dd' over usb mass storage can be increased from
4~5MB/sec to 14~16MB/sec after applying this patch.
Cc: Russell King <email address hidden>
Signed-off-by: Ming Lei <email address hidden>
Signed-off-by: Alan Stern <email address hidden>
commit 01deeef1e25035b
Merge: 805a6af ef3a0bf
Author: Andrey Konovalov <email address hidden>
Date: Fri Jan 6 16:53:54 2012 +0400
Merge branch 'rmk-devel-stable' into linux-linaro-
Conflicts:
arch/
arch/
commit ef3a0bf5bfadbac
Author: Linus Walleij <email address hidden>
Date: Wed Jan 4 11:42:19 2012 +0100
ARM: 7269/1: mach-sa1100: fix sched_clock breakage
Fixed up a simple typo in the runtime sched_clock conversion
so we compile again.
Cc: Kristoffer Ericson <email address hidden>
Acked-by: Marc Zyngier <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit e0b58ee8c429197
Merge: cfef032 9561f4e
Author: Russell King <email address hidden>
Date: Wed Jan 4 09:01:51 2012 +0000
Merge branch 'vmalloc' of git://git.
commit cfef0320ead7d70
Author: Linus Walleij <email address hidden>
Date: Mon Jan 2 14:50:15 2012 +0100
ARM: 7261/1: clocksource/
commit 2f0778afac79bd8
runtime-
driver down in drivers/
the problem.
Reported-by: Daniel Lezcano <email address hidden>
Acked-by: Marc Zyngier <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 9f9df00accb343f
Author: Jamie Iles <email address hidden>
Date: Wed Dec 14 23:43:17 2011 +0100
ARM: 7236/1: vic: always use simple ops
Now that irq_domain_
in the VIC driver so that we don't get a NULL dereference in
irq_
Cc: Linus Walleij <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 0d2006bbf09e817
Author: Chanho Park <email address hidden>
Date: Tue Jan 3 16:47:51 2012 +0900
pinctrl: remove unnecessary max pin number
This patch removes maxpin member in the pin control descriptor
because we don't need this value as we enumerate a pin space
using offset.
Signed-off-by: Chanho Park <email address hidden>
Signed-off-by: Kyungmin Park <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 706e8520e8450a6
Author: Chanho Park <email address hidden>
Date: Tue Jan 3 16:47:50 2012 +0900
pinctrl: correct a offset while enumerating pins
This patch modifies a offset while enumerating pins to support a
partial pin space. If we use a pin number for enumerating pins,
the pin space always starts with zero base. Indeed, we always check
the pin is in the pin space. An extreme example, there is only two pins.
One is 0. Another is 1000. We always enumerate whole offsets until 1000.
For solving this problem, we use the offset of the pin array instead
of the zero-based pin number.
Signed-off-by: Chanho Park <email address hidden>
Signed-off-by: Kyungmin Park <email address hidden>
[Restored sparse pin space comment]
Signed-off-by: Linus Walleij <email address hidden>
commit e6337c3c96a7ee5
Author: Dong Aisheng <email address hidden>
Date: Tue Dec 20 17:51:59 2011 +0800
pinctrl: some typo fixes
Minor copyedits.
Signed-off-by: Dong Aisheng <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 3bece55aa5356af
Author: Linus Walleij <email address hidden>
Date: Sun Dec 18 23:44:26 2011 +0100
pinctrl: rename U300 and SIRF pin controllers
For stringent order, rename the pinmux-* pin controllers to
pinctrl-* and also rename the Kconfig symbols and in-kernel
users.
Cc: Rongjun Ying <email address hidden>
Cc: Jean-Christophe PLAGNIOL-VILLARD <email address hidden>
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 43699dea1ea21a0
Author: Stephen Warren <email address hidden>
Date: Thu Dec 15 16:57:17 2011 -0700
pinctrl: pass name instead of device to pin_config_*
Obtaining a "struct pinctrl_dev *" is difficult for code not directly
related to the pinctrl subsystem. However, the device name of the pinctrl
device is fairly well known. So, modify pin_config_*() to take the device
name instead of the "struct pinctrl_dev *".
Signed-off-by: Stephen Warren <email address hidden>
[rebased on top of refactoring code]
Signed-off-by: Linus Walleij <email address hidden>
commit 63fd5984a9b2214
Author: Stephen Warren <email address hidden>
Date: Thu Dec 15 16:57:16 2011 -0700
pinctrl: add "struct seq_file;" to pinconf.h
This allows one to include pinconf.h without having to include other
headers first.
Signed-off-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit ca53c5f1ca5c936
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 20:33:37 2011 +0100
pinctrl: conjure names for unnamed pins
If pins with blank names are registered, we assign them names on-the-fly
on the form "PINn" where n is the pin number for that pin on the specific
controller.
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 23750196ef472e9
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 09:30:08 2011 +0100
pinctrl: add a group-specific hog macro
To create elegant tables for pinmux hogs on the PXA MMP platform,
we need this hog macro that can specify both function and group in
one go.
Acked-by: Stephen Warren <email address hidden>
Acked-by: Haojian Zhuang <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 51cd24ee625c348
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:05 2011 -0700
pinctrl: don't create a device for each pin controller
Pin controllers should already be instantiated as a device, so there's
no need for the pinctrl core to create a new struct device for each
controller.
This allows the controller's real name to be used in the mux mapping
table, rather than e.g. "pinctrl.0", "pinctrl.1", etc.
This necessitates removal of the PINMUX_
their sole purpose was to hard-code the .ctrl_dev_name field to be
"pinctrl.0".
Signed-off-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 528b78306ecf82a
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:04 2011 -0700
arm/u300: don't use PINMUX_MAP_PRIMARY*
The next patch will remove these macros.
Signed-off-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 1ddb6ff03c0cdec
Author: Stephen Warren <email address hidden>
Date: Fri Dec 9 16:59:03 2011 -0700
pinctrl: implement PINMUX_MAP_SYS_HOG
This is the same as PINMUX_
you to specify a particular control device.
Signed-off-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit ae6b4d8588f4fc9
Author: Linus Walleij <email address hidden>
Date: Wed Oct 19 18:14:33 2011 +0200
pinctrl: add a pin config interface
This add per-pin and per-group pin config interfaces for biasing,
driving and other such electronic properties. The details of passed
configurations are passed in an opaque unsigned long which may be
dereferences to integer types, structs or lists on either side
of the configuration interface.
ChangeLog v1->v2:
- Clear split of terminology: we now have pin controllers, and
those may support two interfaces using vtables: pin
multiplexing and pin configuration.
- Break out pin configuration to its own C file, controllers may
implement only config without mux, and vice versa, so keep each
sub-
CONFIG_
- Implement some core logic around pin configuration in the
pinconf.c file.
- Remove UNKNOWN config states, these were just surplus baggage.
- Remove FLOAT config state - HIGH_IMPEDANCE should be enough for
everyone.
- PIN_CONFIG_
supply for the pin logic between different sources
- Explicit DISABLE config enums to turn schmitt-trigger,
wakeup etc OFF.
- Update documentation to reflect all the recent reasoning.
ChangeLog v2->v3:
- Twist API around to pass around arrays of config tuples instead
of (param, value) pairs everywhere.
- Explicit drive strength semantics for push/pull and similar
drive modes, this shall be the number of drive stages vs
nominal load impedance, which should match the actual
electronics used in push/pull CMOS or TTY totempoles.
- Drop load capacitance configuration - I probably don't know
what I'm doing here so leave it out.
- Drop PIN_CONFIG_
PIN_
- Drop PIN_CONFIG_
argument to PIN_CONFIG_
- Drop PIN_CONFIG_
PIN_
- Add PIN_CONFIG_
on input lines.
- Fix a bug when we tried to configure pins for pin controllers
without pinconf support.
- Initialized debugfs properly so it works.
- Initialize the mutex properly and lock around config tampering
sections.
- Check the return value from get_initial_
ChangeLog v3->v4:
- Export the pin_config_get(), pin_config_set() and
pin_
- Drop the entire concept of just getting initial config and
keeping track of pin states internally, instead ask the pins
what state they are in. Previous idea was plain wrong, if the
device cannot keep track of its state, the driver should do
it.
- Drop the generic configuration layout, it seems this impose
too much restriction on some pin controllers, so let them do
things the way they want and split off support for generic
config as an optional add-on.
ChangeLog v4->v5:
- Introduce two symmetric driver calls for group configuration,
.
- Remove generic semantic meanings of return values from config
calls, these belong in the generic config patch. Just pass the
return value through instead.
- Add a debugfs entry "pinconf-groups" to read status from group
configuration only, also slam in a per-group debug callback in
the pinconf_ops so custom drivers can display something
meaningful for their pins.
- Fix some dangling newline.
- Drop dangling #else clause.
- Update documentation to match the above.
ChangeLog v5->v6:
- Change to using a pin name as parameter for the
[
This is more natural as names will be what a developer has
access to in written documentation etc.
ChangeLog v6->v7:
- Refactor out by-pin and by-name get/set functions, only expose
the by-name functions externally, expose the by-pin functions
internally.
- Show supported pin control functionality in the debugfs
pinctrl-
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit b4e3ac74d5cd415
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 10:24:39 2011 +0100
pinctrl/coh901: driver to request its pins
This makes the COH 901 driver request muxing of its GPIO pins
from the pinmux-u300 driver using the standard API calls.
Signed-off-by: Linus Walleij <email address hidden>
commit f812f0f53e5643c
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 10:23:05 2011 +0100
pinctrl: u300-pinmux: register proper GPIO ranges
This register the actual GPIO ranges used by the COH901XXX GPIO
driver.
Signed-off-by: Linus Walleij <email address hidden>
commit ca402d37dccf2b7
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 09:22:59 2011 +0100
pinctrl: move the U300 GPIO driver to pinctrl
This driver will be converted to a dual GPIO + pinctrl driver
since it supports biasing and driving control options. Hopefully
it can serve as an example.
Signed-off-by: Linus Walleij <email address hidden>
commit dd68acc7cc256c9
Author: Linus Walleij <email address hidden>
Date: Tue Nov 15 11:18:54 2011 +0100
ARM: u300: localize GPIO assignments
Move the GPIO assignments for the U300 variants down to a local
header file in the mach-u300 directory. There is no point in
broadcasting this across the entire kernel.
Signed-off-by: Linus Walleij <email address hidden>
commit 59b099b04981917
Author: Linus Walleij <email address hidden>
Date: Wed Nov 30 13:28:14 2011 +0100
pinctrl: make it possible to add multiple maps
Since we now anyway make a copy of the platform-supplied pinmux
map, we can just as well make it possible to call the function
adding maps several times, so as to simplify cases (as PXA) where
several sets of disparate mappings need to be added depending on
target platform.
Acked-by: Haojian Zhuang <email address hidden>
Acked-by: Arnd Bergmann <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 97607d157c133ab
Author: Linus Walleij <email address hidden>
Date: Tue Nov 29 12:52:39 2011 +0100
pinctrl: make a copy of pinmux map
This makes a deep copy of the pinmux function map instead of
keeping the copy supplied from the platform around. This makes
it possible to tag the platforms map with __initdata as is also
done as part of this patch.
Rationale: a certain target platform (PXA) has numerous
pinmux maps, many of which will be lying around unused after
boot in a multi-platform binary. Instead, deep-copy the one
we're going to use and tag them all __initdata so they go away
after boot.
ChangeLog v1->v2:
- Fixup the deep copy, missed a few items on the struct,
plus mark bool member non-const since we're making runtime
copies if this stuff now.
ChangeLog v2->v3:
- Make a shallow copy (just copy the array of map structs)
as Arnd noticed, string constants never get discarded by the
kernel anyway, so these pointers may be safely copied over.
Reviewed-by: Arnd Bergmann <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 542e704f3ffee1d
Author: Linus Walleij <email address hidden>
Date: Mon Nov 14 10:06:22 2011 +0100
pinctrl: GPIO direction support for muxing
When requesting a single GPIO pin to be muxed in, some controllers
will need to poke a different value into the control register
depending on whether the pin will be used for GPIO output or GPIO
input. So create pinmux counterparts to gpio_direction_
in the pinctrl framework.
ChangeLog v1->v2:
- This also amends the documentation to make it clear the this
function and associated machinery is *ONLY* intended as a backend
to gpiolib machinery, not for everyone and his dog to start playing
around with pins.
ChangeLog v2->v3:
- Don't pass an argument to the common request function, instead
provide pinmux_* counterparts to the gpio_direction_
calls, simpler and anyone can understand it.
ChangeLog v3->v4:
- Fix numerous spelling mistakes and dangling text in documentation.
Add Ack and Rewewed-by.
Cc: Igor Grinberg <email address hidden>
Acked-by: Stephen Warren <email address hidden>
Reviewed-by: Thomas Abraham <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 75d6642a3ee1dfe
Author: Linus Walleij <email address hidden>
Date: Wed Nov 16 09:58:51 2011 +0100
pinctrl: print pin range in GPIO range debugs
Show the mapped pin range corresponding to the GPIO range in
debugfs for pin controllers.
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 3c739ad0df5eb41
Author: Chanho Park <email address hidden>
Date: Fri Nov 11 18:47:58 2011 +0900
pinctrl: add a pin_base for sparse gpio-ranges
This patch enables mapping a base offset of gpio ranges with
a pin offset even if does'nt matched. A base of pinctrl_gpio_range
means a base offset of gpio. However, we cannot convert gpio to pin
number for sparse gpio ranges just only using a gpio base offset.
We can convert a gpio to real pin number(even if not matched) using
a new pin_base which means a base pin offset of requested gpio range.
Now, the pin control subsystem passes the pin base offset to the
pinmux driver.
For example, let's assume below two gpio ranges in the system.
static struct pinctrl_gpio_range gpio_range_a = {
.name = "chip a",
.id = 0,
.base = 32,
.pin_base = 32,
.npins = 16,
.gc = &chip_a;
};
static struct pinctrl_gpio_range gpio_range_b = {
.name = "chip b",
.id = 0,
.base = 48,
.pin_base = 64,
.npins = 8,
.gc = &chip_b;
};
We can calucalate a exact pin ranges even if doesn't matched with gpio ranges.
chip a:
gpio-range : [32 .. 47]
pin-range : [32 .. 47]
chip b:
gpio-range : [48 .. 55]
pin-range : [64 .. 71]
Signed-off-by: Chanho Park <email address hidden>
Signed-off-by: Kyungmin Park <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 33d58949adee508
Author: Marek Belisko <email address hidden>
Date: Mon Oct 31 21:27:52 2011 +0100
pinctrl: unify pin type from signed to unsigned
We want singned pins to mean "invalid" only on the outside
of the subsystem.
Signed-off-by: Marek Belisko <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 336cdba09a5df70
Author: Linus Walleij <email address hidden>
Date: Thu Nov 10 09:27:41 2011 +0100
pinctrl: documentation update
Update the docs removing an obsolete __refdata tag and document
the mysterious return value of pin_free(). And fixes up some various
confusions in the pinctrl documentation.
Reported-by: Rajendra Nayak <email address hidden>
Reported-by: Randy Dunlap <email address hidden>
Reported-by: Thomas Abraham <email address hidden>
Reported-by: Uwe Kleine-König <email address hidden>
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 3712a3c48898784
Author: Stephen Warren <email address hidden>
Date: Fri Oct 21 12:25:53 2011 -0600
pinctrl: add explicit gpio_disable_free pinmux_op
Some pinctrl drivers (Tegra at least) program a pin to be a GPIO in a
completely different manner than they select which function to mux out of
that pin. In order to support a single "free" pinmux_op, the driver would
need to maintain a per-pin state of requested-for-gpio vs. requested-for-
function. However, that's a lot of work when the core already has explicit
separate paths for gpio request/free and function request/free.
So, add a gpio_disable_free op to struct pinmux_ops, and make pin_free()
call it when appropriate.
When doing this, I noticed that when calling pin_request():
!!gpio == (gpio_range != NULL)
... and so I collapsed those two parameters in both pin_request(), and
when adding writing the new code in pin_free().
Also, for pin_free():
!!free_func == (gpio_range != NULL)
However, I didn't want pin_free() to know about the GPIO function naming
special case, so instead, I reworked pin_free() to always return the pin's
previously requested function, and now pinmux_free_gpio() calls
kfree(
been performed in pinmux_
Signed-off-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit d2f6a1c6fb0e510
Author: Marek Belisko <email address hidden>
Date: Wed Oct 26 22:57:20 2011 +0200
pinctrl: remove double pin validity check.
Function pin_is_valid just call pin_desc_get which is in pin_request
call some line below. Remove pin_is_valid() check.
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Marek Belisko <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 7afde8baa83b9ac
Author: Linus Walleij <email address hidden>
Date: Wed Oct 19 17:07:16 2011 +0200
pinctrl: move group lookup to core
Now also the core needs to look up pin groups so move the lookup
function there and expose it in the internal header.
Acked-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit b84e673f51799a2
Author: Rajendra Nayak <email address hidden>
Date: Tue Nov 15 12:10:26 2011 +0530
pinctrl: iterate over u300_pmx_mask's in u300_pmx_endisable
Fix u300_pmx_
'mask' populated as part of u300_pmx_
Signed-off-by: Rajendra Nayak <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 07f29ba67b7f016
Author: Stephen Warren <email address hidden>
Date: Thu Dec 8 15:16:19 2011 -0700
MAINTAINERS: Fix pinctrl subsystem's directory
Signed-off-by: Stephen Warren <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 9561f4e052a0616
Author: Nicolas Pitre <email address hidden>
Date: Mon Jan 2 23:00:32 2012 -0500
Revert "ARM: move VMALLOC_END down temporarily for shmobile"
This reverts commit 0af362f8440a78b
is not using a non-standard memory layout anymore.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 5917bfa4c0c529d
Author: Magnus Damm <email address hidden>
Date: Mon Jan 2 22:57:03 2012 -0500
ARM: mach-shmobile: use standard 2MiB coherent DMA memory size
The 158MiB memory area was used to support HD
resolution multimedia workloads using the same
legacy memory allocating solution as on SH.
There are no in-tree kernel dependencies on the
158MiB setting, and future development should
reserve and allocate memory using some other
method like for instance CMA.
Signed-off-by: Magnus Damm <email address hidden>
Signed-off-by: Nicolas Pitre <email address hidden>
commit c87fb57346fc765
Author: Jamie Iles <email address hidden>
Date: Wed Dec 14 23:43:16 2011 +0100
ARM: 7235/1: irqdomain: export irq_domain_
irqdomain support is used in interrupt controller drivers that may not
have device tree support but only need the basic HW->Linux irq
translation. Rather than having each of these implement their own IRQ
domain, allow them to use the simple ops.
Acked-by: Thomas Gleixner <email address hidden>
Acked-by: Rob Herring <email address hidden>
Cc: Grant Likely <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit df0bcfe0f811a73
Merge: 215e83d a2075a7
Author: Russell King <email address hidden>
Date: Mon Dec 19 21:54:35 2011 +0000
Merge branch 'arm/common-
commit a2075a7aff5f469
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000
imx6q: Remove unconditional dependency on l2x0 L2 cache support
The i.MX6 Quad SoC will work without the l2x0 L2 cache controller
support built into the kernel, so this patch removes the dependency
on CACHE_L2X0.
This makes the l2x0 support optional, so that it can be turned off
when desired for debugging purposes etc.
Since SOC_IMX6Q already depends on ARCH_IMX_V6_V7 and
ARCH_IMX_V6_V7 selects MIGHT_HAVE_
select that option explicitly from SOC_IMX6Q.
Thanks to Shawn Guo for this suggestion. [1]
[1] http://
Acked-by: Shawn Guo <email address hidden>
Tested-by: Shawn Guo <email address hidden>
Acked-by: Sascha Hauer <email address hidden>
commit 22d80379e9b6b16
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000
highbank: Unconditionally require l2x0 L2 cache controller support
If running in the Normal World on a TrustZone-enabled SoC, Linux
does not have complete control over the L2 cache controller
configuration. The kernel cannot work reliably on such platforms
without the l2x0 cache support code built in.
This patch unconditionally enables l2x0 support for the Highbank
SoC.
Thanks to Rob Herring for this suggestion. [1]
[1] http://
Signed-off-by: Dave Martin <email address hidden>
Acked-by: Rob Herring <email address hidden>
commit c957445bf960047
Author: Dave Martin <email address hidden>
Date: Mon Dec 12 16:17:34 2011 +0000
omap4: Unconditionally require l2x0 L2 cache controller support
If running in the Normal World on a TrustZone-enabled SoC, Linux
does not have complete control over the L2 cache controller
configuration. The kernel cannot work reliably on such platforms
without the l2x0 cache support code built in.
This patch unconditionally enables l2x0 support for the OMAP4 SoCs.
Thanks to Rob Herring for this suggestion. [1]
[1] http://
Signed-off-by: Dave Martin <email address hidden>
Acked-by: Tony Lindgren <email address hidden>
commit 3b55658aefbf826
Author: Dave Martin <email address hidden>
Date: Wed Dec 7 15:38:04 2011 +0000
ARM: SMP: Refactor Kconfig to be more maintainable
Making SMP depend on (huge list of MACH_ and ARCH_ configs) is
bothersome to maintain and likely to lead to merge conflicts.
This patch moves the knowledge of which platforms are SMP-capable
to the individual machines. To enable this, a new HAVE_SMP config
option is introduced to allow machines to indicate that they can
run in a SMP configuration.
Signed-off-by: Dave Martin <email address hidden>
Acked-by: Linus Walleij <email address hidden>
(for nomadik, ux500)
Acked-by: Tony Lindgren <email address hidden>
(for omap)
Acked-by: Kukjin Kim <email address hidden>
(for exynos)
Acked-by: Sascha Hauer <email address hidden>
(for imx)
Acked-by: Olof Johansson <email address hidden>
(for tegra)
commit ce5ea9f3767e858
Author: Dave Martin <email address hidden>
Date: Tue Nov 29 15:56:19 2011 +0000
ARM: l2x0/pl310: Refactor Kconfig to be more maintainable
Making CACHE_L2X0 depend on (huge list of MACH_ and ARCH_ configs)
is bothersome to maintain and likely to lead to merge conflicts.
This patch moves the knowledge of which platforms have a L2x0 or
PL310 cache controller to the individual machines. To enable this,
a new MIGHT_HAVE_
machines to indicate that they may have such a cache controller
independently of each other.
Boards/SoCs which cannot reliably operate without the L2 cache
controller support will need to select CACHE_L2X0 directly from
their own Kconfigs instead. This applies to some TrustZone-enabled
boards where Linux runs in the Normal World, for example.
Signed-off-by: Dave Martin <email address hidden>
Acked-by: Anton Vorontsov <email address hidden>
(for cns3xxx)
Acked-by: Tony Lindgren <email address hidden>
(for omap)
Acked-by: Shawn Guo <email address hidden>
(for imx)
Acked-by: Kukjin Kim <email address hidden>
(for exynos)
Acked-by: Sascha Hauer <email address hidden>
(for imx)
Acked-by: Olof Johansson <email address hidden>
(for tegra)
commit 215e83d971a04f0
Author: Linus Walleij <email address hidden>
Date: Wed Dec 14 18:15:42 2011 +0100
ARM: 7233/1: ux500: remove overlapping iotable entries
The overlapping iotable mapping entries for the ux500 Cortex
A9 SCU, CPU control and TWD are no longer accepted by the
kernel. Remove the overlaps so the machine boots again.
Cc: Srinidhi Kasagar <email address hidden>
Cc: Rabin Vincent <email address hidden>
Reported-by: Daniel Lezcano <email address hidden>
Acked-by: Nicolas Pitre <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 2f0778afac79bd8
Author: Marc Zyngier <email address hidden>
Date: Thu Dec 15 12:19:23 2011 +0100
ARM: 7205/2: sched_clock: allow sched_clock to be selected at runtime
sched_clock() is yet another blocker on the road to the single
image. This patch implements an idea by Russell King:
http://
Instead of asking the platform to implement both sched_clock()
itself and the rollover callback, simply register a read()
function, and let the ARM code care about sched_clock() itself,
the conversion to ns and the rollover. sched_clock() uses
this read() function as an indirection to the platform code.
If the platform doesn't provide a read(), the code falls back
to the jiffy counter (just like the default sched_clock).
This allow some simplifications and possibly some footprint gain
when multiple platforms are compiled in. Among the drawbacks,
the removal of the *_fixed_sched_clock optimization which could
negatively impact some platforms (sa1100, tegra, versatile
and omap).
Tested on 11MPCore, OMAP4 and Tegra.
Cc: Imre Kaloz <email address hidden>
Cc: Eric Miao <email address hidden>
Cc: Colin Cross <email address hidden>
Cc: Erik Gilling <email address hidden>
Cc: Olof Johansson <email address hidden>
Cc: Sascha Hauer <email address hidden>
Cc: Alessandro Rubini <email address hidden>
Cc: STEricsson <email address hidden>
Cc: Lennert Buytenhek <email address hidden>
Cc: Ben Dooks <email address hidden>
Tested-by: Jamie Iles <email address hidden>
Tested-by: Tony Lindgren <email address hidden>
Tested-by: Kyungmin Park <email address hidden>
Acked-by: Linus Walleij <email address hidden>
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Krzysztof Halasa <email address hidden>
Acked-by: Kukjin Kim <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 3bdc3484e8f2b1b
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 12:35:46 2011 +0100
ARM: kexec: use soft_restart for branching to the reboot buffer
Now that there is a common way to reset the machine, let's use it
instead of reinventing the wheel in the kexec backend.
Signed-off-by: Will Deacon <email address hidden>
commit 02b73e2e9c288cb
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 15:49:23 2011 +0100
ARM: stop: execute platform callback from cpu_stop code
Sending IPI_CPU_STOP to a CPU causes it to execute a busy cpu_relax
loop forever. This makes it impossible to kexec successfully on an SMP
system since the secondary CPUs do not reset.
This patch adds a callback to platform_cpu_kill, defined when
CONFIG_
currently just returns 1 on all platforms that define it but allows them
to do something more sophisticated in the future.
Signed-off-by: Will Deacon <email address hidden>
commit 290130a17718c14
Author: Will Deacon <email address hidden>
Date: Mon Jun 6 12:28:54 2011 +0100
ARM: reset: implement soft_restart for jumping to a physical address
Tools such as kexec and CPU hotplug require a way to reset the processor
and branch to some code in physical space. This requires various bits of
jiggery pokery with the caches and MMU which, when it goes wrong, tends
to lock up the system.
This patch fleshes out the soft_restart implementation so that it
branches to the reset code using the identity mapping. This requires us
to change to a temporary stack, held within the kernel image as a static
array, to avoid conflicting with the new view of memory.
Signed-off-by: Will Deacon <email address hidden>
commit 2d81f1fe81b753a
Author: Will Deacon <email address hidden>
Date: Wed Jun 8 15:29:00 2011 +0100
ARM: lib: add call_with_stack function for safely changing stack
When disabling the MMU, it is necessary to take out a 1:1 identity map
of the reset code so that it can safely be executed with and without
the MMU active. To avoid the situation where the physical address of the
reset code aliases with the virtual address of the active stack (which
cannot be included in the 1:1 mapping), it is desirable to change to a
new stack at a location which is less likely to alias.
This code adds a new lib function, call_with_stack:
void call_with_
which changes the stack to point at the sp parameter, before invoking
fn(arg) with the new stack selected.
Reviewed-by: Nicolas Pitre <email address hidden>
Reviewed-by: Catalin Marinas <email address hidden>
Signed-off-by: Dave Martin <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit ad622671a4da0b6
Author: Jamie Iles <email address hidden>
Date: Thu Dec 1 11:16:46 2011 +0100
ARM: 7183/1: vic: register the VIC for ST-modified VIC's
When probing the VIC, the ST variant has a different probing method to
account for the extra interrupts which meant we didn't previously call
vic_register() which registered the irq_domain.
Acked-by: Linus Walleij <email address hidden>
Cc: Marc Zyngier <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 6ae25a5b9d7ba86
Merge: 3ee0fc5 497b7e9
Author: Russell King <email address hidden>
Date: Thu Dec 8 18:02:04 2011 +0000
Merge branch 'for-rmk' of git://git.
Conflicts:
arch/
commit cc96ffbb744bff2
Author: Uwe Kleine-König <email address hidden>
Date: Thu Dec 8 15:52:15 2011 +0100
pinctrl: remove two unused global variables
Signed-off-by: Uwe Kleine-König <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 3838d3275923d0e
Author: Uwe Kleine-König <email address hidden>
Date: Thu Dec 8 15:42:45 2011 +0100
pinctrl: make the "Debug PINCTRL calls" entry actually do something
DEBUG_PINCTRL wasn't used at all and DEBUG_PINMUX doesn't exist.
Signed-off-by: Uwe Kleine-König <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 497b7e943d0dc57
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000
ARM: LPAE: Add the Kconfig entries
This patch adds the ARM_LPAE and ARCH_PHYS_
allowing LPAE support to be compiled into the kernel.
Signed-off-by: Catalin Marinas <email address hidden>
commit 77f73a2c8e869b0
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000
ARM: LPAE: mark memory banks with start > ULONG_MAX as highmem
Memory banks living outside of the 32-bit physical address
space do not have a 1:1 pa <-> va mapping and therefore the
__va macro may wrap.
This patch ensures that such banks are marked as highmem so
that the Kernel doesn't try to split them up when it sees that
the wrapped virtual address overlaps the vmalloc space.
Signed-off-by: Will Deacon <email address hidden>
Signed-off-by: Catalin Marinas <email address hidden>
Acked-by: Nicolas Pitre <email address hidden>
commit ae2de101739c5a2
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:32 2011 +0000
ARM: LPAE: Add identity mapping support for the 3-level page table format
With LPAE, the pgd is a separate page table with entries pointing to the
pmd. The identity_
populated before populating the pmd level. The do..while blocks now loop
over the pmd in order to have the same implementation for the two page
table formats. The pmd_addr_end() definition has been removed and the
generic one used instead. The pmd clean-up is done in the pgd_free()
function.
Signed-off-by: Catalin Marinas <email address hidden>
commit 14d8c9512aef5bf
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:31 2011 +0000
ARM: LPAE: Add context switching support
With LPAE, TTBRx registers are 64-bit. The ASID is stored in TTBR0
rather than a separate Context ID register. This patch makes the
necessary changes to handle context switching on LPAE.
Signed-off-by: Catalin Marinas <email address hidden>
commit f7b8156d150f738
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:31 2011 +0000
ARM: LPAE: Add fault handling support
The DFSR and IFSR register format is different when LPAE is enabled. In
addition, DFSR and IFSR have similar definitions for the fault type.
This modifies the fault code to correctly handle the new format.
Signed-off-by: Catalin Marinas <email address hidden>
commit c9f27f1026f55b5
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000
ARM: LPAE: Invalidate the TLB before freeing the PMD
Similar to the PTE freeing, this patch introduced __pmd_free_tlb() which
invalidates the TLB before freeing a PMD page. This is needed because on
newer processors the entry in the upper page table may be cached by the
TLB and point to random data after the PMD has been freed.
Signed-off-by: Catalin Marinas <email address hidden>
commit 1b6ba46b7efa310
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000
ARM: LPAE: MMU setup for the 3-level page table format
This patch adds the MMU initialisation for the LPAE page table format.
The swapper_pg_dir size with LPAE is 5 rather than 4 pages. A new
proc-
and PTE setting code with the LPAE. The TTBRx split is based on the
PAGE_OFFSET with TTBR1 used for the kernel mappings. The 36-bit mappings
(supersections) and a few other memory types in mmu.c are conditionally
compiled.
Signed-off-by: Catalin Marinas <email address hidden>
commit da02877987e6e17
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000
ARM: LPAE: Page table maintenance for the 3-level format
This patch modifies the pgd/pmd/pte manipulation functions to support
the 3-level page table format. Since there is no need for an 'ext'
argument to cpu_set_pte_ext(), this patch conditionally defines a
different prototype for this function when CONFIG_ARM_LPAE.
The patch also introduces the L_PGD_SWAPPER flag to mark pgd entries
pointing to pmd tables pre-allocated in the swapper_pg_dir and avoid
trying to free them at run-time. This flag is 0 with the classic page
table format.
Signed-off-by: Catalin Marinas <email address hidden>
commit dcfdae04bd92e8a
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:29 2011 +0000
ARM: LPAE: Introduce the 3-level page table format definitions
This patch introduces the pgtable-3level*.h files with definitions
specific to the LPAE page table format (3 levels of page tables).
Each table is 4KB and has 512 64-bit entries. An entry can point to a
40-bit physical address. The young, write and exec software bits share
the corresponding hardware bits (negated). Other software bits use spare
bits in the PTE.
The patch also changes some variable types from unsigned long or int to
pteval_t or pgprot_t.
Signed-off-by: Catalin Marinas <email address hidden>
commit d675d0bc47f28c5
Author: Will Deacon <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000
ARM: LPAE: add ISBs around MMU enabling code
Before we enable the MMU, we must ensure that the TTBR registers contain
sane values. After the MMU has been enabled, we jump to the *virtual*
address of the following function, so we also need to ensure that the
SCTLR write has taken effect.
This patch adds ISB instructions around the SCTLR write to ensure the
visibility of the above.
Signed-off-by: Will Deacon <email address hidden>
Signed-off-by: Catalin Marinas <email address hidden>
commit 8d2cd3a38fd663b
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000
ARM: LPAE: Factor out classic-MMU specific code into proc-v7-2level.S
This patch modifies the proc-v7.S file so that it only contains code
shared between classic MMU and LPAE. The non-common code is factored out
into a separate file.
Signed-off-by: Catalin Marinas <email address hidden>
commit 136848d4ca9cf6f
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000
ARM: LPAE: Move the FSR definitions to separate files
The FSR structure is different with LPAE and this patch moves the
classic MMU specific definition to a separate fsr-2level.c file that is
included in fault.c. It also moves the fsr_fs and FSR bits to the
fault.h file.
Signed-off-by: Catalin Marinas <email address hidden>
commit e0c0313bd720977
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000
ARM: LPAE: Move page table maintenance macros to pgtable-2level.h
The page table maintenance macros need to be duplicated between the
classic and the LPAE MMU so this patch moves those that are not common
to the pgtable-2level.h file.
Signed-off-by: Catalin Marinas <email address hidden>
commit a32618d28dbe6e9
Author: Russell King <email address hidden>
Date: Tue Nov 22 17:30:28 2011 +0000
ARM: pgtable: switch to use pgtable-nopud.h
Nick Piggin noted upon introducing 4level-fixup.h:
| Add a temporary "fallback" header so architectures can run with
| the 4level pagetables patch without modification. All architectures
| should be converted to use the folding headers (include/
| pgtable-nop?d.h) as soon as possible, and the fallback header removed.
This makes ARM compliant with this statement.
Signed-off-by: Russell King <email address hidden>
Signed-off-by: Catalin Marinas <email address hidden>
commit 03a6b8274cc61fb
Author: Catalin Marinas <email address hidden>
Date: Tue Nov 22 17:30:27 2011 +0000
ARM: pgtable: Fix compiler warning in ioremap.c introduced by nopud
With the arch/arm code conversion to pgtable-nopud.h, the section and
supersection (un|re)map code triggers compiler warnings on UP systems.
This is caused by pmd_offset() being given a pgd_t argument rather than
a pud_t one. This patch makes the necessary conversion with the
assumption that the pud is folded into the pgd. The page table setting
code only loops over the pmd which is enough with the classic page
tables. This code is not compiled when LPAE is enabled.
Signed-off-by: Catalin Marinas <email address hidden>
commit 3ee0fc5ca129cba
Merge: deee6d5 4e8ee7d
Author: Russell King <email address hidden>
Date: Tue Dec 6 20:27:54 2011 +0000
Merge branch 'kexec/idmap' of git://git.
commit deee6d5359969a0
Author: Tony Lindgren <email address hidden>
Date: Tue Dec 6 17:50:42 2011 +0100
ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM restart changes
ARM restart changes needed changes to common.h to make it local.
This conflicted with v3.2-rc4 DSS related hwmod changes that
git mergetool was not able to handle.
Signed-off-by: Tony Lindgren <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 4e8ee7de227e3ab
Author: Will Deacon <email address hidden>
Date: Wed Nov 23 12:26:25 2011 +0000
ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting
The ARM SMP booting code allocates a temporary set of page tables
containing an identity mapping of the kernel image and provides this
to secondary CPUs for initial booting.
In reality, we only need to include the __turn_mmu_on function in the
identity mapping since the rest of the kernel is executing from virtual
addresses after this point.
This patch adds __turn_mmu_on to the .idmap.text section, allowing the
SMP booting code to use the idmap_pgd directly and not have to populate
its own set of page table.
As a result of this patch, we can make the identity_
static (since it is only used within mm/idmap.c) and also remove the
identity_
an early initcall so that it is setup in time for secondary CPU bringup.
Reviewed-by: Catalin Marinas <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 72662e010883945
Author: Will Deacon <email address hidden>
Date: Wed Nov 23 12:03:27 2011 +0000
ARM: head.S: only include __turn_mmu_on in the initial identity mapping
__create_
__enable_mmu to the end of __turn_mmu_on.
In preparation for including __turn_mmu_on in the .idmap.text section,
this patch modifies the identity mapping so that it only includes the
__turn_mmu_on code.
Reviewed-by: Catalin Marinas <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 2c8951ab0c337cb
Author: Will Deacon <email address hidden>
Date: Wed Jun 8 15:53:34 2011 +0100
ARM: idmap: use idmap_pgd when setting up mm for reboot
For soft-rebooting a system, it is necessary to map the MMU-off code
with an identity mapping so that execution can continue safely once the
MMU has been switched off.
Currently, switch_
TASK_SIZE during reboot in the hope that the reset code lives at a
physical address corresponding to a userspace virtual address.
This patch modifies the code so that we switch to the idmap_pgd tables,
which contain a 1:1 mapping of the cpu_reset code. This has the
advantage of only remapping the code that we need and also means we
don't need to worry about allocating a pgd from an atomic context in the
case that the physical address of the cpu_reset code aliases with the
virtual space used by the kernel.
Acked-by: Dave Martin <email address hidden>
Reviewed-by: Catalin Marinas <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 1a4baafa7d203da
Author: Will Deacon <email address hidden>
Date: Tue Nov 15 13:25:04 2011 +0000
ARM: proc-*.S: place cpu_reset functions into .idmap.text section
The CPU reset functions disable the MMU and therefore must be executed
with an identity mapping in place.
This patch places the CPU reset functions into the .idmap.text section,
causing the idmap code to include them as part of the identity mapping.
Acked-by: Dave Martin <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit e6eadc67873d5f3
Author: Will Deacon <email address hidden>
Date: Tue Nov 15 11:11:19 2011 +0000
ARM: suspend: use idmap_pgd instead of suspend_pgd
The ARM CPU suspend code requires cpu_resume_mmu to be identity mapped
in order to re-enable the MMU when coming out of suspend. Currently,
this is accomplished by maintaining a suspend_pgd with the relevant
mapping put in place at init time.
This patch replaces the use of suspend_pgd with the new idmap_pgd.
cpu_resume_mmu is placed in the .idmap.text section so that it is
included in the identity map.
Reviewed-by: Catalin Marinas <email address hidden>
Acked-by: Dave Martin <email address hidden>
Tested-by: Lorenzo Pieralisi <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 8903826d0cd99ae
Author: Will Deacon <email address hidden>
Date: Fri Sep 30 11:43:29 2011 +0100
ARM: idmap: populate identity map pgd at init time using .init.text
When disabling and re-enabling the MMU, it is necessary to take out an
identity mapping for the code that manipulates the SCTLR in order to
avoid it disappearing from under our feet. This is useful when soft
rebooting and returning from CPU suspend.
This patch allocates a set of page tables during boot and populates them
with an identity mapping for the .idmap.text section. This means that
users of the identity map do not need to manage their own pgd and can
instead annotate their functions with __idmap or, in the case of assembly
code, place them in the correct section.
Acked-by: Dave Martin <email address hidden>
Reviewed-by: Catalin Marinas <email address hidden>
Tested-by: Lorenzo Pieralisi <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 16edc3df8a1b40f
Author: Tony Lindgren <email address hidden>
Date: Tue Dec 6 05:45:37 2011 +0100
ARM: 7192/1: OMAP: Fix build error for omap1_defconfig
Otherwise we get the following error:
In function 'omap_init_
error: implicit declaration of function 'init_consisten
Signed-off-by: Tony Lindgren <email address hidden>
Acked-by: Nicolas Pitre <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 73829af71fdb865
Merge: 742eaa6 0af362f
Author: Russell King <email address hidden>
Date: Mon Dec 5 23:27:54 2011 +0000
Merge branch 'vmalloc' of git://git.
commit 742eaa6a6e356a1
Merge: ba8bb18 ae72fd5
Author: Russell King <email address hidden>
Date: Mon Dec 5 23:20:17 2011 +0000
Merge branch 'for-rmk' of git://git.
Conflicts:
arch/
arch/
commit ba8bb18a03f8c75
Author: Santosh Shilimkar <email address hidden>
Date: Mon Dec 5 09:46:24 2011 +0100
ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq function
Fix the below build break by including common.h
arch/
arch/
make[1]: *** [arch/arm/
make: *** [arch/arm/
Signed-off-by: Santosh Shilimkar <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit f88f4dd868e59c0
Author: Santosh Shilimkar <email address hidden>
Date: Mon Dec 5 09:44:58 2011 +0100
ARM: 7188/1: OMAP2PLUS: Fix build error: 'omap2/
Fix the build break by adding the necessary irq functions to
common header.
Signed-off-by: Santosh Shilimkar <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 53fadbdd83039bb
Merge: 2d13cca e1d95ea
Author: Russell King <email address hidden>
Date: Sat Dec 3 09:11:54 2011 +0000
Merge branch 'irqchip-
commit ae72fd588a2b302
Merge: 0445e7a feb45d0 e0516a6
Author: Will Deacon <email address hidden>
Date: Fri Dec 2 15:22:18 2011 +0000
Merge branches 'perf/event-nos', 'perf/updates' and 'perf/omap4' into for-rmk
commit e0516a64e7ea9d9
Author: Ming Lei <email address hidden>
Date: Wed Mar 2 15:00:08 2011 +0800
arm: pmu: allow platform specific irq enable/disable handling
This patch introduces .enable_irq and .disable_irq into
struct arm_pmu_platdata, so platform specific irq enablement
can be handled after request_irq, and platform specific irq
disablement can be handled before free_irq.
This patch is for support of pmu irq routed from CTI on omap4.
Acked-by: Jean Pihet <email address hidden>
Reviewed-by: Will Deacon <email address hidden>
Signed-off-by: Ming Lei <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 14eec97ff463597
Author: Ming Lei <email address hidden>
Date: Mon Oct 24 15:45:53 2011 +0100
arm: introduce cross trigger interface helpers
OMAP4 uses cross trigger interface(CTI) to route
performance monitor irq to GIC, so introduce cti
helpers to make access for cti easily.
Acked-by: Jean Pihet <email address hidden>
Signed-off-by: Ming Lei <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit feb45d06ffd7b59
Author: Will Deacon <email address hidden>
Date: Mon Nov 14 10:33:05 2011 +0000
ARM: perf: remove unused armpmu_
armpmu_
inline it there. It existed as a separate entity as a hangover from
the original perf-based oprofile implementation.
Signed-off-by: Will Deacon <email address hidden>
commit 0445e7a58e794d8
Author: Will Deacon <email address hidden>
Date: Thu Sep 29 18:23:39 2011 +0100
ARM: perf: add support for stalled cycle ABI events
Commit 8f622422 ("perf events: Add generic front-end and back-end
stalled cycle event definitions") added two new ABI events for counting
stalled cycles.
This patch adds support for these new events to the ARM perf
implementation.
Cc: Jamie Iles <email address hidden>
Cc: Jean Pihet <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit 4d301512ab368f8
Author: Will Deacon <email address hidden>
Date: Thu Sep 29 15:29:02 2011 +0100
ARM: perf: clean and update ARMv7 event numbers
This patch updates the ARMv7 perf event numbers so that:
(1) A consistent naming scheme is used between different CPUs.
(2) Only events actually used by Linux are described.
(3) Where possible, architected events are used in preference to
This results in the removal of a load of unused, hardcoded data and
makes it more clear as to which events are supported on each PMU.
Cc: Jean Pihet <email address hidden>
Signed-off-by: Will Deacon <email address hidden>
commit e1d95eaf005b7ed
Author: Axel Lin <email address hidden>
Date: Thu Dec 1 23:25:45 2011 +0800
ARM: exynos4: Fix build error
Trivial fix to fix below build error:
CC arch/arm/
arch/
Signed-off-by: Axel Lin <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 69676c372903179
Author: Axel Lin <email address hidden>
Date: Thu Dec 1 23:24:30 2011 +0800
ARM: exynos4: Fix build error due to 'gic_bank_offset' undeclared
Fix below build error:
CC arch/arm/
arch/
arch/
arch/
arch/
arch/
make[1]: *** [arch/arm/
make: *** [arch/arm/
Signed-off-by: Axel Lin <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit f59d28dc00ae3f1
Author: Barry Song <email address hidden>
Date: Fri Dec 2 10:32:15 2011 +0800
pinctrl/sirf: fix pin number typo for SPI1
Signed-off-by: Barry Song <email address hidden>
Signed-off-by: Linus Walleij <email address hidden>
commit 0af362f8440a78b
Author: Nicolas Pitre <email address hidden>
Date: Mon Sep 19 00:28:45 2011 -0400
ARM: move VMALLOC_END down temporarily for shmobile
THIS IS A TEMPORARY HACK. The purpose of this is _only_ to avoid a
regression on an existing machine while a better fix is implemented.
On shmobile the consistent DMA memory area was set to 158MB in commit
28f0721a79 with no explanation. The documented size for this area should
vary between 2MB and 14MB, and none of the other ARM targets exceed that.
The included #warning is therefore meant to be noisy on purpose to get
shmobile maintainers attention and this commit reverted once this
consistent DMA size conflict is resolved.
Signed-off-by: Nicolas Pitre <email address hidden>
Cc: Magnus Damm <email address hidden>
Cc: Paul Mundt <email address hidden>
commit d0e6b2236a26711
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 16:30:54 2011 -0400
ARM: big removal of now unused vmalloc.h files
Signed-off-by: Nicolas Pitre <email address hidden>
commit 576d2f2525612ec
Author: Nicolas Pitre <email address hidden>
Date: Fri Sep 16 01:14:23 2011 -0400
ARM: add generic ioremap optimization by reusing static mappings
Now that we have all the static mappings from iotable_init() located
in the vmalloc area, it is trivial to optimize ioremap by reusing those
static mappings when the requested physical area fits in one of them,
and so in a generic way for all platforms.
Signed-off-by: Nicolas Pitre <email address hidden>
Tested-by: Stephen Warren <email address hidden>
Tested-by: Kevin Hilman <email address hidden>
Tested-by: Jamie Iles <email address hidden>
commit 6ee723a6570a897
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 22:12:19 2011 -0400
ARM: simplify __iounmap() when dealing with section based mapping
Firstly, there is no need to have a double pointer here as we're only
walking the vmlist and not modifying it.
Secondly, for the same reason, we don't need a write lock but only a
read lock here, since the lock only protects the coherency of the list
nothing else.
Lastly, the reason for holding a lock is not what the comment says, so
let's remove that misleading piece of information.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 0536bdf33faff4d
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:35:59 2011 -0400
ARM: move iotable mappings within the vmalloc region
In order to remove the build time variation between different SOCs with
regards to VMALLOC_END, the iotable mappings are now allocated inside
the vmalloc region. This allows for VMALLOC_END to be identical across
all machines.
The value for VMALLOC_END is now set to 0xff000000 which is right where
the consistent DMA area starts.
To accommodate all static mappings on machines with possible highmem usage,
the default vmalloc area size is changed to 240 MB so that VMALLOC_START
is no higher than 0xf0000000 by default.
Signed-off-by: Nicolas Pitre <email address hidden>
Tested-by: Stephen Warren <email address hidden>
Tested-by: Kevin Hilman <email address hidden>
Tested-by: Jamie Iles <email address hidden>
commit 2d13ccaa8797d7e
Merge: 59136ef 11f1c5d
Author: Russell King <email address hidden>
Date: Mon Nov 21 21:56:56 2011 +0000
Merge branch 'irqchip-
Conflicts:
arch/
arch/
arch/
arch/
The changes to omap4-common.h were moved to arch/arm/
and the other trivial conflicts resolved. The now empty ifdef in irqs.h
was also eliminated.
commit 59136ef3c596606
Merge: e879c86 3f1517a
Author: Russell King <email address hidden>
Date: Mon Nov 21 09:49:47 2011 +0000
Merge branch 'restart-cleanup' into restart
commit 3f1517a761905c5
Author: Russell King <email address hidden>
Date: Wed Nov 2 14:38:07 2011 +0000
ARM: restart: remove poodle restart handler
The poodle restart handler was added in 74617fb6b8 (3593/1: Add reboot
and shutdown handlers for Zaurus handhelds), and at that time it was
necessary to deal with the RCSR register. This commit also forced all
restarts to use the 'hard' restart method.
In dc38e2ad53 (pxa: Fix RCSR handling), the RCSR handling was removed,
leaving just the forcing to use a 'hard' restart. As hard restarts are
the default (in the absense of a reboot= command line argument), this
seems pointless. In any case, Richard Purdie says:
> From what I remember that hardware either always reboots or always
> halts. I think the option was therefore left hardcoded to make it clear
> it wasn't expected to work. Later Zaurii models could do either but
> required some manual poking of registers to make it happen iirc.
>
> Regardless, you can probably clean this up as you suggest now.
So, lets remove the unnecessary interception and rely on the default
restart mode.
Acked-by: Richard Purdie <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit e5bc9e257a4ef3d
Author: Russell King <email address hidden>
Date: Mon Nov 7 18:02:39 2011 +0000
ARM: w90x900: add common nuc9xx.h
Rather than having separate extern declarations in nuc9*.h, provide
a common header file containing these definitions.
Tested-by: Wan Zongshun <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit e879c862fb81b98
Author: Russell King <email address hidden>
Date: Tue Nov 1 13:16:26 2011 +0000
ARM: restart: only perform setup for restart when soft-restarting
We only need to set the system up for a soft-restart if we're going to
be doing a soft-restart. Provide a new function (soft_restart()) which
does the setup and final call for this, and make platforms use it.
Eliminate the call to setup_restart() from the default handler.
This means that platforms arch_reset() function is no longer called with
the page tables prepared for a soft-restart, and caches will still be
enabled.
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Acked-by: H Hartley Sweeten <email address hidden>
Acked-by: Kukjin Kim <email address hidden>
Acked-by: Sascha Hauer <email address hidden>
Acked-by: Viresh Kumar <email address hidden>
Acked-by: Krzysztof Ha■asa <email address hidden>
Acked-by: Paul Mundt <email address hidden>
Acked-by: Richard Purdie <email address hidden>
Acked-by: Wan ZongShun <email address hidden>
Acked-by: Eric Miao <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit be9b7335e70696b
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:24:21 2011 -0400
mm: add vm_area_add_early()
The existing vm_area_
allocation. However upcoming cleanups in the ARM architecture require
that some fixed locations in the vmalloc area be reserved also very early.
The name "vm_area_
reservation part without the allocation. Since it is already in use with
different semantics, let's create vm_area_add_early() instead.
Both vm_area_
meaning that the former is now implemented using the later where it is
ensured that no conflicting areas are added, but no attempt is made to
make the allocation scheme in vm_area_
After all, you must know what you're doing when using those functions.
Signed-off-by: Nicolas Pitre <email address hidden>
Acked-by: Andrew Morton <email address hidden>
Cc: <email address hidden>
commit 55a8173cfe1c6b4
Author: Nicolas Pitre <email address hidden>
Date: Sun Sep 18 22:40:00 2011 -0400
ARM: move initialization of the high_memory variable earlier
Some upcoming changes must know the VMALLOC_START value, which is based
on high_memory, before bootmem_init() is called.
The best location to set it is in sanity_
computation is already done, and in the non MMU case it is trivial to do
now that the meminfo array is already sorted at that point.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 27a3f0e91bed0f4
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 19:10:29 2011 -0400
ARM: sort the meminfo array earlier
The meminfo array has to be sorted before sanity_
arch/
for a simpler find_limits() in arch/arm/mm/init.c.
The sort is moved to arch/arm/
meminfo array is populated. Eventually this should be improved upon
to make the memory bank parser a bit more robust against problems
such as overlapping memory ranges.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 3e28c800440d80e
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 19:46:18 2011 -0500
ARM: realview-eb11mp: fix map_desc alignment
REALVIEW_
overlapping mapping. Use REALVIEW_
aligned.
Signed-off-by: Rob Herring <email address hidden>
Signed-off-by: Nicolas Pitre <email address hidden>
commit 9ceceb652a0f1e5
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 16:22:02 2011 -0500
ARM: realview: fix map_desc alignment
REALVIEW_
overlapping mapping. Use REALVIEW_
aligned.
Signed-off-by: Rob Herring <email address hidden>
Signed-off-by: Nicolas Pitre <email address hidden>
commit 38bd7493aa37d72
Author: Rob Herring <email address hidden>
Date: Thu Sep 29 13:18:29 2011 -0500
ARM: versatile: remove overlapping map_desc entry
The map_desc for VERSATILE_
The overlapping entry can be removed.
Signed-off-by: Rob Herring <email address hidden>
Signed-off-by: Nicolas Pitre <email address hidden>
commit a55eaacb18e61f4
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: plat-iop: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
commit d88cc28799fd5ad
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: mach-ixp23xx: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
Reviewed-by: Deepak Saxena <email address hidden>
commit a8ceac5ef7a98a1
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: mach-kirkwood: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 6949f8c08d232a4
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: mach-orion5x: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
commit bfcd2ea6a40b332
Author: Nicolas Pitre <email address hidden>
Date: Thu Sep 15 16:23:45 2011 -0400
ARM: mach-bcmring: use proper constant to identify DMA memory area
Using VMALLOC_END implies a presumption about the layout which is best
avoided, even if in practice this would not change much.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 7146182c7f44690
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: plat-omap: remove arch specific special handling for ioremap
A generic version should replace this later.
As io.c has become nearly empty, omap_init_
into common.c so that io.c can be removed entirely.
Signed-off-by: Nicolas Pitre <email address hidden>
Tested-by: Kevin Hilman <email address hidden>
commit 3a083227a45cbbf
Author: Russell King <email address hidden>
Date: Sat Nov 5 17:38:32 2011 +0000
ARM: clps711x: consolidate irq/mm/time code into a single file
The separate files for clps711x which contain maybe one or two data
structures or functions is an inefficient use of files, and encourages
further small files as other changes happen. Collapse down these into
a single core.c file.
Signed-off-by: Russell King <email address hidden>
commit 4e65331c6bb4a77
Author: Tony Lindgren <email address hidden>
Date: Thu Nov 10 22:45:17 2011 +0100
ARM: 7159/1: OMAP: Introduce local common.h files
As suggested by Russell King - ARM Linux <email address hidden>,
there's no need to keep local prototypes in non-local headers.
Add mach-omap1/common.h and mach-omap2/common.h and move the
local prototypes there from plat/common.h and mach/omap4-
Signed-off-by: Tony Lindgren <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 6a6f1efaced2ca7
Author: Russell King <email address hidden>
Date: Mon Oct 31 14:34:31 2011 +0000
ARM: restart: remove local_irq_disable() from within arch_reset()
IRQs are already disabled by the time arch_reset() is called, so these
calls to local_irq_disable() instead arch_reset() are redundant. Remove
them.
Acked-by: H Hartley Sweeten <email address hidden>
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 3c4c342fea35fa1
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: mach-tegra: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
Tested-by: Stephen Warren <email address hidden>
commit 400eeee1bd48cec
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: mach-davinci: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
commit cf48c02e3bf0f99
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 17:06:22 2011 -0400
ARM: mach-at91: remove arch specific special handling for ioremap
A generic version should replace this later.
Signed-off-by: Nicolas Pitre <email address hidden>
commit df9528add197bcc
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:33:59 2011 -0400
ARM: plat-mxc: remove inclusion of <mach/vmalloc.h>
Signed-off-by: Nicolas Pitre <email address hidden>
commit 8da54a0b47a0c3f
Author: Nicolas Pitre <email address hidden>
Date: Wed Sep 14 15:14:19 2011 -0400
ARM: mach-prima2: don't define SIRFSOC_VA in terms of VMALLOC_END
... since it is going to change.
Signed-off-by: Nicolas Pitre <email address hidden>
Tested-by: Barry Song <email address hidden>
commit 1a4c1c966958ec6
Author: Nicolas Pitre <email address hidden>
Date: Thu Aug 25 00:33:59 2011 -0400
ARM: mach-dove: remove inclusion of <mach/vmalloc.h>
This include is unnecessary.
Signed-off-by: Nicolas Pitre <email address hidden>
commit 11f1c5de7be06bb
Author: Jamie Iles <email address hidden>
Date: Thu Nov 3 17:32:39 2011 +0000
ARM: VIC: remove non MULTI_IRQ_HANDLER support
Now that all platforms are converted to MULTI_IRQ_HANDLER, remove the
legacy support.
Tested-by: Thomas Abraham <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit c05012ce9a70100
Author: Jamie Iles <email address hidden>
Date: Thu Nov 3 17:29:03 2011 +0000
ARM: picoxcell: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for picoxcell to help building multi platform kernels.
Signed-off-by: Jamie Iles <email address hidden>
commit bb3a4ebe63194a4
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:53:31 2011 +0100
ARM: samsung: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for samsung to help building multi platform kernels.
Cc: Kukjin Kim <email address hidden>
Tested-by: Thomas Abraham <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit c8be7acd63ed65a
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:46:10 2011 +0100
ARM: versatile: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for versatile to help building multi platform kernels.
Cc: Russell King <email address hidden>
Tested-by: Marc Zyngier <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit b7378eafb3c4788
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:41:01 2011 +0100
ARM: u300: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for u300 to help building multi platform kernels.
Acked-by: Linus Walleij <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit 66266f4ab8a0496
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:35:14 2011 +0100
ARM: spear: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for spear to help building multi platform kernels.
Acked-by: Viresh Kumar <email address hidden>
Cc: Rajeev Kumar <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit 774b51f8f8269cb
Author: Jamie Iles <email address hidden>
Date: Fri Nov 4 01:10:04 2011 +0000
ARM: s3c64xx: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for s3c64xx to help building multi platform kernels.
Cc: Ben Dooks <email address hidden>
Tested-by: Thomas Abraham <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit 42ab5304547b1d4
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:25:51 2011 +0100
ARM: nomadik: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for nomadik to help building multi platform kernels.
Cc: Alessandro Rubini <email address hidden>
Acked-by: Linus Walleij <email address hidden>
Cc: STEricsson <email address hidden>
Tested-by: Thomas Abraham <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit 14f127badadb396
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:22:21 2011 +0100
ARM: netx: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for netx to help building multi platform kernels.
Signed-off-by: Jamie Iles <email address hidden>
commit 9a6879bd902e2ec
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 20:07:05 2011 +0100
ARM: ep93xx: convert to MULTI_IRQ_HANDLER
Now that there is a generic IRQ handler for multiple VIC devices use it
for ep93xx to help building multi platform kernels.
Cc: Hartley Sweeten <email address hidden>
Cc: Ryan Mallon <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit 1558368eb5d67a4
Author: Jamie Iles <email address hidden>
Date: Wed Sep 28 09:40:11 2011 +0100
ARM: vic: MULTI_IRQ_HANDLER handler
Add a handler for the VIC that is suitable for MULTI_IRQ_HANDLER
platforms. This can replace the ASM entry macros for platforms that use
the VIC.
v4: - rebase ontop of move __exception and friends to
- rework polling loop to handle as many irqs as possible in one go
v3: - simplify irq handling loop as suggested by Grant
- service interrupts from msb->lsb order
v2: - allow the handler be used for !CONFIG_OF
- use irq_domain_to_irq()
Cc: Rob Herring <email address hidden>
Acked-by: Grant Likely <email address hidden>
Acked-by: Linus Walleij <email address hidden>
Tested-by: Thomas Abraham <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit f9b28ccbc7139af
Author: Jamie Iles <email address hidden>
Date: Tue Sep 27 11:00:46 2011 +0100
ARM: vic: device tree binding
This adds a device tree binding for the VIC based on the of_irq_init()
support. This adds an irqdomain to the vic and always registers all
vics in the static vic array rather than for pm only to keep track of
the irq domain. struct irq_data::hwirq is used where appropriate rather
than runtime masking.
v3: - include linux/export.h for THIS_MODULE
v2: - use irq_domain_
- remove stub implementation of vic_of_init for !CONFIG_OF
- Make VIC select IRQ_DOMAIN
Reviewed-by: Rob Herring <email address hidden>
Reviewed-by: Grant Likely <email address hidden>
Tested-by: Thomas Abraham <email address hidden>
Signed-off-by: Jamie Iles <email address hidden>
commit 08d33b27f7063ba
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 13:27:10 2011 +0100
ARM: GIC: Make MULTI_IRQ_HANDLER mandatory
Now that MULTI_IRQ_HANDLER is selected by all the in-tree
GIC users, make it mandatory and remove the unused macros.
Signed-off-by: Marc Zyngier <email address hidden>
commit ab65be268adaae5
Author: Marc Zyngier <email address hidden>
Date: Tue Nov 15 17:22:45 2011 +0000
ARM: omap2plus: remove irq-related global base addresses
After the MULTI_IRQ_HANDLER conversion, a couple of global
variables can be removed.
Signed-off-by: Marc Zyngier <email address hidden>
commit 6b2f55d7851aa35
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: omap2plus: convert to CONFIG_
Convert the omap2plus platforms to be using CONFIG_
Each machine is modified to provide either omap2_intc_
omap3_
This allows for a major cleanup, removing the MULTI_OMAP setup
from the interrupt path.
Tested on both Panda and IGEPv2 (single kernel image)
Tested-by: Tony Lindgren <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 2db1499784da653
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:56:17 2011 +0100
ARM: omap2/3: Add global omap2/3_
Provide the OMAP2/3 IRQ code with low level handlers that can be used
by platforms using CONFIG_
written in C, the compiled code looks very similar to its assembly
counterpart (at least with my gcc 4.4.1).
Tested-by: Tony Lindgren <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 368b8e252335725
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: zynq: convert to CONFIG_
Convert the zynq platform to be using the gic_handle_irq
function as its primary interrupt handler.
Acked-by: John Linn <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit ead31ee5ed00d2b
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: cns3xxx: convert to CONFIG_
Convert the cns3xxx platform to be using the gic_handle_irq
function as its primary interrupt handler.
Acked-by: Anton Vorontsov <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit a83d8e27d2f6f54
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: shmobile: convert smp platforms to gic_handle_irq()
Convert the SMP shmobile platforms to use gic_handle_irq() instead
of the assembly macro.
Cc: Paul Mundt <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit bbf5f38599701d8
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: ux500: convert to CONFIG_
Convert the ux500 platforms to be using the gic_handle_irq
function as their primary interrupt handler.
Acked-by: Linus Walleij <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit afed2a261825e83
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: tegra2: convert to CONFIG_
Convert the tegra2 platforms to be using the gic_handle_irq
function as their primary interrupt handler.
Tested on harmony.
Cc: Colin Cross <email address hidden>
Acked-by: Stephen Warren <email address hidden>
Acked-by: Olof Johansson <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 4e44d2cb95bd93a
Author: Marc Zyngier <email address hidden>
Date: Mon May 30 11:04:53 2011 +0100
ARM: exynos4: convert to CONFIG_
Convert the Exynos4 platforms to be using the gic_handle_irq
function as their primary interrupt handler.
Cc: Ben Dooks <email address hidden>
Cc: Kukjin Kim <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 041f777c93bab29
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: msm: convert SMP platforms to CONFIG_
Convert the SMP msm platforms to be using the gic_handle_irq
function as their primary interrupt handler.
Tested-by: David Brown <email address hidden>
Acked-by: David Brown <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit abd3ca51fba8bc2
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: VExpress: convert to CONFIG_
Convert the VExpress platform to be using the gic_handle_irq
function as its primary interrupt handler.
Signed-off-by: Marc Zyngier <email address hidden>
commit 1b99d9ccb52d64b
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: RealView: convert to CONFIG_
Convert the RealView platforms to be using the gic_handle_irq
function as their primary interrupt handler.
Signed-off-by: Marc Zyngier <email address hidden>
commit 7e01799c669c604
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: highbank: convert to CONFIG_
Convert the highbank platform to be using the gic_handle_irq
function as its primary interrupt handler.
Cc: Rob Herring <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit fea9fe8329c7415
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 10:23:45 2011 +0100
ARM: imx: convert smp platforms to global gic_handle_irq()
Convert the SMP imx platforms to use the global gic_handle_irq()
function instead a private function.
Cc: Sascha Hauer <email address hidden>
Acked-by: Shawn Guo <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 562e0027d21bf64
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:56:17 2011 +0100
ARM: GIC: Add global gic_handle_irq() function
Provide the GIC code with a low level handler that can be used
by platforms using CONFIG_
Signed-off-by: Marc Zyngier <email address hidden>
commit baeeb8229cace91
Author: Marc Zyngier <email address hidden>
Date: Wed Nov 2 15:28:49 2011 +0000
ARM: mxc: rename gic_handle_irq to avoid name clash
Before introducing a global gic_handle_irq(), rename
MXC's version to mxc_gic_
removed altogether in a later patch.
Cc: Sascha Hauer <email address hidden>
Acked-by: Shawn Guo <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit abeb24ae4d3e543
Author: Marc Zyngier <email address hidden>
Date: Tue Sep 6 09:23:26 2011 +0100
ARM: Make global handler and CONFIG_
Even when CONFIG_
requires the arch_irq_
a fallback.
It turns out nobody is using that particular feature as both PXA
and shmobile have all their machine descriptors populated with
the interrupt handler, leaving unused code (or empty macros) in
their entry-macro.S file just to be able to compile entry-armv.S.
Make CONFIG_
which allows to remove one test from the hot path. Also cleanup both
PXA and shmobile entry-macro.S.
Cc: Paul Mundt <email address hidden>
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Eric Miao <email address hidden>
Tested-by: Jamie Iles <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit db0d4db22a78d31
Author: Marc Zyngier <email address hidden>
Date: Sat Nov 12 16:09:49 2011 +0000
ARM: gic: allow GIC to support non-banked setups
The GIC support code is heavily using the fact that hardware
implementations are exposing banked registers. Unfortunately, it
looks like at least one GIC implementation (EXYNOS) offers both
the distributor and the CPU interfaces at different addresses,
depending on the CPU.
This problem is solved by allowing the distributor and CPU interface
addresses to be per-cpu variables for the platforms that require it.
The EXYNOS code is updated not to mess with the GIC internals while
handling interrupts, and struct gic_chip_data is back to being private.
The DT binding for the gic is updated to allow an optional "cpu-offset"
value, which is used to compute the various base addresses.
Finally, a new config option (GIC_NON_BANKED) is used to control this
feature, so the overhead is only present on kernels compiled with
support for EXYNOS.
Tested on Origen (EXYNOS4) and Panda (OMAP4).
Cc: Kukjin Kim <email address hidden>
Cc: Will Deacon <email address hidden>
Cc: Thomas Abraham <email address hidden>
Acked-by: Rob Herring <email address hidden>
Signed-off-by: Marc Zyngier <email address hidden>
commit 5aafec15bdc54cf
Author: Russell King <email address hidden>
Date: Tue Nov 1 10:15:27 2011 +0000
ARM: restart: remove argument to setup_mm_
setup_
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Acked-by: H Hartley Sweeten <email address hidden>
Acked-by: Tony Lindgren <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit ac15e00b1efe705
Author: Russell King <email address hidden>
Date: Mon Oct 31 09:22:22 2011 +0000
ARM: restart: move reboot failure handing into machine_restart()
Move the failure to reboot into machine_restart() to always catch
this condition, even if a platform decides to hook the restarting
via arm_pm_restart().
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Acked-by: H Hartley Sweeten <email address hidden>
Acked-by: Tony Lindgren <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit 34adeda943e1fb1
Author: Russell King <email address hidden>
Date: Tue Nov 1 16:24:18 2011 +0000
ARM: restart: add default restart modes for PXA mioa701, spitz and tosa
Add a default restart mode to reflect the hard-coded restart mode
found in these files.
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Acked-by: H Hartley Sweeten <email address hidden>
Acked-by: Robert Jarzmik <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit b44c350d4104265
Author: Russell King <email address hidden>
Date: Tue Nov 1 14:27:33 2011 +0000
ARM: restart: allow platforms more flexibility specifying restart mode
Change 'soft_reboot' into a more generic 'restart_mode' variable,
allowing the default restart mode to be specified.
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Acked-by: H Hartley Sweeten <email address hidden>
Signed-off-by: Russell King <email address hidden>
commit a528721da08a793
Author: Russell King <email address hidden>
Date: Fri Nov 4 15:05:24 2011 +0000
ARM: restart: add restart hook to machine_desc record
Add a restart hook to the machine_desc record so we don't have to
populate all platforms with init_early methods to initialize the
arm_pm_restart function pointer.
Acked-by: Nicolas Pitre <email address hidden>
Acked-by: Will Deacon <email address hidden>
Acked-by: H Hartley Sweeten <email address hidden>
Acked-by: Tony Lindgren <email address hidden>
Signed-off-by: Russell King <email address hidden>
0 blueprints and 0 bugs targeted
There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.