14 Oct, 2015
3 commits
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
rpmsg: fill in dma fields for sgs passed to virtio
virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
virtio_ring: revise descriptor addition logic for virtio_rpmsg
virtio_ring: break out vring descriptor setup code
iommu/omap: Fix debug_read_tlb() to use seq_printf()Signed-off-by: Texas Instruments Auto Merger
-
TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.1.y* 'rpmsg-ti-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
rpmsg: fill in dma fields for sgs passed to virtio
virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
virtio_ring: revise descriptor addition logic for virtio_rpmsg
virtio_ring: break out vring descriptor setup code
iommu/omap: Fix debug_read_tlb() to use seq_printf()Signed-off-by: Texas Instruments Auto Merger
-
Pull in the updated rpmsg base feature branch that fixes the
rpmsg communication issues on AM437x PRUSS. The fixes are based
on enhancements to the virtio_ring and virtio_rpmsg_bus drivers
to work properly for buffers allocated from CMA pools from HIGHMEM
or carveouts.The default CMA pools in Linux are allocated from HIGHMEM range
since 3.18 if the platform has large enough memory for HIGHMEM.* 'rpmsg-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
rpmsg: fill in dma fields for sgs passed to virtio
virtio_ring: add virtqueue_add_inbuf/outbuf_rpmsg API
virtio_ring: revise descriptor addition logic for virtio_rpmsg
virtio_ring: break out vring descriptor setup codeSigned-off-by: Suman Anna
13 Oct, 2015
1 commit
-
Expose new variants of virtqueue_add_inbuf() & virtqueue_add_outbuf()
API specifically to deal with virtio_rpmsg. The virtio core in general
expects all the vring buffers to be allocated from linear addresses,
but the virtio_rpmsg can have the buffers in non-linear space due to
its usage of the dma_alloc_coherent() API.Based on a RFC patch from Edgar E. Iglesias ,
http://marc.info/?l=linux-virtualization&m=143047902512226&w=2Signed-off-by: Suman Anna
03 Oct, 2015
1 commit
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
media: i2c: ov2659: Fix sensor detection to actually fail when device is not present
clk: ti: clk-7xx: Remove hardwired ABE clock configuration
ARM: dts: dra7x-evm: add ABE DPLL init setups
ASoC: soc-core: Fix sparse warning in be32_to_cpup() call
ASoC: simple-card: Add tdm slot mask support to simple-card
ASoC: davinci-mcasp: Add set_tdm_slots() support
ASoC: tlv320aic3x: Improve tdm supportSigned-off-by: Texas Instruments Auto Merger
02 Oct, 2015
4 commits
-
…el/audio-display-linux-feature-tree into ti-linux-4.1.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.1.y* 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
media: i2c: ov2659: Fix sensor detection to actually fail when device is not present
clk: ti: clk-7xx: Remove hardwired ABE clock configuration
ARM: dts: dra7x-evm: add ABE DPLL init setups
ASoC: soc-core: Fix sparse warning in be32_to_cpup() call
ASoC: simple-card: Add tdm slot mask support to simple-card
ASoC: davinci-mcasp: Add set_tdm_slots() support
ASoC: tlv320aic3x: Improve tdm supportSigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
commit 6131084a0bc966107021d8c89489f9cd1663b902 upstream
Adds DT binding for explicitly choosing a tdm mask for DAI and uses it
in simple-card. The API for snd_soc_of_parse_tdm_slot() has also been
changed.Signed-off-by: Jyri Sarha
Signed-off-by: Mark Brown -
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (160 commits)
Linux 4.1.9
cxl: Don't remove AFUs/vPHBs in cxl_reset
ipv4: off-by-one in continuation handling in /proc/net/route
net: dsa: Do not override PHY interface if already configured
inet: fix races with reqsk timers
inet: fix possible request socket leak
netlink: make sure -EBUSY won't escape from netlink_insert
bna: fix interrupts storm caused by erroneous packets
bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy
bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy
udp: fix dst races with multicast early demux
rds: fix an integer overflow test in rds_info_getsockopt()
rocker: free netdevice during netdevice removal
net: sched: fix refcount imbalance in actions
act_bpf: fix memory leaks when replacing bpf programs
packet: tpacket_snd(): fix signed/unsigned comparison
packet: missing dev_put() in packet_do_bind()
fib_trie: Drop unnecessary calls to leaf_pull_suffix
net/mlx4_core: Fix wrong index in propagating port change event to VFs
bridge: netlink: fix slave_changelink/br_setport race conditions
...Signed-off-by: Texas Instruments Auto Merger
-
…x-stable into ti-linux-4.1.y
This is the 4.1.9 stable release
* tag 'v4.1.9' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (160 commits)
Linux 4.1.9
cxl: Don't remove AFUs/vPHBs in cxl_reset
ipv4: off-by-one in continuation handling in /proc/net/route
net: dsa: Do not override PHY interface if already configured
inet: fix races with reqsk timers
inet: fix possible request socket leak
netlink: make sure -EBUSY won't escape from netlink_insert
bna: fix interrupts storm caused by erroneous packets
bridge: netlink: account for the IFLA_BRPORT_PROXYARP_WIFI attribute size and policy
bridge: netlink: account for the IFLA_BRPORT_PROXYARP attribute size and policy
udp: fix dst races with multicast early demux
rds: fix an integer overflow test in rds_info_getsockopt()
rocker: free netdevice during netdevice removal
net: sched: fix refcount imbalance in actions
act_bpf: fix memory leaks when replacing bpf programs
packet: tpacket_snd(): fix signed/unsigned comparison
packet: missing dev_put() in packet_do_bind()
fib_trie: Drop unnecessary calls to leaf_pull_suffix
net/mlx4_core: Fix wrong index in propagating port change event to VFs
bridge: netlink: fix slave_changelink/br_setport race conditions
...Signed-off-by: Dan Murphy <DMurphy@ti.com>
Conflicts:
drivers/media/platform/am437x/am437x-vpfe.c
30 Sep, 2015
7 commits
-
[ Upstream commit 28e6b67f0b292f557468c139085303b15f1a678f ]
Since commit 55334a5db5cd ("net_sched: act: refuse to remove bound action
outside"), we end up with a wrong reference count for a tc action.Test case 1:
FOO="1,6 0 0 4294967295,"
BAR="1,6 0 0 4294967294,"
tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 \
action bpf bytecode "$FOO"
tc actions show action bpf
action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe
index 1 ref 1 bind 1
tc actions replace action bpf bytecode "$BAR" index 1
tc actions show action bpf
action order 0: bpf bytecode '1,6 0 0 4294967294' default-action pipe
index 1 ref 2 bind 1
tc actions replace action bpf bytecode "$FOO" index 1
tc actions show action bpf
action order 0: bpf bytecode '1,6 0 0 4294967295' default-action pipe
index 1 ref 3 bind 1Test case 2:
FOO="1,6 0 0 4294967295,"
tc filter add dev foo parent 1: bpf bytecode "$FOO" flowid 1:1 action ok
tc actions show action gact
action order 0: gact action pass
random type none pass val 0
index 1 ref 1 bind 1
tc actions add action drop index 1
RTNETLINK answers: File exists [...]
tc actions show action gact
action order 0: gact action pass
random type none pass val 0
index 1 ref 2 bind 1
tc actions add action drop index 1
RTNETLINK answers: File exists [...]
tc actions show action gact
action order 0: gact action pass
random type none pass val 0
index 1 ref 3 bind 1What happens is that in tcf_hash_check(), we check tcf_common for a given
index and increase tcfc_refcnt and conditionally tcfc_bindcnt when we've
found an existing action. Now there are the following cases:1) We do a late binding of an action. In that case, we leave the
tcfc_refcnt/tcfc_bindcnt increased and are done with the ->init()
handler. This is correctly handeled.2) We replace the given action, or we try to add one without replacing
and find out that the action at a specific index already exists
(thus, we go out with error in that case).In case of 2), we have to undo the reference count increase from
tcf_hash_check() in the tcf_hash_check() function. Currently, we fail to
do so because of the 'tcfc_bindcnt > 0' check which bails out early with
an -EPERM error.Now, while commit 55334a5db5cd prevents 'tc actions del action ...' on an
already classifier-bound action to drop the reference count (which could
then become negative, wrap around etc), this restriction only accounts for
invocations outside a specific action's ->init() handler.One possible solution would be to add a flag thus we possibly trigger
the -EPERM ony in situations where it is indeed relevant.After the patch, above test cases have correct reference count again.
Fixes: 55334a5db5cd ("net_sched: act: refuse to remove bound action outside")
Signed-off-by: Daniel Borkmann
Reviewed-by: Cong Wang
Signed-off-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman -
[ Upstream commit 03645a11a570d52e70631838cb786eb4253eb463 ]
ip6_datagram_connect() is doing a lot of socket changes without
socket being locked.This looks wrong, at least for udp_lib_rehash() which could corrupt
lists because of concurrent udp_sk(sk)->udp_portaddr_hash accesses.Signed-off-by: Eric Dumazet
Acked-by: Herbert Xu
Signed-off-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman -
commit 841df7df196237ea63233f0f9eaa41db53afd70f upstream.
Commit 6f6a6fda2945 "jbd2: fix ocfs2 corrupt when updating journal
superblock fails" changed jbd2_cleanup_journal_tail() to return EIO
when the journal is aborted. That makes logic in
jbd2_log_do_checkpoint() bail out which is fine, except that
jbd2_journal_destroy() expects jbd2_log_do_checkpoint() to always make
a progress in cleaning the journal. Without it jbd2_journal_destroy()
just loops in an infinite loop.Fix jbd2_journal_destroy() to cleanup journal checkpoint lists of
jbd2_log_do_checkpoint() fails with error.Reported-by: Eryu Guan
Tested-by: Eryu Guan
Fixes: 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a
Signed-off-by: Jan Kara
Signed-off-by: Theodore Ts'o
Signed-off-by: Greg Kroah-Hartman -
commit 11cec15bf3fb498206ef63b1fa26c27689e02d0e upstream.
The number of TLB lines was increased from 16 on Tegra30 to 32 on
Tegra114 and later. Parameterize the value so that the initial default
can be set accordingly.On Tegra30, initializing the value to 32 would effectively disable the
TLB and hence cause massive latencies for memory accesses translated
through the SMMU. This is especially noticeable for isochronuous clients
such as display, whose FIFOs would continuously underrun.Fixes: 891846516317 ("memory: Add NVIDIA Tegra memory controller support")
Signed-off-by: Thierry Reding
Signed-off-by: Greg Kroah-Hartman -
commit 0fdea1e8a2853f79d39b8555cc9de16a7e0ab26f upstream.
Commit 718ba5b87343, moved the responsibility for unlocking the socket to
xs_tcp_setup_socket, meaning that the socket will be unlocked before we
know that it has finished trying to connect. The following patch is based on
an initial patch by Russell King to ensure that we delay clearing the
XPRT_CONNECTING flag until we either know that we failed to initiate
a connection attempt, or the connection attempt itself failed.Fixes: 718ba5b87343 ("SUNRPC: Add helpers to prevent socket create from racing")
Reported-by: Russell King
Reported-by: Russell King
Tested-by: Russell King
Tested-by: Benjamin Coddington
Signed-off-by: Trond Myklebust
Signed-off-by: Greg Kroah-Hartman -
commit 051ac3848a94f21cfdec899cc9c65ce7f9f116fa upstream.
`perf stat -e sunrpc:svc_xprt_do_enqueue true` results in
Warning: unknown op '->'
Warning: [sunrpc:svc_xprt_do_enqueue] unknown op '->'Similar warning for svc_handle_xprt as well.
Actually TP_printk() should never dereference an address saved in the ring
buffer that points somewhere in the kernel. There's no guarantee that that
object still exists (with the exception of static strings).Therefore change all the arguments for TP_printk(), so that it references
values existing in the ring buffer only.While doing that, also fix another possible bug when argument xprt could be
NULL and TP_fast_assign() tries to access it's elements.Signed-off-by: Pratyush Anand
Reviewed-by: Jeff Layton
Acked-by: Steven Rostedt
Fixes: 83a712e0afef "sunrpc: add some tracepoints around ..."
Signed-off-by: J. Bruce Fields
Signed-off-by: Greg Kroah-Hartman -
commit 2f064f3485cd29633ad1b3cfb00cc519509a3d72 upstream.
Commit c48a11c7ad26 ("netvm: propagate page->pfmemalloc to skb") added
checks for page->pfmemalloc to __skb_fill_page_desc():if (page->pfmemalloc && !page->mapping)
skb->pfmemalloc = true;It assumes page->mapping == NULL implies that page->pfmemalloc can be
trusted. However, __delete_from_page_cache() can set set page->mapping
to NULL and leave page->index value alone. Due to being in union, a
non-zero page->index will be interpreted as true page->pfmemalloc.So the assumption is invalid if the networking code can see such a page.
And it seems it can. We have encountered this with a NFS over loopback
setup when such a page is attached to a new skbuf. There is no copying
going on in this case so the page confuses __skb_fill_page_desc which
interprets the index as pfmemalloc flag and the network stack drops
packets that have been allocated using the reserves unless they are to
be queued on sockets handling the swapping which is the case here and
that leads to hangs when the nfs client waits for a response from the
server which has been dropped and thus never arrive.The struct page is already heavily packed so rather than finding another
hole to put it in, let's do a trick instead. We can reuse the index
again but define it to an impossible value (-1UL). This is the page
index so it should never see the value that large. Replace all direct
users of page->pfmemalloc by page_is_pfmemalloc which will hide this
nastiness from unspoiled eyes.The information will get lost if somebody wants to use page->index
obviously but that was the case before and the original code expected
that the information should be persisted somewhere else if that is
really needed (e.g. what SLAB and SLUB do).[akpm@linux-foundation.org: fix blooper in slub]
Fixes: c48a11c7ad26 ("netvm: propagate page->pfmemalloc to skb")
Signed-off-by: Michal Hocko
Debugged-by: Vlastimil Babka
Debugged-by: Jiri Bohac
Cc: Eric Dumazet
Cc: David Miller
Acked-by: Mel Gorman
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman
26 Sep, 2015
2 commits
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (184 commits)
Linux 4.1.8
ARM: rockchip: fix broken build
fs: create and use seq_show_option for escaping
hpfs: update ctime and mtime on directory modification
fs: Set the size of empty dirs to 0.
drivercore: Fix unregistration path of platform devices
ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
ARM: dts: rockchip: fix rk3288 watchdog irq
ARM: rockchip: fix the CPU soft reset
ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
ARM: orion5x: fix legacy orion5x IRQ numbers
of/address: Don't loop forever in of_find_matching_node_by_address().
soc/tegra: pmc: Avoid usage of uninitialized variable
x86/mce: Reenable CMCI banks when swiching back to interrupt mode
regulator: pbias: Fix broken pbias disable functionality
auxdisplay: ks0108: fix refcount
spi/spi-xilinx: Fix mixed poll/irq mode
spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
Doc: ABI: testing: configfs-usb-gadget-sourcesink
...Signed-off-by: Texas Instruments Auto Merger
-
…x-stable into ti-linux-4.1.y
This is the 4.1.8 stable release
* tag 'v4.1.8' of http://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (184 commits)
Linux 4.1.8
ARM: rockchip: fix broken build
fs: create and use seq_show_option for escaping
hpfs: update ctime and mtime on directory modification
fs: Set the size of empty dirs to 0.
drivercore: Fix unregistration path of platform devices
ACPI, PCI: Penalize legacy IRQ used by ACPI SCI
ARM: dts: rockchip: fix rk3288 watchdog irq
ARM: rockchip: fix the CPU soft reset
ARM: OMAP2+: DRA7: clockdomain: change l4per2_7xx_clkdm to SW_WKUP
ARM: dts: fix clock-frequency of display timing0 for exynos3250-rinato
ARM: orion5x: fix legacy orion5x IRQ numbers
of/address: Don't loop forever in of_find_matching_node_by_address().
soc/tegra: pmc: Avoid usage of uninitialized variable
x86/mce: Reenable CMCI banks when swiching back to interrupt mode
regulator: pbias: Fix broken pbias disable functionality
auxdisplay: ks0108: fix refcount
spi/spi-xilinx: Fix mixed poll/irq mode
spi/spi-xilinx: Fix spurious IRQ ACK on irq mode
Doc: ABI: testing: configfs-usb-gadget-sourcesink
...Signed-off-by: Dan Murphy <DMurphy@ti.com>
Conflicts:
arch/arm/mm/proc-v7.S
22 Sep, 2015
4 commits
-
commit a068acf2ee77693e0bf39d6e07139ba704f461c3 upstream.
Many file systems that implement the show_options hook fail to correctly
escape their output which could lead to unescaped characters (e.g. new
lines) leaking into /proc/mounts and /proc/[pid]/mountinfo files. This
could lead to confusion, spoofed entries (resulting in things like
systemd issuing false d-bus "mount" notifications), and who knows what
else. This looks like it would only be the root user stepping on
themselves, but it's possible weird things could happen in containers or
in other situations with delegated mount privileges.Here's an example using overlay with setuid fusermount trusting the
contents of /proc/mounts (via the /etc/mtab symlink). Imagine the use
of "sudo" is something more sneaky:$ BASE="ovl"
$ MNT="$BASE/mnt"
$ LOW="$BASE/lower"
$ UP="$BASE/upper"
$ WORK="$BASE/work/ 0 0
none /proc fuse.pwn user_id=1000"
$ mkdir -p "$LOW" "$UP" "$WORK"
$ sudo mount -t overlay -o "lowerdir=$LOW,upperdir=$UP,workdir=$WORK" none /mnt
$ cat /proc/mounts
none /root/ovl/mnt overlay rw,relatime,lowerdir=ovl/lower,upperdir=ovl/upper,workdir=ovl/work/ 0 0
none /proc fuse.pwn user_id=1000 0 0
$ fusermount -u /proc
$ cat /proc/mounts
cat: /proc/mounts: No such file or directoryThis fixes the problem by adding new seq_show_option and
seq_show_option_n helpers, and updating the vulnerable show_option
handlers to use them as needed. Some, like SELinux, need to be open
coded due to unusual existing escape mechanisms.[akpm@linux-foundation.org: add lost chunk, per Kees]
[keescook@chromium.org: seq_show_option should be using const parameters]
Signed-off-by: Kees Cook
Acked-by: Serge Hallyn
Acked-by: Jan Kara
Acked-by: Paul Moore
Cc: J. R. Okajima
Signed-off-by: Kees Cook
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
Signed-off-by: Greg Kroah-Hartman -
commit 5d0ddfebb93069061880fc57ee4ba7246bd1e1ee upstream.
Nick Meier reported a regression with HyperV that "
After rebooting the VM, the following messages are logged in syslog
when trying to load the tulip driver:
tulip: Linux Tulip drivers version 1.1.15 (Feb 27, 2007)
tulip: 0000:00:0a.0: PCI INT A: failed to register GSI
tulip: Cannot enable tulip board #0, aborting
tulip: probe of 0000:00:0a.0 failed with error -16
Errors occur in 3.19.0 kernel
Works in 3.17 kernel.
"According to the ACPI dump file posted by Nick at
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072The ACPI MADT table includes an interrupt source overridden entry for
ACPI SCI:
[236h 0566 1] Subtable Type : 02
[237h 0567 1] Length : 0A
[238h 0568 1] Bus : 00
[239h 0569 1] Source : 09
[23Ah 0570 4] Interrupt : 00000009
[23Eh 0574 2] Flags (decoded below) : 000D
Polarity : 1
Trigger Mode : 3And in DSDT table, we have _PRT method to define PCI interrupts, which
eventually goes to:
Name (PRSA, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
Name (PRSB, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
Name (PRSC, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})
Name (PRSD, ResourceTemplate ()
{
IRQ (Level, ActiveLow, Shared, )
{3,4,5,7,9,10,11,12,14,15}
})According to the MADT and DSDT tables, IRQ 9 may be used for:
1) ACPI SCI in level, high mode
2) PCI legacy IRQ in level, low mode
So there's a conflict in polarity setting for IRQ 9.Prior to commit cd68f6bd53cf ("x86, irq, acpi: Get rid of special
handling of GSI for ACPI SCI"), ACPI SCI is handled specially and
there's no check for conflicts between ACPI SCI and PCI legagy IRQ.
And it seems that the HyperV hypervisor doesn't make use of the
polarity configuration in IOAPIC entry, so it just works.Commit cd68f6bd53cf gets rid of the specially handling of ACPI SCI,
and then the pin attribute checking code discloses the conflicts
between ACPI SCI and PCI legacy IRQ on HyperV virtual machine,
and rejects the request to assign IRQ9 to PCI devices.So penalize legacy IRQ used by ACPI SCI and mark it unusable if ACPI
SCI attributes conflict with PCI IRQ attributes.Please refer to following links for more information:
https://bugzilla.kernel.org/show_bug.cgi?id=101301
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440072Fixes: cd68f6bd53cf ("x86, irq, acpi: Get rid of special handling of GSI for ACPI SCI")
Reported-and-tested-by: Nick Meier
Acked-by: Thomas Gleixner
Signed-off-by: Jiang Liu
Signed-off-by: Rafael J. Wysocki
Signed-off-by: Greg Kroah-Hartman -
commit 932c435caba8a2ce473a91753bad0173269ef334 upstream.
Add a dev_flags bit, PCI_DEV_FLAGS_VPD_REF_F0, to access VPD through
function 0 to provide VPD access on other functions. This is for hardware
devices that provide copies of the same VPD capability registers in
multiple functions. Because the kernel expects that each function has its
own registers, both the locking and the state tracking are affected by VPD
accesses to different functions.On such devices for example, if a VPD write is performed on function 0,
*any* later attempt to read VPD from any other function of that device will
hang. This has to do with how the kernel tracks the expected value of the
F bit per function.Concurrent accesses to different functions of the same device can not only
hang but also corrupt both read and write VPD data.When hangs occur, typically the error message:
vpd r/w failed. This is likely a firmware bug on this device.
will be seen.
Never set this bit on function 0 or there will be an infinite recursion.
Signed-off-by: Mark Rustad
Signed-off-by: Bjorn Helgaas
Acked-by: Alexander Duyck
Signed-off-by: Greg Kroah-Hartman -
commit c689a923c867eac40ed3826c1d9328edea8b6bc7 upstream.
Add inverse unit conversion macro to convert from standard IIO units to
units that might be used by some devices.Those are useful in combination with scale factors that are specified as
IIO_VAL_FRACTIONAL. Typically the denominator for those specifications will
contain the maximum raw value the sensor will generate and the numerator
the value it maps to in a specific unit. Sometimes datasheets specify those
in different units than the standard IIO units (e.g. degree/s instead of
rad/s) and so we need to do a unit conversion.From a mathematical point of view it does not make a difference whether we
apply the unit conversion to the numerator or the inverse unit conversion
to the denominator since (x / y) / z = x / (y * z). But as the denominator
is typically a larger value and we are rounding both the numerator and
denominator to integer values using the later method gives us a better
precision (E.g. the relative error is smaller if we round 8000.3 to 8000
rather than rounding 8.3 to 8).This is where in inverse unit conversion macros will be used.
Marked for stable as used by some upcoming fixes.
Signed-off-by: Lars-Peter Clausen
Signed-off-by: Jonathan Cameron
Signed-off-by: Greg Kroah-Hartman
17 Sep, 2015
1 commit
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
HACK: UAPI: Increasing VIDEO_MAX_FRAME to 128.
HACK: dra7-evm: fix usb id detection after suspend/resume
extcon: usb-gpio: Don't miss event during suspend/resume
usb: otg: fix state_changed flag for drd state machine
usb: dwc3: core: fix system suspend/resumeSigned-off-by: Texas Instruments Auto Merger
16 Sep, 2015
1 commit
-
This is required because on TI SoC, the IVA_HD can consume as many as
32 buffers for some H.264 streams. And each buffer can contain plane/field
data as Y-top, Y-bottom, UV-top and UV-bottom. Each field will be treated
as a separate FRAME.This is a hack because it is not upstreamable as is.
The VIDEO_MAX_FRAME constant is also used for the older videobuf
based driver and we do not have any idea of the impact there.
Please note that the buffer related internal structure in videobuf2 uses
array to keep track of buffers so this change increase their size
accordingly regardless of the fact that a specific driver/application only
needs 8 buffers for example.
There was a discussion in the upstream mailing list but nothing
concrete so far: (see provided link)
http://www.spinics.net/lists/linux-media/msg81859.htmlSo this change is tentative until a better solution is available.
Signed-off-by: Somnath Mukherjee
Signed-off-by: Nikhil Devshatwar
Signed-off-by: Benoit Parrot
Signed-off-by: Jyri Sarha
14 Sep, 2015
5 commits
-
commit b7560de198222994374c1340a389f12d5efb244a upstream.
This helper is required for irq chips which do not implement a
irq_set_type callback and need to call down the irq domain hierarchy
for the actual trigger type change.This helper is required to fix further wreckage caused by the
conversion of TI OMAP to hierarchical irq domains and therefor tagged
for stable.[ tglx: Massaged changelog ]
Signed-off-by: Grygorii Strashko
Cc: Sudeep Holla
Cc:
Cc:
Cc:
Cc:
Cc:
Cc:
Cc:
Cc: stable@vger.kernel.org # 4.1
Link: http://lkml.kernel.org/r/1439554830-19502-3-git-send-email-grygorii.strashko@ti.com
Signed-off-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman -
commit 74a80d67b8316eb3fbeb73dafc060a5a0a708587 upstream.
This reverts commit 42b966fbf35da9c87f08d98f9b8978edf9e717cf.
As implemented, ACS-4 sense reporting for ATA devices bypasses error
diagnosis and handling in libata degrading EH behavior significantly.
Revert the related changes for now.Signed-off-by: Tejun Heo
Cc: Hannes Reinecke
Signed-off-by: Greg Kroah-Hartman -
commit 84ded2f8e7dda336fc2fb3570726ceb3b3b3590f upstream.
This reverts commit fe7173c206de63fc28475ee6ae42ff95c05692de.
As implemented, ACS-4 sense reporting for ATA devices bypasses error
diagnosis and handling in libata degrading EH behavior significantly.
Revert the related changes for now.ATA_ID_COMMAND_SET_3/4 constants are not reverted as they're used by
later changes.Signed-off-by: Tejun Heo
Cc: Hannes Reinecke
Signed-off-by: Greg Kroah-Hartman -
commit fe16d4f202c59a560533a223bc6375739ee30944 upstream.
This reverts commit a1524f226a02aa6edebd90ae0752e97cfd78b159.
As implemented, ACS-4 sense reporting for ATA devices bypasses error
diagnosis and handling in libata degrading EH behavior significantly.
Revert the related changes for now.Signed-off-by: Tejun Heo
Cc: Hannes Reinecke
Signed-off-by: Greg Kroah-Hartman -
commit e037239e5e7b61007763984aa35a8329596d8c88 upstream.
Signed-off-by: Alex Deucher
Signed-off-by: Greg Kroah-Hartman
05 Sep, 2015
2 commits
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
ARM: OMAP2+: Use pdata-quirks for sgx deassert_hardresetSigned-off-by: Texas Instruments Auto Merger
-
Use pdata_quirks to provide platform data to the sgx driver. This is
used to provide a function pointer for the sgx driver to access
omap_device_deassert_hardreset along with the reset name as defined in
the corresponding hwmod entry.This platform data will not be required when a separate reset driver is
available allowing decoupling from omap_hwmod and omap_device.Signed-off-by: Darren Etheridge
Signed-off-by: Eric Ruei
Reviewed-by: Suman Anna
Signed-off-by: Jyri Sarha
03 Sep, 2015
3 commits
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
DT: gpu: add binding for TI SGX driver
ARM: dts: DRA7xx: add device tree entry for SGX
ARM: DRA7: Add gpu hwmod data
HACK: drm/omap: Add omapdrm plugin API
drm/omap: remove unused plugin definesSigned-off-by: Texas Instruments Auto Merger
-
…el/audio-display-linux-feature-tree into ti-linux-4.1.y
TI-Feature: audio-display
TI-Tree: git@git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree.git
TI-Branch: audio-display-ti-linux-4.1.y* 'audio-display-ti-linux-4.1.y' of git.ti.com:~darrene/ti-linux-kernel/audio-display-linux-feature-tree:
DT: gpu: add binding for TI SGX driver
ARM: dts: DRA7xx: add device tree entry for SGX
ARM: DRA7: Add gpu hwmod data
HACK: drm/omap: Add omapdrm plugin API
drm/omap: remove unused plugin definesSigned-off-by: Texas Instruments Auto Merger <lcpd_integration@list.ti.com>
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel:
ARM: DTS: dra7xx-evm-lcd-osd: Add support for capacitive touch controller
Input: edt-ft5x06 - Add compatible field for FT5506
Input: edt-ft5x06 - Switch to newer gpio framework
ARM: OMAP2+: instantiate pm33xx as a platform_driver
ARM: OMAP2+: Make pm33xx defer probe if we can not open rtc0
ARM: OMAP2+: Convert pm33xx to module_platform_driver
ti_config_fragments/baseport.cfg: switch to slub allocator by default
ti_config_fragments: add a DRA7 only build configuration
ti_config_fragments/am43x_only.cfg: Create a separate config fragment for am43xx devices
ti_config_fragments/am33x_only.cfg: Create a separate config fragment for am33xx devicesSigned-off-by: Texas Instruments Auto Merger
02 Sep, 2015
3 commits
-
This patch enables SGX driver to be added as a plugin to omapdrm. This
is a HACK, and must be reverted/rewritten when proper DRM-SGX interop is
implemented.As this is a HACK, the code is wrapped with CONFIG_DRM_OMAP_SGX_PLUGIN,
and grouped together and separated from the main omapdrm code when
possible. This means checkpatch will complain a bit, but this should
make it easier to revert this later and to avoid conflicts with
mainline.Main changes involved:
1. SGX specific GEM VM operations
SGX requires contiguous memory for both texture memory as well
as framebuffers.Memory allocation of FB is done through omapdrm and is guaranteed
to be contiguous.Texture memory can come from:
a. user space allocated memory
b. memory is allocated by other cores
c. memory comes from CMATexture memory can be non-contiguous, but is wrapped as GEM
objects which enables the use of TILER to map them as contiguous
memory to the SGX HW.2. Support for ioctls from plugin driver
SGX driver registers as a plugin to the omapdrm driver. During
registration, SGX specific ioctls are added to omapdrm. This allows
user space to control specific SGX feature sets using the DRM FD.3. Export GEM functions
SGX driver needs to work directly on GEM objects for DSS
synchronization, getting TILER address, etc.Signed-off-by: Rob Clark
Signed-off-by: Subhajit Paul
Signed-off-by: Tomi Valkeinen
Signed-off-by: Anand Balagopalakrishnan
Signed-off-by: Jyri Sarha -
Remove unused defines related to SGX plugin which are not used.
Signed-off-by: Tomi Valkeinen
Signed-off-by: Jyri Sarha -
The current/old gpio framework used doesn't properly listen to
ACTIVE_LOW and ACTIVE_HIGH flags. The newer gpio framework takes into
account these flags when setting gpio values.Since the values being outputed were base on voltage and not logic the
values being outputted must change to refect this difference. Also use
gpiod_set_value_cansleep since wake and reset pins can be provided by
bus based io expanders.Switch from msleep(5) to udelay_range(5000,6000) to avoid check patch
warning.Signed-off-by: Franklin S Cooper Jr
Signed-off-by: Sekhar Nori
29 Aug, 2015
3 commits
-
TI-Feature: ti_linux_base_lsk
TI-Tree: git@git.ti.com:ti-linux-kernel/ti-linux-kernel.git
TI-Branch: ti-linux-4.1.y* 'ti-linux-4.1.y' of git.ti.com:ti-linux-kernel/ti-linux-kernel: (61 commits)
net/rpmsg: unblock reader threads operating on errored sockets
net/rpmsg: return ENOLINK upon Rx on errored sockets
net/rpmsg: return ESHUTDOWN upon Tx on errored sockets
net/rpmsg: set error status on open sockets after recovery
net/rpmsg: store remote processor id in rpmsg_socket
net/rpmsg: use a list to track all connected sockets
net/rpmsg: add a check to not support multiple published channels
net/rpmsg: fix memory leak of vrp_channels radix tree
net/rpmsg: add support for new rpmsg sockets
rpmsg: add api for creating and deleting rpmsg channels
TEMP: remoteproc: add legacy support to handle internal memories
ARM: dts: beagle-x15: Enable PRU-ICSS and the child PRU nodes
ARM: DRA7: hwmod_data: Add PRU-ICSS data for AM57xx variants
ARM: dts: beagle-x15: Add mailboxes to the PRU nodes
ARM: dts: DRA7: Add the PRU-ICSS nodes
remoteproc/pruss: add support for PRU-ICSS subsystems on AM57xx SoCs
TI-Integration: add new J6 LCD to A&D fragment
ARM: DTS: dra7xx-evm: add support for new OSD LCD
ARM: DTS: dra7xx-evm: separate LCD DT data
OMAPDSS: Add driver for Toshiba TC358768
...Signed-off-by: Texas Instruments Auto Merger
-
TI-Feature: rpmsg
TI-Tree: git://git.ti.com/rpmsg/rpmsg.git
TI-Branch: rpmsg-ti-linux-4.1.y* 'rpmsg-ti-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg: (37 commits)
net/rpmsg: unblock reader threads operating on errored sockets
net/rpmsg: return ENOLINK upon Rx on errored sockets
net/rpmsg: return ESHUTDOWN upon Tx on errored sockets
net/rpmsg: set error status on open sockets after recovery
net/rpmsg: store remote processor id in rpmsg_socket
net/rpmsg: use a list to track all connected sockets
net/rpmsg: add a check to not support multiple published channels
net/rpmsg: fix memory leak of vrp_channels radix tree
net/rpmsg: add support for new rpmsg sockets
rpmsg: add api for creating and deleting rpmsg channels
TEMP: remoteproc: add legacy support to handle internal memories
ARM: dts: beagle-x15: Enable PRU-ICSS and the child PRU nodes
ARM: DRA7: hwmod_data: Add PRU-ICSS data for AM57xx variants
ARM: dts: beagle-x15: Add mailboxes to the PRU nodes
ARM: dts: DRA7: Add the PRU-ICSS nodes
remoteproc/pruss: add support for PRU-ICSS subsystems on AM57xx SoCs
remoteproc/pruss: add support for PRU-ICSS1 on AM437x SoCs
ARM: OMAP2+: extend pruss pdata-quirks to AM4372
ARM: dts: AM4372: Add the PRU-ICSS1 DT node
remoteproc/pruss: add pru-specific debugfs support
...Signed-off-by: Dan Murphy
Conflicts:
arch/arm/boot/dts/am57xx-beagle-x15.dts
arch/arm/mach-omap2/omap_hwmod_7xx_data.c
arch/arm/mach-omap2/pdata-quirks.c -
Pull in the updated rpmsg base feature branch that adds a new
rpmsg bus driver, rpmsg-proto. The rpmsg-proto driver implements
a remote processor socket interface, and supports the MessageQ
API in the IPC product.The merge also includes an temporary enhancement to the rpmsg
core to enable the rpmsg-proto driver and various bug fixes during
error recovery with active open sockets.* 'rpmsg-linux-4.1.y' of git://git.ti.com/rpmsg/rpmsg:
net/rpmsg: unblock reader threads operating on errored sockets
net/rpmsg: return ENOLINK upon Rx on errored sockets
net/rpmsg: return ESHUTDOWN upon Tx on errored sockets
net/rpmsg: set error status on open sockets after recovery
net/rpmsg: store remote processor id in rpmsg_socket
net/rpmsg: use a list to track all connected sockets
net/rpmsg: add a check to not support multiple published channels
net/rpmsg: fix memory leak of vrp_channels radix tree
net/rpmsg: add support for new rpmsg sockets
rpmsg: add api for creating and deleting rpmsg channelsSigned-off-by: Suman Anna