Skip to content

Commit cf4aa1e

Browse files
mmotm auto importhnaz
authored andcommitted
linux-next
GIT 4e757c85baca72dda85112d53a2d8e799a640f48 commit 4675390a9e7183bf45590e84a183e22e32c485a7 Author: Geert Uytterhoeven <[email protected]> Date: Mon Dec 7 10:09:06 2015 +0100 ethernet: aurora: AURORA_NB8800 should depend on HAS_DMA If NO_DMA=y: ERROR: "dma_map_single" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_unmap_page" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_sync_single_for_cpu" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_unmap_single" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_alloc_coherent" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_mapping_error" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_map_page" [drivers/net/ethernet/aurora/nb8800.ko] undefined! ERROR: "dma_free_coherent" [drivers/net/ethernet/aurora/nb8800.ko] undefined! Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Mans Rullgard <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 668dda06d48fc16a5b40e6a32057bd18589e3f95 Author: Sunil Goutham <[email protected]> Date: Mon Dec 7 10:30:33 2015 +0530 net, thunderx: Remove unnecessary rcv buffer start address management Since we have moved on to using allocated pages to carve receive buffers instead of netdev_alloc_skb() there is no need to store any pointers for later retrieval. Earlier we had to store skb and skb->data pointers which later are used to handover received packet to network stack. This will avoid an unnecessary cache miss as well. Signed-off-by: Sunil Goutham <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit b45ceb406e4fd3045180b8d70bff60b1d43c7ff4 Author: Yury Norov <[email protected]> Date: Mon Dec 7 10:30:32 2015 +0530 net: thunderx: nicvf_queues: nivc_*_intr: remove duplication The same switch-case repeates for nivc_*_intr functions. In this patch it is moved to a helper nicvf_int_type_to_mask(). By the way: - Unneeded write to NICVF register dropped if int_type is unknown. - netdev_dbg() is used instead of netdev_err(). Signed-off-by: Yury Norov <[email protected]> Signed-off-by: Aleksey Makarov <[email protected]> Acked-by: Vadim Lomovtsev <[email protected]> Signed-off-by: Sunil Goutham <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 2dc487b6ebe8593d694034680389579edc7c1bd6 Author: Andrew Lunn <[email protected]> Date: Wed Dec 2 00:33:32 2015 +0100 ARM: mvebu: update v5 defconfig for Orion5x machines Now that Orion5x is part of the multiarch kernel, add it to mvebu_v5_defconfig. Signed-off-by: Andrew Lunn <[email protected]> Signed-off-by: Gregory CLEMENT <[email protected]> commit 5ff2a92d4e131a846fdb0aa91b50c46efc7d94c9 Author: Andrew Lunn <[email protected]> Date: Wed Dec 2 00:33:31 2015 +0100 ARM: mvebu: Reenable DSA in mvebu_v5_defconfig DSA now depends on switchdev. Enable it, and re-enable DSA and its drivers, which were removed when mvebu_v5_defconfig was regenerated. Signed-off-by: Andrew Lunn <[email protected]> Signed-off-by: Gregory CLEMENT <[email protected]> commit f549707af5650162434a8627c95482a829555450 Author: Borislav Petkov <[email protected]> Date: Mon Nov 30 19:02:01 2015 +0100 EDAC: Rework workqueue handling Hide the EDAC workqueue pointer in a separate compilation unit and add accessors for the workqueue manipulations needed. Remove edac_pci_reset_delay_period() which wasn't used by anything. It seems it got added without a user with 91b99041c1d5 ("drivers/edac: updated PCI monitoring") Signed-off-by: Borislav Petkov <[email protected]> commit 56fb0cc3b7b6a02b90f2e3457702f014259b1e24 Author: Dmitry Eremin-Solenikov <[email protected]> Date: Tue Nov 17 04:38:15 2015 +0300 video: fbdev: rivafb: unlock chip before probiding EDID At least NV3 requires for chip to be unlocked before it is possible to access I2C registers. Without it, it is not possible to read EDID. Signed-off-by: Dmitry Eremin-Solenikov <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> commit c5fec49f4208f67ef4574af956091093b11c566a Author: Arnd Bergmann <[email protected]> Date: Fri Nov 20 22:48:36 2015 +0100 fbdev: sm712fb: avoid unused function warnings The sm712fb framebuffer driver encloses the power-management functions in #ifdef CONFIG_PM, but the smtcfb_pci_suspend/resume functions are only really used when CONFIG_PM_SLEEP is also set, as a frequent gcc warning shows: fbdev/sm712fb.c:1549:12: warning: 'smtcfb_pci_suspend' defined but not used fbdev/sm712fb.c:1572:12: warning: 'smtcfb_pci_resume' defined but not used The driver also avoids using the SIMPLE_DEV_PM_OPS macro when CONFIG_PM is unset, which is redundant. This changes the driver to remove the #ifdef and instead mark the functions as __maybe_unused, which is a nicer anyway, as it provides build testing for all the code in all configurations and is harder to get wrong. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> commit 0f08cf9f7bdf80ebe1ec366de43cd251e39d1e2d Author: Arnd Bergmann <[email protected]> Date: Fri Nov 20 22:47:41 2015 +0100 fbdev: auo_k190x: avoid unused function warnings The auo_k190x framebuffer driver encloses the power-management functions in #ifdef CONFIG_PM, but the auok190x_suspend/resume functions are only really used when CONFIG_PM_SLEEP is also set, as a frequent gcc warning shows: drivers/video/fbdev/auo_k190x.c:859:12: warning: 'auok190x_suspend' defined but not used drivers/video/fbdev/auo_k190x.c:899:12: warning: 'auok190x_resume' defined but not used This changes the driver to remove the #ifdef and instead mark the functions as __maybe_unused, which is a nicer anyway, as it provides build testing for all the code in all configurations and is harder to get wrong. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> commit 2a48fd5f89910ed6ed45a953f886de249b496b6c Author: Tejun Heo <[email protected]> Date: Mon Dec 7 10:58:57 2015 -0500 workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue Task or work item involved in memory reclaim trying to flush a non-WQ_MEM_RECLAIM workqueue or one of its work items can lead to deadlock. Trigger WARN_ONCE() if such conditions are detected. Signed-off-by: Tejun Heo <[email protected]> Cc: Peter Zijlstra <[email protected]> commit 1add6cb735c5a8e9f411d16680b60c0b6a66de49 Author: Arnd Bergmann <[email protected]> Date: Fri Nov 27 15:33:11 2015 +0100 fbdev: sis: enforce selection of at least one backend The sis framebuffer driver complains with a compile-time warning if neither the FB_SIS_300 nor FB_SIS_315 symbols are selected: drivers/video/fbdev/sis/sis_main.c:61:2: warning: #warning Neither CONFIG_FB_SIS_300 nor CONFIG_FB_SIS_315 is se This is reasonable because it doesn't work in that case, but it's also annoying for randconfig builds and is one of the most common warnings I'm seeing on ARM now. This changes the Kconfig logic to prevent the silly configuration, by always selecting the FB_SIS_300 variant if the other one is not set. Signed-off-by: Arnd Bergmann <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> commit bfc98c9c2e0ced00b79771bb65f1a79fd02041dd Author: Dan Carpenter <[email protected]> Date: Fri Dec 4 16:14:58 2015 +0300 OMAPDSS: DSS: fix a warning message The WARN() macro has to take a condition. The current code will just print the stack trace and the function name instead of the intended warning message. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> commit b79f09261174f0782f6d6b7b3fe48eb4b0ec9d06 Author: Geert Uytterhoeven <[email protected]> Date: Fri Dec 4 17:01:43 2015 +0100 fbdev: Remove unused SH-Mobile HDMI driver As of commit 44d88c754e57a6d9 ("ARM: shmobile: Remove legacy SoC code for R-Mobile A1"), the SH-Mobile HDMI driver is no longer used. In theory it could still be used on R-Mobile A1 SoCs, but that requires adding DT support to the driver, which is not planned. Remove the driver, it can be resurrected from git history when needed. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Simon Horman <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]> commit e11362bb25d97ea1cbe9e3b1e5f3d32aa4e75e13 Author: Yuan Sun <[email protected]> Date: Mon Dec 7 10:28:46 2015 -0500 Subject: cgroup: Fix incomplete dd command in blkio documentation Signed-off-by: Yuan Sun <[email protected]> Signed-off-by: Tejun Heo <[email protected]> commit 2286bbcb6bd3823311279f04a7962941f94f8c58 Author: Michael S. Tsirkin <[email protected]> Date: Sun Dec 6 13:31:30 2015 +0200 virtio: drop heuristics on ring full Old hypervisors used tricks for selecting signalling, but modern ones use event index to detect ring full. Drop heuristics in this case. Signed-off-by: Michael S. Tsirkin <[email protected]> commit a05c3fb05e2e46e46eeca5aff2d387d63f58665a Author: Michael S. Tsirkin <[email protected]> Date: Sun Dec 6 13:30:59 2015 +0200 virtio_ring: check used idx correctly on interrupt squash ino RING_POLL Signed-off-by: Michael S. Tsirkin <[email protected]> commit 5d04cdb6377659237591e932086128b22e2047e8 Author: Michael S. Tsirkin <[email protected]> Date: Sun Nov 29 12:44:43 2015 +0200 vring_bench: simple vring benchmark with poll support Integrate the benchmark that Rusty wrote. Add ring poll support. Signed-off-by: Michael S. Tsirkin <[email protected]> commit 7b064765a864030d8f65ad6d2a274b39591418f2 Author: Michael S. Tsirkin <[email protected]> Date: Mon Nov 30 11:13:18 2015 +0200 virtio: skip avail/used index reads This adds a new vring feature bit: when enabled, host and guest poll the available/used ring directly instead of looking at the index field first. To guarantee it is possible to detect updates, the high bits (above vring.num - 1) in the ring head ID value are modified to match the index bits - these change on each wrap-around. Writer also XORs this with 0x8000 such that rings can be zero-initialized. Reader is modified to ignore these high bits when looking up descriptors. The point is to reduce the number of cacheline misses for both reads and writes. I see a performance improvement of about 20% on multithreaded benchmarks (e.g. virtio-test), but regression of about 2% on vring_bench. I think this has to do with the fact that complete_multi_user is implemented suboptimally. TODO: investigate single-threaded regression look at more aggressive ring layout changes better name for a feature flag split the patch to make it easier to review This is on top of the following patches in my tree: virtio_ring: Shadow available ring flags & index vhost: replace % with & on data path tools/virtio: fix byteswap logic tools/virtio: move list macro stubs Signed-off-by: Michael S. Tsirkin <[email protected]> commit 8ce47633e652f2df54b7495a716bc4b5f4574da1 Author: Borislav Petkov <[email protected]> Date: Mon Nov 30 15:07:28 2015 +0100 EDAC: Make edac_device workqueue setup/teardown functions static They're not used anywhere else. Signed-off-by: Borislav Petkov <[email protected]> commit 4f2568f5cb475529aa2894adc7c7912517c83cb0 Author: Andreas Werner <[email protected]> Date: Fri Dec 4 18:14:14 2015 +0100 ata/sata_fsl.c: add ATA_FLAG_NO_LOG_PAGE to blacklist the controller for log page reads Every attempt to issue a read log page command lockup the controller. The command is currently sent if the sata device includes the devlsp feature to read out the timing data. This attempt to read the data, locks up the controller and the device is not recognzied correctly (failed to set xfermode) and cannot be accessed. This was found on Freescale P1013/P1022 and T4240 CPUs using a ATP IG mSATA 4GB with the devslp feature. fsl-sata ff718000.sata: Sata FSL Platform/CSB Driver init [ 1.254195] scsi0 : sata_fsl [ 1.256004] ata1: SATA max UDMA/133 irq 74 [ 1.370666] fsl-gianfar ethernet.3: enabled errata workarounds, flags: 0x4 [ 1.470671] fsl-gianfar ethernet.4: enabled errata workarounds, flags: 0x4 [ 1.775584] ata1: Signature Update detected @ 504 msecs [ 1.947594] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.948366] ata1.00: ATA-8: ATP IG mSATA, 20150311, max UDMA/133 [ 1.948371] ata1.00: 7732368 sectors, multi 0: LBA [ 1.948843] ata1.00: failed to get Identify Device Data, Emask 0x1 [ 1.948857] ata1.00: failed to set xfermode (err_mask=0x40) [ 7.467557] ata1: Signature Update detected @ 504 msecs [ 7.639560] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 7.651320] ata1.00: failed to get Identify Device Data, Emask 0x1 [ 7.651360] ata1.00: failed to set xfermode (err_mask=0x40) [ 7.655628] ata1: limiting SATA link speed to 1.5 Gbps [ 7.659458] ata1.00: limiting speed to UDMA/133:PIO3 [ 13.163554] ata1: Signature Update detected @ 504 msecs [ 13.335558] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 13.347298] ata1.00: failed to get Identify Device Data, Emask 0x1 [ 13.347334] ata1.00: failed to set xfermode (err_mask=0x40) [ 13.351601] ata1.00: disabled [ 13.353278] ata1: exception Emask 0x50 SAct 0x0 SErr 0x800 action 0x6 frozen t4 [ 13.359281] ata1: SError: { HostInt } [ 13.361644] ata1: hard resetting link Signed-off-by: Andreas Werner <[email protected]> Signed-off-by: Tejun Heo <[email protected]> commit ea013a9b205b47b1fcbc72522146fad560af0712 Author: Andreas Werner <[email protected]> Date: Fri Dec 4 18:12:49 2015 +0100 libata-eh.c: Introduce new ata port flag for controller which lockup on read log page Some controller lockup on a ata_read_log_page. Add new ata port flag ATA_FLAG_NO_LOG_PAGE which can used to blacklist a controller. If this flag is set, any attempt to read a log page returns an error without actually issuing the command. Signed-off-by: Andreas Werner <[email protected]> Signed-off-by: Tejun Heo <[email protected]> commit f2000f11fc88b8030962ea6aa6e06dfc3df8bb10 Author: Borislav Petkov <[email protected]> Date: Mon Nov 30 14:20:41 2015 +0100 EDAC: Remove edac_get_sysfs_subsys() error handling It cannot fail now. We either load EDAC core after having successfully initialized edac_subsys or we don't. Signed-off-by: Borislav Petkov <[email protected]> commit ab77579321508e4234213c71d0a187bca67e550b Author: Borislav Petkov <[email protected]> Date: Mon Nov 30 14:15:31 2015 +0100 EDAC: Unexport and make edac_subsys static ... and use the accessor instead. Signed-off-by: Borislav Petkov <[email protected]> commit f893180b79f6ada44068e4fe764eb2de70ee6bea Author: Dan Williams <[email protected]> Date: Sat Dec 5 16:18:44 2015 -0800 ahci: compile out msi/msix infrastructure Quoting Arnd: The AHCI driver is used for some on-chip devices that do not use PCI for probing, and it can be built even when CONFIG_PCI is disabled, but that now results in a build failure: ata/libahci.c: In function 'ahci_host_activate_multi_irqs': ata/libahci.c:2475:4: error: invalid use of undefined type 'struct msix_entry' ata/libahci.c:2475:21: error: dereferencing pointer to incomplete type 'struct msix_entry' Add ifdef CONFIG_PCI_MSI infrastructure to compile out the multi-msi and multi-msix code. Reported-by: Arnd Bergmann <[email protected]> Tested--by: Arnd Bergmann <[email protected]> [arnd: fix up pci enabled case] Reported-by: Paul Gortmaker <[email protected]> Fixes: d684a90d38e2 ("ahci: per-port msix support") Signed-off-by: Dan Williams <[email protected]> Signed-off-by: Tejun Heo <[email protected]> commit 7e22c0024cf89404407f19955eab39b6d66de7b6 Author: Heiner Kallweit <[email protected]> Date: Sun Dec 6 21:56:33 2015 +0100 ata: core: fix irq description on AHCI single irq systems On my machine with single irq AHCI just the PCI id is printed as description in /proc/interrupts. I found a related discussion from beginning of this year: http://www.gossamer-threads.com/lists/linux/kernel/2117335 Seems like 4f37b504768c ("libata: Use dev_name() for request_irq() to distinguish devices") tried to fix displaying a proper interrupt description for one scenario but broke it for another one. The mentioned discussion ended in the current situation being considered as broken but w/o a patch to fix it. The following patch is based on a proposal in this mail thread. Now the interrupt is properly described as: PCI-MSI 512000-edge ahci[0000:00:1f.2] By combining both values also the scenario that commit 4f37b504768c ("libata: Use dev_name() for request_irq() to distinguish devices") refers to should still be fine. There it should look like this now: ahci[20100000.ide] Using managed memory allocation ensures that the irq description lives at least as long as the interrupt. Signed-off-by: Heiner Kallweit <[email protected]> Signed-off-by: Tejun Heo <[email protected]> Cc: Sergei Shtylyov <[email protected]> commit 8d8fcba6d1eabcb11ea0a6027d150a7f2cd0e019 Author: Borislav Petkov <[email protected]> Date: Fri Nov 27 11:40:43 2015 +0100 EDAC: Rip out the edac_subsys reference counting This was really dumb - reference counting for the main EDAC sysfs object. While we could've simply registered it as the first thing in the module init path and then hand it around to what needs it. Do that and rip out all the code around it, thus simplifying the whole handling significantly. Move the edac_subsys node back to edac_module.c. Signed-off-by: Borislav Petkov <[email protected]> commit 6d1a2adef782d26113d4f18a617ccb33c4774d54 Author: Alexey Brodkin <[email protected]> Date: Mon Dec 7 14:21:37 2015 +0300 ARC: [axs10x] cap ethernet phy to 100 Mbit/sec Current ARC SDP boards cannot reliably handle 1Gbit Ethernet connections due to limitations in hardware. To make sure networking is stable on the board we're limiting phy to 100 Mbit. Signed-off-by: Alexey Brodkin <[email protected]> Signed-off-by: Vineet Gupta <[email protected]> commit 4c835b57b8de88aef8446867701034128a8a3522 Author: Nicolas Iooss <[email protected]> Date: Wed Nov 18 19:07:15 2015 +0100 fixdep: constify strrcmp arguments strrcmp only performs read access to the memory addressed by its arguments so make them const pointers. Signed-off-by: Nicolas Iooss <[email protected]> Signed-off-by: Michal Marek <[email protected]> commit b46ae2f3e2882fad71630a6b7c5ea23fa8bc9b84 Author: Borislav Petkov <[email protected]> Date: Fri Nov 27 10:38:38 2015 +0100 EDAC: Robustify workqueues destruction EDAC workqueue destruction is really fragile. We cancel delayed work but if it is still running and requeues itself, we still go ahead and destroy the workqueue and the queued work explodes when workqueue core attempts to run it. Make the destruction more robust by switching op_state to offline so that requeuing stops. Cancel any pending work *synchronously* too. EDAC i7core: Driver loaded. general protection fault: 0000 [#1] SMP CPU 12 Modules linked in: Supported: Yes Pid: 0, comm: kworker/0:1 Tainted: G IE 3.0.101-0-default #1 HP ProLiant DL380 G7 RIP: 0010:[<ffffffff8107dcd7>] [<ffffffff8107dcd7>] __queue_work+0x17/0x3f0 < ... regs ...> Process kworker/0:1 (pid: 0, threadinfo ffff88019def6000, task ffff88019def4600) Stack: ... Call Trace: call_timer_fn run_timer_softirq __do_softirq call_softirq do_softirq irq_exit smp_apic_timer_interrupt apic_timer_interrupt intel_idle cpuidle_idle_call cpu_idle Code: ... RIP __queue_work RSP <...> Signed-off-by: Borislav Petkov <[email protected]> Cc: <[email protected]> commit 138500d1da4ec2a24025891ddc345151189ece5e Author: Borislav Petkov <[email protected]> Date: Tue Dec 1 15:52:36 2015 +0100 EDAC, mc_sysfs: Fix freeing bus' name I get the splat below when modprobing/rmmoding EDAC drivers. It happens because bus->name is invalid after bus_unregister() has run. The Code: section below corresponds to: .loc 1 1108 0 movq 672(%rbx), %rax # mci_1(D)->bus, mci_1(D)->bus .loc 1 1109 0 popq %rbx # .loc 1 1108 0 movq (%rax), %rdi # _7->name, jmp kfree # and %rax has some funky stuff 2030203020312030 which looks a lot like something walked over it. Fix that by saving the name ptr before doing stuff to string it points to. general protection fault: 0000 [#1] SMP Modules linked in: ... CPU: 4 PID: 10318 Comm: modprobe Tainted: G I EN 3.12.51-11-default+ #48 Hardware name: HP ProLiant DL380 G7, BIOS P67 05/05/2011 task: ffff880311320280 ti: ffff88030da3e000 task.ti: ffff88030da3e000 RIP: 0010:[<ffffffffa019da92>] [<ffffffffa019da92>] edac_unregister_sysfs+0x22/0x30 [edac_core] RSP: 0018:ffff88030da3fe28 EFLAGS: 00010292 RAX: 2030203020312030 RBX: ffff880311b4e000 RCX: 000000000000095c RDX: 0000000000000001 RSI: ffff880327bb9600 RDI: 0000000000000286 RBP: ffff880311b4e750 R08: 0000000000000000 R09: ffffffff81296110 R10: 0000000000000400 R11: 0000000000000000 R12: ffff88030ba1ac68 R13: 0000000000000001 R14: 00000000011b02f0 R15: 0000000000000000 FS: 00007fc9bf8f5700(0000) GS:ffff8801a7c40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 0000000000403c90 CR3: 000000019ebdf000 CR4: 00000000000007e0 Stack: Call Trace: i7core_unregister_mci.isra.9 i7core_remove pci_device_remove __device_release_driver driver_detach bus_remove_driver pci_unregister_driver i7core_exit SyS_delete_module system_call_fastpath 0x7fc9bf426536 Code: 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 53 48 89 fb e8 52 2a 1f e1 48 8b bb a0 02 00 00 e8 46 59 1f e1 48 8b 83 a0 02 00 00 5b <48> 8b 38 e9 26 9a fe e0 66 0f 1f 44 00 00 66 66 66 66 90 48 8b RIP [<ffffffffa019da92>] edac_unregister_sysfs+0x22/0x30 [edac_core] RSP <ffff88030da3fe28> Signed-off-by: Borislav Petkov <[email protected]> Cc: Mauro Carvalho Chehab <[email protected]> Cc: <[email protected]> # v3.6.. Fixes: 7a623c039075 ("edac: rewrite the sysfs code to use struct device") commit 02f6ff90400d055f08b0ba0b5f0707630b6faed7 Author: David Henningsson <[email protected]> Date: Mon Dec 7 11:29:31 2015 +0100 ALSA: hda - Add inverted dmic for Packard Bell DOTS On the internal mic of the Packard Bell DOTS, one channel has an inverted signal. Add a quirk to fix this up. Cc: [email protected] BugLink: https://bugs.launchpad.net/bugs/1523232 Signed-off-by: David Henningsson <[email protected]> Signed-off-by: Takashi Iwai <[email protected]> commit 1b894521e60c1b91db1e8ba1278660e5c89f1b5f Author: Ilan Peer <[email protected]> Date: Sun Dec 6 21:19:15 2015 +0200 mac80211: handle HW ROC expired properly In case of HW ROC, when the driver reports that the ROC expired, it is not sufficient to purge the ROCs based on the remaining time, as it possible that the device finished the ROC session before the actual requested duration. To handle such cases, in case of ROC expired notification from the driver, complete all the ROCs which are marked with hw_begun, regardless of the remaining duration. Signed-off-by: Ilan Peer <[email protected]> Signed-off-by: Johannes Berg <[email protected]> commit 0d014ff344abc9c8e56cf1870ab3a144d2e2e37a Author: Maarten Lankhorst <[email protected]> Date: Thu Nov 19 16:07:17 2015 +0100 drm/i915: Remove double wait_for_vblank on broadwell. wait_vblank is already set in intel_plane_atomic_calc_changes for broadwell, waiting for a double vblank is overkill. Signed-off-by: Maarten Lankhorst <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/1447945645-32005-5-git-send-email-maarten.lankhorst@linux.intel.com commit b900111459e2f4a538697f75b63478f3a6acec3c Author: Maarten Lankhorst <[email protected]> Date: Thu Nov 19 16:07:16 2015 +0100 drm/i915/skl: Update watermarks before the crtc is disabled. On skylake some of the registers are only writable when the correct power wells are enabled. Because of this watermarks have to be updated before the crtc turns off, or you get unclaimed register read and write warnings. This patch needs to be modified slightly to apply to -fixes. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92181 Signed-off-by: Maarten Lankhorst <[email protected]> Cc: [email protected] Cc: Matt Roper <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/1447945645-32005-4-git-send-email-maarten.lankhorst@linux.intel.com Reviewed-by: Ander Conselvan de Oliveira <[email protected]> commit 526c0ab13672fa2ec0fddb7efa9a7797e11fddea Author: Damien Riegel <[email protected]> Date: Mon Nov 30 10:59:47 2015 -0500 mfd: syscon: Add a DT property to set value width Currently syscon has a fixed configuration of 32 bits for register and values widths. In some cases, it would be desirable to be able to customize the value width. For example, certain boards (like the ones manufactured by Technologic Systems) have a FPGA that is memory-mapped, but its registers are only 16-bit wide. This patch adds an optional "reg-io-width" DT binding for syscon that allows to change the width for the data bus (i.e. val_bits). If this property is provided, it will also set the register stride to reg-io-width's value. If not provided, the default configuration is used. Signed-off-by: Damien Riegel <[email protected]> Acked-by: Rob Herring <[email protected]> Acked-by: Arnd Bergmann <[email protected]> Signed-off-by: Lee Jones <[email protected]> commit 92826fcdfc147a7d16766e987c12a9dfe1860c3f Author: Maarten Lankhorst <[email protected]> Date: Thu Dec 3 13:49:13 2015 +0100 drm/i915: Calculate watermark related members in the crtc_state, v4. This removes pre/post_wm_update from intel_crtc->atomic, and creates atomic state for it in intel_crtc. Changes since v1: - Rebase on top of wm changes. Changes since v2: - Split disable_cxsr into a separate patch. Changes since v3: - Move some of the changes to intel_wm_need_update. Signed-off-by: Maarten Lankhorst <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected] Reviewed-by: Daniel Vetter <[email protected]> commit ab1d3a0e5a44f5b1a8d1f811e925c8519b56fba4 Author: Maarten Lankhorst <[email protected]> Date: Thu Nov 19 16:07:14 2015 +0100 drm/i915: Move disable_cxsr to the crtc_state. intel_crtc->atomic will be removed later on, move this member to intel_crtc_state. Signed-off-by: Maarten Lankhorst <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/1447945645-32005-2-git-send-email-maarten.lankhorst@linux.intel.com Reviewed-by: Ander Conselvan de Oliveira <[email protected]> commit c10368897e104c008c610915a218f0fe5fa4ec96 Author: Ravindra Lokhande <[email protected]> Date: Mon Dec 7 12:08:31 2015 +0530 ALSA: compress: add support for 32bit calls in a 64bit kernel Compress offload does not support ioctl calls from a 32bit userspace in a 64 bit kernel. This patch adds support for ioctls from a 32bit userspace in a 64bit kernel Signed-off-by: Ravindra Lokhande <[email protected]> Acked-by: Vinod Koul <[email protected]> Signed-off-by: Takashi Iwai <[email protected]> commit ee65ad0e2a9e5c1a61f86be9365c17f4fddb3818 Author: Philipp Zabel <[email protected]> Date: Wed Nov 18 18:12:25 2015 +0100 backlight: pwm_bl: Avoid backlight flicker when probed from DT If the driver is probed from the device tree, and there is a phandle property set on it, and the enable GPIO is already configured as output, and the backlight is currently disabled, keep it disabled. If all these conditions are met, assume there will be some other driver that can enable the backlight at the appropriate time. Signed-off-by: Philipp Zabel <[email protected]> Reviewed-by: Christian Gmeiner <[email protected]> Tested-by: Heiko Stuebner <[email protected]> Signed-off-by: Lee Jones <[email protected]> commit 7c23b7c1996597dd9d60bb282fb5fa1be6ebd18b Author: Lu, Han <[email protected]> Date: Mon Dec 7 15:59:13 2015 +0800 ALSA: hda - Fix playback noise with 24/32 bit sample size on BXT In BXT-P A0, HD-Audio DMA requests is later than expected, and makes an audio stream sensitive to system latencies when 24/32 bits are playing. Adjusting threshold of DMA fifo to force the DMA request sooner to improve latency tolerance at the expense of power. v2: move Intel specific code to hda_intel.c Signed-off-by: Lu, Han <[email protected]> Signed-off-by: Takashi Iwai <[email protected]> commit a4d8a0fe4500b87817eebdb363c116922de87453 Author: Zeng Zhaoxiu <[email protected]> Date: Sun Dec 6 18:26:30 2015 +0800 i915: Replace "hweight8(dev_priv->info.subslice_7eu[i]) != 1" with "!is_power_of_2(dev_priv->info.subslice_7eu[i])" Signed-off-by: Zeng Zhaoxiu <[email protected]> Signed-off-by: Daniel Vetter <[email protected]> Link: http://patchwork.freedesktop.org/patch/msgid/[email protected] commit f00be687f5fd2b626aa975dc4513cad525823c05 Author: Simon Horman <[email protected]> Date: Thu Nov 26 13:26:20 2015 +0900 ARM: shmobile: r8a7793: remove deprecated #gpio-range-cells Commit a1bc260bb5f5d9 ("gpio: clean up gpio-ranges documentation") declares the above property deprecated. That was more than 2 years ago. Remove it, so it doesn't get copied around needlessly. Based on similar work for the r8a7791 and r8a7794 by Wolfram Sang. Cc: Wolfram Sang <[email protected]> Signed-off-by: Simon Horman <[email protected]> Reported-by: Wolfram Sang <[email protected]> Acked-by: Wolfram Sang <[email protected]> commit 46ece349aa54f6e55b5f8d30bbecbaf2884ba869 Author: Sergei Shtylyov <[email protected]> Date: Thu Dec 3 01:23:03 2015 +0300 ARM: shmobile: r8a7791: add EtherAVB DT support Define the generic R8A7791 part of the EtherAVB device node. Based on the commit f25d6b977240 ("ARM: shmobile: r8a7790: add EtherAVB DT support"). Signed-off-by: Sergei Shtylyov <[email protected]> Signed-off-by: Simon Horman <[email protected]> commit eaa870b3055384092d8fc075bca3a3a819f73c43 Author: Sergei Shtylyov <[email protected]> Date: Thu Dec 3 01:21:49 2015 +0300 ARM: shmobile: r8a7791: add EtherAVB clock Add the EtherAVB clock to the R8A7791 device tree. Based on the commit 63d2d750c902 ("ARM: shmobile: r8a7790: add EtherAVB clocks"). Signed-off-by: Sergei Shtylyov <[email protected]> Signed-off-by: Simon Horman <[email protected]> commit 64874280889e7c0b2c9266705363627d4c92cf01 Author: Rainer Weikusat <[email protected]> Date: Sun Dec 6 21:11:38 2015 +0000 af_unix: fix unix_dgram_recvmsg entry locking The current unix_dgram_recvsmg code acquires the u->readlock mutex in order to protect access to the peek offset prior to calling __skb_recv_datagram for actually receiving data. This implies that a blocking reader will go to sleep with this mutex held if there's presently no data to return to userspace. Two non-desirable side effects of this are that a later non-blocking read call on the same socket will block on the ->readlock mutex until the earlier blocking call releases it (or the readers is interrupted) and that later blocking read calls will wait longer than the effective socket read timeout says they should: The timeout will only start 'ticking' once such a reader hits the schedule_timeout in wait_for_more_packets (core.c) while the time it already had to wait until it could acquire the mutex is unaccounted for. The patch avoids both by using the __skb_try_recv_datagram and __skb_wait_for_more packets functions created by the first patch to implement a unix_dgram_recvmsg read loop which releases the readlock mutex prior to going to sleep and reacquires it as needed afterwards. Non-blocking readers will thus immediately return with -EAGAIN if there's no data available regardless of any concurrent blocking readers and all blocking readers will end up sleeping via schedule_timeout, thus honouring the configured socket receive timeout. Signed-off-by: Rainer Weikusat <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit ea3793ee29d3621faf857fa8ef5425e9ff9a756d Author: Rainer Weikusat <[email protected]> Date: Sun Dec 6 21:11:34 2015 +0000 core: enable more fine-grained datagram reception control The __skb_recv_datagram routine in core/ datagram.c provides a general skb reception factility supposed to be utilized by protocol modules providing datagram sockets. It encompasses both the actual recvmsg code and a surrounding 'sleep until data is available' loop. This is inconvenient if a protocol module has to use additional locking in order to maintain some per-socket state the generic datagram socket code is unaware of (as the af_unix code does). The patch below moves the recvmsg proper code into a new __skb_try_recv_datagram routine which doesn't sleep and renames wait_for_more_packets to __skb_wait_for_more_packets, both routines being exported interfaces. The original __skb_recv_datagram routine is reimplemented on top of these two functions such that its user-visible behaviour remains unchanged. Signed-off-by: Rainer Weikusat <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit dc15c60e39a3092df845f9bfc29b9c40cc63934d Author: Paul E. McKenney <[email protected]> Date: Sun Dec 6 20:20:14 2015 -0800 rcutorture: Don't keep empty console.log.diags files Currently, an error-free run produces an empty console.log.diags file. This can be annoying when using "vi */console.log.diags" to see a full summary of the errors. This commit therefore removes any empty files during the analysis process. Signed-off-by: Paul E. McKenney <[email protected]> commit 0485e1b35866693ff3ec975ca4c3c8ea8db63678 Author: Paul E. McKenney <[email protected]> Date: Sun Dec 6 20:18:37 2015 -0800 rcutorture: Add checks for rcutorture writer starvation This commit adds checks for rcutorture writer starvation, so that instances will be added to the test summary. Signed-off-by: Paul E. McKenney <[email protected]> commit 7bf9ae016efc0cf08263fbee5ac708c23b90792e Author: Andrew Lunn <[email protected]> Date: Mon Dec 7 04:38:58 2015 +0100 PHY: DP83867: Remove looking in parent device for OF properties Device tree properties for a phy device are expected to be in the phy node. The current code for the DP83867 also tries to look in the parent node. The devices binding documentation does not mention this, no current device tree file makes use of this, and it is not behaviour we want. So remove looking in the parent device. Signed-off-by: Andrew Lunn <[email protected]> Acked-by: Florian Fainelli <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 404814af69d4732276319b90886b81fb2884ae1b Author: Bjørn Mork <[email protected]> Date: Sun Dec 6 22:47:15 2015 +0100 net: cdc_ncm: add "ndp_to_end" sysfs attribute Adding a writable sysfs attribute for the "NDP to end" quirk flag. This makes it easier for end users to test new devices for this firmware bug. We've been lucky so far, but we should not depend on reporters capable of rebuilding the driver. Cc: Enrico Mioso <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit e57968a10bc1b3da6d2b8b0bdbbe4c5a43de2ad1 Author: Moni Shoua <[email protected]> Date: Sun Dec 6 18:07:43 2015 +0200 net/mlx4_core: Support the HA mode for SRIOV VFs too When the mlx4 driver runs in HA mode, and all VFs are single ported ones, we make their single port Highly-Available. This is done by taking advantage of the HA mode properties (following bonding changes with programming the port V2P map, etc) and adding the missing parts which are unique to SRIOV such as mirroring VF steering rules on both ports. Due to limits on the MAC and VLAN table this mode is enabled only when number of total VFs is under 64. Signed-off-by: Moni Shoua <[email protected]> Reviewed-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit f1b4e12a9ab6cc08b1a047bf021d90c7e07b1517 Author: Or Gerlitz <[email protected]> Date: Sun Dec 6 18:07:42 2015 +0200 IB/mlx4: Use the VF base-port when demuxing mad from wire Under HA mode, it's possible that the VF registered its GID (and expects to get mads through the PV scheme) on a port which is different from the one this mad arrived on, due to HA fail over. Therefore, if the gid is not matched on the port that the packet arrived on, check for a match on the other port if HA mode is active -- and if a match is found on the other port, continue processing the mad using that other port. Signed-off-by: Or Gerlitz <[email protected]> Reviewed-by: Jack Morgenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 5f61385d2ebc2bd62bc389c7da0d8d2f263be1eb Author: Moni Shoua <[email protected]> Date: Sun Dec 6 18:07:41 2015 +0200 net/mlx4_core: Keep VLAN/MAC tables mirrored in multifunc HA mode Due to HW limitations, indexes to MAC and VLAN tables are always taken from the table of the actual port. So, if a resource holds an index to a table, it may refer to different values during the lifetime of the resource, unless the tables are mirrored. Also, even when driver is not in HA mode the policy of allocating an index to these tables is such to make sure, as much as possible, that when the time comes the mirroring will be successful. This means that in multifunction mode the allocation of a free index in a port's table tries to make sure that the same index in the other's port table is also free. Signed-off-by: Moni Shoua <[email protected]> Reviewed-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 78efed275117b189f06f8937798eab5cba53ed18 Author: Moni Shoua <[email protected]> Date: Sun Dec 6 18:07:40 2015 +0200 net/mlx4_core: Support mirroring VF DMFS rules on both ports Under HA mode, steering rules set by VFs should be mirrored on both ports of the device so packets will be accepted no matter on which port they arrived. Since getting into HA mode is done dynamically when the user bonds mlx4 Ethernet netdevs, we keep hold of the VF DMFS rule mbox with the port value flipped (1->2,2->1) and execute the mirroring when getting into HA mode. Later, when going out of HA mode, we unset the mirrored rules. In that context note that mirrored rules cannot be removed explicitly. Signed-off-by: Moni Shoua <[email protected]> Reviewed-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 8d80d04a521d4acf949a449403040c38ec648f57 Author: Moni Shoua <[email protected]> Date: Sun Dec 6 18:07:39 2015 +0200 net/mlx4_core: Use both physical ports to dispatch link state events to VF Under HA mode, the link down event should be sent to VFs only if both ports are down. Signed-off-by: Moni Shoua <[email protected]> Reviewed-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit e34305c85f86112838cb332696513bed8e04a211 Author: Or Gerlitz <[email protected]> Date: Sun Dec 6 18:07:38 2015 +0200 net/mlx4_core: Use both physical ports to set the VF link state In HA mode, the link state for VFs for which the policy is "auto" (i.e. follow the physical link state) should be ORed from both ports. Signed-off-by: Or Gerlitz <[email protected]> Reviewed-by: Jack Morgenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 0d76d6e8b2507983a2cae4c09880798079007421 Author: Julia Lawall <[email protected]> Date: Sun Dec 6 06:56:23 2015 +0100 VSOCK: fix returnvar.cocci warnings Remove unneeded variable used to store return value. Generated by: scripts/coccinelle/misc/returnvar.cocci CC: Asias He <[email protected]> Signed-off-by: Fengguang Wu <[email protected]> Signed-off-by: Julia Lawall <[email protected]> Reviewed-by: Stefan Hajnoczi <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit eeaef728978bc4da94d04d5e44bb81221279c418 Author: Loic Poulain <[email protected]> Date: Sun Dec 6 16:18:34 2015 +0100 Bluetooth: btintel: Create common Intel Version Read function The Intel Version Read command is used to retrieve information about hardware and firmware version/revision of Intel Bluetooth controllers. This is an Intel generic command used in USB and UART drivers. Signed-off-by: Loic Poulain <[email protected]> Signed-off-by: Marcel Holtmann <[email protected]> commit 326fcfa5acca446b3f71e99f6d19881145556e5c Author: Felix Fietkau <[email protected]> Date: Sat Dec 5 13:58:11 2015 +0100 net: remove unnecessary semicolon in netdev_alloc_pcpu_stats() This semicolon causes a build error if the function call is wrapped in parentheses. Fixes: aabc92bbe3cf ("net: add __netdev_alloc_pcpu_stats() to indicate gfp flags") Reported-by: Imre Kaloz <[email protected]> Signed-off-by: Felix Fietkau <[email protected]> Acked-by: Pablo Neira Ayuso <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 8a0d19c5ed417c78d03f4e0fa7215e58c40896d8 Author: lucien <[email protected]> Date: Sat Dec 5 15:35:36 2015 +0800 sctp: start t5 timer only when peer rwnd is 0 and local state is SHUTDOWN_PENDING when A sends a data to B, then A close() and enter into SHUTDOWN_PENDING state, if B neither claim his rwnd is 0 nor send SACK for this data, A will keep retransmitting this data until t5 timeout, Max.Retrans times can't work anymore, which is bad. if B's rwnd is not 0, it should send abort after Max.Retrans times, only when B's rwnd == 0 and A's retransmitting beyonds Max.Retrans times, A will start t5 timer, which is also commit f8d960524328 ("sctp: Enforce retransmission limit during shutdown") means, but it lacks the condition peer rwnd == 0. so fix it by adding a bit (zero_window_announced) in peer to record if the last rwnd is 0. If it was, zero_window_announced will be set. and use this bit to decide if start t5 timer when local.state is SHUTDOWN_PENDING. Fixes: commit f8d960524328 ("sctp: Enforce retransmission limit during shutdown") Signed-off-by: Xin Long <[email protected]> Signed-off-by: Marcelo Ricardo Leitner <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 6c730080e663b1d629f8aa89348291fbcdc46cd9 Author: Bjørn Mork <[email protected]> Date: Sun Dec 6 21:25:50 2015 +0100 net: qmi_wwan: should hold RTNL while changing netdev type The notifier calls were thrown in as a last-minute fix for an imagined "this device could be part of a bridge" problem. That revealed a certain lack of locking. Not to mention testing... Avoid this splat: RTNL: assertion failed at net/core/dev.c (1639) CPU: 0 PID: 4293 Comm: bash Not tainted 4.4.0-rc3+ #358 Hardware name: LENOVO 2776LEG/2776LEG, BIOS 6EET55WW (3.15 ) 12/19/2011 0000000000000000 ffff8800ad253d60 ffffffff8122f7cf ffff8800ad253d98 ffff8800ad253d88 ffffffff813833ab 0000000000000002 ffff880230f48560 ffff880230a12900 ffff8800ad253da0 ffffffff813833da 0000000000000002 Call Trace: [<ffffffff8122f7cf>] dump_stack+0x4b/0x63 [<ffffffff813833ab>] call_netdevice_notifiers_info+0x3d/0x59 [<ffffffff813833da>] call_netdevice_notifiers+0x13/0x15 [<ffffffffa09be227>] raw_ip_store+0x81/0x193 [qmi_wwan] [<ffffffff8131e149>] dev_attr_store+0x20/0x22 [<ffffffff811d858b>] sysfs_kf_write+0x49/0x50 [<ffffffff811d8027>] kernfs_fop_write+0x10a/0x151 [<ffffffff8117249a>] __vfs_write+0x26/0xa5 [<ffffffff81085ed4>] ? percpu_down_read+0x53/0x7f [<ffffffff81174c9e>] ? __sb_start_write+0x5f/0xb0 [<ffffffff81174c9e>] ? __sb_start_write+0x5f/0xb0 [<ffffffff81172c37>] vfs_write+0xa3/0xe7 [<ffffffff811734ad>] SyS_write+0x50/0x7e [<ffffffff8145c517>] entry_SYSCALL_64_fastpath+0x12/0x6f Fixes: 32f7adf633b9 ("net: qmi_wwan: support "raw IP" mode") Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit dc085392a3a760b5788db368c1b2c116be08b201 Author: Inki Dae <[email protected]> Date: Thu Dec 3 14:35:23 2015 +0900 drm/exynos: dsi: modify a error type when getting a node failed This patch makes it to return -EINVAL instead of -ENXIO when getting a port or remote node failed. Signed-off-by: Inki Dae <[email protected]> Reviewed-by: Javier Martinez Canillas <[email protected]> commit 5e4500d8dba16d88b528cf037566b84747ec23f0 Author: Viresh Kumar <[email protected]> Date: Thu Dec 3 09:37:52 2015 +0530 cpufreq: governor: initialize/destroy timer_mutex with 'shared' timer_mutex is required to be initialized only while memory for 'shared' is allocated and in a similar way it is required to be destroyed only when memory for 'shared' is freed. There is no need to do the same every time we start/stop the governor. Move code to initialize/destroy timer_mutex to the relevant places. Signed-off-by: Viresh Kumar <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]> commit affde5d06af1e39c2929e36a063e3912f02fc58f Author: Viresh Kumar <[email protected]> Date: Thu Dec 3 09:37:51 2015 +0530 cpufreq: governor: Pass policy as argument to ->gov_dbs_timer() Pass 'policy' as argument to ->gov_dbs_timer() instead of cdbs and dbs_data. Signed-off-by: Viresh Kumar <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]> commit e68fe18c5b5442baca162ccf3b273326e6132a51 Author: Viresh Kumar <[email protected]> Date: Thu Dec 3 09:37:50 2015 +0530 cpufreq: ondemand: Work is guaranteed to be pending We are guaranteed to have works scheduled for policy->cpus, as the policy isn't stopped yet. And so there is no need to check that again. Drop it. Signed-off-by: Viresh Kumar <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]> commit e128c864070055e062f6c90c64c03aad18452ac3 Author: Viresh Kumar <[email protected]> Date: Thu Dec 3 09:37:49 2015 +0530 cpufreq: ondemand: Update sampling rate only for concerned policies We are comparing policy->governor against cpufreq_gov_ondemand to make sure that we update sampling rate only for the concerned CPUs. But that isn't enough. In case of governor_per_policy, there can be multiple instances of ondemand governor and we will always end up updating all of them with current code. What we rather need to do, is to compare dbs_data with poilcy->governor_data, which will match only for the policies governed by dbs_data. This code is also racy as the governor might be getting stopped at that time and we may end up scheduling work for a policy, which we have just disabled. Fix that by protecting the entire function with &od_dbs_cdata.mutex, which will prevent against races with policy START/STOP/etc. After these locks are in place, we can safely get the policy via per-cpu dbs_info. Signed-off-by: Viresh Kumar <[email protected]> Signed-off-by: Rafael J. Wysocki <[email protected]> commit 7b06a6d7bff563d82ddf8769617632f26793a83e Author: Rafael J. Wysocki <[email protected]> Date: Sat Dec 5 01:54:47 2015 +0100 MAINTAINERS: Add an entry for the PM core Add a MAINTAINERS entry for the PM core with myself as the maintainer and linux-pm as the mailing list. This actually documents the current state of things. Signed-off-by: Rafael J. Wysocki <[email protected]> Acked-by: Greg Kroah-Hartman <[email protected]> commit ce657b1cddf1f88c56ae683efa7130341c92808b Author: Russell King <[email protected]> Date: Tue Nov 17 12:08:01 2015 +0000 component: add support for releasing match data The component helper treats the void match data pointer as an opaque object which needs no further management. When device nodes being passed, this is not true: the caller should pass its refcount to the component helper, and there should be a way to drop the refcount when the matching information is destroyed. This patch provides a per-match release method in addition to the match method to solve this issue. Rather than using component_match_add(), users should use component_match_add_release() which takes an additional function pointer for releasing this reference. Signed-off-by: Russell King <[email protected]> commit ffc30b74fd6d01588bd3fdebc3b1acc0857e6fc8 Author: Russell King <[email protected]> Date: Fri Apr 18 23:05:53 2014 +0100 component: track components via array rather than list Since we now have an array which defines each component, maintain the components to be bound in the array rather than a separate list. We also need duplicate tracking so we can eliminate multiple bind calls for the same component: we preserve the list-based component order in that the first match which adds the component determines its position. Signed-off-by: Russell King <[email protected]> commit 29f1c7fd61a31e0335ce41d4b2788959ad7c468d Author: Russell King <[email protected]> Date: Wed Apr 23 10:46:11 2014 +0100 component: move check for unbound master into try_to_bring_up_masters() Clean up the code a little; we don't need to check that the master is unbound for every invocation of try_to_bring_up_master(), so let's move it to where it's really needed - try_to_bring_up_masters(), where we may encounter already bound masters. Reviewed-by: Thierry Reding <[email protected]> Signed-off-by: Russell King <[email protected]> commit fae9e2e07af07baabb8c26a31b3f7d8fdf89809e Author: Russell King <[email protected]> Date: Fri Apr 18 22:10:32 2014 +0100 component: remove old add_components method Now that drivers create an array of component matches at probe time, we can retire the old methods. This involves removing the add_components master method, and removing component_master_add_child() from public view. We also remove component_add_master() as that interface is no longer useful. Acked-by: Andrew Lunn <[email protected]> Signed-off-by: Russell King <[email protected]> commit 072151bb01547816d82ec06565de5559d679fbeb Author: Jordan Hargrave <[email protected]> Date: Mon Dec 7 10:07:15 2015 +1100 firmware: dmi_scan: Save SMBIOS Type 9 System Slots Save SMBIOS Type 9 System Slots during DMI scan. PCI address of onboard devices was already saved but not for slots. Signed-off-by: Jordan Hargrave <[email protected]> Signed-off-by: Jean Delvare <[email protected]> commit c625c7eb2eb48f21aaab5bc762e063f770eee479 Author: Jean Delvare <[email protected]> Date: Mon Dec 7 10:07:15 2015 +1100 firmware: dmi_scan: Fix dmi_find_device description The description of dmi_find_device was apparently copied from a similar function in a different subsystem, but the parameter names were not adjusted as needed. Signed-off-by: Jean Delvare <[email protected]> Cc: Andrey Panin <[email protected]> commit d40ad8376edb951737111330e8fba087e5c1d831 Author: Jean Delvare <[email protected]> Date: Mon Dec 7 10:07:15 2015 +1100 firmware: dmi_scan: Clarify dmi_save_extended_devices Get rid of the arbitrary 5-byte pointer offset, it served no purpose and made it harder to match the code with the SMBIOS specification. Signed-off-by: Jean Delvare <[email protected]> Cc: Jordan Hargrave <[email protected]> Cc: Narendra K <[email protected]> commit af94859f09787d2b782743812c61032ddfd6f987 Author: Jean Delvare <[email protected]> Date: Mon Dec 7 10:07:14 2015 +1100 firmware: dmi_scan: Optimize dmi_save_extended_devices Calling dmi_string_nosave isn't cheap, so avoid calling it twice in a row for the same string. Signed-off-by: Jean Delvare <[email protected]> Cc: Jordan Hargrave <[email protected]> Cc: Narendra K <[email protected]> commit 54046148cf6826a5a3f61e571b131e0224580d53 Author: Helge Deller <[email protected]> Date: Sun Dec 6 21:56:26 2015 +0100 parisc: Wire up mlock2 syscall Signed-off-by: Helge Deller <[email protected]> commit 73c5e2661b712bb63408555037e6ac38b39e04dc Author: Bjorn Helgaas <[email protected]> Date: Tue Dec 1 10:41:47 2015 -0600 parisc: Remove unused pcibios_init_bus() There are no callers of pcibios_init_bus(), so remove it. Signed-off-by: Bjorn Helgaas <[email protected]> Signed-off-by: Helge Deller <[email protected]> commit f316cb0a60c29cb00a42d6da8d42c48fe067901b Author: Mikulas Patocka <[email protected]> Date: Mon Nov 30 14:47:46 2015 -0500 parisc iommu: fix panic due to trying to allocate too large region When using the Promise TX2+ SATA controller on PA-RISC, the system often crashes with kernel panic, for example just writing data with the dd utility will make it crash. Kernel panic - not syncing: drivers/parisc/sba_iommu.c: I/O MMU @ 000000000000a000 is out of mapping resources CPU: 0 PID: 18442 Comm: mkspadfs Not tainted 4.4.0-rc2 #2 Backtrace: [<000000004021497c>] show_stack+0x14/0x20 [<0000000040410bf0>] dump_stack+0x88/0x100 [<000000004023978c>] panic+0x124/0x360 [<0000000040452c18>] sba_alloc_range+0x698/0x6a0 [<0000000040453150>] sba_map_sg+0x260/0x5b8 [<000000000c18dbb4>] ata_qc_issue+0x264/0x4a8 [libata] [<000000000c19535c>] ata_scsi_translate+0xe4/0x220 [libata] [<000000000c19a93c>] ata_scsi_queuecmd+0xbc/0x320 [libata] [<0000000040499bbc>] scsi_dispatch_cmd+0xfc/0x130 [<000000004049da34>] scsi_request_fn+0x6e4/0x970 [<00000000403e95a8>] __blk_run_queue+0x40/0x60 [<00000000403e9d8c>] blk_run_queue+0x3c/0x68 [<000000004049a534>] scsi_run_queue+0x2a4/0x360 [<000000004049be68>] scsi_end_request+0x1a8/0x238 [<000000004049de84>] scsi_io_completion+0xfc/0x688 [<0000000040493c74>] scsi_finish_command+0x17c/0x1d0 The cause of the crash is not exhaustion of the IOMMU space, there is plenty of free pages. The function sba_alloc_range is called with size 0x11000, thus the pages_needed variable is 0x11. The function sba_search_bitmap is called with bits_wanted 0x11 and boundary size is 0x10 (because dma_get_seg_boundary(dev) returns 0xffff). The function sba_search_bitmap attempts to allocate 17 pages that must not cross 16-page boundary - it can't satisfy this requirement (iommu_is_span_boundary always returns true) and fails even if there are many free entries in the IOMMU space. How did it happen that we try to allocate 17 pages that don't cross 16-page boundary? The cause is in the function iommu_coalesce_chunks. This function tries to coalesce adjacent entries in the scatterlist. The function does several checks if it may coalesce one entry with the next, one of those checks is this: if (startsg->length + dma_len > max_seg_size) break; When it finishes coalescing adjacent entries, it allocates the mapping: sg_dma_len(contig_sg) = dma_len; dma_len = ALIGN(dma_len + dma_offset, IOVP_SIZE); sg_dma_address(contig_sg) = PIDE_FLAG | (iommu_alloc_range(ioc, dev, dma_len) << IOVP_SHIFT) | dma_offset; It is possible that (startsg->length + dma_len > max_seg_size) is false (we are just near the 0x10000 max_seg_size boundary), so the funcion decides to coalesce this entry with the next entry. When the coalescing succeeds, the function performs dma_len = ALIGN(dma_len + dma_offset, IOVP_SIZE); And now, because of non-zero dma_offset, dma_len is greater than 0x10000. iommu_alloc_range (a pointer to sba_alloc_range) is called and it attempts to allocate 17 pages for a device that must not cross 16-page boundary. To fix the bug, we must make sure that dma_len after addition of dma_offset and alignment doesn't cross the segment boundary. I.e. change if (startsg->length + dma_len > max_seg_size) break; to if (ALIGN(dma_len + dma_offset + startsg->length, IOVP_SIZE) > max_seg_size) break; This patch makes this change (it precalculates max_seg_boundary at the beginning of the function iommu_coalesce_chunks). I also added a check that the mapping length doesn't exceed dma_get_seg_boundary(dev) (it is not needed for Promise TX2+ SATA, but it may be needed for other devices that have dma_get_seg_boundary lower than dma_get_max_seg_size). Signed-off-by: Mikulas Patocka <[email protected]> Cc: [email protected] Signed-off-by: Helge Deller <[email protected]> commit 9fa547b2b7c37507fb04c93fa2d0ccddf7d4d234 Author: Helge Deller <[email protected]> Date: Thu Nov 26 21:14:02 2015 +0100 parisc: protect huge pte changes with spinlocks Protect all changes of huge page pte entries with purge_tlb_start() and purge_tlb_end() spinlocks. Signed-off-by: Helge Deller <[email protected]> commit 63424eeaab1e61af0c3eecc0f85fb9ee4877f219 Author: Helge Deller <[email protected]> Date: Wed Nov 25 15:39:38 2015 +0100 parisc: Disable tlb flush optimization with huge pages It seems calling flush_tlb_all() doesn't reliable flush the tlb on all CPUs. Disable it when used with huge pages. Signed-off-by: Helge Deller <[email protected]> commit d17fad0a588f399dcda8c6c0c77be0527d85fdd5 Author: Helge Deller <[email protected]> Date: Sun Dec 6 21:25:20 2015 +0100 parisc: Disable huge pages on Mako machines Mako-based machines (PA8800 and PA8900 CPUs) don't allow aliasing on non-equaivalent addresses. Signed-off-by: Helge Deller <[email protected]> commit 7fdc06ab013ec847cd25a66208f403e124e6371b Author: Masahiro Yamada <[email protected]> Date: Tue Nov 24 22:10:26 2015 +0900 of/irq: optimize device node matching loop in of_irq_init() Currently, of_irq_init() iterates over interrupt controller nodes with for_each_matching_node(), and then gets each init function with of_match_node() later. This routine can be optimized with for_each_matching_node_and_match(). It allows to get the interrupt controller node and its init function at the same time, saving __of_match_node() callings. Signed-off-by: Masahiro Yamada <[email protected]> Signed-off-by: Rob Herring <[email protected]> commit 5e2bfc010f63b3ede1746c53052064fa8fcd7622 Author: Liviu Dudau <[email protected]> Date: Wed Dec 2 11:35:39 2015 +0000 dt-bindings: tda998x: Document the required 'port' node. All the users of the tda998x driver are component based and bind the driver via the device graph method described in Documentation/devicetree/bindings/graph.txt. Add the fact that the 'port' node is required to the bindings. Signed-off-by: Liviu Dudau <[email protected]> Signed-off-by: Rob Herring <[email protected]> commit 8b570dc9f7b634e853866ce40097c0342ac5bb81 Author: lucien <[email protected]> Date: Sat Dec 5 15:19:27 2015 +0800 sctp: only drop the reference on the datamsg after sending a msg If the chunks are enqueued successfully but sctp_cmd_interpreter() return err to sctp_sendmsg() (mainly because of no mem), the chunks will get re-queued, but we are dropping the reference and freeing them. The fix is to just drop the reference on the datamsg just as it had succeeded, as: - if the chunks weren't queued, this is enough to get them freed. - if they were queued, they will get freed when they finally get out or discarded. Signed-off-by: Xin Long <[email protected]> Marcelo Ricardo Leitner <[email protected]> Signed-off-by: Marcelo Ricardo Leitner <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit 69b5777f2e5779bb987d4a25a33401d5ac257c14 Author: lucien <[email protected]> Date: Sat Dec 5 15:15:17 2015 +0800 sctp: hold the chunks only after the chunk is enqueued in outq When a msg is sent, sctp will hold the chunks of this msg and then try to enqueue them. But if the chunks are not enqueued in sctp_outq_tail() because of the invalid state, sctp_cmd_interpreter() may still return success to sctp_sendmsg() after calling sctp_outq_flush(), these chunks will become orphans and will leak. So we fix them by moving sctp_chunk_hold() to sctp_outq_tail(), where we are sure that the chunk is going to get queued. Signed-off-by: Xin Long <[email protected]> Signed-off-by: Marcelo Ricardo Leitner <[email protected]> Signed-off-by: David S. Miller <[email protected]> commit aa1c25666a0c5a37073e06c8308ae93916b1e6df Author: Guenter Roeck <[email protected]> D…
1 parent adb2875 commit cf4aa1e

File tree

4,485 files changed

+173275
-62181
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,485 files changed

+173275
-62181
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
What: /sys/fs/orangefs/perf_counters/*
2+
Date: Jun 2015
3+
Contact: Mike Marshall <[email protected]>
4+
Description:
5+
Counters and settings for various caches.
6+
Read only.
7+
8+
9+
What: /sys/fs/orangefs/perf_counter_reset
10+
Date: June 2015
11+
Contact: Mike Marshall <[email protected]>
12+
Description:
13+
echo a 0 or a 1 into perf_counter_reset to
14+
reset all the counters in
15+
/sys/fs/orangefs/perf_counters
16+
except ones with PINT_PERF_PRESERVE set.
17+
18+
19+
What: /sys/fs/orangefs/perf_time_interval_secs
20+
Date: Jun 2015
21+
Contact: Mike Marshall <[email protected]>
22+
Description:
23+
Length of perf counter intervals in
24+
seconds.
25+
26+
27+
What: /sys/fs/orangefs/perf_history_size
28+
Date: Jun 2015
29+
Contact: Mike Marshall <[email protected]>
30+
Description:
31+
The perf_counters cache statistics have N, or
32+
perf_history_size, samples. The default is
33+
one.
34+
35+
Every perf_time_interval_secs the (first)
36+
samples are reset.
37+
38+
If N is greater than one, the "current" set
39+
of samples is reset, and the samples from the
40+
other N-1 intervals remain available.
41+
42+
43+
What: /sys/fs/orangefs/op_timeout_secs
44+
Date: Jun 2015
45+
Contact: Mike Marshall <[email protected]>
46+
Description:
47+
Service operation timeout in seconds.
48+
49+
50+
What: /sys/fs/orangefs/slot_timeout_secs
51+
Date: Jun 2015
52+
Contact: Mike Marshall <[email protected]>
53+
Description:
54+
"Slot" timeout in seconds. A "slot"
55+
is an indexed buffer in the shared
56+
memory segment used for communication
57+
between the kernel module and userspace.
58+
Slots are requested and waited for,
59+
the wait times out after slot_timeout_secs.
60+
61+
62+
What: /sys/fs/orangefs/acache/*
63+
Date: Jun 2015
64+
Contact: Mike Marshall <[email protected]>
65+
Description:
66+
Attribute cache configurable settings.
67+
68+
69+
What: /sys/fs/orangefs/ncache/*
70+
Date: Jun 2015
71+
Contact: Mike Marshall <[email protected]>
72+
Description:
73+
Name cache configurable settings.
74+
75+
76+
What: /sys/fs/orangefs/capcache/*
77+
Date: Jun 2015
78+
Contact: Mike Marshall <[email protected]>
79+
Description:
80+
Capability cache configurable settings.
81+
82+
83+
What: /sys/fs/orangefs/ccache/*
84+
Date: Jun 2015
85+
Contact: Mike Marshall <[email protected]>
86+
Description:
87+
Credential cache configurable settings.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
What: /config/usb-gadget/gadget/functions/tcm.name
2+
Date: Dec 2015
3+
KernelVersion: 4.5
4+
Description:
5+
There are no attributes because all the configuration
6+
is performed in the "target" subsystem of configfs.

Documentation/ABI/testing/sysfs-bus-usb

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -134,19 +134,21 @@ Description:
134134
enabled for the device. Developer can write y/Y/1 or n/N/0 to
135135
the file to enable/disable the feature.
136136

137-
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm
138-
Date: June 2015
137+
What: /sys/bus/usb/devices/.../power/usb3_hardware_lpm_u1
138+
/sys/bus/usb/devices/.../power/usb3_hardware_lpm_u2
139+
Date: November 2015
139140
Contact: Kevin Strasser <[email protected]>
141+
Lu Baolu <[email protected]>
140142
Description:
141143
If CONFIG_PM is set and a USB 3.0 lpm-capable device is plugged
142144
in to a xHCI host which supports link PM, it will check if U1
143145
and U2 exit latencies have been set in the BOS descriptor; if
144-
the check is is passed and the host supports USB3 hardware LPM,
146+
the check is passed and the host supports USB3 hardware LPM,
145147
USB3 hardware LPM will be enabled for the device and the USB
146-
device directory will contain a file named
147-
power/usb3_hardware_lpm. The file holds a string value (enable
148-
or disable) indicating whether or not USB3 hardware LPM is
149-
enabled for the device.
148+
device directory will contain two files named
149+
power/usb3_hardware_lpm_u1 and power/usb3_hardware_lpm_u2. These
150+
files hold a string value (enable or disable) indicating whether
151+
or not USB3 hardware LPM U1 or U2 is enabled for the device.
150152

151153
What: /sys/bus/usb/devices/.../removable
152154
Date: February 2012
@@ -187,6 +189,17 @@ Description:
187189
The file will read "hotplug", "wired" and "not used" if the
188190
information is available, and "unknown" otherwise.
189191

192+
What: /sys/bus/usb/devices/.../(hub interface)/portX/usb3_lpm_permit
193+
Date: November 2015
194+
Contact: Lu Baolu <[email protected]>
195+
Description:
196+
Some USB3.0 devices are not friendly to USB3 LPM. usb3_lpm_permit
197+
attribute allows enabling/disabling usb3 lpm of a port. It takes
198+
effect both before and after a usb device is enumerated. Supported
199+
values are "0" if both u1 and u2 are NOT permitted, "u1" if only u1
200+
is permitted, "u2" if only u2 is permitted, "u1_u2" if both u1 and
201+
u2 are permitted.
202+
190203
What: /sys/bus/usb/devices/.../power/usb2_lpm_l1_timeout
191204
Date: May 2013
192205
Contact: Mathias Nyman <[email protected]>

Documentation/ABI/testing/sysfs-class-net-cdc_ncm

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,25 @@ Description:
1919
Set to 0 to pad all frames. Set greater than tx_max to
2020
disable all padding.
2121

22+
What: /sys/class/net/<iface>/cdc_ncm/ndp_to_end
23+
Date: Dec 2015
24+
KernelVersion: 4.5
25+
Contact: Bjørn Mork <[email protected]>
26+
Description:
27+
Boolean attribute showing the status of the "NDP to
28+
end" quirk. Defaults to 'N', except for devices
29+
already known to need it enabled.
30+
31+
The "NDP to end" quirk makes the driver place the NDP
32+
(the packet index table) after the payload. The NCM
33+
specification does not mandate this, but some devices
34+
are known to be more restrictive. Write 'Y' to this
35+
attribute for temporary testing of a suspect device
36+
failing to work with the default driver settings.
37+
38+
A device entry should be added to the driver if this
39+
quirk is found to be required.
40+
2241
What: /sys/class/net/<iface>/cdc_ncm/rx_max
2342
Date: May 2014
2443
KernelVersion: 3.16
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
What: /sys/class/net/<iface>/qmi/raw_ip
2+
Date: Dec 2015
3+
KernelVersion: 4.4
4+
Contact: Bjørn Mork <[email protected]>
5+
Description:
6+
Boolean. Default: 'N'
7+
8+
Set this to 'Y' to change the network device link
9+
framing from '802.3' to 'raw-ip'.
10+
11+
The netdev will change to reflect the link framing
12+
mode. The netdev is an ordinary ethernet device in
13+
'802.3' mode, and the driver expects to exchange
14+
frames with an ethernet header over the USB link. The
15+
netdev is a headerless p-t-p device in 'raw-ip' mode,
16+
and the driver expects to echange IPv4 or IPv6 packets
17+
without any L2 header over the USB link.
18+
19+
Userspace is in full control of firmware configuration
20+
through the delegation of the QMI protocol. Userspace
21+
is responsible for coordination of driver and firmware
22+
link framing mode, changing this setting to 'Y' if the
23+
firmware is configured for 'raw-ip' mode.

Documentation/ABI/testing/sysfs-kernel-livepatch

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,16 @@ Description:
3333
The object directory contains subdirectories for each function
3434
that is patched within the object.
3535

36-
What: /sys/kernel/livepatch/<patch>/<object>/<function>
36+
What: /sys/kernel/livepatch/<patch>/<object>/<function,sympos>
3737
Date: Nov 2014
3838
KernelVersion: 3.19.0
3939
4040
Description:
4141
The function directory contains attributes regarding the
4242
properties and state of the patched function.
4343

44+
The directory name contains the patched function name and a
45+
sympos number corresponding to the nth occurrence of the symbol
46+
name in kallsyms for the patched object.
47+
4448
There are currently no such attributes.

Documentation/DocBook/Makefile

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ pdfdocs: $(PDF)
5050

5151
HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
5252
htmldocs: $(HTML)
53-
$(call build_main_index)
54-
$(call build_images)
53+
$(call cmd,build_main_index)
5554
$(call install_media_images)
5655

5756
MAN := $(patsubst %.xml, %.9, $(BOOKS))
@@ -139,7 +138,8 @@ quiet_cmd_db2pdf = PDF $@
139138

140139
index = index.html
141140
main_idx = $(obj)/$(index)
142-
build_main_index = rm -rf $(main_idx); \
141+
quiet_cmd_build_main_index = HTML $(main_idx)
142+
cmd_build_main_index = rm -rf $(main_idx); \
143143
echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \
144144
echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \
145145
cat $(HTML) >> $(main_idx)
@@ -227,6 +227,10 @@ dochelp:
227227
@echo ' mandocs - man pages'
228228
@echo ' installmandocs - install man pages generated by mandocs'
229229
@echo ' cleandocs - clean all generated DocBook files'
230+
@echo
231+
@echo 'make DOCBOOKS="s1.xml s2.xml" [target] Generate only docs s1.xml s2.xml'
232+
@echo ' valid values for DOCBOOKS are: $(DOCBOOKS)'
233+
230234

231235
###
232236
# Temporary files left by various tools

Documentation/DocBook/device-drivers.tmpl

Lines changed: 16 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -238,78 +238,26 @@ X!Isound/sound_firmware.c
238238
!Iinclude/media/videobuf2-memops.h
239239
</sect1>
240240
<sect1><title>Digital TV (DVB) devices</title>
241-
!Idrivers/media/dvb-core/dvb_ca_en50221.h
242-
!Idrivers/media/dvb-core/dvb_frontend.h
241+
<sect1><title>Digital TV Common functions</title>
243242
!Idrivers/media/dvb-core/dvb_math.h
244243
!Idrivers/media/dvb-core/dvb_ringbuffer.h
245244
!Idrivers/media/dvb-core/dvbdev.h
246-
<sect1><title>Digital TV Demux API</title>
247-
<para>The kernel demux API defines a driver-internal interface for
248-
registering low-level, hardware specific driver to a hardware
249-
independent demux layer. It is only of interest for Digital TV
250-
device driver writers. The header file for this API is named
251-
<constant>demux.h</constant> and located in
252-
<constant>drivers/media/dvb-core</constant>.</para>
253-
254-
<para>The demux API should be implemented for each demux in the
255-
system. It is used to select the TS source of a demux and to manage
256-
the demux resources. When the demux client allocates a resource via
257-
the demux API, it receives a pointer to the API of that
258-
resource.</para>
259-
<para>Each demux receives its TS input from a DVB front-end or from
260-
memory, as set via this demux API. In a system with more than one
261-
front-end, the API can be used to select one of the DVB front-ends
262-
as a TS source for a demux, unless this is fixed in the HW platform.
263-
The demux API only controls front-ends regarding to their connections
264-
with demuxes; the APIs used to set the other front-end parameters,
265-
such as tuning, are not defined in this document.</para>
266-
<para>The functions that implement the abstract interface demux should
267-
be defined static or module private and registered to the Demux
268-
core for external access. It is not necessary to implement every
269-
function in the struct <constant>dmx_demux</constant>. For example,
270-
a demux interface might support Section filtering, but not PES
271-
filtering. The API client is expected to check the value of any
272-
function pointer before calling the function: the value of NULL means
273-
that the &#8220;function is not available&#8221;.</para>
274-
<para>Whenever the functions of the demux API modify shared data,
275-
the possibilities of lost update and race condition problems should
276-
be addressed, e.g. by protecting parts of code with mutexes.</para>
277-
<para>Note that functions called from a bottom half context must not
278-
sleep. Even a simple memory allocation without using GFP_ATOMIC can
279-
result in a kernel thread being put to sleep if swapping is needed.
280-
For example, the Linux kernel calls the functions of a network device
281-
interface from a bottom half context. Thus, if a demux API function
282-
is called from network device code, the function must not sleep.
283-
</para>
284-
</sect1>
285-
286-
<section id="demux_callback_api">
287-
<title>Demux Callback API</title>
288-
<para>This kernel-space API comprises the callback functions that
289-
deliver filtered data to the demux client. Unlike the other DVB
290-
kABIs, these functions are provided by the client and called from
291-
the demux code.</para>
292-
<para>The function pointers of this abstract interface are not
293-
packed into a structure as in the other demux APIs, because the
294-
callback functions are registered and used independent of each
295-
other. As an example, it is possible for the API client to provide
296-
several callback functions for receiving TS packets and no
297-
callbacks for PES packets or sections.</para>
298-
<para>The functions that implement the callback API need not be
299-
re-entrant: when a demux driver calls one of these functions,
300-
the driver is not allowed to call the function again before
301-
the original call returns. If a callback is triggered by a
302-
hardware interrupt, it is recommended to use the Linux
303-
&#8220;bottom half&#8221; mechanism or start a tasklet instead of
304-
making the callback function call directly from a hardware
305-
interrupt.</para>
306-
<para>This mechanism is implemented by
307-
<link linkend='API-dmx-ts-cb'>dmx_ts_cb()</link> and
308-
<link linkend='API-dmx-section-cb'>dmx_section_cb()</link>.</para>
309-
</section>
310-
245+
</sect1>
246+
<sect1><title>Digital TV Frontend kABI</title>
247+
!Pdrivers/media/dvb-core/dvb_frontend.h Digital TV Frontend
248+
!Idrivers/media/dvb-core/dvb_frontend.h
249+
</sect1>
250+
<sect1><title>Digital TV Demux kABI</title>
251+
!Pdrivers/media/dvb-core/demux.h Digital TV Demux
252+
<sect1><title>Demux Callback API</title>
253+
!Pdrivers/media/dvb-core/demux.h Demux Callback
254+
</sect1>
311255
!Idrivers/media/dvb-core/demux.h
312-
</sect1>
256+
</sect1>
257+
<sect1><title>Digital TV Conditional Access kABI</title>
258+
!Idrivers/media/dvb-core/dvb_ca_en50221.h
259+
</sect1>
260+
</sect1>
313261
<sect1><title>Remote Controller devices</title>
314262
!Iinclude/media/rc-core.h
315263
!Iinclude/media/lirc_dev.h

0 commit comments

Comments
 (0)