================================================================ ChangeLog for compat-drivers-v3.9-rc1-2 based on linux-3.9-rc1 ================================================================ This is the ChangeLog for the Linux kernel project compat-drivers. It provides a backport of a few Linux kernel subsystems down to older kernels: * 802.11 * Bluetooth * Ethernet * DRM For more details refer to the home pages: https://backports.wiki.kernel.org The compat-drivers project consists of code from three projects: * The Linux kernel: linux-stable.git * Compat-wirelesS: compat-drivers.git * Compat: compat.git The compat-drivers stable releases incorporates code from from each of these git trees for the respective upstream Linux kernel stable release. A branch called linux-3.x.y exists for each stable release. Below we provide the ChangeLog of changes from the previous branched release to the new branched release. Release: linux-3.9 Updates from the compat.git project: ==================================== git shortlog linux-3.8.y..linux-3.9.y Felix Fietkau (1): compat: fix compile errors when assembly is built into modules Hauke Mehrtens (27): compat: fix warning of missing struct netdev_queue compat: add missing return value to netif_set_real_num_tx_queues compat: add simple_write_to_buffer compat: add ETHTOOL_FWVERS_LEN compat: fix warning in usb_autopm_get_interface_no_{resume,suspend} compat: do not access default_ethtool_ops compat: update kernel versions in bin/get-compat-kernels compat: ckmake: make return code 2 is error compat: ckmake: remove lots of warning spam for the log compat: ckmake: do not start all build at the same time compat: add efi_enabled() compat: adapt signature change of tty_flip_buffer_push() and tty_insert_flip_string() compat: backport BUILD_BUG_ON from recent kernel compat: netdev_set_default_ethtool_ops() is not in kernel 3.7.5 compat: backport idr_alloc() usage compat: backport drop of node parameter from iterators compat: check if efi_enabled() was already backported compat: add kernel 3.8-rc7 and update others compat: move tty_flip_buffer_push() and tty_insert_flip_string() compat: add PCI_EXP_LNKCAP_SLS_2_5GB and PCI_EXP_LNKCAP_SLS_5_0GB compat: add missing platform devid constants compat: add empty struct watchdog_device compat: backport of lock_map_acquire_read() compat: backport of lock_map_acquire() and lock_map_release() compat: deactivate netdev_set_default_ethtool_ops() for some 3.7 kernels compat: update kernel versions in bin/get-compat-kernels compat: add file_inode() Johannes Berg (1): compat: backport nla_put_be{16,32,64}() Luis R. Rodriguez (2): compat: backport netdev_set_default_ethtool_ops() compat: remove trailing erroneous semicolon from compat-3.8.c Updates from the compat-drivers.git project: ============================================= git shortlog linux-3.8.y..linux-3.9.y Hauke Mehrtens (29): compat-drivers: refresh patches compat-drivers: add wil6210 driver compat-drivers: fix section mismatch in ath5k compat-drivers: add new mac80211 debug options compat-drivers: remove devinit and devexit from alx driver compat-drivers: refresh patches compat-drivers: do not treat a warning as error compat-drivers: deactivate loopback testing for older kernels compat-drivers: refresh alx patches compat-drivers: deactivate mac80211_hwsim for kernel < 2.6.31 compat-drivers: use backport for second workqueue compat-drivers: update genlog-3.8 for rc5 compat-drivers: make patches apply again compat-drivers: add the iwlwifi MVM driver compat-drivers: add include for net/if_inet6.h to net/mac80211.h compat-drivers: add missing include for export compat-drivers: refresh patches on next-20130202 compat-drivers: refresh patches compat-drivers: make drm patches apply again compat-drivers: add missing include linux/export.h compat-drivers: do not include videomode headers when this feature is deactivated compat-drivers: refresh patches: compat-drivers: backport threaded IRQ for iwlwifi compat-drivers: move disable_drm compat-drivers: refresh patches: compat-drivers: do not use __sock_create() compat-drivers: refresh patches compat-drivers: refresh patches compat-drivers: build driver/video/hdmi.ko Johannes Berg (1): compat-drivers: rename GPL file to COPYING Luis R. Rodriguez (24): compat-drivers: fix collateral-evolutions/network/53-pr_fmt.patch compat-drivers: fix 61-netdev-addr_assign_type.patch compat-drivers: refresh patches compat-drivers: add genlog-3.8 compat-drivers: update genlog-3.8 compat-drivers: trim 'v' prefix from ChangeLog file compat-drivers: remove 'v' prefix from version on ChangeLog compat-drivers: refresh patches for next-20130110 Revert "compat-drivers: remove wil6210 driver from scripts/driver-select" compat-drivers: disable DRM drivers for 802.11 drivers compat-drivers: do not call make clean for unified drivers compat-drivers: fix driver-select for atheros drivers compat-drivers: refresh patches for next-20130121 compat-drivers: remove network/0003-alx-remove-devinit-devexit.patch compat-drivers: reference adrian's alx tree instead compat-drivers: fix network/18-rename-usb-net-symbols.patch compat-drivers: fix network/99-change-makefiles.patch compat-drivers: refresh patches for next-20130304 compat-drivers: refresh unified-drivers patches Revert "compat-drivers: fix network/18-rename-usb-net-symbols.patch" Revert "compat-drivers: fix network/99-change-makefiles.patch" compat-drivers: refresh patches for v3.9-rc1 compat-drivers: add mac80211_hwsim support to driver-select compat-drivers: add scripts/genlog-3.9 stefan.kuhn@foss-group.ch (1): scripts/driver-select: use $BACKUP_EXT everywhere xiong (1): compat-drivers: refresh alx patch for INTX-MSI issue Updates from the Linux kernel: ============================================= We only include very specific changes for the supported subsystems: * 802.11 * Bluetooth * Ethernet * DRM Generated by using: git log v3.8-rc1..HEAD \ net/wireless/ \ net/mac80211/ \ net/rfkill/ \ drivers/net/wireless/ \ net/bluetooth/ \ drivers/bluetooth/ \ drivers/gpu/drm/ drivers/net/ethernet/atheros/atl1c/ \ drivers/net/ethernet/atheros/atl1e/ \ drivers/net/ethernet/atheros/atlx/ \ include/uapi/linux/nl80211.h \ include/linux/rfkill.h \ include/uapi/rfkill.h \ include/uapi/drm \ include/net/cfg80211.h \ include/net/regulatory.h \ include/net/cfg80211.h >> ChangeLog-3.9-rc1-2 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git commit b67bfe0d42cac56c512dd5da4b1b347a23f4b70a Author: Sasha Levin Date: Wed Feb 27 17:06:00 2013 -0800 hlist: drop the node parameter from iterators I'm not sure why, but the hlist for each entry iterators were conceived list_for_each_entry(pos, head, member) The hlist ones were greedy and wanted an extra parameter: hlist_for_each_entry(tpos, pos, head, member) Why did they need an extra pos parameter? I'm not quite sure. Not only they don't really need it, it also prevents the iterator from looking exactly like the list iterator, which is unfortunate. Besides the semantic patch, there was some manual work required: - Fix up the actual hlist iterators in linux/list.h - Fix up the declaration of other iterators based on the hlist ones. - A very small amount of places were using the 'node' parameter, this was modified to use 'obj->member' instead. - Coccinelle didn't handle the hlist_for_each_entry_safe iterator properly, so those had to be fixed up manually. The semantic patch which is mostly the work of Peter Senna Tschudin is here: @@ iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host; type T; expression a,c,d,e; identifier b; statement S; @@ -T b; <+... when != b ( hlist_for_each_entry(a, - b, c, d) S | hlist_for_each_entry_continue(a, - b, c) S | hlist_for_each_entry_from(a, - b, c) S | hlist_for_each_entry_rcu(a, - b, c, d) S | hlist_for_each_entry_rcu_bh(a, - b, c, d) S | hlist_for_each_entry_continue_rcu_bh(a, - b, c) S | for_each_busy_worker(a, c, - b, d) S | ax25_uid_for_each(a, - b, c) S | ax25_for_each(a, - b, c) S | inet_bind_bucket_for_each(a, - b, c) S | sctp_for_each_hentry(a, - b, c) S | sk_for_each(a, - b, c) S | sk_for_each_rcu(a, - b, c) S | sk_for_each_from -(a, b) +(a) S + sk_for_each_from(a) S | sk_for_each_safe(a, - b, c, d) S | sk_for_each_bound(a, - b, c) S | hlist_for_each_entry_safe(a, - b, c, d, e) S | hlist_for_each_entry_continue_rcu(a, - b, c) S | nr_neigh_for_each(a, - b, c) S | nr_neigh_for_each_safe(a, - b, c, d) S | nr_node_for_each(a, - b, c) S | nr_node_for_each_safe(a, - b, c, d) S | - for_each_gfn_sp(a, c, d, b) S + for_each_gfn_sp(a, c, d) S | - for_each_gfn_indirect_valid_sp(a, c, d, b) S + for_each_gfn_indirect_valid_sp(a, c, d) S | for_each_host(a, - b, c) S | for_each_host_safe(a, - b, c, d) S | for_each_mesh_entry(a, - b, c, d) S ) ...+> [akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c] [akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c] [akpm@linux-foundation.org: checkpatch fixes] [akpm@linux-foundation.org: fix warnings] [akpm@linux-foudnation.org: redo intrusive kvm changes] Tested-by: Peter Senna Tschudin Acked-by: Paul E. McKenney Signed-off-by: Sasha Levin Cc: Wu Fengguang Cc: Marcelo Tosatti Cc: Gleb Natapov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9475af6e44d2c17583243c253e2464467b52fa50 Author: Tejun Heo Date: Wed Feb 27 17:04:59 2013 -0800 mac80211: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo Acked-by: Johannes Berg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cc39a8faedc936df90cac077b2da6f420a777259 Author: Tejun Heo Date: Wed Feb 27 17:04:14 2013 -0800 drm/vmwgfx: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo Acked-by: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 36888db24765478a463ac6f443b175ad885dee25 Author: Tejun Heo Date: Wed Feb 27 17:04:12 2013 -0800 drm/via: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo Acked-by: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ff512357fe1bf7f901bd0ea19fc718025dff6b07 Author: Tejun Heo Date: Wed Feb 27 17:04:11 2013 -0800 drm/sis: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo Acked-by: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c8c470afe316002d5d5259a134984ed03f40e249 Author: Tejun Heo Date: Wed Feb 27 17:04:10 2013 -0800 drm/i915: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo Acked-by: Daniel Vetter Acked-by: David Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8550cb2e3a3f4a5f2f6aa40b6c99691056f85b9d Author: Tejun Heo Date: Wed Feb 27 17:04:09 2013 -0800 drm/exynos: convert to idr_alloc() Convert to the much saner new idr interface. Signed-off-by: Tejun Heo Acked-by: David Airlie Cc: Kukjin Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e928815c1886fe628ed54623aa98d0889cf5509 Author: Tejun Heo Date: Wed Feb 27 17:04:08 2013 -0800 drm: convert to idr_alloc() Convert to the much saner new idr interface. * drm_ctxbitmap_next() error handling in drm_addctx() seems broken. drm_ctxbitmap_next() return -errno on failure not -1. [artem.savkov@gmail.com: missing idr_preload_end in drm_gem_flink_ioctl] [jslaby@suse.cz: fix drm_gem_flink_ioctl() return value] Signed-off-by: Tejun Heo Acked-by: David Airlie Signed-off-by: Artem Savkov Signed-off-by: Jiri Slaby Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4d53233a36fdda567cd4d080e27e1ee4b669ddd1 Author: Tejun Heo Date: Wed Feb 27 17:03:39 2013 -0800 drm: don't use idr_remove_all() idr_destroy() can destroy idr by itself and idr_remove_all() is being deprecated. Drop its usage. * drm_ctxbitmap_cleanup() was calling idr_remove_all() but forgetting idr_destroy() thus leaking all buffered free idr_layers. Replace it with idr_destroy(). Signed-off-by: Tejun Heo Acked-by: David Airlie Cc: Inki Dae Cc: Joonyoung Shim Cc: Seung-Woo Kim Cc: Kyungmin Park Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d895cb1af15c04c522a25c79cc429076987c089b Merge: 9626357 d3d009c Author: Linus Torvalds Date: Tue Feb 26 20:16:07 2013 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs pile (part one) from Al Viro: "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent locking violations, etc. The most visible changes here are death of FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper getting from struct file to inode. Some bits of preparation to xattr method interface changes. Misc patches by various people sent this cycle *and* ocfs2 fixes from several cycles ago that should've been upstream right then. PS: the next vfs pile will be xattr stuff." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) saner proc_get_inode() calling conventions proc: avoid extra pde_put() in proc_fill_super() fs: change return values from -EACCES to -EPERM fs/exec.c: make bprm_mm_init() static ocfs2/dlm: use GFP_ATOMIC inside a spin_lock ocfs2: fix possible use-after-free with AIO ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero target: writev() on single-element vector is pointless export kernel_write(), convert open-coded instances fs: encode_fh: return FILEID_INVALID if invalid fid_type kill f_vfsmnt vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op nfsd: handle vfs_getattr errors in acl protocol switch vfs_getattr() to struct path default SET_PERSONALITY() in linux/elf.h ceph: prepopulate inodes only when request is aborted d_hash_and_lookup(): export, switch open-coded instances 9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() 9p: split dropping the acls from v9fs_set_create_acl() ... commit 1cef9350cbee6e3bcf2ff646b8978fbec33f8b85 Merge: ecc88ef eb970ff Author: Linus Torvalds Date: Tue Feb 26 11:44:11 2013 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) ping_err() ICMP error handler looks at wrong ICMP header, from Li Wei. 2) TCP socket hash function on ipv6 is too weak, from Eric Dumazet. 3) netif_set_xps_queue() forgets to drop mutex on errors, fix from Alexander Duyck. 4) sum_frag_mem_limit() can deadlock due to lack of BH disabling, fix from Eric Dumazet. 5) TCP SYN data is miscalculated in tcp_send_syn_data(), because the amount of TCP option space was not taken into account properly in this code path. Fix from yuchung Cheng. 6) MLX4 driver allocates device queues with the wrong size, from Kleber Sacilotto. 7) sock_diag can access past the end of the sock_diag_handlers[] array, from Mathias Krause. 8) vlan_set_encap_proto() makes incorrect assumptions about where skb->data points, rework the logic so that it works regardless of where skb->data happens to be. From Jesse Gross. 9) Fix gianfar build failure with NET_POLL enabled, from Paul Gortmaker. 10) Fix Ipv4 ID setting and checksum calculations in GRE driver, from Pravin B Shelar. 11) bgmac driver does: int i; for (i = 0; ...; ...) { ... for (i = 0; ...; ...) { effectively corrupting the outer loop index, use a seperate variable for the inner loops. From Rafał Miłecki. 12) Fix suspend bugs in smsc95xx driver, from Ming Lei. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (35 commits) usbnet: smsc95xx: rename FEATURE_AUTOSUSPEND usbnet: smsc95xx: fix broken runtime suspend usbnet: smsc95xx: fix suspend failure bgmac: fix indexing of 2nd level loops b43: Fix lockdep splat on module unload Revert "ip_gre: propogate target device GSO capability to the tunnel device" IP_GRE: Fix GRE_CSUM case. VXLAN: Use tunnel_ip_select_ident() for tunnel IP-Identification. IP_GRE: Fix IP-Identification. net/pasemi: Fix missing coding style vmxnet3: fix ethtool ring buffer size setting vmxnet3: make local function static bnx2x: remove dead code and make local funcs static gianfar: fix compile fail for NET_POLL=y due to struct packing vlan: adjust vlan_set_encap_proto() for its callers sock_diag: Simplify sock_diag_handlers[] handling in __sock_diag_rcv_msg sock_diag: Fix out-of-bounds access to sock_diag_handlers[] vxlan: remove depends on CONFIG_EXPERIMENTAL mlx4_en: fix allocation of CPU affinity reverse-map mlx4_en: fix allocation of device tx_cq ... commit fffddfd6c8e0c10c42c6e2cc54ba880fcc36ebbb Merge: 69086a7 be88298 Author: Linus Torvalds Date: Mon Feb 25 16:46:44 2013 -0800 Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux Pull drm merge from Dave Airlie: "Highlights: - TI LCD controller KMS driver - TI OMAP KMS driver merged from staging - drop gma500 stub driver - the fbcon locking fixes - the vgacon dirty like zebra fix. - open firmware videomode and hdmi common code helpers - major locking rework for kms object handling - pageflip/cursor won't block on polling anymore! - fbcon helper and prime helper cleanups - i915: all over the map, haswell power well enhancements, valleyview macro horrors cleaned up, killing lots of legacy GTT code, - radeon: CS ioctl unification, deprecated UMS support, gpu reset rework, VM fixes - nouveau: reworked thermal code, external dp/tmds encoder support (anx9805), fences sleep instead of polling, - exynos: all over the driver fixes." Lovely conflict in radeon/evergreen_cs.c between commit de0babd60d8d ("drm/radeon: enforce use of radeon_get_ib_value when reading user cmd") and the new changes that modified that evergreen_dma_cs_parse() function. * 'drm-next' of git://people.freedesktop.org/~airlied/linux: (508 commits) drm/tilcdc: only build on arm drm/i915: Revert hdmi HDP pin checks drm/tegra: Add list of framebuffers to debugfs drm/tegra: Fix color expansion drm/tegra: Split DC_CMD_STATE_CONTROL register write drm/tegra: Implement page-flipping support drm/tegra: Implement VBLANK support drm/tegra: Implement .mode_set_base() drm/tegra: Add plane support drm/tegra: Remove bogus tegra_framebuffer structure drm: Add consistency check for page-flipping drm/radeon: Use generic HDMI infoframe helpers drm/tegra: Use generic HDMI infoframe helpers drm: Add EDID helper documentation drm: Add HDMI infoframe helpers video: Add generic HDMI infoframe helpers drm: Add some missing forward declarations drm: Move mode tables to drm_edid.c drm: Remove duplicate drm_mode_cea_vic() gma500: Fix n, m1 and m2 clock limits for sdvo and lvds ... commit be88298b0a3f771a4802f20c5e66af74bfd1dff1 Author: Stephen Rothwell Date: Tue Feb 26 09:54:48 2013 +1000 drm/tilcdc: only build on arm [airlied: hack for now until we fix cma helpers on other OF platforms] Signed-off-by: Stephen Rothwell Signed-off-by: Dave Airlie commit 63a02ce1c5c59baa40b99756492e3ec8d6b51483 Author: Larry Finger Date: Mon Feb 25 06:09:24 2013 +0000 b43: Fix lockdep splat on module unload On unload, b43 produces a lockdep warning that can be summarized in the following way: ====================================================== [ INFO: possible circular locking dependency detected ] 3.8.0-wl+ #117 Not tainted ------------------------------------------------------- modprobe/5557 is trying to acquire lock: ((&wl->firmware_load)){+.+.+.}, at: [] flush_work+0x0/0x2a0 but task is already holding lock: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x12/0x20 which lock already depends on the new lock. [ INFO: possible circular locking dependency detected ] ====================================================== The full output is available at http://lkml.indiana.edu/hypermail/linux/kernel/1302.3/00060.html. To summarize, commit 6b6fa58 added a 'cancel_work_sync(&wl->firmware_load)' call in the wrong place. The fix is to move the cancel_work_sync() call to b43_bcma_remove() and b43_ssb_remove(). Thanks to Johannes Berg and Michael Buesch for help in diagnosing the log output. Signed-off-by: Larry Finger Cc: Stable [V3.5+] Signed-off-by: David S. Miller commit 6d6436fbcbc43febe2481d3488f3bb5271ec2eb0 Merge: ea5cdcc dc4a787 Author: John W. Linville Date: Mon Feb 25 14:50:31 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem commit 28ee46184fc64591e286fa0355845e09c39e2a84 Merge: a497bfe e3b2e03 Author: Dave Airlie Date: Sun Feb 24 12:39:42 2013 +1000 Merge branch 'drm/hdmi-for-3.9' of git://anongit.freedesktop.org/tegra/linux into drm-next Thierry writes: "Remove a duplicate implementation of the CEA VIC lookup and move the CEA and other mode tables to drm_edid.c to make it more difficult to create duplicates of the tables. Add some helpers to pack CEA-861/HDMI AVI, audio and SPD infoframes into binary buffers that can easily be written into hardware registers. A new helper function makes it easy construct an AVI infoframe from a DRM display mode. Convert the Tegra and Radeon drivers to use the new HDMI helpers." * 'drm/hdmi-for-3.9' of git://anongit.freedesktop.org/tegra/linux: drm/radeon: Use generic HDMI infoframe helpers drm/tegra: Use generic HDMI infoframe helpers drm: Add EDID helper documentation drm: Add HDMI infoframe helpers video: Add generic HDMI infoframe helpers drm: Add some missing forward declarations drm: Move mode tables to drm_edid.c drm: Remove duplicate drm_mode_cea_vic() commit a497bfe9dbbc0fbacd61295986372a626e73f452 Merge: a3b1097 202adf4 Author: Dave Airlie Date: Sun Feb 24 12:39:02 2013 +1000 Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next Two regressions fixes from snowboarding land * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel: drm/i915: Revert hdmi HDP pin checks drm/i915: Handle untiled planes when computing their offsets commit 496ad9aa8ef448058e36ca7a787c61f2e63f0f54 Author: Al Viro Date: Wed Jan 23 17:07:38 2013 -0500 new helper: file_inode(file) Signed-off-by: Al Viro commit dc4a787c8f52f9d6e46156953f8014a3353bcbc7 Author: Wei Yongjun Date: Fri Feb 22 21:32:20 2013 +0800 brcmfmac: fix missing unlock on error in brcmf_notify_vif_event() Add the missing unlock before return from function brcmf_notify_vif_event() in the error handling case. Signed-off-by: Wei Yongjun Reported-by: Dan Carpenter Acked-by: Arend van Spriel Signed-off-by: John W. Linville commit 48f4d91679c0e0b26747f8adbb18e5212eb6d621 Author: Avinash Patil Date: Wed Feb 20 21:12:58 2013 -0800 mwifiex: fix system freeze while reloading driver Unload sequence for mwifiex PCIE driver is as follows: 1. Invoking cleanup module from kernel results into pci_unregister_driver 2. Kernel invokes PCIE remove() handler which disconnects all interfaces. 3. One step during disconnect is to clean PCIE TX rings. During this we read txbd_rdptr from FW. While loading driver next time, we see pci_enable_device() results into system freeze. This may have happened because we accessed PCI device after unregistering from bus driver. Removing this ioread() operation resolves this bug. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 1499d9fa54a41942973bfc2c4ab12ccc5f1e15de Author: Daniel Drake Date: Tue Feb 19 15:09:47 2013 -0500 mwifiex: don't drop carrier flag over suspend If the system suspends with mwifiex wifi powered on, and is then woken by an ICMP ping packet, the ping response is discarded by the kernel because the kernel incorrectly thinks there is no carrier. I can't see any valid reason to want to report loss of carrier here, so remove the offending code. Fixes http://dev.laptop.org/ticket/12554 Signed-off-by: Daniel Drake Acked-by: Bing Zhao Signed-off-by: John W. Linville commit 202adf4b9f5957b26a1cb97267d78e0edb319c5e Author: Daniel Vetter Date: Fri Feb 22 00:53:04 2013 +0100 drm/i915: Revert hdmi HDP pin checks This reverts commit 8ec22b214d76773c9d89f4040505ce10f677ed9a Author: Chris Wilson Date: Fri May 11 18:01:34 2012 +0100 drm/i915/hdmi: Query the live connector status bit for G4x and commit b0ea7d37a8f63eeec5ae80b4a6403cfba01da02f Author: Damien Lespiau Date: Thu Dec 13 16:09:00 2012 +0000 drm/i915/hdmi: Read the HPD status before trying to read the EDID They reliably cause HDMI to not be detected on some systems (like my ivb or the bug reporters gm45). To fix up the very slow unplug issues we might want to fire up a 2nd detect cycle a few hundred ms after each hotplug. But for now at least make displays work again. I somewhat suspect that this is confined to HDMI connectors, since all the machines I have with DP+ outputs work correctly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=52361 Cc: Damien Lespiau Cc: Jani Nikula Cc: Chris Wilson Acked-by: Chris Wilson Cc: stable@vger.kernel.org.kernel.org # for 8ec22b21 Signed-off-by: Daniel Vetter commit e450fcc6669705ef49784080ac6dd8513df37763 Author: Thierry Reding Date: Wed Feb 13 16:13:16 2013 +0100 drm/tegra: Add list of framebuffers to debugfs This list is most useful to inspect whether framebuffer reference counting works as expected. The code is loosely based on the i915 implementation. Signed-off-by: Thierry Reding commit 84ff6b270893cd8b054bae371a315c905ffa3ac9 Author: Thierry Reding Date: Thu Feb 21 08:11:57 2013 +0100 drm/tegra: Fix color expansion bpp stores the number of bytes per pixel, but color expansion needs to be enabled for less than 24 bits per pixel. Signed-off-by: Thierry Reding commit 3b9e71eae5ac5ded28ad1dcded7c01ae73dd9581 Author: Thierry Reding Date: Tue Jan 15 12:21:36 2013 +0100 drm/tegra: Split DC_CMD_STATE_CONTROL register write The Tegra TRM says that the ACT_REQ and UPDATE fields cannot be programmed at the same time so they are updated in two consecutive writes instead. Signed-off-by: Thierry Reding commit 3c03c46ac80ea7edc3b8f2ba85085de54aec15cd Author: Thierry Reding Date: Wed Nov 28 12:00:18 2012 +0100 drm/tegra: Implement page-flipping support All the necessary support bits like .mode_set_base() and VBLANK are now available, so page-flipping case easily be implemented on top. Signed-off-by: Thierry Reding commit 6e5ff998997ba7dc5ca10b6662e95a9d07f764c4 Author: Thierry Reding Date: Wed Nov 28 11:45:47 2012 +0100 drm/tegra: Implement VBLANK support Implement support for the VBLANK IOCTL. Note that Tegra is somewhat special in this case because it doesn't use the generic IRQ support provided by the DRM core (DRIVER_HAVE_IRQ) but rather registers one interrupt handler for each display controller. While at it, clean up the way that interrupts are enabled to ensure that the VBLANK interrupt only gets enabled when required. Signed-off-by: Thierry Reding commit 23fb47404e6118eb53fb34c95ed98a3f4f822a76 Author: Thierry Reding Date: Wed Nov 28 11:38:24 2012 +0100 drm/tegra: Implement .mode_set_base() The sequence for replacing the scanout buffer is much shorter than a full mode change operation so implementing this callback considerably speeds up cases where only a new framebuffer is to be scanned out. Signed-off-by: Thierry Reding commit f34bc78741815d0ad07298a42101a1ee2e2bcdd2 Author: Thierry Reding Date: Sun Nov 4 21:47:13 2012 +0100 drm/tegra: Add plane support Add support for the B and C planes which support RGB and YUV pixel formats and can be used as overlays or hardware cursor. Currently 32-bit XRGB as well as UYVY, YUV420 and YUV422 pixel formats are advertised. Other formats should be easy to add but these are the most common ones and should cover the majority of use-cases. Signed-off-by: Thierry Reding commit 894752bb576a26d3343cf8c674b73899f948da68 Author: Thierry Reding Date: Tue Feb 19 16:22:51 2013 +0100 drm/tegra: Remove bogus tegra_framebuffer structure Tegra uses the CMA FB helpers so framebuffers passed to the driver need to use the corresponding functions to access the underlying GEM objects. This used to work because struct tegra_framebuffer was sufficiently similar to struct drm_fb_cma but that isn't guaranteed to stay that way. Signed-off-by: Thierry Reding commit 8cf1e9811471f2910fa38dc1b28e1789080ba961 Author: Thierry Reding Date: Wed Feb 13 16:08:33 2013 +0100 drm: Add consistency check for page-flipping Driver implementations of the drm_crtc's .page_flip() function are required to update the crtc->fb field on success to reflect that the new framebuffer is now in use. This is important to keep reference counting on the framebuffers balanced. While at it, document this requirement to keep others from falling into the same trap. Suggested-by: Daniel Vetter Signed-off-by: Thierry Reding Reviewed-by: Daniel Vetter commit e3b2e0347e3b3b81cc322b413abf98a349d275df Author: Thierry Reding Date: Mon Jan 14 13:36:30 2013 +0100 drm/radeon: Use generic HDMI infoframe helpers Use the generic HDMI infoframe helpers to get rid of the duplicate implementation in the radeon driver. Signed-off-by: Thierry Reding Reviewed-by: Alex Deucher commit ac24c2204a76e5b42aa103bf963ae0eda1b827f3 Author: Thierry Reding Date: Fri Nov 23 15:14:00 2012 +0100 drm/tegra: Use generic HDMI infoframe helpers Use the generic HDMI infoframe helpers to get rid of the NVIDIA Tegra reimplementation. Signed-off-by: Thierry Reding Reviewed-by: Alex Deucher commit 10a8512008655d5ce62f8c56323a6b5bd221c920 Author: Thierry Reding Date: Wed Nov 21 15:31:35 2012 +0100 drm: Add HDMI infoframe helpers Add a generic helper to fill in an HDMI AVI infoframe with data extracted from a DRM display mode. Signed-off-by: Thierry Reding Reviewed-by: Alex Deucher commit a6b21831772db4088bca770dc99697356e82a7e2 Author: Thierry Reding Date: Fri Nov 23 15:01:42 2012 +0100 drm: Move mode tables to drm_edid.c The modes are only used from within drm_edid.c so we move them there to avoid creating duplicates by multiple inclusion of drm_edid_modes.h. As a side-effect we can also get rid of a few variables that keep track of the number of entries in the tables and use ARRAY_SIZE() instead. Signed-off-by: Thierry Reding Reviewed-by: Alex Deucher commit 18316c8c39a85c8b6e3db0a150b1bee5b6c4c053 Author: Thierry Reding Date: Thu Dec 20 15:41:44 2012 +0100 drm: Remove duplicate drm_mode_cea_vic() The same function had already been merged with a different name. Remove the duplicate one but reuse some of its kerneldoc fragments for the existing implementation. Signed-off-by: Thierry Reding Reviewed-by: Alex Deucher commit 9afa3195b96da7d2320ec44d19fbfbded7a15571 Merge: 7c2db36 df63447 Author: Linus Torvalds Date: Thu Feb 21 17:40:58 2013 -0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial Pull trivial tree from Jiri Kosina: "Assorted tiny fixes queued in trivial tree" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (22 commits) DocBook: update EXPORT_SYMBOL entry to point at export.h Documentation: update top level 00-INDEX file with new additions ARM: at91/ide: remove unsused at91-ide Kconfig entry percpu_counter.h: comment code for better readability x86, efi: fix comment typo in head_32.S IB: cxgb3: delay freeing mem untill entirely done with it net: mvneta: remove unneeded version.h include time: x86: report_lost_ticks doesn't exist any more pcmcia: avoid static analysis complaint about use-after-free fs/jfs: Fix typo in comment : 'how may' -> 'how many' of: add missing documentation for of_platform_populate() btrfs: remove unnecessary cur_trans set before goto loop in join_transaction sound: soc: Fix typo in sound/codecs treewide: Fix typo in various drivers btrfs: fix comment typos Update ibmvscsi module name in Kconfig. powerpc: fix typo (utilties -> utilities) of: fix spelling mistake in comment h8300: Fix home page URL in h8300/README xtensa: Fix home page URL in Kconfig ... commit c976cb37a95a8dcaf23d04d6487fbacc33d3c913 Merge: 907a773 95fc633 Author: Dave Airlie Date: Fri Feb 22 10:17:11 2013 +1000 Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next The summary: . Add display mode check operaion to mixer driver - Mixer IP also can put certain restrictions on the proposed display modes and these restrictions need to be considered during mode negotiation, which happens immediately after edid parsing. . Set correct mode for range of resolutions - With this patch, the mixer driver could find the correct mode for the range of resolutions upto 1080 vertical lines. . Support extra resolution for hdmi - This patch programs the core and timing generator registers using the timing data provided in drm_display_mode without hard-coded configurations. So this patch adds additional PHY configs to allow us to support more permissible resolutions and refresh rates. . Add device tree support for g2d - This patch adds just the compatible string for exynos5250 SoC so that with device tree enabling, this driver can be probed. . And bug fixes and code cleanups. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: Add device tree based discovery support for G2D drm/exynos: hdmi: support extra resolutions using drm_display_mode timings drm/exynos: mixer: set correct mode for range of resolutions drm/exynos: implement display-mode-check callback in mixer driver drm/exynos: add display-mode-check operation to exynos_mixer_ops struct drm/exynos: release resources properly when fb creation is failed. drm/exynos: fix wrong pointer access at vm close. drm/exynos: Add missing braces around sizeof drm/exynos: consider exception case to fb handle creation drm/exynos: fix iommu address allocation order commit 907a773ba365daa9f86c6bb8cb11ddbf9b11a3d1 Author: Patrik Jakobsson Date: Sat Feb 16 13:04:21 2013 +0100 gma500: Fix n, m1 and m2 clock limits for sdvo and lvds The values of n, m1 and m2 needs to be subtracted by 2 before writing them to the FP register. The dot clock calculation already thinks of these values in register form so we must also specify them as such. Signed-off-by: Patrik Jakobsson Signed-off-by: Dave Airlie commit bab588fcfb6335c767d811a8955979f5440328e0 Merge: 3298a35 9cb0d1b Author: Linus Torvalds Date: Thu Feb 21 15:27:22 2013 -0800 Merge tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc Pull ARM SoC-specific updates from Arnd Bergmann: "This is a larger set of new functionality for the existing SoC families, including: - vt8500 gains support for new CPU cores, notably the Cortex-A9 based wm8850 - prima2 gains support for the "marco" SoC family, its SMP based cousin - tegra gains support for the new Tegra4 (Tegra114) family - socfpga now supports a newer version of the hardware including SMP - i.mx31 and bcm2835 are now using DT probing for their clocks - lots of updates for sh-mobile - OMAP updates for clocks, power management and USB - i.mx6q and tegra now support cpuidle - kirkwood now supports PCIe hot plugging - tegra clock support is updated - tegra USB PHY probing gets implemented diffently" * tag 'soc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (148 commits) ARM: prima2: remove duplicate v7_invalidate_l1 ARM: shmobile: r8a7779: Correct TMU clock support again ARM: prima2: fix __init section for cpu hotplug ARM: OMAP: Consolidate OMAP USB-HS platform data (part 3/3) ARM: OMAP: Consolidate OMAP USB-HS platform data (part 1/3) arm: socfpga: Add SMP support for actual socfpga harware arm: Add v7_invalidate_l1 to cache-v7.S arm: socfpga: Add entries to enable make dtbs socfpga arm: socfpga: Add new device tree source for actual socfpga HW ARM: tegra: sort Kconfig selects for Tegra114 ARM: tegra: enable ARCH_REQUIRE_GPIOLIB for Tegra114 ARM: tegra: Fix build error w/ ARCH_TEGRA_114_SOC w/o ARCH_TEGRA_3x_SOC ARM: tegra: Fix build error for gic update ARM: tegra: remove empty tegra_smp_init_cpus() ARM: shmobile: Register ARM architected timer ARM: MARCO: fix the build issue due to gic-vic-to-irqchip move ARM: shmobile: r8a7779: Correct TMU clock support ARM: mxs_defconfig: Select CONFIG_DEVTMPFS_MOUNT ARM: mxs: decrease mxs_clockevent_device.min_delta_ns to 2 clock cycles ARM: mxs: use apbx bus clock to drive the timers on timrotv2 ... commit 21eaab6d19ed43e82ed39c8deb7f192134fb4a0e Merge: 74e1a2a 9e17df3 Author: Linus Torvalds Date: Thu Feb 21 13:41:04 2013 -0800 Merge tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial patches from Greg Kroah-Hartman: "Here's the big tty/serial driver patches for 3.9-rc1. More tty port rework and fixes from Jiri here, as well as lots of individual serial driver updates and fixes. All of these have been in the linux-next tree for a while." * tag 'tty-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (140 commits) tty: mxser: improve error handling in mxser_probe() and mxser_module_init() serial: imx: fix uninitialized variable warning serial: tegra: assume CONFIG_OF TTY: do not update atime/mtime on read/write lguest: select CONFIG_TTY to build properly. ARM defconfigs: add missing inclusions of linux/platform_device.h fb/exynos: include platform_device.h ARM: sa1100/assabet: include platform_device.h directly serial: imx: Fix recursive locking bug pps: Fix build breakage from decoupling pps from tty tty: Remove ancient hardpps() pps: Additional cleanups in uart_handle_dcd_change pps: Move timestamp read into PPS code proper pps: Don't crash the machine when exiting will do pps: Fix a use-after free bug when unregistering a source. pps: Use pps_lookup_dev to reduce ldisc coupling pps: Add pps_lookup_dev() function tty: serial: uartlite: Support uartlite on big and little endian systems tty: serial: uartlite: Fix sparse and checkpatch warnings serial/arc-uart: Miscll DT related updates (Grant's review comments) ... Fix up trivial conflicts, mostly just due to the TTY config option clashing with the EXPERIMENTAL removal. commit bc752862170c135d6c09fb22d79eeb451023568e Author: Chris Wilson Date: Thu Feb 21 20:04:31 2013 +0000 drm/i915: Handle untiled planes when computing their offsets We trim the fb to fit the CRTC by computing the offset of that CRTC to its nearest tile_row origin. This allows us to use framebuffers that are larger than the CRTC limits without additional work. However, we failed to compute the offset for a linear framebuffer correctly as we treated its x-advance in whole tiles (instead of the linear increment expected), leaving the CRTC misaligned with its contents. Fixes regression from commit c2c75131244507c93f812862fdbd4f3a37139401 Author: Daniel Vetter Date: Thu Jul 5 12:17:30 2012 +0200 drm/i915: adjust framebuffer base address on gen4+ v2: Adjust relative x-coordinate after linear alignment (vsyrjala) v3: Repaint with pokadots (vsyrjala) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=61152 Signed-off-by: Chris Wilson Cc: Daniel Vetter Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 06991c28f37ad68e5c03777f5c3b679b56e3dac1 Merge: 460dc1e 74fef7a Author: Linus Torvalds Date: Thu Feb 21 12:05:51 2013 -0800 Merge tag 'driver-core-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core patches from Greg Kroah-Hartman: "Here is the big driver core merge for 3.9-rc1 There are two major series here, both of which touch lots of drivers all over the kernel, and will cause you some merge conflicts: - add a new function called devm_ioremap_resource() to properly be able to check return values. - remove CONFIG_EXPERIMENTAL Other than those patches, there's not much here, some minor fixes and updates" Fix up trivial conflicts * tag 'driver-core-3.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (221 commits) base: memory: fix soft/hard_offline_page permissions drivercore: Fix ordering between deferred_probe and exiting initcalls backlight: fix class_find_device() arguments TTY: mark tty_get_device call with the proper const values driver-core: constify data for class_find_device() firmware: Ignore abort check when no user-helper is used firmware: Reduce ifdef CONFIG_FW_LOADER_USER_HELPER firmware: Make user-mode helper optional firmware: Refactoring for splitting user-mode helper code Driver core: treat unregistered bus_types as having no devices watchdog: Convert to devm_ioremap_resource() thermal: Convert to devm_ioremap_resource() spi: Convert to devm_ioremap_resource() power: Convert to devm_ioremap_resource() mtd: Convert to devm_ioremap_resource() mmc: Convert to devm_ioremap_resource() mfd: Convert to devm_ioremap_resource() media: Convert to devm_ioremap_resource() iommu: Convert to devm_ioremap_resource() drm: Convert to devm_ioremap_resource() ... commit 95fc633735331b3404d0ae65a3bb08d02640dbd0 Author: Ajay Kumar Date: Wed Feb 6 10:59:44 2013 +0530 drm/exynos: Add device tree based discovery support for G2D This patch adds device tree match table for Exynos G2D controller. Signed-off-by: Ajay Kumar Signed-off-by: Sachin Kamat Signed-off-by: Inki Dae commit 2f7e2ed073f629405a8054f14bd001dc68b0e17a Author: Sean Paul Date: Tue Jan 15 08:11:08 2013 -0500 drm/exynos: hdmi: support extra resolutions using drm_display_mode timings This patch programs the core and timing generator registers using the timing data provided in drm_display_mode and not using hard-coded configurations. Additional PHY configs has been added. This allows us to support more permissible resolutions and refresh rates. Signed-off-by: Rahul Sharma Signed-off-by: Sean Paul Signed-off-by: Shirish S Signed-off-by: Akshay Saraswat Signed-off-by: Inki Dae commit 29630743c97cc4c395c308ea9d0c12bf55c55a92 Author: Rahul Sharma Date: Tue Jan 15 08:11:07 2013 -0500 drm/exynos: mixer: set correct mode for range of resolutions With this patch, mixer driver find the correct resolution mode for the range of resolutions, upto 1080 vertical lines. Resolution will be categorized to NTSC SD, PAL SD or HD and the correct mode is set to the mixer configuration register. Signed-off-by: Rahul Sharma Signed-off-by: Sean Paul Signed-off-by: Inki Dae commit 0ea6822f5215b1771949e8b278f66ed787ba83f1 Author: Rahul Sharma Date: Tue Jan 15 08:11:06 2013 -0500 drm/exynos: implement display-mode-check callback in mixer driver This patch adds the implementation of check_timing callback in the mixer driver. Based on the mixer version, correct set of restrictions will be exposed by the mixer driver. A resolution will be acceptable only if passes the criteria set by mixer and hdmi IPs. Signed-off-by: Rahul Sharma Signed-off-by: Sean Paul Signed-off-by: Inki Dae commit 438c0f85cbbe6e7025e2375f97f5223b6eac5cd7 Author: Rahul Sharma Date: Tue Jan 15 08:11:05 2013 -0500 drm/exynos: add display-mode-check operation to exynos_mixer_ops struct This patch adds the display mode check operation to exynos_mixer_ops in drm-common-hdmi. In Exynos SoCs, mixer IP can put certain restrictions on the proposed display modes. These restriction needs to be considered during mode negotiation, which happens immediately after edid parsing. Both, mixer check-mode and hdmi check-timing callbacks are called one after another and ANDed result is returned back. Signed-off-by: Rahul Sharma Reviewed-by: Sean Paul Signed-off-by: Inki Dae commit 979c0c7eb0fb969f0621c7017a6a87e6a0e36a4c Author: YoungJun Cho Date: Tue Feb 12 21:23:54 2013 +0900 drm/exynos: release resources properly when fb creation is failed. This patch releases allocated resources properly when exynos_user_fb_create() is failed. Signed-off-by: YoungJun Cho Signed-off-by: Inki Dae Signed-off-by: Kyungmin Park commit 5af9f116e6a0e1de675da979a19f95a74ce2aa2e Author: YoungJun Cho Date: Thu Feb 7 16:17:54 2013 +0900 drm/exynos: fix wrong pointer access at vm close. This patch fixes wrong pointer access issue to filp->f_op and filp->private_data. The exynos_drm_gem_mmap_ioctl() changes filp->f_op and filp->private_data temporarily and restore them to use original ones in exynos_drm_gem_mmap_buffer() but there was no lock between the changing and the restoring so wrong pointer access to filp->f_op and filp->private_data was induced by vm close callback. So this patch uses mutex lock properly to resolve this issue. Signed-off-by: YoungJun Cho Signed-off-by: Inki Dae Signed-off-by: Kyungmin Park commit e44a5c00169df634c152bdba65c7b735eb3a7a81 Author: Sachin Kamat Date: Fri Jan 25 14:45:42 2013 +0530 drm/exynos: Add missing braces around sizeof Fixes the following checkpatch warning: WARNING: sizeof *sgt should be sizeof(*sgt) Signed-off-by: Sachin Kamat Signed-off-by: Inki Dae commit b9ede277e15916a9ec3c6c1932c390e4768e71a9 Author: Inki Dae Date: Tue Jan 29 17:51:09 2013 +0900 drm/exynos: consider exception case to fb handle creation GETFB ioctl request creates a new handle to only one gem object so it should check if the given fb has one gem object. Signed-off-by: Inki Dae Signed-off-by: Kyungmin Park commit fe9e3137cffc880b5162f2cc039df48712c496bb Author: Inki Dae Date: Tue Jan 29 16:28:30 2013 +0900 drm/exynos: fix iommu address allocation order This patch modifies iommu address allocation order from 64k to 4k. 64k order causes waste of the io space and this was our mistakes. Signed-off-by: Inki Dae Signed-off-by: Kyungmin Park commit a0b1c42951dd06ec83cc1bc2c9788131d9fefcd8 Merge: 8ec4942 ecd9883 Author: Linus Torvalds Date: Wed Feb 20 18:58:50 2013 -0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Pull networking update from David Miller: 1) Checkpoint/restarted TCP sockets now can properly propagate the TCP timestamp offset. From Andrey Vagin. 2) VMWARE VM VSOCK layer, from Andy King. 3) Much improved support for virtual functions and SR-IOV in bnx2x, from Ariel ELior. 4) All protocols on ipv4 and ipv6 are now network namespace aware, and all the compatability checks for initial-namespace-only protocols is removed. Thanks to Tom Parkin for helping deal with the last major holdout, L2TP. 5) IPV6 support in netpoll and network namespace support in pktgen, from Cong Wang. 6) Multiple Registration Protocol (MRP) and Multiple VLAN Registration Protocol (MVRP) support, from David Ward. 7) Compute packet lengths more accurately in the packet scheduler, from Eric Dumazet. 8) Use per-task page fragment allocator in skb_append_datato_frags(), also from Eric Dumazet. 9) Add support for connection tracking labels in netfilter, from Florian Westphal. 10) Fix default multicast group joining on ipv6, and add anti-spoofing checks to 6to4 and 6rd. From Hannes Frederic Sowa. 11) Make ipv4/ipv6 fragmentation memory limits more reasonable in modern times, rearrange inet frag datastructures for better cacheline locality, and move more operations outside of locking. From Jesper Dangaard Brouer. 12) Instead of strict master <--> slave relationships, allow arbitrary scenerios with "upper device lists". From Jiri Pirko. 13) Improve rate limiting accuracy in TBF and act_police, also from Jiri Pirko. 14) Add a BPF filter netfilter match target, from Willem de Bruijn. 15) Orphan and delete a bunch of pre-historic networking drivers from Paul Gortmaker. 16) Add TSO support for GRE tunnels, from Pravin B SHelar. Although this still needs some minor bug fixing before it's %100 correct in all cases. 17) Handle unresolved IPSEC states like ARP, with a resolution packet queue. From Steffen Klassert. 18) Remove TCP Appropriate Byte Count support (ABC), from Stephen Hemminger. This was long overdue. 19) Support SO_REUSEPORT, from Tom Herbert. 20) Allow locking a socket BPF filter, so that it cannot change after a process drops capabilities. 21) Add VLAN filtering to bridge, from Vlad Yasevich. 22) Bring ipv6 on-par with ipv4 and do not cache neighbour entries in the ipv6 routes, from YOSHIFUJI Hideaki. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1538 commits) ipv6: fix race condition regarding dst->expires and dst->from. net: fix a wrong assignment in skb_split() ip_gre: remove an extra dst_release() ppp: set qdisc_tx_busylock to avoid LOCKDEP splat atl1c: restore buffer state net: fix a build failure when !CONFIG_PROC_FS net: ipv4: fix waring -Wunused-variable net: proc: fix build failed when procfs is not configured Revert "xen: netback: remove redundant xenvif_put" net: move procfs code to net/core/net-procfs.c qmi_wwan, cdc-ether: add ADU960S bonding: set sysfs device_type to 'bond' bonding: fix bond_release_all inconsistencies b44: use netdev_alloc_skb_ip_align() xen: netback: remove redundant xenvif_put net: fec: Do a sanity check on the gpio number ip_gre: propogate target device GSO capability to the tunnel device ip_gre: allow CSUM capable devices to handle packets bonding: Fix initialize after use for 3ad machine state spinlock bonding: Fix race condition between bond_enslave() and bond_3ad_update_lacp_rate() ... commit ca18e1426bb2db987b67030256477c9571aebd09 Merge: 74e1697 0d4bbaf Author: Dave Airlie Date: Thu Feb 21 09:31:47 2013 +1000 Merge branch 'tilcdc-next' of git://people.freedesktop.org/~robclark/linux into drm-next KMS driver for TI LCD controller * 'tilcdc-next' of git://people.freedesktop.org/~robclark/linux: drm/tilcdc: add support for LCD panels (v5) drm/tilcdc: add encoder slave (v2) drm/i2c: nxp-tda998x (v3) drm/tilcdc: add TI LCD Controller DRM driver (v4) drm/nouveau: use i2c encoder helper wrappers drm: i2c encoder helper wrappers drm/cma: add debugfs helpers drm: small fix in drm_send_vblank_event() drm: Don't set the plane->fb to NULL on successfull set_plane drm/cma-helper: fixup compilation Conflicts: drivers/gpu/drm/Kconfig drivers/gpu/drm/Makefile drivers/gpu/drm/drm_fb_cma_helper.c commit 74e1697478ffdee0e12e48db024a9b3677fd8cee Merge: e9f211a 43a23aa Author: Dave Airlie Date: Thu Feb 21 07:15:10 2013 +1000 Merge branch 'drm-next-3.9' of git://people.freedesktop.org/~agd5f/linux into drm-next More drm-next bits for radeon. Just bug fixes. * 'drm-next-3.9' of git://people.freedesktop.org/~agd5f/linux: drm/radeon: properly validate the atpx interface drm/radeon: switch get_gpu_clock() to a callback (v2) drm/radeon: add a asic callback to get the xclk drm/radeon: Avoid NULL pointer dereference from atom_index_iio() allocation failure drm/radeon: remove overzealous warning in hdmi handling drm/radeon: fix multi-head power profile stability on BTC+ asics commit e9f211ad7d65b264998928cea822c11c88e5586b Merge: 2e82b5d 33b903e Author: Dave Airlie Date: Thu Feb 21 07:13:17 2013 +1000 Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next restore debugfs vbios, fix multiple actions with supervisor intrs * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau: restore debugfs/vbios.rom support drm/nv50-/kms: remove UPDATE methods after each encoder disconnect drm/nvd0/disp: handle multiple actions from one set of supervisor intrs drm/nv50/disp: handle multiple actions from one set of supervisor intrs commit 43a23aa450cc19fe8996caf09e7e21ae5f6e56e8 Author: Alex Deucher Date: Tue Feb 19 12:55:52 2013 -0500 drm/radeon: properly validate the atpx interface Some bioses don't set the function mask correctly which caused required functions to be disabled. Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=53111 Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit d0418894142f88041d2b7b5aa4f8bf3178d89514 Author: Alex Deucher Date: Thu Jan 24 10:35:23 2013 -0500 drm/radeon: switch get_gpu_clock() to a callback (v2) Cleans up the code for future asics v2: rebase, fix some missing radeon_asic updates Signed-off-by: Alex Deucher commit 454d2e2a32f02a4f8e0364ba0e8ce4f8dbe9810c Author: Alex Deucher Date: Thu Feb 14 10:04:02 2013 -0500 drm/radeon: add a asic callback to get the xclk This is required to get the reference clock used by the gfx engine for things like timestamps. Fixes support for GL extensions the use timestamps on certain boards. Signed-off-by: Alex Deucher commit 0e34d0945ed16aeb72c863be4efe4cd0c62f9c53 Author: Tim Gardner Date: Mon Feb 11 14:34:32 2013 -0700 drm/radeon: Avoid NULL pointer dereference from atom_index_iio() allocation failure Smatch anlysis: drivers/gpu/drm/radeon/atom.c:1242 atom_index_iio() error: potential null dereference 'ctx->iio'. (kzalloc returns null) Also cleaned up some checks before calls to kfree(). kfree(NULL) is OK. Cc: David Airlie Cc: Alex Deucher Cc: "Michel Dänzer" Cc: Dave Airlie Cc: "Christian König" Cc: Jerome Glisse Cc: dri-devel@lists.freedesktop.org Signed-off-by: Tim Gardner Signed-off-by: Alex Deucher commit c944b2abb067130542055666f23409fd5e1afc8e Author: Alex Deucher Date: Tue Feb 12 08:39:10 2013 -0500 drm/radeon: remove overzealous warning in hdmi handling hdmi audio works fine. The warning just confuses users. fixes: https://bugzilla.kernel.org/show_bug.cgi?id=44341 Signed-off-by: Alex Deucher Reviewed-by: Jerome Glisse Cc: stable@vger.kernel.org commit 7ae764b11ed63279e9dcf25be972ff4ca21a9875 Author: Alex Deucher Date: Mon Feb 11 08:44:48 2013 -0500 drm/radeon: fix multi-head power profile stability on BTC+ asics vddci needs to track mclk for multi-head. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 33b903e82873ba9233bd89c44d016b87347ed158 Author: Marcin Slusarz Date: Fri Feb 8 21:42:13 2013 +0100 drm/nouveau: restore debugfs/vbios.rom support Signed-off-by: Marcin Slusarz commit eff76ed7881842ffcd2d77cf217eabcb1134b38b Author: Ben Skeggs Date: Wed Feb 20 20:37:15 2013 +1000 drm/nv50-/kms: remove UPDATE methods after each encoder disconnect Supervisor can now handle more than one operation within a single series of interrupts. Signed-off-by: Ben Skeggs commit 4ea253adf0307dfd9eed3f744a1501dafcfa4de8 Author: Ben Skeggs Date: Wed Feb 20 19:21:08 2013 +1000 drm/nvd0/disp: handle multiple actions from one set of supervisor intrs Signed-off-by: Ben Skeggs commit 16d4c031dd3befa1a85ff4645e28bb173e16ef43 Author: Ben Skeggs Date: Wed Feb 20 18:56:33 2013 +1000 drm/nv50/disp: handle multiple actions from one set of supervisor intrs Signed-off-by: Ben Skeggs commit 1f3a574a4bfe86ebf7d51fac37e0668397372fd8 Merge: b81e059 a91ed42 Author: Dave Airlie Date: Wed Feb 20 17:46:25 2013 +1000 Merge branch 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next Nothing terribly exciting in here probably: - reworked thermal stuff from mupuf/I, has a chance of possibly working well enough when we get to being able to reclock.. - driver will report mmio access faults on chipsets where it's supported - will now sleep waiting on fences on nv84+ rather than polling - some cleanup of the internal fencing, looking towards sli/dmabuf sync - initial support for anx9805 dp/tmds encoder - nv50+ display fixes related to the above, and also might fix a few other issues - nicer error reporting (will log process names with channel errors) - various other random fixes * 'drm-nouveau-next' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: (87 commits) nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICES drm/nouveau/i2c: add support for ddc/aux, and dp link training on anx9805 drm/nv50: initial kms support for off-chip TMDS/DP encoders drm/nv50-/disp: initial supervisor support for off-chip encoders drm/nv50-/disp: initial work towards supporting external encoders drm/nv50-/kms: remove unnecessary wait-for-completion points drm/nv50-/disp: move DP link training to core and train from supervisor drm/nv50-/disp: handle supervisor tasks from workqueue drm/nouveau/i2c: create proper chipset-specific class implementations drm/nv50-/disp: 0x0000 is a valid udisp config value drm/nv50/devinit: reverse the logic for running encoder init scripts drm/nouveau/bios: store a type/mask hash in parsed dcb data drm/nouveau/i2c: extend type to 16-bits, add lookup-by-type function drm/nouveau/i2c: aux channels not necessarily on nvio drm/nouveau/i2c: fix a bit of a thinko in nv_wri2cr helper functions drm/nouveau/bios: parse external transmitter type if off-chip drm/nouveau: store i2c port pointer directly in nouveau_encoder drm/nouveau/i2c: handle i2c/aux mux outside of port lookup function drm/nv50/graph: avoid touching 400724, it doesn't exist drm/nouveau: Fix DPMS 1 on G4 Snowball, from snow white to coal black. ... commit a91ed42de25e7e81159c0dd59faf8cac9dfa1d32 Author: Ben Hutchings Date: Wed Feb 20 02:57:32 2013 +0000 nouveau: ACPI support depends on X86 and X86_PLATFORM_DEVICES If I build nouveau on ia64, Kconfig warns: warning: (DRM_NOUVEAU) selects ACPI_WMI which has unmet direct dependencies (X86 && X86_PLATFORM_DEVICES && ACPI) warning: (DRM_NOUVEAU) selects MXM_WMI which has unmet direct dependencies (X86 && X86_PLATFORM_DEVICES && ACPI_WMI) Make all the ACPI support depend on X86 and select X86_PLATFORM_DEVICES. Signed-off-by: Ben Hutchings Signed-off-by: Ben Skeggs commit 5effecd4f8ff0200c4224060275a6c4ecbeed3eb Author: Ben Skeggs Date: Thu Feb 14 17:48:58 2013 -0500 drm/nouveau/i2c: add support for ddc/aux, and dp link training on anx9805 Signed-off-by: Ben Skeggs commit eb6313add6dddf07ea3e50c4caa33a9c3b2379f1 Author: Ben Skeggs Date: Mon Feb 11 09:52:58 2013 +1000 drm/nv50: initial kms support for off-chip TMDS/DP encoders Signed-off-by: Ben Skeggs commit 476e84e126171d809f9c0b5d97137f5055f95ca8 Author: Ben Skeggs Date: Mon Feb 11 09:24:23 2013 +1000 drm/nv50-/disp: initial supervisor support for off-chip encoders Signed-off-by: Ben Skeggs commit a2bc283f3905389ba53962a2bbb05ede0c16193d Author: Ben Skeggs Date: Mon Feb 11 09:11:08 2013 +1000 drm/nv50-/disp: initial work towards supporting external encoders Signed-off-by: Ben Skeggs commit 5a885f0b757ba4483d790c40813d8a66278bdda7 Author: Ben Skeggs Date: Wed Feb 20 14:34:18 2013 +1000 drm/nv50-/kms: remove unnecessary wait-for-completion points DP link training is now handled as part of the supervisor processing, and can no longer race with it. Signed-off-by: Ben Skeggs commit 0a0afd282fd715dd63d64b243299a64da14f8e8d Author: Ben Skeggs Date: Mon Feb 18 23:17:53 2013 -0500 drm/nv50-/disp: move DP link training to core and train from supervisor We need to be able to do link training for PIOR-connected ANX9805 from the third supervisor handler (due to script ordering in the bios, can't have the "user" call train because some settings are overwritten from the modesetting bios scripts). This moves link training for SOR-connected DP encoders to the second supervisor interrupt, *before* we call the modesetting scripts (yes, different ordering from PIOR is necessary). This is useful since we should now be able to remove some hacks to workaround races between the supervisor and link training paths. Signed-off-by: Ben Skeggs commit 5cc027f6b1ec651c18a4322ed3e30c6e9cf01e96 Author: Ben Skeggs Date: Mon Feb 18 17:50:51 2013 -0500 drm/nv50-/disp: handle supervisor tasks from workqueue i2c_algo_bit sleeps... Signed-off-by: Ben Skeggs commit 7dcd060c0e6e4f76ce7eea94c66437ce8f546530 Author: Ben Skeggs Date: Sat Feb 16 15:21:58 2013 +1000 drm/nouveau/i2c: create proper chipset-specific class implementations Signed-off-by: Ben Skeggs commit 46c13c131d3b73080aa0f50f45e834a9ab3c0e71 Author: Ben Skeggs Date: Sat Feb 16 13:49:21 2013 +1000 drm/nv50-/disp: 0x0000 is a valid udisp config value Return an out-of-range value instead to signal a failure from exec_clkcmp(). Signed-off-by: Ben Skeggs commit ac8cc241a81941932da44993242e68c62e115ec7 Author: Ben Skeggs Date: Sat Feb 16 12:10:38 2013 +1000 drm/nv50/devinit: reverse the logic for running encoder init scripts A single U encoder table can match multiple DCB entries, whereas the reverse is not true and can lead to us not matching a DCB entry at all, and fail to initialise some encoders. Signed-off-by: Ben Skeggs commit 8e992c8d9eebc2bd3246252ee5c0422dbbbce7ae Author: Ben Skeggs Date: Sat Feb 16 12:01:59 2013 +1000 drm/nouveau/bios: store a type/mask hash in parsed dcb data Matches format used by a couple of other vbios tables, useful to have laying around already calculated. Signed-off-by: Ben Skeggs commit 548ddb6dec9964fc9c0812409f3e105b07324c4f Author: Ben Skeggs Date: Sat Feb 16 13:19:18 2013 +1000 drm/nouveau/i2c: extend type to 16-bits, add lookup-by-type function For off-chip transmitters we won't necessarily have an i2c table entry to lookup, but we can do it instead by encoding the type to include the extdev type and looking that up instead. Signed-off-by: Ben Skeggs commit 31a34aa421032cfe3b2b892c929e7539e747a7ac Author: Ben Skeggs Date: Thu Feb 14 20:59:41 2013 -0500 drm/nouveau/i2c: aux channels not necessarily on nvio Signed-off-by: Ben Skeggs commit eaa8e7ab99d1b33db9362f35c1d65df8df39dea9 Author: Ben Skeggs Date: Thu Feb 14 19:54:42 2013 -0500 drm/nouveau/i2c: fix a bit of a thinko in nv_wri2cr helper functions Signed-off-by: Ben Skeggs commit f3ed1048715f2edc10c4dda6148b60e93f6282ed Author: Ben Skeggs Date: Tue Feb 12 10:16:31 2013 +1000 drm/nouveau/bios: parse external transmitter type if off-chip Signed-off-by: Ben Skeggs commit 5ed502096f698b978c12a435f04be5afb195b485 Author: Ben Skeggs Date: Mon Feb 11 20:15:03 2013 +1000 drm/nouveau: store i2c port pointer directly in nouveau_encoder This is about to become somewhat more complicated to determine in a number of cases, so store the "common" case (DDC/AUX) directly inside the encoder structure. Pre-nv50 code not touched except to fill the pointer, don't care. Signed-off-by: Ben Skeggs commit df3ef6a1091fbdfb57306b0205edef33a1f1dcb4 Author: Ben Skeggs Date: Mon Feb 11 20:06:04 2013 +1000 drm/nouveau/i2c: handle i2c/aux mux outside of port lookup function Not quite how I want it yet, but, I'll fix that at some point. For right now, it's needed because find() won't necessarily be used right before a transaction anymore. Signed-off-by: Ben Skeggs commit f63740fd580e0645c5123897891b72ec25b396ef Author: Ben Skeggs Date: Sun Feb 17 11:31:17 2013 +1000 drm/nv50/graph: avoid touching 400724, it doesn't exist Harmless, but we now get MMIO fault reports, so silence it. Signed-off-by: Ben Skeggs commit 89e728ce07630a5584875b8a811a8bd02844b1d3 Author: Stefan de Konink Date: Sat Dec 22 18:04:37 2012 +0100 drm/nouveau: Fix DPMS 1 on G4 Snowball, from snow white to coal black. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=40275. Signed-off-by: Stefan de Konink Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit af1ac18a19b80f922046fd383a3a3e780ee94915 Author: Dan Carpenter Date: Wed Jan 23 11:27:56 2013 +0300 drm/nouveau/disp: sizeof() wrong pointer "data" is a void pointer and "args" is "data" after we have casted it to a struct. We care about the size of the struct here. Btw, sizeof(*data) is 1. Signed-off-by: Dan Carpenter Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit 264ce192b3e7f45d0adb37bfbab2b01a3fbe6c30 Author: Ben Skeggs Date: Thu Feb 14 13:43:21 2013 +1000 drm/nv84-/fence: prepare for emit/sync support of sysram sequences Signed-off-by: Ben Skeggs commit 827520ce06568f699dad275dcca61647cce08757 Author: Ben Skeggs Date: Thu Feb 14 13:20:17 2013 +1000 drm/nouveau/fence: make internal hooks part of the context A step towards being able to provide fences from other engines not connected to PFIFO. Signed-off-by: Ben Skeggs commit 60e5cb79cbd27a36836fc04177d7c323ee873563 Author: Ben Skeggs Date: Thu Feb 14 12:59:36 2013 +1000 drm/nv17/fence: split from nv10 code Signed-off-by: Ben Skeggs commit bba9852feedf3d38f963278e07bdd3db622090b9 Author: Ben Skeggs Date: Thu Feb 14 09:37:35 2013 +1000 drm/nv84-/fence: abstract class emit/sync functions to virt+sequence Now can be used to operate on any buffer mapped into the GPU virtual address and not just the main inter-channel sync buffer. Signed-off-by: Ben Skeggs commit a34caf78f26bda63869471cb3f46f354f4658758 Author: Ben Skeggs Date: Thu Feb 14 09:28:37 2013 +1000 drm/nv84/fence: access fences with full virtual address, not offset Allows most of the code to be shared between nv84/nvc0 implementations, and paves the way for doing emit/sync on non-VRAM buffers (multi-gpu, dma-buf). Signed-off-by: Ben Skeggs commit fa531bc8b4278010fd11819c089f6679890addee Author: Ben Skeggs Date: Wed Feb 13 13:34:39 2013 +1000 drm/nouveau/gpio/nve0: interrupt regs moved on kepler apparently Signed-off-by: Ben Skeggs commit 4f47643dbb4c345c5beebe53588682a7ff2c872a Author: Ben Skeggs Date: Sun Feb 3 12:56:16 2013 +1000 drm/nouveau/gpio: use event interfaces for interrupt signalling Signed-off-by: Ben Skeggs commit 0f0800661a125ddb038462570c869fe6f8ab5737 Author: Ben Skeggs Date: Mon Feb 4 07:08:20 2013 +1000 drm/nouveau/gpio: pass number of on-die gpio lines to base Signed-off-by: Ben Skeggs commit 23fc09ee09c3b8f904a2220c7f71b2ff04e91219 Author: Ben Skeggs Date: Sun Feb 3 20:29:53 2013 +1000 drm/nouveau/drm: store full dcb gpio function data in connector Signed-off-by: Ben Skeggs commit e18c080fb8695d038f69c26c248f5ecbd9e8aa77 Author: Ben Skeggs Date: Thu Jan 31 14:57:33 2013 +1000 drm/nouveau/fence/nv84-: put processes to sleep while waiting on fences Signed-off-by: Ben Skeggs commit a2fa297378c54e9b8b8ad355e34c9fbed730250b Author: Ben Skeggs Date: Thu Jan 31 17:43:55 2013 -0500 drm/nouveau/fifo/nvc0: bash some magic reg to make uevent interrupt work Signed-off-by: Ben Skeggs commit 750087f1245e5a5d0692de4e3e7dd76d0f5b5b0a Author: Ben Skeggs Date: Thu Jan 31 22:41:07 2013 +1000 drm/nouveau/fifo/nv84: support user event trigger Signed-off-by: Ben Skeggs commit 9bd2ddbaa241274cd11191838d080fc308ecf6c7 Author: Ben Skeggs Date: Thu Jan 31 13:51:20 2013 +1000 drm/nouveau/fifo/nvc0-: use interrupt 31 as an event trigger Generated if you try and use fifo method 0x20 on any subchannel, appears that it can be safely masked off without stalling the whole GPU. Signed-off-by: Ben Skeggs commit 1d7c71a3e2f77336df536855b0efd2dc5bdeb41b Author: Ben Skeggs Date: Thu Jan 31 09:23:34 2013 +1000 drm/nouveau/disp: port vblank handling to event interface This removes the nastiness with the interactions between display and software engines when handling vblank semaphore release interrupts. Now, all the semantics are handled in one place (sw) \o/. Signed-off-by: Ben Skeggs commit 21a5ace0bfb737d65e6d345ccf3d63fdee141f98 Author: Ben Skeggs Date: Thu Jan 31 09:04:48 2013 +1000 drm/nouveau/disp/nv04: implement a base display object class Will be used for upcoming vblank event interfaces. Signed-off-by: Ben Skeggs commit 51fa0253fbc5cdf26b85f620bf1a1034e2eda868 Author: Ben Skeggs Date: Thu Jan 31 00:38:22 2013 +1000 drm/nouveau/core: basic event interface between core and drm Signed-off-by: Ben Skeggs commit 32256c87ead3edec86bed5023a0ff96a6d907931 Author: Ben Skeggs Date: Thu Jan 31 19:49:33 2013 -0500 drm/nouveau/fifo/nvc0: improve interrupt handler somewhat Logs extra info for interrupts that have a sub-status register, and handles the "special" ack from INTR bit 31. Signed-off-by: Ben Skeggs commit e2de179458fe681a1a7c63b5911a8dc86b00ca44 Author: Ben Skeggs Date: Mon Feb 11 13:56:31 2013 +1000 drm/nv50/disp: fix missing sor modectrl sync flags Signed-off-by: Ben Skeggs commit ec49b5c2fb75338a733f4b1d435977a460a8cb7a Author: Marcin Slusarz Date: Tue Feb 5 20:44:19 2013 +0100 drm/nouveau/therm: reduce stack usage of nouveau_therm_ic_ctor Before: 1496 bytes After: 152 bytes Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit 07df30435eecce98961dabbac16787969975a080 Author: Marcin Slusarz Date: Sun Feb 3 19:28:14 2013 +0100 drm/nouveau/therm: use workqueue to shutdown the machine orderly_poweroff cannot be called from atomic context. Signed-off-by: Marcin Slusarz Acked-by: Martin Peres Signed-off-by: Ben Skeggs commit d0a5191dcf5f37cf0942c4b65fa4a2c975631c0b Author: Marcin Slusarz Date: Sun Feb 3 19:12:49 2013 +0100 drm/nv40/therm: reset temperature sensor on init Current uninitialized sensor detection does not work for me on nv4b and sensor returns crazy values (>190°C). It stabilises later, but it's too late - therm code shutdowns the machine... Let's just reset it on init. Signed-off-by: Marcin Slusarz Acked-by: Martin Peres Signed-off-by: Ben Skeggs commit 134fc0327552f3ebee2cdcb50b956a31029661c0 Author: Marcin Slusarz Date: Sun Feb 3 18:17:41 2013 +0100 drm/nouveau/therm: turn on fan only when threshold hit in positive direction + the same for shutdown threshold - seems impossible, but shutdown can fail. Signed-off-by: Marcin Slusarz Acked-by: Martin Peres Signed-off-by: Ben Skeggs commit a84fa1a32e4c224edd16c825a571fe27ab366913 Author: Marcin Slusarz Date: Sun Feb 3 22:02:47 2013 +0100 drm/nouveau: report channel owner in ioctl error paths Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit 3969f05bb8d0d72ba974ab5f74a7bafb61dd16d0 Author: Marcin Slusarz Date: Wed Jan 30 22:21:31 2013 +0100 drm/nouveau/therm: always initialize alarm_program_lock Fixes "BUG: spinlock bad magic" on module load for nva3+ cards. Introduced in commit "drm/nouveau/therm: implement support for temperature alarms". Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit b795016cd2c6aebfa40cbccb3bad4e0325815fb4 Author: Marcin Slusarz Date: Sun Jan 27 17:13:52 2013 +0100 drm/nouveau: handle backlight_device_register failure Found by smatch. Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit a441dbb1d674b5696e3a27a95e72988f35236c9f Author: Marcin Slusarz Date: Sun Jan 27 17:04:48 2013 +0100 drm/nouveau: use kmemdup for edid allocation/copying Avoids potential null pointer dereference. Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit 03e9a04050f5333c779ed37c027a6aae5644cf6c Author: Marcin Slusarz Date: Sun Jan 27 16:43:00 2013 +0100 drm/nouveau: use drm_property_create_range helper Avoids potential null pointer dereference. Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit b5d8f05204da22ec896145729eea1f875085126b Author: Cong Ding Date: Tue Jan 15 18:19:49 2013 +0100 drm/nouveau: remove unnecessary null pointer check from nouveau_fence_new the variable chan is dereferenced in line 190, so it is no reason to check null again in line 198. Signed-off-by: Cong Ding Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit fd69aee4271ead4bf5c759aeaf4f16ab3d63322f Author: Marcin Slusarz Date: Sun Jan 27 16:11:18 2013 +0100 drm/nvc0/graph: remove redundant null checks It's safe to call kfree(NULL). Found by smatch. Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit fc3109a2cb294335bcf3c5db5e16ae5fe68849f2 Author: Marcin Slusarz Date: Sun Jan 27 15:51:09 2013 +0100 drm/nouveau/fan: fix selection of fan speed when fan->get returns an error fan->get returns int, but we write it to unsigned variable, and then check whether it's >= 0 (it always is) Found by smatch: drivers/gpu/drm/nouveau/core/subdev/therm/fan.c:61 nouveau_fan_update() warn: always true condition '(duty >= 0) => (0-u32max >= 0)' Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit cd897837eacc6ce0b883b5e6c9000cb2e5f11c39 Author: Marcin Slusarz Date: Sun Jan 27 15:01:55 2013 +0100 drm/nouveau: quiet static-related sparse noise Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit bfd8bd1f81dfe6110af3fbd0ba11f8d5940b87dd Author: Marcin Slusarz Date: Sun Dec 30 16:35:24 2012 +0100 drm/nouveau/bios: tiny debugging messages fixes COPY_ZM_REG: destination and source addresses were swapped RAM_RESTRICT_ZM_REG_GROUP: missing 0x prefix for register address Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit 950fbfab425be54aaac76648ba28a4b6018762d8 Author: Marcin Slusarz Date: Sat Dec 29 16:24:37 2012 +0100 drm/nouveau: mark nv_printk_ as printf-like function ...and fix all warnings Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit a4cea27b6950885a743a4a000d5f2ea3fd445d25 Author: Marcin Slusarz Date: Tue Dec 25 17:50:43 2012 +0100 drm/nouveau: share fence structures between nv10+ and nv50 implementations We already rely on them having the same fields and layout. Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit a624bafbf11c098a859dba4118a33605bfd25788 Author: Martin Peres Date: Thu Dec 20 01:32:09 2012 +0100 drm/nouveau/fan: handle the cases where we are outside of the linear zone This fixes a bug where, when temperature is outside of the linear range, fan pwm would be outside of the allowed range ([0, 100]) and could get negative in some cases. It seems like a regression that happened when we re-worked the fan management logic before merging. Tested-by: Ozan Çağlayan Signed-off-by: Martin Peres Signed-off-by: Ben Skeggs commit 93260d3c026b539931d909a4d68490c32b6d73ce Author: Marcin Slusarz Date: Sun Dec 9 23:00:34 2012 +0100 drm/nouveau: report channel owner in error messages Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit a2896cede08ddeed4f2c4fca616943a63dff5fa8 Author: Marcin Slusarz Date: Sun Dec 9 15:45:21 2012 +0100 drm/nouveau: prepare for reporting channel owner - record channel owner process name - add some helpers for accessing this information - let nouveau_enum hold additional value (will be needed in the next patch) Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit f533da1027e294a2d6e0b455bf8ee915609ff216 Author: Marcin Slusarz Date: Sun Dec 9 15:45:20 2012 +0100 drm/nouveau: use pr_cont Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit fc10199ee3ef98fa899b6d629b310da181f0abfd Author: Marcin Slusarz Date: Sun Dec 9 15:45:19 2012 +0100 drm/nouveau: split fifo interrupt handler Signed-off-by: Marcin Slusarz Signed-off-by: Ben Skeggs commit 3600ad5e1b343f2c259901f736c717f5bc4deb50 Author: Martin Peres Date: Sat Dec 8 14:00:38 2012 +0100 drm/nouveau/therm: force a minimum hysteresis on temperature alarm thresholds This should avoid the situation where a user gets its kernel logs flooded when temperature oscillates around a threshold with 0°C hysteresis. This patch is just meant to fix broken vbios (as reported on a nv4e on sysfs hwmon interface. Signed-off-by: Martin Peres Signed-off-by: Ben Skeggs commit f1aa4a1de5e13b794a7e31efc0b3ddcda6926c56 Author: Emil Velikov Date: Fri Dec 7 17:26:44 2012 +0000 drm/nouveau: set legacy bios data before parsing the structure Commit 767baf82 drm/nouveau: remove some more unnecessary legacy bios code has introduced a regression my misplacing the code that sets the major/chip versions, which are used whist parsing the bmp/bit structure in vbios Signed-off-by: Emil Velikov Signed-off-by: Ben Skeggs commit 708ff04b137f1ec233b9e82cb4852ee53ad26f9f Author: Ben Skeggs Date: Fri Dec 7 11:37:28 2012 +1000 drm/nouveau/therm: don't try pwm/toggle control if GPIO_FAN is input My GTX660 has the GPIO_FAN function, but it's configured in input-mode; presumably to monitor the frequency set by an I2C fan controller? Signed-off-by: Ben Skeggs commit e8c3cc0803b7f70f2f96d3bae3c4a4ac5238ed10 Author: Ben Skeggs Date: Fri Dec 7 11:01:25 2012 +1000 drm/nouveau/bios: rename DCB_GPIO_PWM_FAN to DCB_GPIO_FAN Signed-off-by: Ben Skeggs commit 112a12aab8a5c1137a140c341f98a160e27b8c49 Author: Ben Skeggs Date: Fri Dec 7 10:31:09 2012 +1000 drm/nouveau/bios: add support for parsing xpio table data Signed-off-by: Ben Skeggs commit 230881821a4467727f4100b5ee5c3ef0b67f3128 Author: Ben Skeggs Date: Thu Dec 6 15:44:23 2012 +1000 drm/nouveau: remove some more unnecessary legacy bios code Signed-off-by: Ben Skeggs commit e84e4b67ddd6fcbfe5ab39c7aed1d490a8c6283c Author: Ben Skeggs Date: Thu Dec 6 15:32:56 2012 +1000 drm/nouveau: remove legacy vbios type detection Signed-off-by: Ben Skeggs commit 5e90a88cb37b665cc0609f1236d6099421139449 Author: Ben Skeggs Date: Thu Dec 6 15:17:12 2012 +1000 drm/nouveau/hwmon: create hwmon attributes under hwmon device in sysfs From browsing my /sys, a few other things seem to do this, and it looks cleaner this way too :) Signed-off-by: Ben Skeggs commit b2c36312c9532491ca38275c3862e5c5dfac6033 Author: Ben Skeggs Date: Thu Dec 6 15:13:06 2012 +1000 drm/nouveau/hwmon: s/fan0/fan1/ Fan speed info now shown by sensors. Signed-off-by: Ben Skeggs commit 1a22274b28fd47514f1463051d93028ad5f54af6 Author: Ben Skeggs Date: Thu Dec 6 10:28:34 2012 +1000 drm/nouveau/therm: better transitions and debug logging Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 12e32896f796ea772d4443c789f9358d46461835 Author: Martin Peres Date: Tue Nov 20 01:14:13 2012 +0100 drm/nouveau/hwmon: add missing alarm thresholds Expose all the hysteresis parameters + shutdown (emergency) + fan_boost (fixed pwm trip point). Signed-off-by: Martin Peres Signed-off-by: Ben Skeggs commit 0083b91dac482c70eeb96745d9ef604f904da3e5 Author: Martin Peres Date: Mon Nov 5 00:18:49 2012 +0100 drm/nouveau/therm: implement support for temperature alarms For now, we only boost the fan speed to the maximum and auto-mode when hitting the FAN_BOOST threshold and halt the computer when it reaches the shutdown temperature. The downclock and critical thresholds do nothing. On nv43:50 and nva3+, temperature is polled because of the limited hardware. I'll improve the nva3+ situation by implementing alarm management in PDAEMON whenever I can but polling once every second shouldn't be such a problem. v2 (Ben Skeggs): - rebased v3: fixed false-detections and threshold reprogrammation handling on nv50:nvc0 Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 9d7175c808793b3e30db455da7529d3c05b00712 Author: Martin Peres Date: Fri Dec 7 02:26:02 2012 +0100 drm/nv41/bus: report useful data on mmio fault Based on Ben Skeggs's nvc0 patch. Tested on my nv4b, 84 and 92. Signed-off-by: Martin Peres commit 382b5bbb4a1ef96be863b71593d23968308b6d24 Author: Ben Skeggs Date: Tue Dec 4 15:25:28 2012 +1000 drm/nvc0/bus: report useful data on mmio fault Signed-off-by: Ben Skeggs commit a10220bbf883931fcf18eb0e850b87d82cfaa412 Author: Martin Peres Date: Sun Nov 4 01:01:53 2012 +0100 drm/nouveau/pbus: add a PBUS subdev that hands IRQs to the right subdevs We are going to use PTHERM's IRQs for thermal monitoring but we need to route them first. On nv31-50, PBUS's IRQ line is shared with GPIOs IRQs. It seems like nv10-31 GPIO interruptions aren't well handled. I kept the original behaviour but it is wrong and may lead to an IRQ storm. Since we enable all PBUS IRQs, we need a way to avoid being stormed if we don't handle them. The solution I used was to mask the IRQs that have not been handled. This will also print one message in the logs to let us know. v2: drop the shared intr handler because of was racy v3: style fixes v4: drop a useless construct in the chipset-dependent INTR v5: add BUS to the disable mask v6 (Ben Skeggs): - general tidy to match the rest of the driver's style - nva3->nvc0, nva3 can be serviced just fine with nv50.c, rnndb even notes that the THERM_ALARM bit got left in the hw until fermi anyway.. so, it's not going to conflict - removed the peephole and user stuff, for the moment.. will handle them later if we find a good reason to actually care.. - limited INTR_EN to just what we can handle for now, mostly to prevent spam of unknown status bits (seen on at least nv4x) Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 694472f4170c52a18893b0db8c8e3b865a85a457 Author: Martin Peres Date: Wed Dec 5 20:28:09 2012 +1000 drm/nouveau/therm: implement automatic fan management v2: improved design but drops safety monitoring (to be in a later patch) v3: fix locking and mode management v4: gently fallback to the no-control mode when temperature cannot be got and use kernel-provided min/max macros v5 (Ben Skeggs): - rebased on my previous patches v6: fix hysterisis management in trip-based auto fan management This commit also forbids access to fan management to nvc0+ chipsets as fan management is already taken care of my PDAEMON's default fw. Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit fa37e8dda2617d48fbc6b17dd6e986e7f4c2bc8b Author: Martin Peres Date: Wed Dec 5 19:46:35 2012 +1000 drm/nouveau/fan: obey fan bump/slow periods as defined by vbios v2 (Ben Skeggs): - split from larger patch - fixed to not require alarm resched patch Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 06afd4e83b83907b735279bb0f08d74aeb8f2e3b Author: Martin Peres Date: Wed Dec 5 18:42:00 2012 +1000 drm/nouveau/bios: parse fan bump/slow periods, and trip points Signed-off-by: Martin Peres Signed-off-by: Ben Skeggs commit 0cbf83bbe524d6014daf11005b99084d50489b80 Author: Martin Peres Date: Mon Sep 3 01:37:02 2012 +0200 drm/nouveau/fan: add toggle fan support v2: change percent from int to atomic_t v3: random fixes v4 (Ben Skeggs): - adapted for split-out fan-control "protocol" structure - removed need for timer resched - support for forcing 'toggle' control on PWM boards Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 9c3bd3a53129639f10e129b007862340dba16a09 Author: Ben Skeggs Date: Wed Dec 5 16:21:59 2012 +1000 drm/nouveau/therm: cleanly separate pwm control logic from therm Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 68197b4ba0a3c90190795b97248b840a3e506545 Author: Ben Skeggs Date: Wed Dec 5 14:56:37 2012 +1000 drm/nouveau/therm: add interfaces to allow forcing off pwm fan control Mostly to allow for the possibility of testing 'toggle' fan control easily. Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 9cbcd3374a1db6a2faeb660bb49feb9af25c84ec Author: Ben Skeggs Date: Tue Dec 4 12:10:19 2012 +1000 drm/nvd0/therm: add support for hardware fan tachometer Signed-off-by: Ben Skeggs commit 7b49bd684cea3916405e1de2f8173ac42cebc87b Author: Ben Skeggs Date: Tue Dec 4 12:18:59 2012 +1000 drm/nva3/therm: add support for hardware fan tachometer Signed-off-by: Ben Skeggs commit d639b4f5ba5f1bbdfbba920e1deb035a1bed83ae Author: Ben Skeggs Date: Tue Dec 4 13:25:26 2012 +1000 drm/nouveau/therm: collect fan tach info in common fan constructor This info will be used by two more implementations in upcoming commits. Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit 5f066c32a50eac584c0c8c19d8d5e38714f7c574 Author: Ben Skeggs Date: Tue Dec 4 11:35:40 2012 +1000 drm/nouveau/therm: fix various style issues, make more consistent Signed-off-by: Ben Skeggs Signed-off-by: Martin Peres commit bc79202f4c8ff6977133255dc2bb7d4dac3936f0 Author: Ben Skeggs Date: Tue Dec 4 09:50:33 2012 +1000 nvd0/therm: implement more appropriate pwm fan control functions Signed-off-by: Ben Skeggs commit 1eaec8212e35aef6606a4e8b40aa9ad9ba87672a Merge: 1a13c0b 23663c8 Author: Linus Torvalds Date: Tue Feb 19 21:58:52 2013 -0800 Merge branch 'for-3.9-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue [delayed_]work_pending() cleanups from Tejun Heo: "This is part of on-going cleanups to remove / minimize usages of workqueue interfaces which are deprecated and/or misleading. This round drops a number of usages of [delayed_]work_pending(), which are dangerous as they lack any form of synchronization and thus often lead to buggy / unnecessary code. There are a couple legitimate use cases in kernel. Hopefully, they can be converted and [delayed_]work_pending() can be removed completely. Even if not, removing most of misuses should make it more difficult to find examples of misuses and thus slow down growth of them. These changes are independent from other workqueue changes." * 'for-3.9-cleanups' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: wimax/i2400m: fix i2400m->wake_tx_skb handling kprobes: fix wait_for_kprobe_optimizer() ipw2x00: simplify scan_event handling video/exynos: don't use [delayed_]work_pending() tty/max3100: don't use [delayed_]work_pending() x86/mce: don't use [delayed_]work_pending() rfkill: don't use [delayed_]work_pending() wl1251: don't use [delayed_]work_pending() thinkpad_acpi: don't use [delayed_]work_pending() mwifiex: don't use [delayed_]work_pending() sja1000: don't use [delayed_]work_pending() commit b81e059ec5a7128622ab5d74d78e9b4f361b54ae Merge: 35f8bad 210561f Author: Dave Airlie Date: Wed Feb 20 11:40:49 2013 +1000 Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next So here's my promised pile of fixes for 3.9. I've dropped the core prep patches for vt-switchless suspend/resume as discussed on irc. Highlights: - Fix dmar on g4x. Not really gfx related, but I'm fed up with getting blamed for dmar crapouts. - Disable wc ptes updates on ilk when dmar is enabled (Chris). So again, dmar, but this time gfx related :( - Reduced range support for hsw, using the pipe CSC (Ville). - Fixup pll limits for gen3/4 (Patrick Jakobsson). The sdvo patch is already confirmed to fix 2 bug reports, so added cc: stable on that one. - Regression fix for 8bit fb console (Ville). - Preserve lane reversal bits on DDI/FDI ports (Damien). - Page flip vs. gpu hang fixes (Ville). Unfortuntely not quite all of them, need to decide what to do with the currently still in-flight ones. - Panel fitter regression fix from Mika Kuoppala (was accidentally left on on some pipes with the new modset code since 3.7). This also improves the modeset sequence and might help a few other unrelated issues with lvds. - Write backlight regs even harder ... another installement in our eternal fight against the BIOS and backlights. - Fixup lid notifier vs. suspend/resume races (Zhang Rui). Prep work for new ACPI stuff, but closing the race itself seems worthwile on its own. - A few other small fixes and tiny cleanups all over. Lots of the patches are cc: stable since I've stalled on a few not-so-important fixes for 3.8 due to the grumpy noise Linus made. * 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel: (33 commits) intel/iommu: force writebuffer-flush quirk on Gen 4 Chipsets drm/i915: Disable WC PTE updates to w/a buggy IOMMU on ILK drm/i915: Implement pipe CSC based limited range RGB output drm/i915: inverted brightness quirk for Acer Aspire 4736Z drm/i915: Print the hw context status is debugfs drm/i915: Use HAS_L3_GPU_CACHE in i915_gem_l3_remap drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ drm/i915: Set i9xx sdvo clock limits according to specifications drm/i915: Set i9xx lvds clock limits according to specifications drm/i915: Preserve the DDI link reversal configuration drm/i915: Preserve the FDI line reversal override bit on CPT drm/i915: add missing \n to UTS_RELEASE in the error_state drm: Use C8 instead of RGB332 when determining the format from depth/bpp drm: Fill depth/bits_per_pixel for C8 format drm/i915: don't clflush gem objects in stolen memory drm/i915: Don't wait for page flips if there was GPU reset drm/i915: Kill obj->pending_flip drm/i915: Fix a typo in a intel_modeset_stage_output_state() comment drm/i915: remove bogus mutex_unlock from error-path drm/i915: Print the pipe control page GTT address ... commit 86d3efce2c37d3fb98f75f56f21e6ab75c745bb6 Author: Ville Syrjälä Date: Fri Jan 18 19:11:38 2013 +0200 drm/i915: Implement pipe CSC based limited range RGB output HSW no longer has the PIPECONF bit for limited range RGB output. Instead the pipe CSC unit must be used to perform that task. The CSC pre offset are set to 0, since the incoming data is full [0:255] range RGB, the coefficients are programmed to compress the data into [0:219] range, and then we use either the CSC_MODE black screen offset bit, or the CSC post offsets to shift the data to the correct [16:235] range. Also have to change the confiuration of all planes so that the data is sent through the pipe CSC unit. For simplicity send the plane data through the pipe CSC unit always, and in case full range output is requested, the pipe CSC unit is set up with an identity transform to pass the plane data through unchanged. I've been told by some hardware people that the use of the pipe CSC unit shouldn't result in any measurable increase in power consumption numbers. Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit ac4199e0f047546aa40172785e26c82b54bbe811 Author: Daniel Vetter Date: Fri Feb 15 18:35:30 2013 +0100 drm/i915: inverted brightness quirk for Acer Aspire 4736Z Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=53881 Cc: stable@vger.kernel.org Cc: Jani Nikula Tested-by: Jani Monoses Signed-off-by: Daniel Vetter commit a168c293d5f4f89806dbe58055036e9933115ab3 Author: Ben Widawsky Date: Thu Feb 14 15:05:12 2013 -0800 drm/i915: Print the hw context status is debugfs Print out the HW context object information per ring. Even though the existing code only utilizes the render ring, it's simple enough to support future expansion. I had this in a patch somewhere in a rev of the original implementation, but I must have lost it. Signed-off-by: Ben Widawsky [danvet: s/context/default context/ bikeshed applied.] Signed-off-by: Daniel Vetter commit eb32e4584d8e9d6cbec20550d4f91396de2cdb55 Author: Daniel Vetter Date: Thu Feb 14 19:46:07 2013 +0100 drm/i915: Use HAS_L3_GPU_CACHE in i915_gem_l3_remap Yet another remnant ... this might explain why l3 remapping didn't really work on HSW. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=57441 Spotted-by: Ville Syrjälä Cc: stable@vger.kernel.org Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit b9e1faa7634e68bfcdff00a8e9378fcb662a7f30 Author: Ville Syrjälä Date: Thu Feb 14 21:53:51 2013 +0200 drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ The bit controlling whether PIPE_CONTROL DW/QW write targets the global GTT or PPGTT moved moved from DW 2 bit 2 to DW 1 bit 24 on IVB. I verified on IVB that the fix is in fact effective. Without the fix none of the scratch writes actually landed in the pipe control page. With the fix the writes show up correctly. v2: move PIPE_CONTROL_GLOBAL_GTT_IVB setup to where other flags are set Signed-off-by: Ville Syrjälä Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 4f7dfb6788dd022446847fbbfbe45e13bedb5be2 Author: Patrik Jakobsson Date: Wed Feb 13 22:20:22 2013 +0100 drm/i915: Set i9xx sdvo clock limits according to specifications The Intel PRM says the M1 and M2 divisors must be in the range of 10-20 and 5-9. Since we do all calculations based on them being register values (which are subtracted by 2) we need to specify them accordingly. Signed-off-by: Patrik Jakobsson Reviewed-by: Chris Wilson Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=56359 Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter commit 53a7d2d15ef45fb892defaf624ad6db7d528d8ac Author: Patrik Jakobsson Date: Wed Feb 13 22:20:21 2013 +0100 drm/i915: Set i9xx lvds clock limits according to specifications The Intel PRM says the M1 and M2 divisors must be in the range of 10-20 and 5-9. Since we do all calculations based on them being register values (which are subtracted by 2) we need to specify them accordingly. Signed-off-by: Patrik Jakobsson Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 876a8cdf92b23d268275cdce4397df0c37dac3fe Author: Damien Lespiau Date: Tue Dec 11 18:48:30 2012 +0000 drm/i915: Preserve the DDI link reversal configuration Similarly to: commit 6a0d1df3d3a0d2370541164eb0595fe35dcd6de3 Author: Damien Lespiau Date: Tue Dec 11 15:18:28 2012 +0000 drm/i915: Preserve the FDI line reversal override bit on CPT DDI port support lane reversal to easy the PCB layouting work. Let's preserve the bit configured by the BIOS (until we find how to correctly retrieve the information from the VBT, but this does sound more fragile then just relying on the BIOS that has, hopefully, been validated already. Signed-off-by: Damien Lespiau Reviewed-by: Paulo Zanoni Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter commit 3e68320ef84528604d971afc3cadfbe208bef001 Author: Damien Lespiau Date: Tue Dec 11 18:48:29 2012 +0000 drm/i915: Preserve the FDI line reversal override bit on CPT The FDI link has supported link reversal to make the PCB layout engineer's life easier for quite a while and we have always presered this bit as we programmed FDI_RX_CTL with a read/modify/write sequence. We're trying to take a bit more control over what the BIOS leaves in various register and with the introduction of DDI, started to program FDI_RX_CTL fully. There's a fused bit to indicate DMI link reversal and FDI defaults to mirroring that configuration. We have a bit to override that behaviour that we need to preserve from the BIOS. Signed-off-by: Damien Lespiau Reviewed-by: Rodrigo Vivi Reviewed-by: Paulo Zanoni Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter commit fdfa175d0a9cfa2082ce24e67e284e5acbba452a Author: Jani Nikula Date: Thu Feb 14 11:23:35 2013 +0200 drm/i915: add missing \n to UTS_RELEASE in the error_state Amending commit 4518f611ba21ba165ea3714055938a8984a44ff9 Author: Daniel Vetter Date: Wed Jan 23 16:16:35 2013 +0100 drm/i915: dump UTS_RELEASE into the error_state CC: stable@vger.kernel.org Signed-off-by: Jani Nikula Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit d84f031bd230fdf9c3b7734940c859bf28b90219 Author: Ville Syrjälä Date: Thu Jan 31 19:43:38 2013 +0200 drm: Use C8 instead of RGB332 when determining the format from depth/bpp Support for real RGB332 is a rarity, most hardware only really support C8. So use C8 instead of RGB332 when determining the format based on depth/bpp. This fixes 8bpp fbcon on i915, since i915 will only accept C8 and not RGB332. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59572 Signed-off-by: Ville Syrjälä Acked-by: Dave Airlie Tested-by: mlsemon35@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter commit c51a6bc5f6d328926a9a4a1247c5030faf190a80 Author: Ville Syrjälä Date: Thu Jan 31 19:43:37 2013 +0200 drm: Fill depth/bits_per_pixel for C8 format Set depth/bits_per_pixel to 8 for C8 format. Signed-off-by: Ville Syrjälä Acked-by: Dave Airlie Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter commit 769ce4643b775496166d09c227b070cc38f9e205 Author: Imre Deak Date: Wed Feb 13 21:56:05 2013 +0200 drm/i915: don't clflush gem objects in stolen memory As explained by Chris Wilson gem objects in stolen memory are always coherent with the GPU so we don't need to ever flush the CPU caches for these. This fixes a breakage - at least with the compact sg patches applied - during the resume/restore gtt mappings path, when we tried to clflush an FB object in stolen memory, but since stolen objects don't have backing pages we passed an invalid page pointer to drm_clflush_page(). Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 10d8373064762b21e16e73bc7dfde49d68f4e31f Author: Ville Syrjälä Date: Tue Jan 29 18:13:34 2013 +0200 drm/i915: Don't wait for page flips if there was GPU reset If a GPU reset occurs while a page flip has been submitted to the ring, the flip will never complete once the ring has been reset. The GPU reset can be detected by sampling the reset_counter before the flip is submitted, and then while waiting for the flip, the sampled counter is compared with the current reset_counter value. Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau [danvet: Move the reset_counter assignment to an earlier place in common code as discussed on the mailing list.] Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60140 Signed-off-by: Daniel Vetter commit 3d56e2d62b333aab434cba5a40e2353cac61154f Author: Ville Syrjälä Date: Tue Jan 29 18:13:33 2013 +0200 drm/i915: Kill obj->pending_flip The pending flip mask no longer set anywhere, so trying to wait for while it's non-zero is a no-op. Remove it completely. Signed-off-by: Ville Syrjälä Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 9abdda74acb0027561747fa40a1e8d387a3e08c2 Author: Damien Lespiau Date: Wed Feb 13 13:29:23 2013 +0000 drm/i915: Fix a typo in a intel_modeset_stage_output_state() comment Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 002d71f2627ebeecb102d3cfe74644c3d3d06539 Author: Daniel Vetter Date: Tue Feb 12 15:36:03 2013 +0100 drm/i915: remove bogus mutex_unlock from error-path This has been lost in the locking rework for intel_alloc_context_page: commit 2c34b850ee1e9f86b41706149d0954eee58757a3 Author: Ben Widawsky Date: Sat Mar 19 18:14:26 2011 -0700 drm/i915: fix ilk rc6 teardown locking Cc: Ben Widawsky Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 2b1086cc584286838ec55de24c1fb749f97bc3db Author: Ville Syrjälä Date: Tue Feb 12 22:01:38 2013 +0200 drm/i915: Print the pipe control page GTT address We already print the HWS addresses during init, so do the same for the pipe control page. Reduces guesswork when looking at hex addresses later. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 9d6d9f19e8146fa24903cb561e204a22232740e3 Author: Mika Kuoppala Date: Fri Feb 8 16:35:38 2013 +0200 drm/i915: clean up panel fitter handling in lvds With the previous patch "drm/i915: disable shared panel fitter for pipe" we now disable the panel fitter at the right spot in the modeset sequence in the crtc functions on all platforms. Hence the disabling in intel_disable_lvds is no longer required and potentially harmful (since the plane is still enabled at this point). Similarly on the enabling side we enable the panel fitter in the lvds callback only once the plane is enabled. Which is too late. Hence move this into a new intel_pre_enable_lvds callback. Finally we can ditch lvds_encoder->pfit_dirty - this was required to work around the crtc helper semantics, but with the new i915 modeset infrastructure we should enable/disable the pfit only when enabling or disabling the entire output pipeline. So separate state tracking for the pfit is no longer required. Signed-off-by: Mika Kuoppala [danvet: Bikeshed the commit message a bit to stress that now we enable/disable the pfit on i9xx platforms at the right point of time compared to the old code.] Signed-off-by: Daniel Vetter commit 24a1f16de97c4cf0029d9acd04be06db32208726 Author: Mika Kuoppala Date: Fri Feb 8 16:35:37 2013 +0200 drm/i915: disable shared panel fitter for pipe If encoder is switched off by BIOS, but the panel fitter is left on, we never try to turn off the panel fitter and leave it still attached to the pipe - which can cause blurry output elsewhere. Based on work by Chris Wilson Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58867 Cc: stable@vger.kernel.org Signed-off-by: Mika Kuoppala Tested-by: Andreas Sturmlechner [danvet: Remove the redundant HAS_PCH_SPLIT check and add a tiny comment.] Signed-off-by: Daniel Vetter commit 1d7aaa0cfe3d1b5ee23958fce71973e3ae9e52e4 Author: Daniel Vetter Date: Sat Feb 9 21:03:42 2013 +0100 drm/i915: detect wrong MCH watermark values Some early bios versions seem to ship with the wrong tuning values for the MCH, possible resulting in pipe underruns under load. Especially on DP outputs this can lead to black screen, since DP really doesn't like an occasional whack from an underrun. Unfortunately the registers seem to be locked after boot, so the only thing we can do is politely point out issues and suggest a BIOS upgrade. Arthur Runyan pointed us at this issue while discussion DP bugs - thus far no confirmation from a bug report yet that it helps. But at least some of my machines here have wrong values, so this might be useful in understanding bug reports. v2: After a bit more discussion with Art and Ben we've decided to only the check the watermark values, since the OREF ones could be be a notch more aggressive on certain machines. Cc: Ben Widawsky Cc: Runyan, Arthur J Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 0d4bbaf9f3e5b9f52150ddc5a4ee8b0ab83a440b Author: Rob Clark Date: Tue Dec 18 17:34:16 2012 -0600 drm/tilcdc: add support for LCD panels (v5) Add an output panel driver for LCD panels. Tested with LCD3 cape on beaglebone. v1: original v2: s/of_find_node_by_name()/of_get_child_by_name()/ from Pantelis Antoniou v3: add backlight support v4: rebase to latest of video timing helpers v5: remove some unneeded fields from panel-info struct, add DT bindings docs Signed-off-by: Rob Clark Tested-by: Koen Kooi commit 6e8de0bd6a51fdeebd5d975c4fcc426f730b339b Author: Rob Clark Date: Tue Jan 22 16:02:21 2013 -0600 drm/tilcdc: add encoder slave (v2) Add output panel driver for i2c encoder slaves. v1: original v2: add DT bindings docs, and minor updates for review comments Signed-off-by: Rob Clark Reviewed-by: Daniel Vetter Tested-by: Koen Kooi commit e7792ce2da5ded80861db787ace9b57ecf7bc96c Author: Rob Clark Date: Tue Jan 8 19:21:02 2013 -0600 drm/i2c: nxp-tda998x (v3) Driver for the NXP TDA998X i2c hdmi encoder slave. v1: original v2: fix npix/nline programming v3: add Kconfig, fix dup'd MODULE_DESCRIPTION Signed-off-by: Rob Clark Reviewed-by: Daniel Vetter Tested-by: Koen Kooi commit 16ea975eac671fa40a78594a116a44fef8e3f4a9 Author: Rob Clark Date: Tue Jan 8 15:04:28 2013 -0600 drm/tilcdc: add TI LCD Controller DRM driver (v4) A simple DRM/KMS driver for the TI LCD Controller found in various smaller TI parts (AM33xx, OMAPL138, etc). This driver uses the CMA helpers. Currently only the TFP410 DVI encoder is supported (tested with beaglebone + DVI cape). There are also various LCD displays, for which support can be added (as I get hw to test on), and an external i2c HDMI encoder found on some boards. The display controller supports a single CRTC. And the encoder+ connector are split out into sub-devices. Depending on which LCD or external encoder is actually present, the appropriate output module(s) will be loaded. v1: original v2: fix fb refcnting and few other cleanups v3: get +/- vsync/hsync from timings rather than panel-info, add option DT max-bandwidth field so driver doesn't attempt to pick a display mode with too high memory bandwidth, and other small cleanups v4: remove some unneeded stuff from panel-info struct, properly set high bits for hfp/hsw/hbp for rev 2, add DT bindings docs Signed-off-by: Rob Clark Reviewed-by: Daniel Vetter Tested-by: Koen Kooi commit 35f8badc1cf652381fa3f82c1fbea39f4dbe87fd Author: Daniel Vetter Date: Fri Feb 15 21:21:37 2013 +0100 drm: Don't set the plane->fb to NULL on successfull set_plane We need to clear the local variable to get the refcounting right (since the reference drm_mode_setplane holds is transferred to the plane->fb pointer). But should be done _after_ we update the pointer. Breakage introduced in commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 Author: Daniel Vetter Date: Tue Dec 11 00:59:24 2012 +0100 drm: refcounting for sprite framebuffers Reported-by: Jesse Barnes Cc: Rob Clark Reviewed-by: Jesse Barnes Reviewed-by: Ville Syrjälä Reviewed-by: Thierry Reding Signed-off-by: Daniel Vetter Signed-off-by: Dave Airlie commit 196e077dc165a307efbd9e7569f81bbdbcf18f65 Author: Paulo Zanoni Date: Fri Feb 15 13:36:27 2013 -0200 drm: don't add inferred modes for monitors that don't support them If bit 0 of the features byte (0x18) is set to 0, then, according to the EDID spec, "the display is non-continuous frequency (multi-mode) and is only specified to accept the video timing formats that are listed in Base EDID and certain Extension Blocks". For more information, please see the EDID spec, check the notes of the table that explains the "Feature Support" byte (18h) and also the notes on the tables of the section that explains "Display Range Limits & Additional Timing Description Definition (tag #FDh)". Cc: stable@vger.kernel.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45729 Reviewed-by: Alex Deucher Reviewed-by: Adam Jackson Signed-off-by: Paulo Zanoni Signed-off-by: Dave Airlie commit 8fcb6c4748822f8f594536e47b9b0701b6c33e7a Author: Daniel Vetter Date: Tue Feb 19 11:18:04 2013 +0100 drm/cma-helper: fixup compilation /me grabs a few brown paper bags So it looks like I've broken compilation in commit 6aed8ec3f76a22217c9ae183d32b1aa990bed069 Author: Daniel Vetter Date: Sun Jan 20 17:32:21 2013 +0100 drm: review locking for drm_fb_helper_restore_fbdev_mode Fix it up again. v2: Only deref fbdev_cma once we're sure it's non-NULL, noticed by Thierry Reding. Reported-by: Wu Fengguang Signed-off-by: Daniel Vetter Reviewed-by: Thierry Reding Signed-off-by: Dave Airlie commit 0b7164458fc184455239ea3676af1b362df1ce1d Merge: 303c07d b53cf45 Author: John W. Linville Date: Tue Feb 19 14:56:34 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem commit 6e7f7cfce26cabea2965a43b69b4a0c285a7e4c5 Merge: 001c5c4 64ff167 Author: Arnd Bergmann Date: Tue Feb 19 20:54:15 2013 +0100 Merge tag 'omap-for-v3.9/usb-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc These changes contain the OMAP USB related platform data changes that were dropped from linux next because of the merge conflicts as requested by me and Olof. The reason was that at this point we really should be able to do the arch/arm related changes separately from driver changes to avoid dependencies between branches. These patches were initially part of the USB related MFD patches. Based on our comments, Roger Quadros quickly reworked these patches into a shared branch between ARM SoC tree and the MFD tree, then separate patches for the OMAP platform data and MFD driver. Note that this branch will conflict with c1d1cd597fc7 ("ARM: OMAP2+: omap_device: remove obsolete pm_lats and early_device code"). Please see http://lkml.org/lkml/2013/2/11/16 for the merge resolution. [arnd - resolved the merge conflict] Signed-off-by: Arnd Bergmann commit 7cb08d7f3a5ea6131f4f243c2080530ac41cb293 Author: Huang, Xiong Date: Tue Feb 19 07:23:09 2013 +0000 atl1c: restore buffer state in the previous commit : f1f220ea1dda078, the BUSY state of buffer is wrongly deleted. this patch just restore it. Signed-off-by: xiong Signed-off-by: David S. Miller commit ccae0e50c16a7f7adb029c169147400d1ce9f703 Author: Larry Finger Date: Sun Feb 17 17:01:20 2013 +0000 b43: Increase number of RX DMA slots Bastian Bittorf reported that some of the silent freezes on a Linksys WRT54G were due to overflow of the RX DMA ring buffer, which was created with 64 slots. That finding reminded me that I was seeing similar crashed on a netbook, which also has a relatively slow processor. After increasing the number of slots to 128, runs on the netbook that previously failed now worked; however, I found that 109 slots had been used in one test. For that reason, the number of slots is being increased to 256. Signed-off-by: Larry Finger Cc: Bastian Bittorf Cc: Stable Signed-off-by: David S. Miller commit 6338a53a2bd02d5878ab449371323364b7cc7694 Merge: 8064b3c 18cf0d0 Author: David S. Miller Date: Mon Feb 18 23:32:49 2013 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net into net Pull in 'net' to take in the bug fixes that didn't make it into 3.8-final. Also, deal with the semantic conflict of the change made to net/ipv6/xfrm6_policy.c A missing rt6->n neighbour release was added to 'net', but in 'net-next' we no longer cache the neighbour entries in the ipv6 routes so that change is not appropriate there. Signed-off-by: David S. Miller commit b53cf458ea20dd7f5e32611366f63728e40c9021 Author: Kumar Amit Mehta Date: Mon Feb 18 04:13:44 2013 -0800 net: wireless: hostap: hostap_ap.c: Return -ENOMEM instead of -1 for if kmalloc() fails. When memory allocation using, kmalloc() fails, report appropriate error value. Signed-off-by: Kumar Amit Mehta Signed-off-by: John W. Linville commit 488ec878034eccb852267b0e27ce9d511f75c587 Author: Kumar Amit Mehta Date: Mon Feb 18 03:37:44 2013 -0800 net: wireless: orinoco: orinoco_usb.c: fix DMA buffers on stack This patch fixes an instance of DMA buffer on stack(being passed to usb_control_msg) for the wireless USB version of the Agere Orinoco card driver. It also fixes the missing audit for the return value of firmware download routine. Found using smatch. Signed-off-by: Kumar Amit Mehta Signed-off-by: John W. Linville commit bc6b89237acb3dee6af6e64e51a18255fef89cc2 Author: Jussi Kivilinna Date: Mon Feb 18 10:29:30 2013 +0200 rtlwifi: usb: allocate URB control message setup_packet and data buffer separately rtlwifi allocates both setup_packet and data buffer of control message urb, using shared kmalloc in _usbctrl_vendorreq_async_write. Structure used for allocating is: struct { u8 data[254]; struct usb_ctrlrequest dr; }; Because 'struct usb_ctrlrequest' is __packed, setup packet is unaligned and DMA mapping of both 'data' and 'dr' confuses ARM/sunxi, leading to memory corruptions and freezes. Patch changes setup packet to be allocated separately. [v2]: - Use WARN_ON_ONCE instead of WARN_ON Cc: Signed-off-by: Jussi Kivilinna Signed-off-by: John W. Linville commit a5f390562a375a315292648e2da865a12b42f280 Author: Yogesh Ashok Powar Date: Fri Feb 15 21:44:30 2013 -0800 mwifiex: add 802.11AC support For STA mode, collect VHT realated IEs from the Beacons or Probe Responses and append similar VHT related IEs to association requests. For AP mode, get VHT related capability information and share it with cfg80211 at the time of wiphy register. This information is further used by cfg80211 and hostapd to start an AP with 802.11AC support. Currently only 8897 supports 802.11AC. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Avinash Patil Signed-off-by: Nishant Sarmukadam Signed-off-by: Bing Zhao Signed-off-by: Frank Huang Signed-off-by: John W. Linville commit 073c9e6f86e58ba652c694b340f0460fc8156268 Author: Yogesh Ashok Powar Date: Fri Feb 15 21:44:29 2013 -0800 mwifiex: coding style cleanup in bss parameter update They all can make one line. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 3d48203847c096afaddb2ba3c0623cfe49e91fa3 Author: Avinash Patil Date: Fri Feb 15 21:37:54 2013 -0800 mwifiex: fix empty TX ring check for PCIe8897 while unloading driver While unloading driver, we free all pending TX packets by flushing TX ring. There is unhandled case for PCIE8897 while checking for ring empty condition. This patch adds the handling by calling mwifiex_pcie_txbd_empty(). Signed-off-by: Avinash Patil Signed-off-by: Yogesh Ashok Powar Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit a9908ebf5ceb044eee6d9fda018d33cbf27df719 Merge: cfe4182 8c6d59e Author: John W. Linville Date: Mon Feb 18 15:27:42 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next commit 40d1ae57a0eb2ea8196e15cd2d54ffc186497522 Merge: 6cf1c5f 98d5fac Author: David S. Miller Date: Mon Feb 18 15:12:07 2013 -0500 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next John W. Linville says: ==================== This probably is the last big pull request for wireless bits for 3.9. Of course, I'm sure there will be a few stragglers here and there...surely a few bug fixes as well... :-) (In fact, I see that Johannes has already queued-up a few more for me while I was preparing this...) Included are a number of pulls... For mac80211-next, Johannes says: "The biggest change I have is undoubtedly Marco's mesh powersave implementation. Beyond that, I have a patch from Emmanuel to modify the DTIM period API in mac80211, scan improvements and a removal of some previous workaround code from Stanislaw, dynamic short slot time from Thomas and 64-bit station byte counters from Vladimir. I also made a number of changes myself, some related to WoWLAN, some auth/deauth improvements and most of them BSS list cleanups." "This time, I have relatively large number of fixes in various areas of the code (a memory leak in regulatory, an RX race in mac80211, the new radar checking caused a P2P device problem, some mesh issues with stations, an older bug in tracing and for kernel-doc) as well as a number of small new features. The biggest (in the diffstat) is my work on hidden SSID tracking." "Please pull to get * radar detection work from Simon * mesh improvements from Thomas * a connection monitoring/powersave fix from Wojciech * TDLS-related station management work from Jouni * VLAN crypto fixes from Michael Braun * CCK support in minstrel_ht from Felix * an SMPS (not SMSP, oops) related improvement in mac80211 (Emmanuel) * some WoWLAN work from Amitkumar Karwar: pattern match offset and a documentation fix * some WoWLAN work from myself (TCP connection wakeup feature API) * and a lot of VHT (and some HT) work (also from myself) And a number of more random cleanups/fixes. I merged mac80211/master to avoid a merge problem there." And regarding iwlwifi-next, Johannes says: "We continue work on our new driver, but I also have a WoWLAN and AP mode improvement for the previous driver and a change to use threaded interrupts to prepare us for working with non-PCIe devices." Regarding wl12xx, Luca says: "A few more patches intended for 3.9. Mostly some clean-ups I've been doing to make it easier to support device-tree. Also including one bug fix for wl12xx where the rates we advertise were wrong and an update in the wlconf structure to support newer firmwares." For the nfc-next bits, Samuel says: "This is the second NFC pull request for 3.9. We have: - A few pn533 fixes on top of Waldemar refactorization of the driver, one of them fixes target mode. - A new driver for Inside Secure microread chipset. It supports two physical layers: i2c and MEI. The MEI one depends on a patchset that's been sent to Greg Kroah-Hartman for inclusion into the 3.9 kernel [1]. The dependency is a KConfig one which means this code is not buildable as long as the MEI API is not usptream." "This 3rd NFC pull request for 3.9 contains a fix for the microread MEI physical layer support, as the MEI bus API changed. From the MEI code, we now pass the MEI id back to the driver probe routine, and we also pass a name and a MEI id table through the mei_bus_driver structure. A few renames as well like e.g. mei_bus_driver to mei_driver or mei_bus_client to mei_device in order to be closer to the driver model practices." For the ath6kl bits, Kalle says: "There's not anything special here, most of the patches are just code cleanup. The only functional changes are using the beacon interval from user space and fixing a crash which happens when inserting and removing the module in a loop." Also, I pulled the wireless tree in order to resolve some pending merge issues. On top of that, there is a bunch of work on brcmfmac that leads up to P2P support. Also, mwifiex, rtlwifi, and a variety of other drivers see some basic cleanups and minor enhancements. Please let me know if there are problems! ==================== Signed-off-by: David S. Miller commit ece31ffd539e8e2b586b1ca5f50bc4f4591e3893 Author: Gao feng Date: Mon Feb 18 01:34:56 2013 +0000 net: proc: change proc_net_remove to remove_proc_entry proc_net_remove is only used to remove proc entries that under /proc/net,it's not a general function for removing proc entries of netns. if we want to remove some proc entries which under /proc/net/stat/, we still need to call remove_proc_entry. this patch use remove_proc_entry to replace proc_net_remove. we can remove proc_net_remove after this patch. Signed-off-by: Gao feng Signed-off-by: David S. Miller commit d4beaa66add8aebf83ab16d2fde4e4de8dac36df Author: Gao feng Date: Mon Feb 18 01:34:54 2013 +0000 net: proc: change proc_net_fops_create to proc_create Right now, some modules such as bonding use proc_create to create proc entries under /proc/net/, and other modules such as ipv4 use proc_net_fops_create. It looks a little chaos.this patch changes all of proc_net_fops_create to proc_create. we can remove proc_net_fops_create after this patch. Signed-off-by: Gao feng Signed-off-by: David S. Miller commit cfe418287c61f4c4a3ccb94e8a286434d64e0236 Author: Emmanuel Grumbach Date: Thu Feb 14 11:33:54 2013 +0200 iwlwifi: dvm: improve (again) the prints in reclaim path I removed a bit too much info last time. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 3104ba151eb9df1bc14878cfd2e4356bf537d18c Author: Eytan Lifshitz Date: Fri Feb 15 16:31:45 2013 +0200 iwlwifi: dvm: fix delayed enter to CT-kill bug Theoretically, the card may not enter CTKILL: In case the timer that iwl_prepare_ct_kill_task is setting, will expire before tt->state revert to its previous state. Signed-off-by: Eytan Lifshitz Signed-off-by: Johannes Berg commit ec8b6885b543ceeb47fdb0c0e6981bb7420ab59e Author: Ilan Peer Date: Wed Feb 13 13:27:18 2013 +0200 iwlwifi: mvm: Reserve MAC id 0 for managed interfaces Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg commit 1e849c93ee5bd07b2ce84d1c3cbcd5d06cb9d2a5 Author: Ilan Peer Date: Wed Feb 13 12:26:39 2013 +0200 iwlwifi: mvm: Fix resource allocation for P2P Device The time event data structures are required also for P2P Device interface. Signed-off-by: Ilan Peer Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit d91b06d214de610807456839d543c1c2e622e9b5 Author: Ilan Peer Date: Mon Feb 11 08:50:45 2013 +0200 iwlwifi: mvm: Set the scan type according to the vif type The FW can differentiate between scans, according to the interface type on which the scan was issues. Supply the interfaces type information to the FW. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg commit e372282241316209b44ee6a7c40b9b465744fc0d Author: Johannes Berg Date: Sat Feb 16 00:11:34 2013 +0100 iwlwifi: mvm: fix time event command handling race Occasionally, we would run into this warning: iwlwifi 0000:02:00.0: U iwl_mvm_protect_session extend 0x2601: only 200 ms left iwlwifi 0000:02:00.0: U iwl_mvm_remove_time_event Removing TE 0x2601 iwlwifi 0000:02:00.0: I iwl_pcie_enqueue_hcmd Sending command TIME_EVENT_CMD (#29), seq: 0x0925, 60 bytes at 37[5]:9 iwlwifi 0000:02:00.0: U iwl_pcie_send_hcmd_sync Attempting to send sync command TIME_EVENT_CMD iwlwifi 0000:02:00.0: U iwl_pcie_send_hcmd_sync Setting HCMD_ACTIVE for command TIME_EVENT_CMD iwlwifi 0000:02:00.0: I iwl_pcie_enqueue_hcmd Sending command TIME_EVENT_CMD (#29), seq: 0x0926, 60 bytes at 38[6]:9 iwlwifi 0000:02:00.0: U iwl_mvm_time_event_response TIME_EVENT_CMD response - UID = 0x2601 iwlwifi 0000:02:00.0: I iwl_pcie_hcmd_complete Clearing HCMD_ACTIVE for command TIME_EVENT_CMD iwlwifi 0000:02:00.0: U iwl_mvm_rx_time_event_notif Time event notification - UID = 0x2701 action 1 wlan0: associate with 00:0a:b8:55:a8:30 (try 2/3) ------------[ cut here ]------------ WARNING: at drivers/net/wireless/iwlwifi/mvm/time-event.c:269 iwl_mvm_time_event_send_add+0x163/0x1a0 [iwlmvm]() Modules linked in: [...] Call Trace: [] warn_slowpath_common+0x72/0xa0 [] warn_slowpath_null+0x22/0x30 [] iwl_mvm_time_event_send_add+0x163/0x1a0 [iwlmvm] [] iwl_mvm_protect_session+0xcd/0x1c0 [iwlmvm] [] iwl_mvm_mac_mgd_prepare_tx+0x67/0xa0 [iwlmvm] [] ieee80211_sta_work+0x8f0/0x1070 [mac80211] The reason is a problem with asynchronous vs. synchronous commands, what happens here is the following: * TE 0x2601 is removed, the TIME_EVENT_CMD for that is async * a new TE (will be 0x2701) is created, the TIME_EVENT_CMD for that is sync and also uses a notification wait for the response (to avoid another race condition) * the response for the TE 0x2601 removal comes from the firmware, and is handled by the notification wait handler that's really waiting for the second response, but can't tell the difference, we therefore see the message "TIME_EVENT_CMD response - UID = 0x2601" instead of "TIME_EVENT_CMD response - UID = 0x2701". Fix this issue by making the TE removal synchronous as well, this means that we wait for the response to that command first, before there's any chance of sending a new one. Also, to detect such issues more easily in the future, add a warning to the notification handler that detects them. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 93630dc3ef897975a542bb52bbed3969e647276e Author: Johannes Berg Date: Fri Feb 15 23:54:10 2013 +0100 iwlwifi: mvm: add debug statement to time event add This is helpful for debugging the time event warning, but also in general to see what's going on. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 9cc40712a082b7288d00c57e8652e3b248e2554d Author: Johannes Berg Date: Fri Feb 15 22:47:48 2013 +0100 iwlwifi: mvm: fix GO powersave client manipulation All station commands must include a valid MAC ID, the ID 0 is randomly valid in some cases, but we must set the ID properly. Do that by passing the right station and using its mac_id_n_color. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit d2931bbd5471c35f55856e5a4f001160df9951dc Author: Johannes Berg Date: Tue Feb 5 18:10:04 2013 +0100 iwlwifi: mvm: program DTIM timings properly For the firmware to know when DTIM beacons arrive we have to program the DTIM time in TSF and system time in the MAC context. Since mac80211 now tracks the different times (on demand), this becomes easy. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit b18bf9733c4ca4db6fdb692895fabc9d934b7303 Author: Johannes Berg Date: Fri Feb 15 23:39:17 2013 +0100 iwlwifi: mvm: fix merge error The iwlwifi-next tree removed IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC while the mac80211-next tree removed Signed-off-by: Johannes Berg commit 98d5fac2330779e6eea6431a90b44c7476260dcc Merge: 4153577 9e97d14 Author: John W. Linville Date: Mon Feb 18 13:47:13 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem Conflicts: drivers/net/wireless/iwlwifi/dvm/tx.c drivers/net/wireless/ti/wlcore/sdio.c drivers/net/wireless/ti/wlcore/spi.c commit 8c6d59ee3509acd474365c34db291b950d2e66bf Author: Johannes Berg Date: Mon Feb 18 14:57:42 2013 +0100 cfg80211: fix station change if TDLS isn't supported Larry noticed (and bisected) that commit df881293c6ba9a12868491a717b25 "cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station" broke secure connections. This is is the case only for drivers that don't support TDLS, where any kind of change, even just the change of authorized flag that is required for normal operation, was rejected now. To fix this, remove the checks. I have some patches that will add proper verification for all the different cases later. Cc: Jouni Malinen Bisected-by: Larry Finger Tested-by: Larry Finger Signed-off-by: Johannes Berg commit c39ac036add6b0696fb61b4d4733d671ca031723 Author: Thomas Pedersen Date: Sat Feb 16 10:41:06 2013 -0800 mac80211: don't spam mesh probe response messages If mesh plink debugging is enabled, this gets annoying in a crowded environment, fast. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 95e48addba6f9271aed51d9d3eaccbfc99a914b4 Author: Thomas Pedersen Date: Sat Feb 16 10:41:05 2013 -0800 mac80211: stringify mesh peering events Convert mesh peering events into strings and make the debug output a little easier to read. Also stop printing the llid and plid since these don't change across peering states and are random numbers anyway so they just amount to noise. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 52ac8c488774b7ac6d1b0ed4c323b5de90d39d6e Author: Thomas Pedersen Date: Sat Feb 16 10:41:04 2013 -0800 mac80211: clean up mesh HT operation ieee80211_ht_cap_ie_to_sta_ht_cap() will clean up the ht_supported flag and station bandwidth field for us if the peer beacon doesn't have an HT capability element (is operating as non-HT). Also, we don't really need a special station ch_width member to track the station operating mode any more so use sta.bandwidth instead. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 572078be54856bf751af9a43d501ffb8d09b1ea7 Author: Johannes Berg Date: Fri Feb 15 11:47:50 2013 +0100 mac80211: fix harmless station flush warning If an interface is set down while authenticating or associating, there's a station entry that will be removed by the flushing in do_stop() and that will cause a warning. It's otherwise harmless, but avoid the warning by calling ieee80211_mgd_stop() first. Signed-off-by: Johannes Berg commit b3d3de80133d32723224329f87edecaff230fefc Author: Rob Clark Date: Tue Jan 8 19:19:13 2013 -0600 drm/nouveau: use i2c encoder helper wrappers Signed-off-by: Rob Clark commit a7c47d6dc4a201b811e847e5449c8cffdc556deb Author: Rob Clark Date: Tue Jan 8 17:50:48 2013 -0600 drm: i2c encoder helper wrappers Simplify life for drivers using an encoder-slave, so that they can make their drm_encoder_helper_funcs const, rather than needing to dynamically allocate and populate them. Signed-off-by: Rob Clark commit 6f646095ec2f5d38a6429dd896cb2d5cbbb776dc Author: Rob Clark Date: Mon Dec 10 10:46:43 2012 -0600 drm/cma: add debugfs helpers Add helper to display fb's which can be used directly in drm_info_list: static struct drm_info_list foo_debugfs_list[] = { ... { "fb", drm_fb_cma_debugfs_show, 0 }, }; to display information about CMA fb objects, as well as a drm_gem_cma_describe() which can be used if the driver bothers to keep a list of CMA GEM objects. Signed-off-by: Rob Clark commit 21a245d2d62ef617978316203af032d499805cd2 Author: Rob Clark Date: Mon Dec 10 10:49:46 2012 -0600 drm: small fix in drm_send_vblank_event() Initialize e->pipe.. some drivers set this themselves, others do not. Setting it in drm_send_vblank_event() should help ensure more consistent behavior with the different drivers. Signed-off-by: Rob Clark commit 6e488c00457dad0d433af7f937211fba8d76fd04 Author: Daniel Vetter Date: Fri Feb 15 20:21:37 2013 +0000 drm: Don't set the plane->fb to NULL on successfull set_plane We need to clear the local variable to get the refcounting right (since the reference drm_mode_setplane holds is transferred to the plane->fb pointer). But should be done _after_ we update the pointer. Breakage introduced in commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 Author: Daniel Vetter Date: Tue Dec 11 00:59:24 2012 +0100 drm: refcounting for sprite framebuffers Reported-by: Jesse Barnes Cc: Jesse Barnes Cc: Rob Clark Signed-off-by: Daniel Vetter Reviewed-by: Jesse Barnes Reviewed-by: Ville Syrjälä commit 50fdaae79abbfc4f04b5380ac5abf00fd448c5a5 Author: Daniel Vetter Date: Fri Feb 15 10:24:35 2013 +0000 drm/cma-helper: fixup compilation /me grabs a few brown paper bags So it looks like I've broken compilation in commit 6aed8ec3f76a22217c9ae183d32b1aa990bed069 Author: Daniel Vetter Date: Sun Jan 20 17:32:21 2013 +0100 drm: review locking for drm_fb_helper_restore_fbdev_mode Fix it up again. Reported-by: Wu Fengguang Signed-off-by: Daniel Vetter commit 8e44770f093c003d11784060fea4ffc82ad576eb Author: Rob Clark Date: Sat Feb 16 16:40:36 2013 -0500 drm/omap: remove fbdev debug enter/leave hooks This will result in badness for drivers that do not implement mode_set_base_atomic(). So don't pretend like we can support this. Signed-off-by: Rob Clark commit dfe96ddcfa22b44100814b9435770f6ff1309d37 Author: Daniel Vetter Date: Thu Jan 24 17:20:34 2013 +0100 omapdrm: simplify locking in the fb debugfs file We don't need to hold onto mode_config.mutex any more to keep the fb objects around. And locking dev->struct_mutex is also not required, since omap_gem_describe only reads data anyway. And for a debug interface it's better to grab fewer locks in case the driver is deadlocked already ... The only thing we need is to hold onto mode_config.fb_lock to ensure the user-created fbs don't disappear. The fbcon fb doesn't need any protection, since it lives as long as the driver (and so the debugfs files) itself. And if the teardown/setup isn't following the right sequence grabbing locks won't prevent a NULL deref on priv->fbdev if the fb is not yet (or no longer) there. Signed-off-by: Daniel Vetter Signed-off-by: Rob Clark commit 16ef3dfe460616f14120973f78fe640e79862654 Author: Daniel Vetter Date: Thu Jan 24 17:20:33 2013 +0100 omapdrm: only take crtc->mutex in crtc callbacks Omapdrm doesn't do anything nefarious with crtc load detection or has any shared resources, so this is enough. We also need to adjust the WARN_ON. Signed-off-by: Daniel Vetter Signed-off-by: Rob Clark commit 8bb0daffb0b8e45188066255b4203446eae181f1 Author: Rob Clark Date: Mon Feb 11 12:43:09 2013 -0500 drm/omap: move out of staging Now that the omapdss interface has been reworked so that omapdrm can use dispc directly, we have been able to fix the remaining functional kms issues with omapdrm. And in the mean time the PM sequencing and many other of that open issues have been solved. So I think it makes sense to finally move omapdrm out of staging. Signed-off-by: Rob Clark commit 15ac7c478fd227257e4be94519c6f965a9e6159d Author: Seth Forshee Date: Fri Feb 15 13:15:48 2013 -0600 mac80211: Fix incorrect use of STA_PR_FMT in trace points Several tracepoints are using STA_PR_FMT where STA_PR_ARG should be used, resulting in messages like "phy0 sta:ARG TYPE NOT FIELD BUT 1". Change these to STA_PR_ARG. Signed-off-by: Seth Forshee Signed-off-by: Johannes Berg commit 9e97d14b4923da524d202f2e005d5d30b70db9d6 Merge: ded652a 6f7c1ad Author: John W. Linville Date: Fri Feb 15 14:06:32 2013 -0500 Merge branch 'for-linville' of git://github.com/kvalo/ath6kl commit ded652a67464b1fa66616954bc608ead9ec02fb6 Merge: b56e681 93c78c5 Author: John W. Linville Date: Fri Feb 15 13:59:53 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next commit 8ffb5c001a6d1ef142ef550861e0b97e291f6469 Author: Bob Copeland Date: Fri Feb 15 10:18:34 2013 -0500 mac80211: enable vif.cab_queue for mesh Since mesh powersaving was added, pending bcast/mcast frames may go out the CAB queue now. Unfortunately, the queue was only set up for AP mode, so we would try to tx on the IEEE80211_INVAL_HW_QUEUE. Allow cab_queue for mesh interfaces as well. Fixes the following warning (or crash without MAC80211_VERBOSE_DEBUG): WARNING: at net/mac80211/tx.c:1223 __ieee80211_tx+0x162/0x35f [mac80211]() Modules linked in: mac80211_hwsim mac80211 cfg80211 [...] Pid: 3085, comm: avahi-daemon Tainted: G W 3.8.0-rc1+ #377 Call Trace: [] warn_slowpath_common+0x83/0x9c [] warn_slowpath_null+0x1a/0x1c [] __ieee80211_tx+0x162/0x35f [mac80211] [] ieee80211_tx+0xd3/0xf9 [mac80211] [] ieee80211_xmit+0xcc/0xd5 [mac80211] [] ieee80211_subif_start_xmit+0xc53/0xcd8 [mac80211] [] dev_hard_start_xmit+0x259/0x3ce [] sch_direct_xmit+0x74/0x17d [] dev_queue_xmit+0x230/0x414 [] ip_finish_output2+0x348/0x3aa [] ip_finish_output+0x6c/0x71 [] NF_HOOK_COND.constprop.44+0x18/0x58 [] ip_mc_output+0x134/0x13c [] dst_output+0x18/0x1c [] ip_local_out+0x20/0x24 [] ip_send_skb+0x16/0x3c [] udp_send_skb+0x254/0x2b9 [] udp_sendmsg+0x5a8/0x7d4 Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg commit bf7cd94dcc71682cd6af4a9028f95307b7db41c5 Author: Johannes Berg Date: Fri Feb 15 14:40:31 2013 +0100 mac80211: clean up mesh code There's various code with strange indentation, questionable loop and locking constructs, etc. The bigger change is moving the "sdata" argument to the first argument of all functions, like all other mac80211 functions that have one. Signed-off-by: Johannes Berg commit f73f760725636b9d0c3786273e185b053516d1eb Author: Ben Widawsky Date: Mon Feb 11 13:31:27 2013 -0800 drm/i915/ctx: Remove bad invariant It's not that the assertion is incorrect, but rather that we can call do_destroy early in loading, and we will falsely BUG(). Since contexts have been in for a while now, and in the internal APIs are pretty stable, it should be fairly safe to remove this. v2: Remove unused dev_priv, and dev Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 4fc7c971c3aedf937f824c063d698779d25c3330 Author: Ben Widawsky Date: Fri Feb 8 11:49:24 2013 -0800 drm/i915: Extract ring init from hw_init The ring initialization will differ a bit in upcoming generations, and this split will prepare the code for what's needed. This patch also fixes a bug introduced in: commit 99433931950f33039d9e1a52b4ed9af3f1b58e84 Author: Mika Kuoppala Date: Tue Jan 22 14:12:17 2013 +0200 drm/i915: use gem_set_seqno() on hardware init After doing the extraction, the bad error handling became obvious. I acknowledge that this should be two patches, but it's a pretty small/trivial patch. If requested, I can certainly do the fix as a distinct patch. v2: Should be cleanup blt, not init blt on failure (Chris) v3: Forgot to git add on v2 Cc: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 41907ddc1b71aaa4ef5290f46f0ec49d581d6aac Author: Ben Widawsky Date: Fri Feb 8 11:32:47 2013 -0800 drm/i915: Fix gen2 mappable calculations When I refactored the code initially, I forgot that gen2 uses a different bar for the CPU mappable aperture. The agp-less code knows nothing of generations less than 5, so we have to expand the gtt_probe function to include the mappable base and end. It was originally broken by me: commit baa09f5fd8a6d033ec075355dda99a65b7f6a0f3 Author: Ben Widawsky Date: Thu Jan 24 13:49:57 2013 -0800 drm/i915: Add probe and remove to the gtt ops Reported-by: Chris Wilson Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit d46da4377689bd938795e53c4e2fb54dbcaeea44 Author: Paulo Zanoni Date: Fri Feb 8 17:35:15 2013 -0200 drm/i915: add ibx_irq_postinstall So we can remove duplicated code. Note that this function is used not only on IBX, but also CPT and LPT. Signed-off-by: Paulo Zanoni Reviewed-by: Ben Widawsky [danvet: Also bikeshed s/ironlake_enable_pch_hotplug/ibx_enable_hotplug to keep consistent with our ibx for pch naming scheme.] Signed-off-by: Daniel Vetter commit 2c6602df1a7ff79c9e489602445a6d7eb728744e Author: Ville Syrjälä Date: Fri Feb 8 23:13:35 2013 +0200 drm/i915: Fix sprite_scaling_enabled for multiple sprites We have more than one sprite, so a boolean simply won't cut it. Turn sprite_scaling_enabled into a bitmask and track the state of sprite scaler for each sprite independently. Also don't re-enable LP watermarks until the sprite registers have actually been written, and thus sprite scaling has really been disabled. Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 26739f12cf210cb8df35969258a1f064e8e12b63 Author: Daniel Vetter Date: Thu Feb 7 12:42:32 2013 +0100 drm/i915: unify HDMI/DP hpd definitions They're physically the same pins and also the same bits, duplicating only confuses the reader. This also makes it a bit obvious that we have quite some code duplication going on here. Squashing that is for a larger rework in our hpd handling though. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 07ea0d85ac8adb87b817913d9720e3c76171b1f6 Author: Ben Widawsky Date: Thu Feb 7 13:34:19 2013 -0800 drm/i915: Clarify HW context size logic This was a rebase error from when the patches originally landed. Since the context size is unsigned, there is also no use in checking if it's less than 0. The existing code is not really wrong, but it's not simple as it should be. Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit cf0a6584aa6d382f802f2c3cacac23ccbccde0cd Author: Daniel Vetter Date: Wed Feb 6 11:24:41 2013 +0100 drm/i915: write backlight harder 770c12312ad617172b1a65b911d3e6564fc5aca8 is the first bad commit commit 770c12312ad617172b1a65b911d3e6564fc5aca8 Author: Takashi Iwai Date: Sat Aug 11 08:56:42 2012 +0200 drm/i915: Fix blank panel at reopening lid changed the register write sequence for restoring the backlight, which helped prevent non-working backlights on some machines. Turns out that the original sequence was the right thing to do for a different set of machines. Worse, setting the backlight level _after_ enabling it seems to reset it somehow. So we need to make that one conditional upon the backlight having been reset to zero, and add the old one back. Cargo-culting at it's best, but it seems to work. Cc: stable@vger.kernel.org Cc: Takashi Iwai Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=47941 Reviewed-by: Jani Nikula Acked-by: Takashi Iwai Signed-off-by: Daniel Vetter commit 93c78c5debeb9c7101ecc73347d4730c26a98c05 Author: Karl Beldan Date: Fri Feb 15 00:03:14 2013 +0100 mac80211_hwsim: ask mac80211 to reserve space for chanctx.drv_priv Otherwise memory corruption occurs when using channel contexts (ATM when param 'channel' > 1). Signed-off-by: Karl Beldan Signed-off-by: Johannes Berg commit 586e01ededf9b713a1512dd658806791a7ca1a50 Author: Johannes Berg Date: Thu Feb 14 12:13:53 2013 +0100 mac80211: prevent spurious HT/VHT downgrade message Even when connecting to an AP that doesn't support VHT, and even when the local device doesn't support it either, the downgrade message gets printed. Suppress the message if HT and/or VHT is disabled. Signed-off-by: Johannes Berg commit 932dd97c5fef091dd6f605fb1d40143d67d91e09 Author: Johannes Berg Date: Thu Feb 14 11:56:13 2013 +0100 nl80211: renumber NL80211_FEATURE_FULL_AP_CLIENT_STATE Adding the flag to mac80211 already without testing was clearly a mistake, one that we now pay for by having to reserve bit 13 forever. The problem is cfg80211 doesn't allow capability/rate changes for station entries that were added unassociated, so the station entries cannot be set up properly when marked associated. Change the NL80211_FEATURE_FULL_AP_CLIENT_STATE value to make it clear to userspace implementations that all current kernels don't actually support it, even though the previous bit is set, and of course also remove the flag from mac80211 until we test and fix the issues. Signed-off-by: Johannes Berg commit df881293c6ba9a12868491a717b25cb14ec1fa4a Author: Jouni Malinen Date: Thu Feb 14 21:10:54 2013 +0200 cfg80211: Pass TDLS peer's QoS/HT/VHT information during set_station The information of the peer's capabilities is required for the driver to perform TDLS Peer UAPSD operations. This information of the peer is passed by the supplicant using NL80211_CMD_SET_STATION command. This commit enhances the function nl80211_set_station to pass this information of the peer to the driver in case this command is used with the TDLS peer STA. In addition, make the HT/VHT capability configuration handled more consistently for other STA cases (reject both instead of just HT). Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg commit 9d62a98617298c1da288f50e84c5dd67732e79b7 Author: Jouni Malinen Date: Thu Feb 14 21:10:13 2013 +0200 cfg80211: Pass station (extended) capability info to kernel The information of the peer's capabilities and extended capabilities are required for the driver to perform TDLS Peer UAPSD operations and off channel operations. This information of the peer is passed from user space using NL80211_CMD_SET_STATION command. This commit enhances the function nl80211_set_station to pass the capability information of the peer to the driver. Similarly, there may be need for capability information for other modes, so allow this to be provided with both add_station and change_station. Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg commit c6f9d6c3bdeb337809d667ef2a41597229a1ce57 Author: Johannes Berg Date: Mon Feb 11 14:27:08 2013 +0100 mac80211: advertise operating mode notification capability Use the new extended capabilities advertising to advertise the fact that operating mode notification is supported. Signed-off-by: Johannes Berg commit a50df0c4c0d97170a6c43573612acacc43e62fe7 Author: Johannes Berg Date: Mon Feb 11 14:20:05 2013 +0100 cfg80211: advertise extended capabilities to userspace In many cases, userspace may need to know which of the 802.11 extended capabilities ("Extended Capabilities element") are implemented in the driver or device, to include them e.g. in beacons, assoc request/response or other frames. Add a new nl80211 attribute to hold the extended capabilities bitmap for this. Signed-off-by: Johannes Berg commit af0ed69badc67a0b6e976543f52029fce9ac8f69 Author: Johannes Berg Date: Tue Feb 12 14:21:00 2013 +0100 mac80211: stop modifying HT SMPS capability Instead of modifying the HT SMPS capability field for stations, track the SMPS mode explicitly in a new field in the station struct and use it in the drivers that care about it. This simplifies the code using it. Signed-off-by: Johannes Berg commit 9fb04b501a57ad29fa989ab3cd2123482e7eac5f Author: Thomas Pedersen Date: Thu Feb 14 11:20:14 2013 -0800 mac80211: generate mesh probe responses Mesh interfaces will now respond to any broadcast (or matching directed mesh) probe requests with a probe response. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 2b5e19677592c167d012c2d129407f39d2bdeb8d Author: Thomas Pedersen Date: Thu Feb 14 11:20:13 2013 -0800 mac80211: cache mesh beacon Previously, the entire mesh beacon would be generated each time the beacon timer fired. Instead generate a beacon head and tail (so the TIM can easily be inserted when mesh power save is on) when starting a mesh or the MBSS parameters change. Also add a mutex for protecting beacon updates and preventing leaks. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 4a3cb702b05868f67c4ee3da3380461c5b90b4ca Author: Johannes Berg Date: Tue Feb 12 16:43:19 2013 +0100 mac80211: constify IE parsing Make all the parsed IE pointers const, and propagate the change to all the users etc. Signed-off-by: Johannes Berg commit 50640f169372b9977487a328dedf13a8debedff7 Author: Johannes Berg Date: Wed Dec 12 17:59:39 2012 +0100 nl80211: advertise HT/VHT channel limitations When drivers or regulatory have limitations on 40, 80 or 160 MHz channels, advertise these to userspace via nl80211. Also add a new feature flag to let userspace know this is supported. Signed-off-by: Johannes Berg commit c7a6ee27abd46247c1c7edfc49fb935138da7875 Author: Johannes Berg Date: Wed Dec 12 17:50:39 2012 +0100 cfg80211: allow drivers to selectively disable 80/160 MHz Some drivers might support 80 or 160 MHz only on some channels for whatever reason, so allow them to disable these channel widths. Also maintain the new flags when regulatory bandwidth limitations would disable these wide channels. Reviewed-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 30eb1dc2c43039e0fe278e6f3a288de9f216d70d Author: Johannes Berg Date: Fri Feb 8 15:12:14 2013 +0100 mac80211: properly track HT/VHT operation changes A while ago, I made the mac80211 station code never change the channel type after association. This solved a number of issues but is ultimately wrong, we should react if the AP changes the HT operation IE and switches bandwidth. One of the issues is that we associate as HT40 capable, but if the AP ever switches to 40 MHz we won't be able to receive such frames because we never set our channel to 40 MHz. This addresses this and VHT operation changes. If there's a change that is incompatible with our setup, e.g. if the AP decides to change the channel entirely (and for some reason we still hear the beacon) we'll just disconnect. Signed-off-by: Johannes Berg commit 6565ec9b58483a9706fbe888364aeceb359aeced Author: Johannes Berg Date: Fri Feb 8 14:52:32 2013 +0100 mac80211: move ieee80211_determine_chantype function The next patch will need it further up in the file, so move it unchanged now. Signed-off-by: Johannes Berg commit 2c9b735982ee8a2d34e7eeb3e26b683f81872fdb Author: Johannes Berg Date: Thu Feb 7 21:37:29 2013 +0100 mac80211: add ieee80211_vif_change_bandwidth For HT and VHT the current bandwidth can change, add the function ieee80211_vif_change_bandwidth() to take care of this. It returns a failure if the new bandwidth isn't compatible with the existing channel context, the caller has to handle that. When it happens, also inform the driver that the bandwidth changed for this virtual interface (no drivers would actually care today though.) Changing to/from HT/VHT isn't allowed though. Signed-off-by: Johannes Berg commit f2d9330ee820b01e2b1caf46370bc7963d259908 Author: Johannes Berg Date: Fri Feb 8 13:15:55 2013 +0100 mac80211: clean up channel use in ieee80211_config_ht_tx The channel use is confusing, some uses the channel context and some the bss_conf.chandef. The latter is fine, so get rid of the channel context part. Signed-off-by: Johannes Berg commit 08e6effa1187cc5f401a1cc286ce84f0a581b35a Author: Johannes Berg Date: Thu Feb 7 23:33:32 2013 +0100 mac80211: disable HT/VHT if AP has no HT/VHT capability Having HT/VHT operation IEs but not capability IEs leads to a strange situation where we configure the channel to an HT or VHT bandwidth and then can't actually use it. Prevent this by checking that the HT and VHT capability IEs are present as well as the operation IEs; if not, disable HT and/or VHT. Signed-off-by: Johannes Berg commit bee7f58699a406a4210ba9e0367bae7ac666abd0 Author: Johannes Berg Date: Thu Feb 7 22:24:55 2013 +0100 mac80211: handle operating mode notif in beacon/assoc response In beacons and association response frames an AP may include an operating mode notification element to advertise changes in the number of spatial streams it can receive. Handle this using the existing function that handles the action frame, but only handle NSS changes, not bandwidth changes which aren't allowed here. Signed-off-by: Johannes Berg commit 18942d3be0e0e67aa40550ce3266e48b51845d52 Author: Johannes Berg Date: Thu Feb 7 21:30:37 2013 +0100 mac80211: fix ieee80211_change_chandef name This should be called ieee80211_change_chanctx() since it changes the channel context, not a chandef. Signed-off-by: Johannes Berg commit cb145022c82bde532b386c7a6f1dcef1b2bca2e5 Author: Johannes Berg Date: Thu Feb 7 20:41:50 2013 +0100 mac80211: fix HT/VHT disable flags The code to disable HT and VHT if VHT was advertised without VHT is wrong -- it accidentally uses the wrong flags. Fix that. Signed-off-by: Johannes Berg commit 1128958dc22cbfa2562082da2621a06ba71bdce2 Author: Johannes Berg Date: Thu Feb 7 17:36:12 2013 +0100 mac80211: init HT TX data before rate control In case of connection, the station data is initialised from the beacon/probe response first and then updated from the association response. If the latter is different we update the rate control algorithm and driver. Instead of doing it this way, set the station data properly with data from the association response before initializing rate control. Also simplify the code by passing the station pointer. Signed-off-by: Johannes Berg commit 0af83d3df5863224336a18c24a14fda542b712f5 Author: Johannes Berg Date: Thu Dec 27 18:55:36 2012 +0100 mac80211: handle VHT operating mode notification Handle the operating mode notification action frame. When the supported streams or the bandwidth change let the driver and rate control algorithm know. Signed-off-by: Johannes Berg commit 8921d04e8df7475d733d853564bdb001e83bf33f Author: Johannes Berg Date: Thu Dec 27 18:26:42 2012 +0100 mac80211: track number of spatial streams With VHT, a station can change the number of spatial streams it can receive on the fly, not unlike spatial multiplexing in HT. Prepare for that by tracking the maximum number of spatial streams it can receive when the connection is established. Signed-off-by: Johannes Berg commit e1a0c6b3a4b27ed5f21291d0bbee2167ec201ef5 Author: Johannes Berg Date: Thu Feb 7 11:47:44 2013 +0100 mac80211: stop toggling IEEE80211_HT_CAP_SUP_WIDTH_20_40 For VHT, many more bandwidth changes are possible. As a first step, stop toggling the IEEE80211_HT_CAP_SUP_WIDTH_20_40 flag in the HT capabilities and instead introduce a bandwidth field indicating the currently usable bandwidth to transmit to the station. Of course, make all drivers use it. To achieve this, make ieee80211_ht_cap_ie_to_sta_ht_cap() get the station as an argument, rather than the new capabilities, so it can set up the new bandwidth field. If the station is a VHT station and VHT bandwidth is in use, also set the bandwidth accordingly. Doing this allows us to get rid of the supports_40mhz flag as the HT capabilities now reflect the true capability instead of the current setting. While at it, also fix ieee80211_ht_cap_ie_to_sta_ht_cap() to not ignore HT cap overrides when MCS TX isn't supported (not that it really happens...) Signed-off-by: Johannes Berg commit 4a34215ef7487b1cbd783e7cc485eb03de893bd0 Author: Johannes Berg Date: Thu Feb 7 11:58:58 2013 +0100 mac80211: pass station to ieee80211_vht_cap_ie_to_sta_vht_cap Like with HT, make things a bit simpler in future patches by passing the station to ieee80211_vht_cap_ie_to_sta_vht_cap() instead of the vht_cap pointer. Also disable VHT here if HT isn't supported. Signed-off-by: Johannes Berg commit 8cdc196b743c4224ffa59fef38133559c1fd2a5e Merge: 0339500 3d9646d Author: Johannes Berg Date: Fri Feb 15 09:41:21 2013 +0100 Merge remote-tracking branch 'mac80211/master' into HEAD commit 03395003bf8ac813b1a0ac9299b3496484caf228 Author: Johannes Berg Date: Wed Feb 13 18:03:00 2013 +0100 mac80211: use spin_lock_bh() for TKIP lock Since no driver calls the TKIP functions from interrupt context, there's no need to use spin_lock_irqsave(). Just use spin_lock_bh() (and spin_lock() in the TX path where we're in a BH or they're already disabled.) Signed-off-by: Johannes Berg commit 65f704a52ec5db356c58f8ba53a31d3aef02737f Author: Johannes Berg Date: Wed Feb 13 17:39:53 2013 +0100 mac80211: use spin_lock_bh() for tim_lock There's no need to use _irqsave() as the lock is never used in interrupt context. This also fixes a problem in the iwlwifi MVM driver that calls spin_unlock_bh() within its set_tim() callback. Signed-off-by: Johannes Berg commit 441a33baf1805861354fb9e3149c000311b6996f Author: Johannes Berg Date: Tue Feb 12 16:27:04 2013 +0100 mac80211: don't pick up WPA vendor IE There's no use for it, WPA is entirely handled in wpa_supplicant in userspace, so don't pick the IE. Signed-off-by: Johannes Berg commit 5b36ebd8249f403c7edf7cf68d68e9a0d0f55243 Author: Johannes Berg Date: Wed Feb 13 14:21:45 2013 +0100 mac80211: always unblock CSA queue stop when disconnecting In some cases when disconnecting after (or during?) CSA the queues might not recover, and then the only way to recover is reloading the module. Fix this by always unblocking the queue CSA reason when disconnecting. Cc: stable@vger.kernel.org Reported-by: Jan-Michael Brummer Signed-off-by: Johannes Berg commit 5bbe754d9ecc4a09994ecd0cf3b167224e114da5 Author: Johannes Berg Date: Wed Feb 13 13:50:51 2013 +0100 mac80211: don't call bss_info_changed on p2p-device/monitor Since the idle decision rework, mac80211 started calling bss_info_changed() for the driver's monitor interface, which causes a crash for iwlwifi, but drivers generally don't expect this to happen. Therefore, avoid it. While at it, also prevent calling it in such cases and only print a warning. For the P2P Device interface the idle will no longer be called (no channel context), so also prevent that and warn on it. Reported-by: Chaitanya Signed-off-by: Johannes Berg commit 89afe614c0c737fd40eda1f8c8ef686246cf3cb6 Author: Johannes Berg Date: Wed Feb 13 15:39:57 2013 +0100 mac80211: fix auth/assoc timeout handling In my commit 1672c0e31917f49d31d30d79067103432bc20cc7 ("mac80211: start auth/assoc timeout on frame status") I broke auth/assoc timeout handling: in case we wait for the TX status, it now leaves the timeout field set to 0, which is a valid time and can compare as being before now ("jiffies"). Thus, if the work struct runs for some other reason, the auth/assoc is treated as having timed out. Fix this by introducing a separate "timeout_started" variable that tracks whether the timeout has started and is checked before timing out. Additionally, for proper TX status handling the change requires that the skb->dev pointer is set up for all the frames, so set it up for all frames in mac80211. Reported-by: Wojciech Dubowik Tested-by: Wojciech Dubowik Signed-off-by: Johannes Berg commit cab1c7fd8024ce896119535b5b067224b0b699aa Author: Wojciech Dubowik Date: Thu Feb 14 14:08:37 2013 +0100 mac80211: fix ieee80211_sta_tx_notify for nullfunc Function ieee80211_sta_reset_conn_monitor has been resetting probe_send_count too early and nullfunc check was never called after succesfull ack. Reported-by: Magnus Cederlöf Tested-by: Magnus Cederlöf Signed-off-by: Wojciech Dubowik Signed-off-by: Johannes Berg commit 39886b618aba3c39e650c191d601e26ec581ce0f Author: Thomas Pedersen Date: Wed Feb 13 12:14:19 2013 -0800 mac80211: consolidate MBSS change notification A few mesh utility functions will call ieee80211_bss_info_change_notify(), and then the caller might notify the driver of the same change again. Avoid this redundancy by propagating the BSS changes and generally calling bss_info_change_notify() once per change. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit de74a1d9032f4d37ea453ad2a647e1aff4cd2591 Author: Michael Braun Date: Wed Feb 13 16:49:16 2013 +0100 mac80211: fix WPA with VLAN on AP side with ps-sta When sending a broadcast while at least on of the connected stations is sleeping, it gets queued and send after a DTIM beacon is sent. If the packet was to be sent on a vlan interface, the vif used for dequeing from the per-bss queue does not hold the per-vlan sdata. The correct sdata is required to use the correct per-vlan broadcast/multicast key. This patch fixes this by restoring the per-vlan sdata using the skb->dev entry. Signed-off-by: Michael Braun Signed-off-by: Johannes Berg commit 397a7a24ef8c2967a3e8090013f9c54714110c48 Author: Michael Braun Date: Wed Feb 13 16:49:15 2013 +0100 mac80211: free ps->bc_buf skbs on vlan device stop When the vlan device is removed, ps->bc_buf processing can no longer send its frames. Signed-off-by: Michael Braun Signed-off-by: Johannes Berg commit 164eb02d070af987890e1db1c12b8ae0394b19f7 Author: Simon Wunderlich Date: Fri Feb 8 18:16:20 2013 +0100 mac80211: add radar detection command/event Add command to trigger radar detection in the driver/FW. Once radar detection is started it should continuously monitor for radars as long as the channel active. If radar is detected usermode notified with 'radar detected' event. Scanning and remain on channel functionality must be disabled while doing radar detection/scanning, and vice versa. Based on original patch by Victor Goldenshtein Signed-off-by: Simon Wunderlich Signed-off-by: Johannes Berg commit 04f39047af2a6df64b763ea5a271db24879d0391 Author: Simon Wunderlich Date: Fri Feb 8 18:16:19 2013 +0100 nl80211/cfg80211: add radar detection command/event Add new NL80211_CMD_RADAR_DETECT, which starts the Channel Availability Check (CAC). This command will also notify the usermode about events (CAC finished, CAC aborted, radar detected, NOP finished). Once radar detection has started it should continuously monitor for radars as long as the channel is active. This patch enables DFS for AP mode in nl80211/cfg80211. Based on original patch by Victor Goldenshtein Signed-off-by: Simon Wunderlich [remove WIPHY_FLAG_HAS_RADAR_DETECT again -- my mistake] Signed-off-by: Johannes Berg commit 3314fdf8b44bd4914050614fa2c56b7c587fabc2 Merge: f934ec8c a065b46 Author: Dave Airlie Date: Fri Feb 15 10:21:55 2013 +1000 Merge branch 'drm-fb-helper' of git://people.freedesktop.org/~danvet/drm into drm-next This is the drm fb helper cleanup, mostly motivated by strange things I've seen in my locking rework and the i915 modeset revamp. Compared to the original submission I've reinstated the setup flexibility you'd like to retain, kerneldoc has been reviewed by Laurent Pinchart and Rob Clark reviewed the code changes. Quick overview of the changes: - Cleaned-up library interface for drivers using the fb helper, also simplified the fb allocation callback since no driver supported reallocating the fb on-the-fly. And the fbdev/fbcon code keeps pointers to the old mapping around anyway, so reallocating backing storage will be much more work. - No longer call the crtc helper "disable everything" function at init time, but allow drivers to do so. Motivated by i915's fastboot effort and allows us to drop a bunch of noop dummy functions just to avoid calling NULL function pointers from i915.ko. - Properly clear old state when doing modeset calls, the fb helper left some old modes in there and unconditionally set an fb (even when disabling a crtc). The crtc helpers didn't care, but i915 modeset code can now drop a few special cases. - Full kerneldoc for the fb helper. Yay! - My version of the "don't sleep in panic ->unblank calls". The patch is already in -mm, I guess Andrew can drop it as soon as this pull lands in drm-next. * 'drm-fb-helper' of git://people.freedesktop.org/~danvet/drm: drm/fb-helper: remove unused members of struct drm_fb_helper drm/fb-helper: don't sleep for screen unblank when an oopps is in progress drm/fb-helper: improve kerneldoc drm/: simplify ->fb_probe callback drm/fb-helper: streamline drm_fb_helper_single_fb_probe drm/fb-helper: directly call set_par from the hotplug handler drm/fb-helper: fixup set_config semantics drm/i915: rip out helper->disable noop functions drm/fb-helper: don't disable everything in initial_config drm/tegra: don't set up initial fbcon config twice drm/fb-helper: unexport drm_fb_helper_single_fb_probe drm/fb-helper: unexport drm_fb_helper_panic drm/fb-helper: kill drm_fb_helper_restore drm: review locking for drm_fb_helper_restore_fbdev_mode commit f934ec8c34b9dcefb5a4f35b0bda33bca289cbe6 Author: Maarten Lankhorst Date: Tue Jan 29 14:27:39 2013 +0100 drm: shut up invalid edid messages My cheapo monitor has an invalid block 1, resulting in a lot of dmesg spam every few seconds. I get it the first time that the entire block is all 0xff.. Signed-off-by: Maarten Lankhorst Cc: stable@vger.kernel.org [v3.7] Signed-off-by: Dave Airlie commit 3e2b756ba330343c960c332695608b9c5881a173 Author: Chris Metcalf Date: Fri Feb 1 13:44:33 2013 -0500 drm: fix compile failure by including On tile architecture (with "make allyesconfig") including is required to call swiotlb_nr_tbl(). Signed-off-by: Chris Metcalf Acked-by: Maarten Lankhorst Signed-off-by: Dave Airlie commit 93711d8becca550154da3b9e422be77083ab51ad Author: Bjorn Helgaas Date: Fri Feb 8 15:27:01 2013 -0700 drm/pci: define drm_pcie_get_speed_cap_mask() only when CONFIG_PCI=y Move drm_pcie_get_speed_cap_mask() under #ifdef CONFIG_PCI because it it used only for PCI devices (evergreen, r600, r770), and it uses PCI interfaces that only exist when CONFIG_PCI=y. Previously, we tried to compile drm_pcie_get_speed_cap_mask() even when CONFIG_PCI=n, which fails. Signed-off-by: Bjorn Helgaas Acked-by: Arnd Bergmann Signed-off-by: Dave Airlie commit b56e681b6210a635af4e4eb93ce81b4654851033 Author: Joe Perches Date: Wed Feb 13 17:33:21 2013 -0800 brcmsmac: Remove unnecessary memset casts Remove the casts of the first argument of memset. Neaten the style by using the sizeof the actual variable being memset not the sizeof the type of variable. Signed-off-by: Joe Perches Signed-off-by: John W. Linville commit e81c7e93b8f047bd0fe2cd150b0866c9da4c201d Author: Joe Perches Date: Wed Feb 13 17:33:20 2013 -0800 brcmsmac: Downgrade d11hdrs_mac80211 error messages to warnings. These messages don't seem to be errors but notifications that some attribute isn't quite right. Don't mark them as errors. Signed-off-by: Joe Perches Signed-off-by: John W. Linville commit bdb084b22d8aee66c87af5e9c36bd6cf7f3bccfd Author: Stanislaw Gruszka Date: Wed Feb 13 15:49:08 2013 +0100 iwlegacy: more checks for dma mapping errors This patch check output of pci_map_single() calls. I missed them on my previous patch "iwlegacy: check for dma mapping errors", which fixed only pci_map_page() calls. To handle remaining possible dma mappings errors, we need to rearrange ilXXXX_tx_skb() and il_enqueue_hcmd() functions. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 4ea545d476d3182056aeb042c439237ed61d261e Author: Stanislaw Gruszka Date: Wed Feb 13 14:27:05 2013 +0100 rt2x00: check for dma mappings errors Check output of dma_map_single functions which nowadays can fail (when IOMMU is used). On write_beacon callbacks just print error, similar like padding error is handled by rt2800_write_beacon. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 52301a815e81cdcbcf971ba28df0376dc7f3961c Author: Avinash Patil Date: Tue Feb 12 14:38:32 2013 -0800 mwifiex: device specific sleep cookie handling for PCIe This patch adds support for handling of PCIe sleep cookie depending upon device properties. Some PCIe devices need sleep cookie probing before accessing HW while some others don't. A new sleep_cookie variable is defined as part of mwifiex_pcie_card_reg strcture and set/reset as per device capability. Sleep cookie is allocated/accessed/freed only when flag sleep_cookie for this particular device is enabled. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 06e7cda3ce30dadc3454539127b4cfc3888c349e Author: Larry Finger Date: Tue Feb 12 16:09:02 2013 -0600 rtlwifi: Rework Kconfig As the number of drivers in the rtlwifi family has grown, the Kconfig section for them has grown unwieldy. This change has two effects: (1) Variable RTLWIFI_DEBUG is documented, and (2) the entries for the drivers that depend on RTLWIFI are indented. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 68eed6ee4c70fdf71cbacf9af43a861cd7a237fb Author: Dan Carpenter Date: Tue Feb 12 15:23:14 2013 +0300 brcmsmac: fix brcms_c_country_valid() ccode is not NUL terminated. Presumably insisting on a terminator makes brcms_c_country_valid() return false when it's not intended. ccode[2] is sprom->leddc_on_time. Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit b90af3b8c69730fb25646c04866dfccec2f1314b Merge: 5171f7a d786f67 Author: John W. Linville Date: Thu Feb 14 14:23:33 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless Conflicts: drivers/net/wireless/iwlwifi/dvm/tx.c commit b8efb17b3d687695b81485f606fc4e6c35a50f9a Author: Zhang Rui Date: Tue Feb 5 15:41:53 2013 +0800 i915: ignore lid open event when resuming i915 driver needs to do modeset when 1. system resumes from sleep 2. lid is opened In PM_SUSPEND_MEM state, all the GPEs are cleared when system resumes, thus it is the i915_resume code does the modeset rather than intel_lid_notify(). But in PM_SUSPEND_FREEZE state, this will be broken because system is still responsive to the lid events. 1. When we close the lid in Freeze state, intel_lid_notify() sets modeset_on_lid. 2. When we reopen the lid, intel_lid_notify() will do a modeset, before the system is resumed. here is the error log, [92146.548074] WARNING: at drivers/gpu/drm/i915/intel_display.c:1028 intel_wait_for_pipe_off+0x184/0x190 [i915]() [92146.548076] Hardware name: VGN-Z540N [92146.548078] pipe_off wait timed out [92146.548167] Modules linked in: hid_generic usbhid hid snd_hda_codec_realtek snd_hda_intel snd_hda_codec parport_pc snd_hwdep ppdev snd_pcm_oss i915 snd_mixer_oss snd_pcm arc4 iwldvm snd_seq_dummy mac80211 snd_seq_oss snd_seq_midi fbcon tileblit font bitblit softcursor drm_kms_helper snd_rawmidi snd_seq_midi_event coretemp drm snd_seq kvm btusb bluetooth snd_timer iwlwifi pcmcia tpm_infineon i2c_algo_bit joydev snd_seq_device intel_agp cfg80211 snd intel_gtt yenta_socket pcmcia_rsrc sony_laptop agpgart microcode psmouse tpm_tis serio_raw mxm_wmi soundcore snd_page_alloc tpm acpi_cpufreq lpc_ich pcmcia_core tpm_bios mperf processor lp parport firewire_ohci firewire_core crc_itu_t sdhci_pci sdhci thermal e1000e [92146.548173] Pid: 4304, comm: kworker/0:0 Tainted: G W 3.8.0-rc3-s0i3-v3-test+ #9 [92146.548175] Call Trace: [92146.548189] [] warn_slowpath_common+0x72/0xa0 [92146.548227] [] ? intel_wait_for_pipe_off+0x184/0x190 [i915] [92146.548263] [] ? intel_wait_for_pipe_off+0x184/0x190 [i915] [92146.548270] [] warn_slowpath_fmt+0x33/0x40 [92146.548307] [] intel_wait_for_pipe_off+0x184/0x190 [i915] [92146.548344] [] intel_disable_pipe+0x102/0x190 [i915] [92146.548380] [] ? intel_disable_plane+0x64/0x80 [i915] [92146.548417] [] i9xx_crtc_disable+0xbc/0x150 [i915] [92146.548456] [] intel_crtc_update_dpms+0x5e/0x90 [i915] [92146.548493] [] intel_modeset_setup_hw_state+0x42f/0x8f0 [i915] [92146.548535] [] intel_lid_notify+0x9b/0xc0 [i915] [92146.548543] [] notifier_call_chain+0x43/0x60 [92146.548550] [] __blocking_notifier_call_chain+0x41/0x80 [92146.548556] [] blocking_notifier_call_chain+0x1f/0x30 [92146.548563] [] acpi_lid_send_state+0x78/0xa4 [92146.548569] [] acpi_button_notify+0x3b/0xf1 [92146.548577] [] ? acpi_os_execute+0x17/0x19 [92146.548582] [] ? acpi_ec_sync_query+0xa5/0xbc [92146.548589] [] acpi_device_notify+0x16/0x18 [92146.548595] [] acpi_ev_notify_dispatch+0x38/0x4f [92146.548600] [] acpi_os_execute_deferred+0x20/0x2b [92146.548607] [] process_one_work+0x128/0x3f0 [92146.548613] [] ? common_interrupt+0x33/0x38 [92146.548618] [] ? wake_up_worker+0x30/0x30 [92146.548624] [] ? acpi_os_wait_events_complete+0x1e/0x1e [92146.548629] [] worker_thread+0x119/0x3b0 [92146.548634] [] ? manage_workers+0x240/0x240 [92146.548640] [] kthread+0x94/0xa0 [92146.548647] [] ? ftrace_raw_output_sched_stat_runtime+0x70/0xf0 [92146.548652] [] ret_from_kernel_thread+0x1b/0x28 [92146.548658] [] ? kthread_create_on_node+0xc0/0xc0 three different modeset flags are introduced in this patch MODESET_ON_LID_OPEN: do modeset on next lid open event MODESET_DONE: modeset already done MODESET_SUSPENDED: suspended, only do modeset when system is resumed In this way, 1. when lid is closed, MODESET_ON_LID_OPEN is set so that we'll do modeset on next lid open event. 2. when lid is opened, MODESET_DONE is set so that duplicate lid open events will be ignored. 3. when system suspends, MODESET_SUSPENDED is set. In this case, we will not do modeset on any lid events. Plus, locking mechanism is also introduced to avoid racing. Signed-off-by: Zhang Rui Signed-off-by: Daniel Vetter commit 7083e05072b88d503d257b6f012ce56367f3ac97 Author: Ben Widawsky Date: Fri Feb 1 16:41:14 2013 -0800 drm/i915: Fix RC6VIDS encode/decode The RC6 VIDS has a linear ramp starting at 250mv, which means any values below 250 are invalid. The old buggy macros tried to adjust for this to be more flexible, but there is no need. As Dan pointed out the ENCODE only ever has one value. The only invalid value for decode is an input of 0 which means something is really wonky, and the cases where DECODE are used either don't matter (debug values), or would be implicitly correct (the check for less than 450). This patch makes simpler, easier to read macros which are actually correct. Maybe this patch can actually fix some bugs now. Thanks to Dan for catching this. /me hides Cc: stable@kernel.org Reported-by: Dan Carpenter Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 1b1d5397058f06bc5bd87d43ed93f34b28546ea4 Author: Daniel Vetter Date: Thu Jan 24 16:42:07 2013 +0100 drm/fb-helper: don't sleep for screen unblank when an oopps is in progress Otherwise the system will burn even brighter and worse, leave the user wondering what's going on exactly. Since we already have a panic handler which will (try) to restore the entire fbdev console mode, we can just bail out. Inspired by a patch from Konstantin Khlebnikov. The callchain leading to this, cut&pasted from Konstantin's original patch: callstack: panic() bust_spinlocks(1) unblank_screen() vc->vc_sw->con_blank() fbcon_blank() fb_blank() info->fbops->fb_blank() drm_fb_helper_blank() drm_fb_helper_dpms() drm_modeset_lock_all() mutex_lock(&dev->mode_config.mutex) Note that the entire locking in the fb helper around panic/sysrq and kdbg is ... non-existant. So we have a decent change of blowing up everything. But since reworking this ties in with funny concepts like the fbdev notifier chain or the impressive things which happen around console_lock while oopsing, I'll leave that as an exercise for braver souls than me. v2: Drop the -EBUSY return value I've copied, we don't need it since the we'll take care of things ourselves anyway. Cc: Konstantin Khlebnikov Cc: Andrew Morton References: https://patchwork.kernel.org/patch/1878181/ Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 207fd32970b1def91b11ae28f6bebffc792db714 Author: Daniel Vetter Date: Sun Jan 20 22:13:14 2013 +0100 drm/fb-helper: improve kerneldoc Now that the fbdev helper interface for drivers is trimmed down, update the kerneldoc for all the remaining exported functions. I've tried to beat the DocBook a bit by reordering the function references a bit into a more sensible ordering. But that didn't work out at all. Hence just extend the in-code DOC: section a bit. Also remove the LOCKING: sections - especially for the setup functions they're totally bogus. But that's not a documentation problem, but simply an artifact of the current rather hazardous locking around drm init and even more so around fbdev setup ... v2: Some further improvements: - Also add documentation for drm_fb_helper_single_add_all_connectors, Dave Airlie didn't want me to kill this one from the fb helper interface. - Update docs for drm_fb_helper_fill_var/fix - they should be used from the driver's ->fb_probe callback to setup the fbdev info structure. - Clarify what the ->fb_probe callback should all do - it needs to setup both the fbdev info and allocate the drm framebuffer used as backing storage. - Add basic documentaation for the drm_fb_helper_funcs driver callback vfunc. v3: Implement clarifications Laurent Pinchart suggested in his review. v4: Fix another mispelling Laurent spotted. Cc: Laurent Pinchart Acked-by: Laurent Pinchart Signed-off-by: Daniel Vetter commit cd5428a5447cc6ca77ec6547d6f86834b205eac7 Author: Daniel Vetter Date: Mon Jan 21 23:42:49 2013 +0100 drm/: simplify ->fb_probe callback The fb helper lost its support for reallocating an fb completely, so no need to return special success values any more. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 8acf658ad6246be7913647e6e76da6a539bff425 Author: Daniel Vetter Date: Mon Jan 21 23:38:37 2013 +0100 drm/fb-helper: streamline drm_fb_helper_single_fb_probe No need to check whether we've allocated a new fb since we're not always doing that. Also, we always need to register the fbdev and add it to the panic notifier. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 2180c3c7e76536ce8ff0fd957a11dbfaa1e93403 Author: Daniel Vetter Date: Mon Jan 21 23:12:36 2013 +0100 drm/fb-helper: directly call set_par from the hotplug handler The idea behind calling down into the driver's ->fb_probe function on each hotplug seems to be able to reallocate the backing storage (if e.g. a screen with higher resolution gets added). But that requires quite a bit of work in the fb helper itself, since currently we limit new screens to the currently allocated fb. An no kms driver supports fbdev fb resizing. So don't bother and start to simplify the code by calling drm_fb_helper_set_par directly from the fbdev hotplug function, since that's the only thing left in drm_fb_helper_single_fb_probe which does not concern itself with fb allocation and initial setup. Follow-on patches will streamline the initial setup code. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 7e53f3a423146745a4e4bb93362d488dfad502a8 Author: Daniel Vetter Date: Mon Jan 21 10:52:17 2013 +0100 drm/fb-helper: fixup set_config semantics While doing the modeset rework for drm/i915 I've noticed that the fb helper is very liberal with the semantics of the ->set_config interface: - It doesn't bother clearing stale modes (e.g. when unplugging a screen). - It unconditionally sets the fb, even if no mode will be set on a given crtc. - The initial setup is a bit fun since we need to pick crtcs to decide the desired fb size, but also should set the modeset->fb pointer. Explain what's going on in the fixup code after the fb is allocated. The crtc helper didn't really care, but the new i915 modeset infrastructure did, so I've had to add a bunch of special-cases to catch this. Fix this all up and enforce the interface by converting the checks in drm/i915/intel_display.c to BUG_ONs. v2: Fix commit message spell fail spotted by Rob Clark. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit af5676f1f91585cabe811b8f697e32015e2be826 Author: Daniel Vetter Date: Sun Jan 20 23:28:14 2013 +0100 drm/i915: rip out helper->disable noop functions Now that the driver is in control of whether it needs to disable everything at take-over or not, we can rip this all out. Signed-off-by: Daniel Vetter commit 76a39dbfb2d1bc45219839e5a95d4ceaf6ca114f Author: Daniel Vetter Date: Sun Jan 20 23:12:54 2013 +0100 drm/fb-helper: don't disable everything in initial_config This should be done in the drivers for two reasons: - it gets in the way of fastboot efforts - it links the fb helpers with the crtc helpers instead of going through the real interface vfuncs, forcing i915 to fake all the ->disable callbacks used by the crtc helper to avoid ugly Oopsen v2: Resolve conflicts since drivers still call drm_fb_helper_single_add_all_connectors. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 203cb50143029b2bc95736ce10f7defcf59aca44 Author: Daniel Vetter Date: Sun Jan 20 21:56:20 2013 +0100 drm/tegra: don't set up initial fbcon config twice drm_fbdev_cma_init does the inital fbcon setup by calling down into drm_fb_helper_initial_config, so no need at all to restore the just set up configuration right away ... Signed-off-by: Daniel Vetter commit de1ace5b56d11db26abe69fd19754f91c326763f Author: Daniel Vetter Date: Sun Jan 20 21:50:49 2013 +0100 drm/fb-helper: unexport drm_fb_helper_single_fb_probe Not called by anyone, and really, shouldn't be. Drivers are supposed either drm_fb_helper_initial_config or drm_fb_helper_hotplug_event. Originally this was done differently, but is now consolidated in the helper functions and no longer done by drivers directly. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 43c8a849a1e92fba6ea4493ed950d2a2e31ac87c Author: Daniel Vetter Date: Sun Jan 20 18:18:07 2013 +0100 drm/fb-helper: unexport drm_fb_helper_panic It doesn't even show up in any header files and only used iternally. Originally it was (ab)used to restore the fbcon on lastclose, but that died with commit e8e7a2b8ccfdae0d4cb6bd25824bbedcd42da316 Author: Dave Airlie Date: Thu Apr 21 22:18:32 2011 +0100 drm/i915: restore only the mode of this driver on lastclose (v2) Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit d21bf469d5301d025cd82997bb1529bcdc7086af Author: Daniel Vetter Date: Sun Jan 20 18:09:52 2013 +0100 drm/fb-helper: kill drm_fb_helper_restore It's only used internally for the sysrq and panic handlers provided by the drm fb helper implementation. Hence just inline it, kill the export and remove the confusing kerneldoc. Driver's are supposed to call drm_fb_helper_restore_fbdev_mode on lastclose. Note that locking is totally fubar - the sysrq case doesn't take any locks at all. The panic handler probably shouldn't take any locks since it'll only make things worse. Otoh it's probably better to switch things over to the atomic modeset callbacks (and disable the panic handler for those drivers which don't implement it). But that's both better done in separate patches. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 6aed8ec3f76a22217c9ae183d32b1aa990bed069 Author: Daniel Vetter Date: Sun Jan 20 17:32:21 2013 +0100 drm: review locking for drm_fb_helper_restore_fbdev_mode ... it's required. Fix up exynos and the cma helper, and add a corresponding WARN_ON to drm_fb_helper_restore_fbdev_mode. Note that tegra calls the fbdev cma helper restore function also from it's driver-load callback. Which is a bit against current practice, since usually the call is only from ->lastclose, and initial setup is done by drm_fb_helper_initial_config. Also add the relevant drm DocBook entry. v2: Add promised WARN to restore_fbdev_mode. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 2a0e047ed62f20664005881b8e7f9328f910316a Author: Johannes Berg Date: Wed Jan 23 22:57:40 2013 +0100 cfg80211: configuration for WoWLAN over TCP Intel Wireless devices are able to make a TCP connection after suspending, sending some data and waking up when the connection receives wakeup data (or breaks). Add the WoWLAN configuration and feature advertising API for it. Acked-by: David S. Miller Signed-off-by: Johannes Berg commit db3985e5ca8f50fc17606855ba394783d11683a5 Author: Daniel Vetter Date: Wed Feb 13 20:37:48 2013 +1000 Revert "drm: Add EDID_QUIRK_FORCE_REDUCED_BLANKING for ASUS VW222S" This reverts commit 6f33814bd4d9cfe76033a31b1c0c76c960cd8e4b. The quirk cause a regression, and it looks like the original bug was simply a lack of FIFO bandwidth on the i915G of the reporter. Which should eventually be fixed as soon as we get around to implemented DSPARB FIFO reassignment on gen 3. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=52281 Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter Signed-off-by: Dave Airlie commit a0497f9f57478c5a37c5628eb32833dd9729a821 Author: Felix Fietkau Date: Wed Feb 13 10:51:08 2013 +0100 mac80211/minstrel_ht: add support for using CCK rates When MCS rates start to get bad in 2.4 GHz because of long range or strong interference, CCK rates can be a lot more robust. This patch adds a pseudo MCS group containing CCK rates (long preamble in the lower 4 slots, short preamble in the upper slots). Signed-off-by: Felix Fietkau [make minstrel_ht_get_stats static] Signed-off-by: Johannes Berg commit 6719429dd61cde1fe30d9644d0aa2369eefc9005 Author: Luciano Coelho Date: Tue Feb 12 20:11:38 2013 +0200 cfg80211: check vendor IE length to avoid overrun cfg80211_find_vendor_ie() was checking only that the vendor IE would fit in the remaining IEs buffer. If a corrupt includes a vendor IE that is too small, we could potentially overrun the IEs buffer. Fix this by checking that the vendor IE fits in the reported IE length field and skip it otherwise. Reported-by: Jouni Malinen Signed-off-by: Luciano Coelho [change BUILD_BUG_ON to != 1 (from >= 2)] Signed-off-by: Johannes Berg commit bb92d19983a4b54be3e3b83441a8076d92cd04bc Author: Amitkumar Karwar Date: Tue Feb 12 12:16:26 2013 -0800 nl80211: add packet offset information for wowlan pattern If user knows the location of a wowlan pattern to be matched in Rx packet, he can provide an offset with the pattern. This will help drivers to ignore initial bytes and match the pattern efficiently. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao [refactor pattern sending] Signed-off-by: Johannes Berg commit 9f6d98c298d48eec29a32ae8ed6f4d896eb4f634 Merge: db98f08 9c10f41 Author: David S. Miller Date: Tue Feb 12 18:58:28 2013 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c The bnx2x gso_type setting bug fix in 'net' conflicted with changes in 'net-next' that broke the gso_* setting logic out into a seperate function, which also fixes the bug in question. Thus, use the 'net-next' version. Signed-off-by: David S. Miller commit 5171f7a0b79dfbc61a6e12f20f6eef6d7dd5b2a8 Merge: c88d0dc 36eed56 Author: John W. Linville Date: Tue Feb 12 12:51:08 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next Conflicts: drivers/net/wireless/iwlwifi/mvm/mac80211.c commit c88d0dc1cc0182358ce1ae6f457dace34539eb12 Author: Catalin Iacob Date: Mon Feb 11 22:18:05 2013 +0100 rtlwifi: Initialize rate_init member of struct rate_control_ops This partially reverts commit 44ba973699b831414c3f8eef68ee5a7fe1208a05. rate_control_rate_init assumes the rate_init member of struct rate_control_ops is not NULL therefore not initializing it leads to an oops as soon the driver succesfully associates to an AP. The removal of rate_update from 44ba973699b831414c3f8eef68ee5a7fe1208a05 is ok because rate_update is checked for NULL before being called. Signed-off-by: Catalin Iacob Acked-by: Larry Finger Signed-off-by: John W. Linville commit 4fe0c75eedb15af13859ef123db17fefed5af7ae Merge: 8457703 9c35d7d Author: John W. Linville Date: Tue Feb 12 11:06:52 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next commit 36eed56a8f7e1bd7fb5014ea0e702708e1702f30 Author: Emmanuel Grumbach Date: Sun Feb 10 13:25:25 2013 +0200 iwlwifi: mvm: beautify code in rx_handlers Make the code more readable, and while at it also add a missing "break" to avoid checking handlers that cannot be used. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 7a4539736eaeecb6bec25a718492fed6377a23af Author: Johannes Berg Date: Tue Feb 12 13:10:44 2013 +0100 iwlwifi: mvm: update station when marked associated In managed mode, the HT/VHT capabilities aren't set when the station is initially added, so update the station when it is marked associated. In AP/GO mode, the station will typically be added with full capabilities today, but an upcoming change in hostapd may mean a similar scenario as for managed mode, therefore do the update unconditionally. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit ffdf968d878f85620c1d4685b9543f894ef56db0 Author: Johannes Berg Date: Tue Jan 29 15:28:17 2013 +0100 iwlwifi: mvm: don't wait for session protection to start Now that mac80211 no longer starts the auth/assoc timeouts when it transmits the frame, but only when the frame status arrives, we no longer need to wait for the session protection time event to start, we can schedule it and enqueue the auth/assoc frame right away. This reduces the amount of time we block mac80211's workqueue. Also, since now we no longer need different behavior for session protection and P2P time events, refactor the code to have just a common implementation. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 210a544e78c7ce4e5aa5ec199eeb807b0f03b5b2 Author: Johannes Berg Date: Thu Jan 24 23:48:23 2013 +0100 iwlwifi: mvm: don't delay the association until after beacon If we haven't heard a beacon before we associate we can still start the association process and set the MAC in the firmware to associated only after having received a beacon with DTIM period by reacting to the new change flag (BSS_CHANGED_DTIM_PERIOD) from mac80211. This reduces the association time in these cases. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 739e42f4f3fc5906db049b54e45498c7ab5bba81 Author: Johannes Berg Date: Fri Feb 8 23:13:39 2013 +0100 iwlwifi: dvm: apply beacon changes immediately If the AP/GO beacon changes, apply such a change immediately, otherwise the AP/GO beacon can be stale for a long time. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 9b26b5002937850846046a99de8c6065ff86fa6d Author: Johannes Berg Date: Tue Jan 22 13:02:09 2013 +0100 iwlwifi: mvm: report wakeup reasons Query the wakeup reasons properly and then report them to mac80211. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 5718d27fc9a076ca397ea8c3d70e29969be24b9b Author: Johannes Berg Date: Tue Jan 8 11:29:12 2013 +0100 iwlwifi: dvm: query and report WoWLAN wakeup reason Implement proper WoWLAN wakeup and query the wakeup reasons, then report them to userspace. Note that this is tricky: a firmware bug (that has been fixed in later versions) means that the status command response isn't properly closed in hardware and thus won't arrive at the host. Sending another command after it closes the status response but the next command gets stuck, etc. We reset the device after querying though, so this is not a big issue, just makes for strange code. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 94d2f0ba052150a6d7217aeb836f5a709d1cadda Merge: 5360cfb 8457703 Author: Johannes Berg Date: Tue Feb 12 16:52:04 2013 +0100 Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next commit 5360cfb2bcbdd7a906cf290036bd406985973e88 Author: Emmanuel Grumbach Date: Mon Feb 11 15:56:01 2013 +0200 iwlwifi: mvm: use atomic interface iteration to avoid deadlock Using the non-atomic version creates a dependency between mac80211's iflist_mtx and mvm->mutex. Use the atomic version instead which doesn't take iflist_mtx but can't sleep, so send the HCMD in ASYNC. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 66d575705154525c33ab99b5f9ac2d246c348db6 Author: Emmanuel Grumbach Date: Sun Feb 10 15:55:20 2013 +0200 mac80211: allow driver to be stateless wrt. SMSP requests Bail out if no update is made to the SMPS state. This allows the driver to avoid duplicating the state. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit b6a7bceb3b9315478657bc55884dfdcd104c9864 Author: Amitkumar Karwar Date: Mon Feb 11 23:56:40 2013 -0800 nl80211: minor correction in sample wowlan mask calculation The match 00:xx:00:00:xx:00:00:00:00:xx:xx:xx (where xx indicates "don't care") should be represented by a pattern of twelve zero bytes, and a mask of "0xed,0x01", not "0xed,0x07". mask_len = (pat_len + 7) / 8 = (12 + 7) / 8 = 2 Hence the mask will be of 2 bytes. Replace each valid byte in pattern by 1 and don't care byte by 0: 10110111 1000 (0000) 1st byte of pattern corresponds to lower order bit in first byte of mask. And 9th byte of pattern corresponds to lower order bit in second byte of mask. With this logic the mask will be 11101101 00000001 = 0xed 0x01 Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Signed-off-by: Johannes Berg commit 9c35d7d2368f54313b988a01c408e5cf863ffd9e Author: Seth Forshee Date: Mon Feb 11 11:21:08 2013 -0600 mac80211: Add flushes before going off-channel We've got a couple of races when enabling powersave with an AP for off-channel operation. The first is fairly simple. If we go off-channel before the nullfunc frame to enable PS is transmitted then it may not be received by the AP. Add a flush after enabling off-channel PS to prevent this from happening. The second race is a bit more subtle. If the driver supports QoS and has frames queued when the nullfunc frame is queued, those frames may get transmitted after the nullfunc frame. If PM is not set then the AP is being told that we've exited PS before we go off-channel and may try to deliver frames. To prevent this, add a flush after stopping the queues but before passing the nullfunc frame to the driver. Signed-off-by: Seth Forshee Signed-off-by: Johannes Berg commit 6c17b77b67587b9f9e3070fb89fe98cef3187131 Author: Seth Forshee Date: Mon Feb 11 11:21:07 2013 -0600 mac80211: Fix tx queue handling during scans Scans currently work by stopping the netdev tx queues but leaving the mac80211 queues active. This stops the flow of incoming packets while still allowing mac80211 to transmit nullfunc and probe request frames to facilitate scanning. However, the driver may try to wake the mac80211 queues while in this state, which will also wake the netdev queues. To prevent this, add a new queue stop reason, IEEE80211_QUEUE_STOP_REASON_OFFCHANNEL, to be used when stopping the tx queues for off-channel operation. This prevents the netdev queues from waking when a driver wakes the mac80211 queues. This also stops all frames from being transmitted, even those meant to be sent off-channel. Add a new tx control flag, IEEE80211_TX_CTL_OFFCHAN_TX_OK, which allows frames to be transmitted when the queues are stopped only for the off-channel stop reason. Update all locations transmitting off-channel frames to use this flag. Signed-off-by: Seth Forshee Signed-off-by: Johannes Berg commit df15a6c4fa7f77511663d7b5f9134f37ad2e8c92 Author: Felix Fietkau Date: Mon Feb 11 14:36:04 2013 +0100 mac80211/minstrel_ht: remove the sampling bypass check for the lowest rate It's more of an unnecessary micro-optimization and it prevents switching from long-GI to short-GI in HT20/single-stream for the lowest rate Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit 7f4fe17bc2d4fd46598b03bc51281cfa7ef6abf5 Author: Felix Fietkau Date: Mon Feb 11 14:36:03 2013 +0100 mac80211/minstrel_ht: show the number of retries for each rate in debugfs Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit 8457703f1e86aaf0f134402dd1e09e1f13e65222 Author: Vladimir Kondratiev Date: Tue Feb 5 11:44:48 2013 +0200 ath6kl: provide 64-bit per-station byte counters Internally, 64-bit byte counters maintained for per-station statistics. Tell to the netlink that full 64-bit value provided Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit f1045f5e1f4f7d94f4e3a9600e3a3c3eec2650ec Author: Luciano Coelho Date: Mon Feb 11 10:21:18 2013 +0200 wlcore: remove newly introduced alloc/OOM messages In commit 0d2e7a5c (wireless: Remove unnecessary alloc/OOM messages, alloc cleanups) OOM messages after alloc were removed from the wlcore modules. Commit afb43e6d (wlcore: remove if_ops from platform_data) reintroduced a couple of those. This patch removes them. Signed-off-by: Luciano Coelho Reviewed-by: Felipe Balbi Signed-off-by: John W. Linville commit d9d76a045f2883f2e6cf00a43cb79b2e5a8db323 Author: Xose Vazquez Perez Date: Sat Feb 9 04:14:35 2013 +0100 wireless: rt2x00: rt2800usb add "unknown" devices 0x06f8, 0xe036 Hercules Wireless Dual Band 600 USB Key HWNUm-600 0x0b05, 0x17a7 ASUS USB-N10H 150Mbps 11n Wireless USB dongle 0x0df6, 0x0069 Sitecom Wireless Dualband Network Adapter 300N X5 WLA-5000 0x0df6, 0x006f Sitecom WiFi USB adapter N600 WLA-5100 0x13d3, 0x3340 AzureWave 802.11n USB Wireless LAN Card 0x13d3, 0x3399 AzureWave 802.11n USB Wireless LAN Card 0x13d3, 0x3400 AzureWave 802.11n USB Wireless LAN Card 0x13d3, 0x3401 AzureWave 802.11n USB Wireless LAN Card 0x1740, 0x0600 EnGenius Dual-Band Wireless Media Adapter 0x1740, 0x0602 EnGenius 802.11 a/b/g/n Wireless USB Adapter 0x177f, 0x0254 Sweex LW054 Wireless 54G Adapter USB 0xf201, 0x5370 TP-LINK 54Mbps Wireless USB Adapter no RF3053, and I believe no RT5572. Cc: Ivo van Doorn Cc: Gertjan van Wingerde Cc: Helmut Schaa Cc: John W. Linville Cc: users@rt2x00.serialmonkey.com Cc: linux-wireless@vger.kernel.org Signed-off-by: Xose Vazquez Perez Signed-off-by: John W. Linville commit ca8f21127883f8c1ea48b9ce8f93ead2175142a7 Author: Avinash Patil Date: Fri Feb 8 18:18:09 2013 -0800 mwifiex: add PCIe8897 support This patch adds PCIe8897 support to mwifiex. In PCIe8897 PFU (pre-fetch unit) is enabled by default. This patch adds support to accommodate this feaure as well. Signed-off-by: Avinash Patil Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: Bing Zhao Signed-off-by: Frank Huang Signed-off-by: John W. Linville commit e05dc3e93c136ecd329ed2d57d4eb2e82f530304 Author: Avinash Patil Date: Fri Feb 8 18:18:08 2013 -0800 mwifiex: define generic data type for PCIe ring buffers This patch defines PCIe ring buffer array pointer as void instead of mwifiex_pcie_buf_desc. This will enable us to use same pointers for ring operations instead of new structures if buffer descriptor structure changes. Also split out event buffer descriptor structure from struct mwifiex_pcie_buf_desc. For PCIe8766 TX/RX buffer descriptor is same as evevt buffer descriptor. Newer chips could use different TX/RX buffer descriptor while event descriptor remains the same. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 0732484b47b57ef90bb08408d60fddbad0262d82 Author: Avinash Patil Date: Fri Feb 8 18:18:07 2013 -0800 mwifiex: separate ring initialization and ring creation routines This patch separates PCIe ring initialization from ring creation routines. This modularizes ring creation(TXBD, RXBD and event rings) functions. Readability has been improved while moving the code around. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit dd04e6acd828d51255fbb2d9b7b0e5b85df04f0b Author: Avinash Patil Date: Fri Feb 8 18:18:06 2013 -0800 mwifiex: store card specific data in PCI device table entry This patch adds support for storing PCIe device specific data into driver_data structure of pci_device_id. When a device with known device_id is probed, we use this driver_data to populate card specific structres in driver. This enables to remove device specific defines for scratch registers, firmware name, FW download block size, etc. from source code. This will make addition of support for new chipsets a lot easier. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 1a6404a1d8497692f31808319d662c739033c491 Author: Sujith Manoharan Date: Mon Feb 4 15:38:24 2013 +0530 ath9k: Fix IBSS joiner mode On joining an existing IBSS network, beaconing has to start only after a TSF sync has happened by receiving a beacon from the BSS. In creator mode, beaconing can start immediately after a HW reset has been done. Now that mac80211 notifies the driver of the mode type (creator/joiner) via ieee80211_bss_conf->ibss_creator, make use of it to properly setup the HW beacon timers. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit dd5ee59bb005df38ca3ee00bc6ac349dc3370e4f Author: Sujith Manoharan Date: Mon Feb 4 15:38:23 2013 +0530 ath9k: Fix ATH9K_HW_CAP_HT usage There are a few places where the station's HT capabilities should be checked instead of ATH9K_HW_CAP_HT, which is a global feature for the driver. Fix this. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 3e4d40fa118e58ce51e85015587a944ec5c69400 Author: Johannes Berg Date: Thu Feb 7 17:19:08 2013 +0100 mac80211: remove unused code to mark AP station authenticated When we get to association, the AP station already exists and is marked authenticated, so moving it into IEEE80211_STA_AUTH again is a NOP, remove it. Signed-off-by: Johannes Berg commit fd0f979a1b67f0889aea24a7c7d2a54d6706a1cf Author: Johannes Berg Date: Thu Feb 7 00:14:51 2013 +0100 mac80211: simplify idle handling Now that we have channel contexts, idle is (pretty much) equivalent to not having a channel context. Change the code to use this relation so that there no longer is a need for a lot of idle recalculate calls everywhere. Signed-off-by: Johannes Berg commit f1e3e0515646dd0f4c783c1c39839d2706501344 Author: Johannes Berg Date: Wed Feb 6 23:57:57 2013 +0100 mac80211: remove IEEE80211_HW_SCAN_WHILE_IDLE There are only a few drivers that use HW scan, and all of those don't need a non-idle transition before starting the scan -- some don't even care about idle at all. Remove the flag and code associated with it. The only driver that really actually needed this is wl1251 and it can just do it itself in the hw_scan callback -- implement that. Acked-by: Luciano Coelho Signed-off-by: Johannes Berg commit 09b85568c142fc1c776dea86a24fcb05f0eeb48b Author: Johannes Berg Date: Wed Feb 6 23:07:41 2013 +0100 mac80211: remove dynamic PS driver interface The functions were added for some sort of Bluetooth coexistence, but aren't used, so remove them again. Reviewed-by: Luciano Coelho Signed-off-by: Johannes Berg commit ef429dadf33feeb150098dbe84ccaa877e3261f6 Author: Johannes Berg Date: Tue Feb 5 17:48:40 2013 +0100 mac80211: introduce beacon-only timing data In order to be able to predict the next DTIM TBTT in the driver, add the ability to use timing data from beacons only with the new hardware flag IEEE80211_HW_TIMING_BEACON_ONLY and the BSS info value sync_dtim_count which is only valid if the timing data came from a beacon. The data can only come from a beacon, and if no beacon was received before association it is updated later together with the DTIM count notification. Signed-off-by: Johannes Berg commit 8cef2c9df88fdd13f518e6607de9d664b31f26cc Author: Johannes Berg Date: Tue Feb 5 16:54:31 2013 +0100 cfg80211: move TSF into IEs While technically the TSF isn't an IE, it can be necessary to distinguish between the TSF from a beacon and a probe response, in particular in order to know the next DTIM TBTT, as not all APs are spec compliant wrt. TSF==0 being a DTIM TBTT and thus the DTIM count needs to be taken into account as well. To allow this, move the TSF into the IE struct so it can be known whence it came. Signed-off-by: Johannes Berg commit 83c7aa1a1475ae1c42640ab6e4559016142efc67 Author: Johannes Berg Date: Tue Feb 5 16:51:29 2013 +0100 cfg80211: remove scan ies NULL check There's no way scan BSS IEs can be NULL as even if the allocation fails the frame is discarded. Remove some code checking for this and document that it is always non-NULL. Signed-off-by: Johannes Berg commit b207cdb07f3f01ec1adaac62e9d0cc918c60a81a Author: Alexander Bondar Date: Sat Dec 22 10:43:33 2012 +0200 mac80211: add vif debugfs driver callbacks Add debugfs driver callbacks so drivers can add debugfs entries for interfaces. Note that they _must_ remove the entries again as add/remove in the driver doesn't correspond to add/remove in debugfs; the former is up/down while the latter is netdev create/destroy. Signed-off-by: Alexander Bondar Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 776b3580178f2065838fa0db0eb7a41b57495c0a Author: Johannes Berg Date: Fri Feb 1 02:06:18 2013 +0100 cfg80211: track hidden SSID networks properly Currently, cfg80211 will copy beacon IEs from a previously received hidden SSID beacon to a probe response entry, if that entry is created after the beacon entry. However, if it is the other way around, or if the beacon is updated, such changes aren't propagated. Fix this by tracking the relation between the probe response and beacon BSS structs in this case. In case drivers have private data stored in a BSS struct and need access to such data from a beacon entry, cfg80211 now provides the hidden_beacon_bss pointer from the probe response entry to the beacon entry. Signed-off-by: Johannes Berg commit 1f4ac5a63f897a480fffd0d5c843b03f02c384a5 Author: Johannes Berg Date: Fri Feb 8 12:07:44 2013 +0100 mac80211: explicitly copy channels to VLANs where needed Currently the code assigns channel contexts to VLANs (for use by the TX/RX code) when the AP master gets its channel context assigned. This works fine, but in the upcoming radar detection work the VLANs don't require a channel context (during radar detection) and assigning one to them anyway causes issues with locking and also inconsistencies -- a VLAN interface that is added before radar detection would get the channel context, while one added during it wouldn't. Fix these issues moving the channel context copying to a new explicit operation that will not be used in the radar detection code. Acked-by: Simon Wunderlich Signed-off-by: Johannes Berg commit 757af6fefd53628bcfe75f7fbd302c5d4c02eba5 Author: Johannes Berg Date: Fri Feb 8 21:29:59 2013 +0100 mac80211: fix chandef tracing bug The chandef tracing writes center_freq1 twice, so that it is always 0 (no driver supports 80+80 yet) and leaves center_freq2 unset. Fix this mistake. Signed-off-by: Johannes Berg commit 112c31f095a7106fbb3ced0dae50aa9b36ac2662 Author: Johannes Berg Date: Fri Feb 8 22:59:00 2013 +0100 mac80211: fix AP beacon loss messages The messages currently refer to probe request probes, but on some devices null data packets will be used instead. Make the messages more generic. Signed-off-by: Johannes Berg commit f9e124fbd8cbea974b5dc7e9dafddd17d21df7e2 Author: Christian Lamparter Date: Mon Feb 4 17:44:44 2013 +0000 mac80211: protect rx-path with spinlock This patch fixes the problem which was discussed in "mac80211: Fix PN corruption in case of multiple virtual interface" [1]. Amit Shakya reported a serious issue with my patch: mac80211: serialize rx path workers" [2]: In case, ieee80211_rx_handlers processing is going on for skbs received on one vif and at the same time, rx aggregation reorder timer expires on another vif then sta_rx_agg_reorder_timer_expired is invoked and it will push skbs into the single queue (local->rx_skb_queue). ieee80211_rx_handlers in the while loop assumes that the skbs are for the same sdata and sta. This assumption doesn't hold good in this scenario and the PN gets corrupted by PN received in other vif's skb, causing traffic to stop due to PN mismatch." [1] Message-Id: http://mid.gmane.org/201302041844.44436.chunkeey@googlemail.com [2] Commit-Id: 24a8fdad35835e8d71f7 Reported-by: Amit Shakya Signed-off-by: Christian Lamparter Signed-off-by: Johannes Berg commit 601513aa208f27ea87400a410d42c978421530ec Author: Emanuel Taube Date: Wed Feb 6 14:17:17 2013 +0100 mac80211: Add the DS Params for mesh to every band There seems to be no reason, why it has to be limited to 2.4 GHz. Signed-off-by: Emanuel Taube [remove 'local' variable] Signed-off-by: Johannes Berg commit 45b5028e86292284f4d5794047d5dfd742c22421 Author: Thomas Pedersen Date: Wed Feb 6 10:17:21 2013 -0800 mac80211: fix mesh sta teardown The patch "mac80211: clean up mesh sta allocation warning" moved some mesh initialization into a path which is only called when the kernel handles peering. This causes a hang when mac80211 tries to clean up a userspace-allocated station entry and delete a timer which has never been initialized. To avoid this, only do any mesh sta peering teardown if the kernel is actually handling it. The same is true when quiescing before suspend. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 077f897a8be9c617e69035af4d17a472d4af272b Author: Johannes Berg Date: Fri Feb 8 09:06:36 2013 +0100 wireless: fix kernel-doc Fix most kernel-doc warnings, for some reason it seems to have issues with __aligned, don't remove the documentation entries it considers to be in excess due to that. Reported-by: Fengguang Wu Signed-off-by: Johannes Berg commit 5b112d3d098c97b867cc580f590395cd1e72f18c Author: Johannes Berg Date: Fri Feb 1 01:49:58 2013 +0100 cfg80211: pass wiphy to cfg80211_ref_bss/put_bss This prepares for using the spinlock instead of krefs which is needed in the next patch to track the refs of combined BSSes correctly. Acked-by: Bing Zhao [mwifiex] Signed-off-by: Johannes Berg commit bba87ffe606b7fc5fba73d1c0c5ac1eacd2cebe8 Author: Ilan Peer Date: Sun Feb 3 08:28:27 2013 +0200 cfg80211: fix radar check for P2P_DEVICE Radar is not required for P2P_DEVICE interfaces. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg commit b7566fc363e23f0efd3fa1e1460f9421cdc0d77e Author: Larry Finger Date: Mon Feb 4 15:33:44 2013 -0600 cfg80211: Fix memory leak When a driver requests a specific regulatory domain after cfg80211 already has one, a struct ieee80211_regdomain is leaked. Reported-by: Larry Finger Tested-by: Larry Finger Signed-off-by: Larry Finger Signed-off-by: Johannes Berg commit 78f42aee884dedfd157f79d01f069550edbc95cf Merge: aa5a1b8 8708aac Author: Johannes Berg Date: Mon Feb 11 18:44:25 2013 +0100 Merge remote-tracking branch 'wireless-next/master' into HEAD commit a3777e0fdd4abb2f04202580c236d64ecdaac6f2 Author: Emmanuel Grumbach Date: Sun Feb 10 13:07:08 2013 +0200 iwlwifi: mvm: fix locking in iwl_mvm_ipv6_addr_change inet6_dev->lock can be taken from a timer. Disabled bottom halves when we take it. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit c3eb536aabb966542a0b6b09ad38cc43abe9ad1a Author: Beni Lev Date: Wed Feb 6 17:22:18 2013 +0200 iwlwifi: mvm: fix TKIP key updating When a TKIP key is updated with a station pointer that is NULL it is a GTK, so it should use the AP's station ID. Fix the code to do that. Signed-off-by: Beni Lev Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 8115efbdc82acc935b54f0a849eb834129ea1fd0 Author: Emmanuel Grumbach Date: Tue Feb 5 10:08:35 2013 +0200 iwlwifi: mvm: fix the keyidx assignment Fixes an issue that smatch pointed out: 1118 1119 key_flags = cpu_to_le16(keyconf->keyidx & STA_KEY_FLG_KEYID_MSK); ^^^^^^^^^^^^^^^ This is s8. ^^^^^^^^^^^^^^^^^^^^^ STA_KEY_FLG_KEYID_MSK is 0x300. The result after the bitwise AND is always zero because 0xff & 0x300. Reported-by: Dan Carpenter Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 456f6ddf9cfd876a60df259dbe4f3cb943e773b4 Author: Ilan Peer Date: Mon Feb 4 14:09:37 2013 +0200 iwlwifi: mvm: Change the Time Event type used for ROC The TE_P2P_DEVICE_DISCOVERABLE time event type used for ROC is assigned low priority in the FW, and thus has low chance of being scheduled when there are active BSS or GO VMACs (even if fragmentation is allowed). This is mainly problematic in for cases where ROC is requested for sending action frames. To overcome this, use a time event type that has priority equal to that ot the time event type used by the FW to action scan. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg commit 35adfd6e458741d3d3fca1ce0e342919eb250c2b Author: Ilan Peer Date: Mon Feb 4 13:16:24 2013 +0200 iwlwifi: mvm: Update quota settings for all bindings The FW scheduler, schedules the bindings over a session of 128 fragments (each is 4 TU long). The quota command should allocate all the session fragments between all the bindings that require quota allocation. Currently, use static allocation, where the fragments are equally distributed between all data bindings. Note, that not allocating all the session's fragments might cause the FW scheduler to leave the medium unused. Signed-off-by: Ilan Peer Signed-off-by: Johannes Berg commit 7c99e0bf86fdc1dee238eb6e213b980f887b68f1 Author: Tejun Heo Date: Fri Dec 21 17:56:54 2012 -0800 ipw2x00: simplify scan_event handling * Drop unnesssary delayd_work_pending() tests. * Unify scan_event_{now|later} by using mod_delayed_work() w/ 0 delay for scan_event_now. * Make ipw2200 scan_event handling match ipw2100 - use mod_delayed_work() w/ 0 delay for immediate scanning. Only compile tested. Signed-off-by: Tejun Heo Acked-by: Stanislav Yakovlev Cc: linux-wireless@vger.kernel.org commit fd5023111cf720db890ef34f305ac5d427e690a0 Merge: 8b9a4d5 836dc9e Author: David S. Miller Date: Fri Feb 8 18:02:14 2013 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Synchronize with 'net' in order to sort out some l2tp, wireless, and ipv6 GRE fixes that will be built on top of in 'net-next'. Signed-off-by: David S. Miller commit 14f8dc49532f765968ff37c3b99edbeb99004ace Author: Joe Perches Date: Thu Feb 7 11:46:27 2013 +0000 drivers: net: Remove remaining alloc/OOM messages alloc failures already get standardized OOM messages and a dump_stack. For the affected mallocs around these OOM messages: Converted kmallocs with multiplies to kmalloc_array. Converted a kmalloc/memcpy to kmemdup. Removed now unused stack variables. Removed unnecessary parentheses. Neatened alignment. Signed-off-by: Joe Perches Acked-by: Arend van Spriel Acked-by: Marc Kleine-Budde Acked-by: John W. Linville Signed-off-by: David S. Miller commit 8708aac79e4572ba673d7a21e94ddca9f3abb7fc Author: Larry Finger Date: Fri Feb 8 12:28:18 2013 -0600 rtlwifi: rtl8192cu: Add new USB ID A new model of the RTL8188CUS has appeared. Reported-and-tested-by: Thomas Rosenkrantz Signed-off-by: Larry Finger Cc: Stable Signed-off-by: John W. Linville commit 6eda4e2c54255cd26a58d2fcec73ec3bff7a515b Author: Hante Meuleman Date: Fri Feb 8 15:54:02 2013 +0100 brcmfmac: Add tx p2p off-channel support. With this patch off-channel action frames can be transmitted. This is needed for p2p when two devices need to find each other while using different social channels. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 4b3a89de8a2e91bf873a0044fa62b2f5afb6693a Author: Hante Meuleman Date: Fri Feb 8 15:54:01 2013 +0100 brcmfmac: Create netdev before returning from add_virtual_intf. Currently netdev gets created possibly after returning from add_virtual_intf. This is because add_if is handled asynch. This is wrong and netdev should be up before returning. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit dae3a27359adc277ea3b399b8240ce348304289e Author: Hante Meuleman Date: Fri Feb 8 15:54:00 2013 +0100 brcmfmac: Cleanup of unused defines. Remove some unused defines and comments. Also use same define for IE length. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 28c14f4a3b4639032c7cd35a7d8bdd2898b5fbf2 Author: Hante Meuleman Date: Fri Feb 8 15:53:59 2013 +0100 brcmfmac: Fix rtnl_lock lockup when registering netdev. When adding a virtual interface cfg80211 already has taken the rtnl_lock. So when the netdevice is being registered the register_netdevice should be used instead of register_netdev. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 7ab6acd025cdca23485227d85d80cb747a71d1fc Author: Hante Meuleman Date: Fri Feb 8 15:53:58 2013 +0100 brcmfmac: Remove sleep on del_station. Currently there is a sleep after disconnect on del_station. This timeout is not needed (anymore) and is causing problems with p2p setup, because remote side disconnects then supplicant will do del_station and while it waits the 400ms remote side will already reconnect and that is something supplicant cant handle. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit dded3d532cbea8b96ae388b9bc173f1b2ec4d292 Author: Hante Meuleman Date: Fri Feb 8 15:53:57 2013 +0100 brcmfmac: Update netdev configuration in wiphy for p2p. Wiphy object holds information about possible netdev combinations which can be supported. This needs updating for p2p device. Also p2p device netdev has wrong 80211 iftype. Limit the change interface support to match the netdev configuration/combination possibilities. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 1bc7c654a946dca4890f6bf29d769a7ed25eb8b0 Author: Hante Meuleman Date: Fri Feb 8 15:53:56 2013 +0100 brcmfmac: Reject change vif for p2p if. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit cdcef36b3fe27c24f8e2cc22d256bcde88018ea4 Author: Hante Meuleman Date: Fri Feb 8 15:53:55 2013 +0100 brcmfmac: Ignore E_ADD_IF for ifidx 0. All interfaces for ifidx is 0 are created ahead and therefor double registrations for not only bssidx 0, but ifidx 0 should be ignored in brcfm_add_if. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 0a4cf487ffdc3a4e7b55e538cd05ef63539a9c20 Author: Hante Meuleman Date: Fri Feb 8 15:53:54 2013 +0100 brcmfmac: Put printing action frames code under debug flag. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 426d0a562945f9e0391bf685940dfad01e1200dc Author: Hante Meuleman Date: Fri Feb 8 15:53:53 2013 +0100 brcmfmac: Use role from wdev on AP commands and fix stop_ap. Use the stored role in wdev struct to determine AP/GO role. This simplifies code. Fix stop_ap for GO role. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 2fde59d93f8ac5525213996b5e98efb8f4d8c88c Author: Hante Meuleman Date: Fri Feb 8 15:53:52 2013 +0100 brcmfmac: Create p2p0 netdev via module variable. Add module variable with which a p2p0 netdev can be created. This netdev can be used by wpa-supplicant to configure and set up the p2p client/GO. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 1ce3086ccd81793fd6affb350826a0c41dc3ef37 Author: Arend van Spriel Date: Fri Feb 8 15:53:51 2013 +0100 brcmfmac: change function signatures cfg80211 api change needs to be applied. this change will be squashed with introducing commit: commit 68751daec95b07a74b18aa22b2f9c196991dbe81 Author: Hante Meuleman Date: Mon Nov 26 12:21:27 2012 +0100 brcmfmac: add support for P2P listen mode. Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit f2058dde8c2be70cc22dbd8f718ab6c33cf6ea11 Author: Hante Meuleman Date: Fri Feb 8 15:53:50 2013 +0100 brcmfmac: Use real cookie value for p2p remain on channel. In some rare situations the wpa_supplicant can lock up on a remain on channel command. Use actual cookies for the remain on channel related commands and allow for additional remain on channel while still having one set. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 18e2f61db3b708e0a22ccc403cb6ab2203d6faab Author: Hante Meuleman Date: Fri Feb 8 15:53:49 2013 +0100 brcmfmac: P2P action frame tx. With this patch it is possible to send action frames. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit e6da3400b34a063119b911b268d168441a1b80e9 Author: Hante Meuleman Date: Fri Feb 8 15:53:48 2013 +0100 brcmfmac: Add handling of receiving P2P action frames. Once wpa_supplicant has registered for P2P action frames all received action frames for the device are passed up to cfg80211. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit a0f07959ee6e7f5be147ca4c3906b9d7fd173ea0 Author: Hante Meuleman Date: Fri Feb 8 15:53:47 2013 +0100 brcmfmac: Update AP mode for GO creation. With this update it is possible to create an P2P go. Handle the p2p go role in creation and the update beacon from cfg80211. Also store primary bss in global struct. Needed to map cfg device back to primary device. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 89286dc9452082c710e0767f3191b03421601214 Author: Hante Meuleman Date: Fri Feb 8 15:53:46 2013 +0100 brcmfmac: Update connect setup/handling routines for multiple bss. In preparation of p2p connections update the sta connect setup and handling routines. Use join iovar and bsscfg commands where applicable. Handle assoc ind per bsscfg (vif) and generalize vndr ie setup to support assoc IEs and support all setup types, e.g. sta, ap and p2p. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 318a64cede8882964b6412aceebe657dab46b2d2 Author: Hante Meuleman Date: Fri Feb 8 15:53:45 2013 +0100 brcmfmac: Fix bug mgmt_rx_register Mask is OR-ed with value in case of deregister. Should be AND-ed. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 7a5c1f64f64c8504c8117558a426b610ebc77aa0 Author: Hante Meuleman Date: Fri Feb 8 15:53:44 2013 +0100 brcmfmac: add p2p change vif routines. Add support for changing existing interface into p2p go interface. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 7ee2d926002daa5779277360613f296f27d2127b Author: Hante Meuleman Date: Fri Feb 8 15:53:43 2013 +0100 brcmfmac: update p2p add and delete vif routines. Improve exception handling. Store and removed created vif in cfg.p2p.bss array. Fix big endian bug. Fix msec jiffies bug. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 0f8ffe177426e536def8f19f7eca5b895103c62a Author: Hante Meuleman Date: Fri Feb 8 15:53:42 2013 +0100 brcmfmac: update escan for multiple bss and simplify. Add support for scanning on non primary netdev (p2p) and simplify the p2p scanning preparation. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 5f4f9f114eef4907b6077d19dd5ad7d0a27e0f80 Author: Arend van Spriel Date: Fri Feb 8 15:53:41 2013 +0100 brcmfmac: implement support for deleting virtual interfaces Deletion of the virtual interface was not fully supported so adding it now. Tested using p2p_connect command in wpa_supplicant. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit de66efcadbb51935c8c668a38f2f1c187f349af9 Author: Arend van Spriel Date: Fri Feb 8 15:53:40 2013 +0100 brcmfmac: fix generation of the p2p related mac addresses The driver determines the P2P interface address and device address from the primary mac address. However, the function used an invalid input. This caused a mac address mismatch between firmware and driver. This was hidden because the brcmf_if_add() function corrected the error upon receiving the IF_ADD event from firmware. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 33a6b157f80af5e2a98a244b3dfff650bc5c7bcc Author: Arend van Spriel Date: Fri Feb 8 15:53:39 2013 +0100 brcmfmac: fix compiler warning on printf format On 64-bit target a warning was given when using %d to print sizeof() value: CC [M] drivers/net/wireless/brcm80211/brcmfmac/wl_cfg80211.o brcm80211/brcmfmac/wl_cfg80211.c: In function 'brcmf_alloc_vif': brcm80211/brcmfmac/wl_cfg80211.c:3884:2: error: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Werror=format] Fixed using %zu instead. Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 0de8aace0ff499bf1b6597e7f272961d2e335933 Author: Hante Meuleman Date: Fri Feb 8 15:53:38 2013 +0100 brcmfmac: add support for P2P listen mode. With this patch a device can be put in p2p listen mode and becomes visible for other p2p devices (via p2p_find). Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Arend van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit d3c0b63396442d564ceb4db0dcc51e70918b9c93 Author: Arend van Spriel Date: Fri Feb 8 15:53:37 2013 +0100 brcmfmac: add support for creating P2P client/GO interface This patch allow the creation of P2P client and group owner virtual interfaces in the driver. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Franky (Zhenhui) Lin Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 9f440b7bc786883c117be9c0f438a27b356f64b4 Author: Arend van Spriel Date: Fri Feb 8 15:53:36 2013 +0100 brcmfmac: add peer-to-peer group discovery support First part for P2P support. It is a variation on the existing scanning functionality and is used to discover peer-to-peer group owners and/or peer-to-peer devices in listen state. Tested with wpa_cli/wpa_supplicant v2.0-devel. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 0bc9a8cb24f9a1fa556c081cd9d9edc89121a636 Author: Piotr Haber Date: Fri Feb 8 12:06:35 2013 +0100 brcmfmac: remove unnecessary locking in trap info processing Locking host access in trap info processing is not needed as bus access functions do it on their own. Reviewed-by: Arend Van Spriel Reviewed-by: Hante Meuleman Signed-off-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit bd16e3555fb61a6f3792c6efec5b63697e051e42 Author: Piotr Haber Date: Fri Feb 8 12:06:34 2013 +0100 brcmfmac: turn clocks on when reading shared info Make sure backplane clocks are on while reading crash data. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit b55de97ffd920e2bb1104eca272688f1be7329c2 Author: Piotr Haber Date: Fri Feb 8 12:06:33 2013 +0100 brcmfmac: fix mmc host locking issue fix wrong locking in crash info processing Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 643ecaab355c3879215cb34c10ae88d729e408be Author: Hante Meuleman Date: Fri Feb 8 12:06:32 2013 +0100 brcmfmac: Check null pointer on brcmf_dev_reset. When unloading it is possible that drvr is not null, but iflist[0] is. So check iflist[0] pointer before using it. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 2880b86859967af710c72f7d34fb421a86a71e22 Author: Hante Meuleman Date: Fri Feb 8 12:06:31 2013 +0100 brcmfmac: use brcmf_if::bssidx as index in interface list Upon receiving an IF event from the firmware the interface was created and stored on a list using the interface index. With upcoming P2P feature the firmware will send a IF event in which two interfaces have the same interface index. To uniquely locate them on the list the bss index is now used. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 4fe238b73240a10faf9689e4c37852492e16db52 Author: Joe Perches Date: Thu Feb 7 12:37:47 2013 -0800 mwl8k: Remove unnecessary alloc/OOM messages alloc failures already get standardized OOM messages and a dump_stack. Signed-off-by: Joe Perches Signed-off-by: John W. Linville commit 0d61c9177cb9bf48dcec9c3d9205a309085d4318 Author: Tim Gardner Date: Thu Feb 7 13:28:09 2013 -0700 brcmsmac: avoid 512 byte stack variable Dynamically allocate the probe response template which avoids potential stack corruption. Observed with smatch: drivers/net/wireless/brcm80211/brcmsmac/main.c:7412 brcms_c_bss_update_probe_resp() warn: 'prb_resp' puts 512 bytes on stack Cc: Brett Rudley Cc: Arend van Spriel Cc: "Franky (Zhenhui) Lin" Cc: Hante Meuleman Cc: "John W. Linville" Cc: Seth Forshee Cc: Pieter-Paul Giesberts Cc: Hauke Mehrtens Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list@broadcom.com Cc: netdev@vger.kernel.org Signed-off-by: Tim Gardner Acked-by: Arend van Spriel Signed-off-by: John W. Linville commit 708eb54f20334470ad92042547db0fef0cd60462 Author: Tim Gardner Date: Thu Feb 7 12:35:35 2013 -0700 brcmsmac: fix u16 overflow warning DOT11_MIN_BEACON_PERIOD and DOT11_MAX_BEACON_PERIOD are superfluous. The only invalid beacon period is 0. Comparing a 16 bit quantity to 0xffff also causes a compile warning: drivers/net/wireless/brcm80211/brcmsmac/main.c:5560 brcms_c_set_beacon_period() warn: impossible condition '(period > 65535) => (0-65535 > 65535)' Observed from smatch analysis. Cc: Brett Rudley Cc: Arend van Spriel Cc: "Franky (Zhenhui) Lin" Cc: Hante Meuleman Cc: "John W. Linville" Cc: Pieter-Paul Giesberts Cc: Seth Forshee Cc: Hauke Mehrtens Cc: linux-wireless@vger.kernel.org Cc: brcm80211-dev-list@broadcom.com Cc: netdev@vger.kernel.org Signed-off-by: Tim Gardner Acked-by: Arend van Spriel Signed-off-by: John W. Linville commit c5e534e569fd07991d4d09921c73823cd5e4115e Author: Jiri Slaby Date: Thu Feb 7 14:44:40 2013 +0100 NET: ath5k, check ath5k_eeprom_mode_from_channel retval It can, if invalid argument given, return a negative value. In that case we would access arrays out-of-bounds and such. Check the value and yell loudly if that happened as it would be a bug in the implementation. (Instead of silently corrupting memory.) Signed-off-by: Jiri Slaby Cc: Nick Kossifidis Cc: "Luis R. Rodriguez" Signed-off-by: John W. Linville commit 957f4aca5fa0db69635271bc4621cc0b65b2d590 Author: Larry Finger Date: Wed Feb 6 12:54:17 2013 -0600 rtlwifi: rtl8192cu: Fix NULL dereference BUG when using new_id When the new_id entry in /sysfs is used for a foreign USB device, rtlwifi BUGS with a NULL pointer dereference because the per-driver configuration data is not available. The probe function has been restructured as suggested by Ben Hutchings . Signed-off-by: Larry Finger Cc: Stable Signed-off-by: John W. Linville commit cbb1ec9491fdbd3aa9dee6ad9a3bcb05bdfd279d Author: Arend van Spriel Date: Wed Feb 6 18:40:47 2013 +0100 brcmfmac: fix problem connecting to AP without security The bcm43236 device showed having an issue connection to an AP without security when auth_type was set to automatic. For this particular device a workaround is made by selecting open-system. This problem does not occur when using wpa_supplicant as it will not use auth type automatic. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 371830eafeb742e973964b38a55f17b69ea714d0 Author: Arend van Spriel Date: Wed Feb 6 18:40:46 2013 +0100 brcmfmac: add function to retrieve chip information Added function to obtain chip information for chip specific code. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 75d907d3ee835f8759fe291023aa609dccebe504 Author: Arend van Spriel Date: Wed Feb 6 18:40:45 2013 +0100 brcmfmac: add chip information to the bus interface Extend the bus interface with chip identifier and revision. This will be used when certain devices need special handling in the driver. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 1701261d070e2077867fd08efe7b5977e3a130f9 Author: Hante Meuleman Date: Wed Feb 6 18:40:44 2013 +0100 brcmfmac: Use single function for channel to chanspec. Simplify code by using single function for converting channel to chanspec. No need to set 40MHz flags, as they are not needed for correct working in FW. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 7ee296027871c15aee7e1e48c372f854a837cd36 Author: Hante Meuleman Date: Wed Feb 6 18:40:43 2013 +0100 brcmfmac: Cleanup function brcmf_notifiy_connect_status_ap. Clean up function, removing some unnecessary code and initialisation. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 94889b1fb51ff6c81be2926890f29d0cfe150e75 Author: Hante Meuleman Date: Wed Feb 6 18:40:42 2013 +0100 brcmfmac: Update tracelogging for multiple netdevs. When supporting multiple netdevs it is usefull to log idx in netdev related functions. This will be used for features like P2P. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit b1a2a41126fc582a3d5613aa2d3e632b2eb1a2c4 Author: Hante Meuleman Date: Wed Feb 6 18:40:41 2013 +0100 brcmfmac: Track statistics per ifp. Statistics were tracked by bus driver while it is to be tracked per ifp/netdev. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 659c84ff3f1b979a91b726a65ab7f8091e019f2b Author: Hante Meuleman Date: Wed Feb 6 18:40:40 2013 +0100 brcmfmac: Add logging for FIL int set/get cmds. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 10ef73215c9fdb0858950707827125bf261acb8f Author: Hante Meuleman Date: Wed Feb 6 18:40:39 2013 +0100 brcmfmac: Track pending 8021x frames per ifp. Pending 8021x frames were tracked per dongle. This should be done per ifp. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 1f17011039f0d53f24503a01a1dcd48ae28e5305 Author: Hante Meuleman Date: Wed Feb 6 18:40:38 2013 +0100 brcmfmac: Use struct brcmf_if in brcmf_configure_opensecurity. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 4412f6cb8139a4503f77b67c3b6a18883a4b6191 Author: Hante Meuleman Date: Wed Feb 6 18:40:37 2013 +0100 brcmfmac: Remove copy mac address from drvr at netdev up. At netdev up the mac address from drvr is copied to netdev mac address. This is incorrect and mac address was already set by brcmf_net_attach by copying it from ifp. Reviewed-by: Arend Van Spriel Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 05dde977bfe35a5c9816763fa9c26732e10b8a5b Author: Hante Meuleman Date: Wed Feb 6 18:40:36 2013 +0100 brcmfmac: Remove drvr_up from bus interface. The tracking of up/down status in bus interface is unnecessary. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 008e33f733ca51acb2dd9d88ea878693b04d1d2a Author: Tomasz Guszkowski Date: Tue Feb 5 22:10:31 2013 +0100 p54usb: corrected USB ID for T-Com Sinus 154 data II Corrected USB ID for T-Com Sinus 154 data II. ISL3887-based. The device was tested in managed mode with no security, WEP 128 bit and WPA-PSK (TKIP) with firmware 2.13.1.0.lm87.arm (md5sum: 7d676323ac60d6e1a3b6d61e8c528248). It works. Signed-off-by: Tomasz Guszkowski Cc: Acked-By: Christian Lamparter Signed-off-by: John W. Linville commit fc5bc165b030dc8f20d69bcf46f86c9b52eb481a Author: Jonas Gorski Date: Tue Feb 5 16:59:17 2013 +0100 mwl8k: add single band 88W8366 PCI device IDs Add PCI deviceIDs for single band versions of 88W8366, found e.g. in simultaneous dual band routers based on kirkwood. Signed-off-by: Jonas Gorski Signed-off-by: John W. Linville commit e48caab206c853272637427d9ae82fc431b4bd24 Author: Cong Ding Date: Mon Feb 4 22:43:22 2013 +0100 net: wireless/rtlwifi: fix uninitialized variable issue The use of variable packet_beacon might be uninitialized in the two files, which is same as this patch: https://patchwork.kernel.org/patch/2006711/ Signed-off-by: Cong Ding Signed-off-by: John W. Linville commit 12b6639897fa57a1ca34b43d078779c92472ad74 Author: Xose Vazquez Perez Date: Sat Feb 2 03:33:44 2013 +0100 wireless: rt2x00: rt2800usb add Sweex ids Info coming from Sweex Windows driver and wikidevi.com 0x177f,0x0163 Sweex LW163 RT3370 1x1, int. antenna 0x177f,0x0164 Sweex LW164 RT8070 1x1, Nano dongle 0x177f,0x0165 Sweex LW165 RT3370 1x1, ext. antenna 0x177f,0x0324 Sweex LW324 RT3072 2x2 with 32Mb NOR flash, autoinstall Cc: Ivo van Doorn Cc: Gertjan van Wingerde Cc: Helmut Schaa Cc: John W. Linville Cc: users@rt2x00.serialmonkey.com Cc: linux-wireless@vger.kernel.org Signed-off-by: Xose Vazquez Perez Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4d25a75bc6c3f71d8cd736cb5d9bb2ad4ba80792 Merge: 3549c6b 9c3a8d9 Author: John W. Linville Date: Fri Feb 8 14:41:45 2013 -0500 Merge branch 'for-linville' of git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx commit 3549c6b1953c3e951e71fbec94f9ed203c4754e7 Merge: b26f5f0 3f52b7e Author: John W. Linville Date: Fri Feb 8 14:23:51 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Fixed-up drivers/net/wireless/iwlwifi/mvm/mac80211.c to change change IEEE80211_HW_NEED_DTIM_PERIOD to IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC as requested by Johannes Berg. -- JWL Signed-off-by: John W. Linville commit f5237f278f30a92401539a54f87ee0c717b6f818 Merge: b285109 b26f5f0 Author: John W. Linville Date: Fri Feb 8 13:16:17 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem commit 9c3a8d99346040010a82ae8088b055f85cf8a2e9 Author: Luciano Coelho Date: Thu Feb 7 11:35:33 2013 +0200 wlcore: fix wrong remote rates when starting STA role In wl18xx, we use a new ACX command in order to set the remote supported rates, once we know it (ie. after association). The wl12xx firmware doesn't support changing the rates after the STA is started, so we need to use all supported rates. Commit 530abe19 (wlcore: add ACX_PEER_CAP command) broke that by using wlvif->rate_set when starting the STA role. Signed-off-by: Luciano Coelho commit 1d6146659ef7ae10263d490a9554ff0bfc7f6ecd Author: Victor Goldenshtein Date: Thu Dec 27 15:49:47 2012 +0200 wl18xx: add new phy configuration parameters for telec support Add back-off settings to the wl18xx_mac_and_phy_params. We had an empty space where the new parameters are added, so this change doesn't affect backwards-compatibility with older firmwares. Update WL18XX_CONF_VERSION accordingly. Signed-off-by: Victor Goldenshtein Signed-off-by: Luciano Coelho commit 5dc283fe9ab360433aa05fcbe0f43cad40f68774 Author: Luciano Coelho Date: Wed Jan 30 10:53:14 2013 +0200 wlcore: don't hide real error code when booting fails There's no need to hide the actual error that was reported when booting fails. For instance, on I/O error, we were returing -EINVALID, which doesn't make sense at all. Signed-off-by: Luciano Coelho commit 6cc9efed707c575a9e5880ea68f8b9d36b235f1f Author: Luciano Coelho Date: Fri Jan 25 12:05:34 2013 +0200 wlcore: move wl12xx_platform_data up and make it truly optional The platform data is used not only by wlcore-based drivers, but also by wl1251. Move it up in the directory hierarchy to reflect this. Additionally, make it truly optional. At the moment, disabling platform data while wl1251_sdio or wlcore_sdio are enabled doesn't work, but it will be necessary when device tree support is implemented. Signed-off-by: Luciano Coelho Reviewed-by: Felipe Balbi commit 06ab4058ea418d8503458bea386961b9dd554356 Author: Luciano Coelho Date: Wed Jan 23 16:40:37 2013 +0200 wlcore: use PLATFORM_DEVID_AUTO for plat dev creation to avoid conflicts The platform devices can be created by both wlcore_sdio and wlcore_spi. Theoretically, if both are connected to the same board, there will be a conflict. Reported-by: Felipe Balbi Signed-off-by: Luciano Coelho commit 91147a6cd0f599e1e2f5a904c37d73df58f9508f Author: Luciano Coelho Date: Wed Jan 23 16:40:36 2013 +0200 wlcore: use wl12xx_platform_data pointer from wlcore_pdev_data Just a small cleanup to use the pointer provided by wlcore_pdev_data instead of using a separate pointer then copying. Reviewed-by: Felipe Balbi Signed-off-by: Luciano Coelho commit afb43e6d88e587441c960a5d214d2c698d076c9c Author: Luciano Coelho Date: Fri Jan 25 11:57:48 2013 +0200 wlcore: remove if_ops from platform_data We can't pass pointers from the platform data to the modules, because with DT it cannot be done. Those pointers are not set by the board files anyway. It's the bus modules that set them, so they can be safely removed from the platform data without changing any board files. Create a new structure that the bus modules pass to wlcore. This structure contains the if_ops pointers and a pointer to the actual platform data. Signed-off-by: Luciano Coelho Reviewed-by: Felipe Balbi commit 3a0a8d961e20132272887d9826738ce9b4d818f7 Author: Luciano Coelho Date: Wed Jan 23 16:40:34 2013 +0200 wlcore: remove unused set_power method There is no platform-specific set_power method anymore. Power setting is done in the bus modules (wlcore_sdio and wlcore_spi). Signed-off-by: Luciano Coelho Reviewed-by: Felipe Balbi commit 9646b1346760a0af1035f0c59ba727fca1f5824d Author: Luciano Coelho Date: Wed Dec 12 10:14:22 2012 +0200 wlcore: use single-role version when verifying the PLT firmware The PLT firmware used by wl12xx for calibration always has the same version number as the single-role firmware. Currntly the driver rejects the PLT firmware since anything that is not single-role uses the multi-role version. Fix this by using the single-role version for everything except multi-role. Signed-off-by: Luciano Coelho commit b9e5071386007729110e86fd2c55c687085624e3 Merge: 85a7ce6 cc4c0c4 Author: Dave Airlie Date: Fri Feb 8 14:02:32 2013 +1000 Merge branch 'for-airlied' of git://people.freedesktop.org/~mlankhorst/linux into drm-next TTM reservations changes, preparing for new reservation mutex system. * 'for-airlied' of git://people.freedesktop.org/~mlankhorst/linux: drm/ttm: unexport ttm_bo_wait_unreserved drm/nouveau: use ttm_bo_reserve_slowpath in validate_init, v2 drm/ttm: use ttm_bo_reserve_slowpath_nolru in ttm_eu_reserve_buffers, v2 drm/ttm: add ttm_bo_reserve_slowpath drm/ttm: cleanup ttm_eu_reserve_buffers handling drm/ttm: remove lru_lock around ttm_bo_reserve drm/nouveau: increase reservation sequence every retry drm/vmwgfx: always use ttm_bo_is_reserved commit 85a7ce67f3ebfd5975ffd1febcabfe4999ca911d Author: Daniel Kurtz Date: Thu Dec 27 01:01:46 2012 +0000 drm: make frame duration time calculation more precise It is a bit more precise to compute the total number of pixels first and then divide, rather than multiplying the line pixel count by the already-rounded line duration. Signed-off-by: Daniel Kurtz Signed-off-by: Dave Airlie commit dd66cc2e1f4765d0e6f39eb1e7d8d64d3f1cc522 Author: Bjorn Helgaas Date: Fri Jan 4 19:10:42 2013 +0000 drm/pci: Use PCI Express Capability accessors Use PCI Express Capability access functions to simplify this code a bit. For non-PCIe devices or pre-PCIe 3.0 devices that don't implement the Link Capabilities 2 register, pcie_capability_read_dword() reads a zero. Since we're only testing whether the bits we care about are set, there's no need to mask out the other bits we *don't* care about. Signed-off-by: Bjorn Helgaas Signed-off-by: Dave Airlie commit f8acf6f4c8fe1fd4de1f669ac6a3c71e89f13523 Author: Bjorn Helgaas Date: Fri Jan 4 19:10:37 2013 +0000 drm/pci: Set all supported speeds in speed cap mask for pre-3.0 devices For devices that conform to PCIe r3.0 and have a Link Capabilities 2 register, we test and report every bit in the Supported Link Speeds Vector field. For a device that supports both 2.5GT/s and 5.0GT/s, we set both DRM_PCIE_SPEED_25 and DRM_PCIE_SPEED_50 in the returned mask. For pre-r3.0 devices, the Link Capabilities 0010b encoding (PCI_EXP_LNKCAP_SLS_5_0GB) means that both 5.0GT/s and 2.5GT/s are supported, so set both DRM_PCIE_SPEED_25 and DRM_PCIE_SPEED_50 in this case as well. Signed-off-by: Bjorn Helgaas Signed-off-by: Dave Airlie commit 9fe0423eac2c0781a3ece8779b086acd3e76f2c8 Author: Bjorn Helgaas Date: Fri Jan 4 19:10:32 2013 +0000 drm/pci: Use the standard #defines for PCIe Link Capability bits Use the standard #defines rather than bare numbers for the PCIe Link Capabilities speed bits. Signed-off-by: Bjorn Helgaas Signed-off-by: Dave Airlie commit 03f6509df9218c760ae74f41a609233220d33f19 Author: Thierry Reding Date: Mon Jan 14 16:05:56 2013 +0000 drm: Allow vblank support without DRIVER_HAVE_IRQ Drivers that register interrupt handlers without the DRM core helpers don't initialize the .irq_enabled field and drm_dev_to_irq() may fail when called on them. This shouldn't preclude them from implementing the vblank IOCTL. Signed-off-by: Thierry Reding Signed-off-by: Dave Airlie commit 1e6d17a5df848cf8e483b689c6295776e9d6d997 Author: Aaron Plattner Date: Tue Jan 15 20:47:44 2013 +0000 drm/radeon: use prime helpers Simplify the Radeon prime implementation by using the default behavior provided by drm_gem_prime_import and drm_gem_prime_export. v2: - Rename functions to radeon_gem_prime_get_sg_table and radeon_gem_prime_import_sg_table. - Delete the now-unused vmapping_count variable. Signed-off-by: Aaron Plattner Cc: Daniel Vetter Cc: David Airlie Signed-off-by: Dave Airlie commit ab9ccb96a6e6f95bcde6b8b2a524370efdbfdcd6 Author: Aaron Plattner Date: Tue Jan 15 20:47:43 2013 +0000 drm/nouveau: use prime helpers Simplify the Nouveau prime implementation by using the default behavior provided by drm_gem_prime_import and drm_gem_prime_export. v2: Rename functions to nouveau_gem_prime_get_sg_table and nouveau_gem_prime_import_sg_table. Signed-off-by: Aaron Plattner Cc: Daniel Vetter Cc: David Airlie Signed-off-by: Dave Airlie commit 89177644a7b6306e6084a89eab7e290f4bfef397 Author: Aaron Plattner Date: Tue Jan 15 20:47:42 2013 +0000 drm: add prime helpers Instead of reimplementing all of the dma_buf functionality in every driver, create helpers drm_prime_import and drm_prime_export that implement them in terms of new, lower-level hook functions: gem_prime_pin: callback when a buffer is created, used to pin buffers into GTT gem_prime_get_sg_table: convert a drm_gem_object to an sg_table for export gem_prime_import_sg_table: convert an sg_table into a drm_gem_object gem_prime_vmap, gem_prime_vunmap: map and unmap an object These hooks are optional; drivers can opt in by using drm_gem_prime_import and drm_gem_prime_export as the .gem_prime_import and .gem_prime_export fields of struct drm_driver. v2: - Drop .begin_cpu_access. None of the drivers this code replaces implemented it. Having it here was a leftover from when I was trying to include i915 in this rework. - Use mutex_lock instead of mutex_lock_interruptible, as these three drivers did. This patch series shouldn't change that behavior. - Rename helpers to gem_prime_get_sg_table and gem_prime_import_sg_table. Rename struct sg_table* variables to 'sgt' for clarity. - Update drm.tmpl for these new hooks. v3: - Pass the vaddr down to the driver. This lets drivers that just call vunmap on the pointer avoid having to store the pointer in their GEM private structures. - Move documentation into a /** DOC */ comment in drm_prime.c and include it in drm.tmpl with a !P line. I tried to use !F lines to include documentation of the individual functions from drmP.h, but the docproc / kernel-doc scripts barf on that file, so hopefully this is good enough for now. - apply refcount fix from commit be8a42ae60addd8b6092535c11b42d099d6470ec ("drm/prime: drop reference on imported dma-buf come from gem") Signed-off-by: Aaron Plattner Cc: Daniel Vetter Cc: David Airlie Signed-off-by: Dave Airlie commit 6504d0d9900a2c05ea1fbab2ec008bf442993d94 Author: Rob Clark Date: Thu Jan 24 21:46:07 2013 +0000 drm/i2c: give i2c it's own Kconfig Move this out of nouveau directory. As we start to add more encoder slaves used by other drivers, it makes sense to put the Kconfig bits in one place. Signed-off-by: Rob Clark Signed-off-by: Dave Airlie commit 73ccd6962fff19e53a7d4baaa17cf9311284ac9c Merge: ed914f6 0e3d50b Author: Dave Airlie Date: Fri Feb 8 13:27:28 2013 +1000 Merge branch 'drm-next-3.9' of git://people.freedesktop.org/~agd5f/linux into drm-next Alex writes: - CS ioctl cleanup and unification. Unification of a lot of functionality that was duplicated across multiple generates of hardware. - Add support for Oland GPUs - Deprecate UMS support. Mesa and the ddx dropped support for UMS and apparently very few people still use it since the UMS CS ioctl was broken for several kernels and no one reported it. It was fixed in 3.8/stable. - Rework GPU reset. Use the status registers to determine what blocks to reset. This better matches the recommended reset programming model. This also allows us to properly reset blocks besides GFX and DMA. - Switch the VM set page code to use an IB rather than the ring. This fixes overflow issues when doing large page table updates using a small ring like DMA. - Several small cleanups and bug fixes. * 'drm-next-3.9' of git://people.freedesktop.org/~agd5f/linux: (38 commits) drm/radeon/dce6: fix display powergating drm/radeon: add Oland pci ids drm/radeon: radeon-asic updates for Oland drm/radeon: add ucode loading support for Oland drm/radeon: fill in gpu init for Oland drm/radeon: add Oland chip family drm/radeon: switch back to using the DMA ring for VM PT updates drm/radeon: use IBs for VM page table updates v2 drm/radeon: don't reset the MC on IGPs/APUs drm/radeon: use the reset mask to determine if rings are hung drm/radeon: halt engines before disabling MC (si) drm/radeon: halt engines before disabling MC (cayman/TN) drm/radeon: halt engines before disabling MC (evergreen) drm/radeon: halt engines before disabling MC (6xx/7xx) drm/radeon: use status regs to determine what to reset (si) drm/radeon: use status regs to determine what to reset (cayman) drm/radeon: use status regs to determine what to reset (evergreen) drm/radeon: use status regs to determine what to reset (6xx/7xx) drm/radeon: rework GPU reset on cayman/TN drm/radeon: rework GPU reset on cayman/TN ... commit ed914f69f8f979ea2b664abc4f1437235cf3db35 Merge: bb0f78d edb37a9 Author: Dave Airlie Date: Fri Feb 8 12:34:44 2013 +1000 Merge tag 'of_videomode_helper' of git://git.pengutronix.de/git/str/linux into drm-next videomode helpers for of + devicetree stuff, required for new kms drivers (not the fbdev maintainer). * tag 'of_videomode_helper' of git://git.pengutronix.de/git/str/linux: drm_modes: add of_videomode helpers drm_modes: add videomode helpers fbmon: add of_videomode helpers fbmon: add videomode helpers video: add of helper for display timings/videomode video: add display_timing and videomode viafb: rename display_timing to via_display_timing commit bb0f78dd7ded88082b2430c43c65bc821c4ea360 Merge: 62cd2fa 677d23b Author: Dave Airlie Date: Fri Feb 8 12:14:50 2013 +1000 Merge branch 'udl-fixes' into drm-next Fixes for usb/udl devices * udl-fixes: drm/udl: disable fb_defio by default drm/udl: Inline memcmp() for RLE compression of xfer drm/udl: make usage as a console safer drm/usb: bind driver to correct device commit 6dc1c49da6dd3bf020a66b2a135b9625ac01c2c7 Merge: cd17ef4 5845b81 Author: Dave Airlie Date: Fri Feb 8 12:10:18 2013 +1000 Merge branch 'fbcon-locking-fixes' of ssh://people.freedesktop.org/~airlied/linux into drm-next This pulls in most of Linus tree up to -rc6, this fixes the worst lockdep reported issues and re-enables fbcon lockdep. (not the fbcon maintainer) * 'fbcon-locking-fixes' of ssh://people.freedesktop.org/~airlied/linux: (529 commits) Revert "Revert "console: implement lockdep support for console_lock"" fbcon: fix locking harder fb: Yet another band-aid for fixing lockdep mess fb: rework locking to fix lock ordering on takeover commit 677d23b70bf949f75746c80cbae92c233c6b5e2a Author: Dave Airlie Date: Thu Feb 7 12:30:25 2013 +1000 drm/udl: disable fb_defio by default There seems to be a bad interaction between gem/shmem and defio on top, I get list corruption on the page lru in the shmem code. Turn it off for now until we get some more digging done. Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie commit e90a4ea534b110a43df87a05587c53cd78569467 Author: Chris Wilson Date: Fri Jan 18 16:31:14 2013 +0000 drm/udl: Inline memcmp() for RLE compression of xfer As we use a variable length the compiler does not realise that it is a fixed value of either 2 or 4 bytes. Instead of performing the inline comparison itself, the compiler inserts a function call to the generic memcmp routine which is optimised for long comparisons of variable length. That turns out to be quite expensive... Signed-off-by: Chris Wilson Signed-off-by: Dave Airlie commit cd17ef4114ad5c514b17e6a0bb02a309ab90b692 Merge: 67c9640 7d37bea Author: Dave Airlie Date: Fri Feb 8 11:08:10 2013 +1000 Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next Daniel writes: "Probably the last feature pull for 3.9, there's some fixes outstanding thought that I'd like to sneak in. And maybe 3.8 takes a bit longer ... Anyway, highlights of this pull: - Kill the horrible IS_DISPLAYREG hack to handle the mmio offset movements on vlv, big thanks to Ville. - Dynamic power well support for Haswell, shaves away a bit when only using the eDP port on pipe A (Paulo). Plus unclaimed register fixes uncovered by this. - Clarifications of the gpu hang/reset state transitions, hopefully fixing a few spurious -EIO deaths in userspace. - Haswell ELD fixes. - Some more (pp)gtt cleanups from Ben. - A few smaller things all over. Plus all the stuff from the previous rather small pull request: - Broadcast RBG improvements and reduced color range fixes from Ville. - Ben is on a "kill legacy gtt code for good" spree, first pile of patches included. - No-relocs and bo lut improvements for faster execbuf from Chris. - Some refactorings from Imre." * tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel: (101 commits) GPU/i915: Fix acpi_bus_get_device() check in drivers/gpu/drm/i915/intel_opregion.c drm/i915: Set the SR01 "screen off" bit in i915_redisable_vga() too drm/i915: Kill IS_DISPLAYREG() drm/i915: Introduce i915_vgacntrl_reg() drm/i915: gen6_gmch_remove can be static drm/i915: dynamic Haswell display power well support drm/i915: check the power down well on assert_pipe() drm/i915: don't send DP "idle" pattern before "normal" on HSW PORT_A drm/i915: don't run hsw power well code on !hsw drm/i915: kill cargo-culted locking from power well code drm/i915: Only run idle processing from i915_gem_retire_requests_worker drm/i915: Fix CAGF for HSW drm/i915: Reclaim GTT space for failed PPGTT drm/i915: remove intel_gtt structure drm/i915: Add probe and remove to the gtt ops drm/i915: extract hw ppgtt setup/cleanup code drm/i915: pte_encode is gen6+ drm/i915: vfuncs for ppgtt drm/i915: vfuncs for gtt_clear_range/insert_entries drm/i915: Error state should print /sys/kernel/debug ... commit bcb39af4486be07e896fc374a2336bad3104ae0a Author: Dave Airlie Date: Thu Feb 7 11:19:15 2013 +1000 drm/udl: make usage as a console safer Okay you don't really want to use udl devices as your console, but if you are unlucky enough to do so, you run into a lot of schedule while atomic due to printk being called from all sorts of funky places. So check if we are in an atomic context, and queue the damage for later, the next printk should cause it to appear. This isn't ideal, but it is simple, and seems to work okay in my testing here. (dirty area idea came from xenfb) fixes a bunch of sleeping while atomic issues running fbcon on udl devices. Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie commit 9f23de52b64f7fb801fd76f3dd8651a0dc89187b Author: Dave Airlie Date: Thu Feb 7 10:10:04 2013 +1000 drm/usb: bind driver to correct device While looking at plymouth on udl I noticed that plymouth was trying to use its fb plugin not its drm one, it was trying to drmOpen a driver called usb not udl, noticed that we actually had out driver pointing at the wrong device. Cc: stable@vger.kernel.org Signed-off-by: Dave Airlie commit 0e3d50bfcbd338254795a700dcff429a96cba1a6 Author: Alex Deucher Date: Tue Feb 5 11:47:09 2013 -0500 drm/radeon/dce6: fix display powergating Only enable it when we disable the display rather than at DPMS time since enabling it requires a full modeset to restore the display state. Fixes blank screens in certain cases. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit bda6f8e6cdcdb55db9b2961b6a7c9d0d97da4765 Merge: c35a0bf ef3ffe5 Author: Olof Johansson Date: Tue Feb 5 12:13:10 2013 -0800 Merge tag 'tegra-for-3.9-soc-ccf' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra into next/soc From Stephen Warren: ARM: tegra: Common Clock Framework rework Tegra already supports the common clock framework, but had issues: 1) The clock driver was located in arch/arm/mach-tegra/ rather than drivers/clk/. 2) A single "Tegra clock" type was implemented, rather than separate clock types for PLL, mux, divider, ... type in HW. 3) Clock lookups by device drivers were still driven by device name and connection ID, rather than through device tree. This pull request solves all three issues. This required some DT changes to add clocks properties, and driver changes to request clocks more "correctly". Finally, this rework allows all AUXDATA to be removed from Tegra board files, and various duplicate clock lookup entries to be removed from the driver. This pull request is based on the previous pull request, with tag tegra-for-3.9-cleanup. * tag 'tegra-for-3.9-soc-ccf' of git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra: (31 commits) clk: tegra30: remove unused TEGRA_CLK_DUPLICATE()s clk: tegra20: remove unused TEGRA_CLK_DUPLICATE()s ARM: tegra30: remove auxdata ARM: tegra20: remove auxdata ASoC: tegra: remove auxdata staging: nvec: remove use of clk_get_sys ARM: tegra: paz00: add clock information to DT ARM: tegra: add clock properties to Tegra30 DT ARM: tegra: add clock properties to Tegra20 DT spi: tegra: do not use clock name to get clock ARM: tegra: remove legacy clock code ARM: tegra: migrate to new clock code clk: tegra: add clock support for Tegra30 clk: tegra: add clock support for Tegra20 clk: tegra: add Tegra specific clocks ARM: tegra: define Tegra30 CAR binding ARM: tegra: define Tegra20 CAR binding ARM: tegra: move tegra_cpu_car.h to linux/clk/tegra.h ARM: tegra: add function to read chipid ARM: tegra: fix compile error when disable CPU_IDLE ... Signed-off-by: Olof Johansson Conflicts: arch/arm/mach-tegra/board-dt-tegra20.c arch/arm/mach-tegra/board-dt-tegra30.c arch/arm/mach-tegra/common.c arch/arm/mach-tegra/platsmp.c drivers/clocksource/Makefile commit 188d1f76d0dd3715ceeadfa31376867c3395eb41 Merge: 577ae39 bf414b3 Author: David S. Miller Date: Tue Feb 5 14:12:20 2013 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: drivers/net/ethernet/intel/e1000e/ethtool.c drivers/net/vmxnet3/vmxnet3_drv.c drivers/net/wireless/iwlwifi/dvm/tx.c net/ipv6/route.c The ipv6 route.c conflict is simple, just ignore the 'net' side change as we fixed the same problem in 'net-next' by eliminating cached neighbours from ipv6 routes. The e1000e conflict is an addition of a new statistic in the ethtool code, trivial. The vmxnet3 conflict is about one change in 'net' removing a guarding conditional, whilst in 'net-next' we had a netdev_info() conversion. The iwlwifi conflict is dealing with a WARN_ON() conversion in 'net-next' vs. a revert happening in 'net'. Signed-off-by: David S. Miller commit 2bfb50924c7e92362ac937aef2ab56bc7bd3ca52 Author: Johannes Berg Date: Thu Dec 27 21:43:48 2012 +0100 iwlwifi: use threaded interrupt handler With new transports coming up, move to threaded interrupt handling now. This has the advantage that we can use the same locking scheme with all different transports we may need to implement. Note that the TX path obviously still runs in a tasklet, so some spin_lock() calls need to change to spin_lock_bh() calls to properly lock out the TX path. In my test on a Calpella platform this has no impact on throughput or latency. Also add lockdep annotations to avoid lockups due to catch sending synchronous commands or using locks that connect with them from the irq thread. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit c9f7a8ab7792b48259af6e94706a5d02dd74caef Author: Emmanuel Grumbach Date: Sun Jan 27 21:53:55 2013 +0200 iwlwifi: don't ack the card state notification This is not needed with MVM firmware. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit aa5a1b8e68c95151fd249a3b5ec444c6b0aa2f1c Author: Thomas Pedersen Date: Mon Feb 4 14:12:41 2013 -0800 mac80211: stop plink timer only on mesh interfaces Since mesh_plink_quiesce() would unconditionally delete the plink timer, and the timer initialization was recently moved into the mesh code path, suspending with a non-mesh interface now causes a crash. Fix this by only deleting the plink timer for mesh interfaces. Reported-by: Emmanuel Grumbach Tested-by: Emmanuel Grumbach Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 16559ae48c76f1ceb970b9719dea62b77eb5d06b Author: Greg Kroah-Hartman Date: Mon Feb 4 15:35:26 2013 -0800 kgdb: remove #include from kgdb.h There's no reason kgdb.h itself needs to include the 8250 serial port header file. So push it down to the _very_ limited number of individual drivers that need the values in that file, and fix up the places where people really wanted serial_core.h and platform_device.h. Signed-off-by: Greg Kroah-Hartman commit 25cc4ae913a46bcc11b03c37bec59568f2122a36 Author: Ying Xue Date: Sun Feb 3 20:32:57 2013 +0000 net: remove redundant check for timer pending state before del_timer As in del_timer() there has already placed a timer_pending() function to check whether the timer to be deleted is pending or not, it's unnecessary to check timer pending state again before del_timer() is called. Signed-off-by: Ying Xue Cc: Eric Dumazet Signed-off-by: David S. Miller commit 0d2e7a5c608063f72048899d20505c2ee130566c Author: Joe Perches Date: Sun Feb 3 17:28:14 2013 +0000 wireless: Remove unnecessary alloc/OOM messages, alloc cleanups alloc failures already get standardized OOM messages and a dump_stack. Convert kzalloc's with multiplies to kcalloc. Convert kmalloc's with multiplies to kmalloc_array. Remove now unused variables. Remove unnecessary memset after kzalloc->kcalloc. Whitespace cleanups for these changes. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit b2adaca92c63b9bb8beb021d554f656e387a7648 Author: Joe Perches Date: Sun Feb 3 17:43:58 2013 +0000 ethernet: Remove unnecessary alloc/OOM messages, alloc cleanups alloc failures already get standardized OOM messages and a dump_stack. Convert kzalloc's with multiplies to kcalloc. Convert kmalloc's with multiplies to kmalloc_array. Fix a few whitespace defects. Convert a constant 6 to ETH_ALEN. Use parentheses around sizeof. Convert vmalloc/memset to vzalloc. Remove now unused size variables. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 3f52b7e328c526fa7a592af9bf5772c591ed38a4 Author: Marco Porsch Date: Wed Jan 30 18:14:08 2013 +0100 mac80211: mesh power save basics Add routines to - maintain a PS mode for each peer and a non-peer PS mode - indicate own PS mode in transmitted frames - track neighbor STAs power modes - buffer frames when neighbors are in PS mode - add TIM and Awake Window IE to beacons - release frames in Mesh Peer Service Periods Add local_pm to sta_info to represent the link-specific power mode at this station towards the remote station. When a peer link is established, use the default power mode stored in mesh config. Update the PS status if the peering status of a neighbor changes. Maintain a mesh power mode for non-peer mesh STAs. Set the non-peer power mode to active mode during peering. Authenticated mesh peering is currently not working when either node is configured to be in power save mode. Indicate the current power mode in transmitted frames. Use QoS Nulls to indicate mesh power mode transitions. For performance reasons, calls to the function setting the frame flags are placed in HWMP routing routines, as there the STA pointer is already available. Add peer_pm to sta_info to represent the peer's link-specific power mode towards the local station. Add nonpeer_pm to represent the peer's power mode towards all non-peer stations. Track power modes based on received frames. Add the ps_data structure to ieee80211_if_mesh (for TIM map, PS neighbor counter and group-addressed frame buffer). Set WLAN_STA_PS flag for STA in PS mode to use the unicast frame buffering routines in the tx path. Update num_sta_ps to buffer and release group-addressed frames after DTIM beacons. Announce the awake window duration in beacons if in light or deep sleep mode towards any peer or non-peer. Create a TIM IE similarly to AP mode and add it to mesh beacons. Parse received Awake Window IEs and check TIM IEs for buffered frames. Release frames towards peers in mesh Peer Service Periods. Use the corresponding trigger frames and monitor the MPSP status. Append a QoS Null as trigger frame if neccessary to properly end the MPSP. Currently, in HT channels MPSPs behave imperfectly and show large delay spikes and frame losses. Signed-off-by: Marco Porsch Signed-off-by: Ivan Bezyazychnyy Signed-off-by: Mike Krinkin Signed-off-by: Max Filippov Signed-off-by: Johannes Berg commit 0532d4f154b87da6361ab90d12f35142d5119dc1 Author: Johannes Berg Date: Fri Feb 1 01:34:36 2013 +0100 cfg80211: wrap BSS kref Add inline wrappers for the BSS struct krefs to be able to extend them easily later. Signed-off-by: Johannes Berg commit 9537f227b44762591a5598b79522789c573d34b3 Author: Johannes Berg Date: Fri Feb 1 01:19:48 2013 +0100 cfg80211: remove a local variable This local variable is only used once, so remove it. Signed-off-by: Johannes Berg commit 4b1af4792a2aa686483fc9bb2155f7269fa6399c Author: Johannes Berg Date: Fri Feb 1 01:05:43 2013 +0100 cfg80211: use lockdep to assert lock is held Instead of annotating with a comment, add a lockdep annotation which also serves as documentation. Signed-off-by: Johannes Berg commit 6b684db1db0df40275c7dfcc32a5d48eb72fe4e3 Author: Johannes Berg Date: Tue Jan 29 11:35:29 2013 +0100 mac80211: send deauth if connection was lost during suspend If the driver determined the connection was lost or that it couldn't securely maintain the connection when coming out of WoWLAN, send a deauth frame to the AP to also let it know. Signed-off-by: Johannes Berg commit e54faf29e07b6cc28a44a4f01d7fbc40905a67d3 Author: Johannes Berg Date: Tue Jan 29 11:41:38 2013 +0100 mac80211: allow transmitting deauth with tainted key When we had a connection for WoWLAN and after resume it needed to be disconnected, the previous commit enabled sending a deauth frame to the AP. This frame would not go through on MFP-enabled networks as the key for it is marked tainted before the frame is transmitted. Allow a tainted key to be used for deauth frames. Worst case, we'll use a wrong key because the PTK was rekeyed while suspended, but more likely the PTK is still fine and the taint flag really only applies to the GTK(s). Signed-off-by: Johannes Berg commit 2ca813ad61136896c91a40194452ff665a522711 Author: Johannes Berg Date: Fri Feb 1 01:04:14 2013 +0100 cfg80211: move locking into cfg80211_bss_age There's no reason for it to require external locking, move it into the function. Signed-off-by: Johannes Berg commit 50521aa8817e3f6a77eb7aaabdbbb7b5c2fe0ea3 Author: Johannes Berg Date: Wed Jan 30 21:33:19 2013 +0100 cfg80211: fix BSS IE allocation comment The comment about allocating the IEs together with the BSS struct is no longer true, remove it. Also fix a typo in the same area. Signed-off-by: Johannes Berg commit 3146a7da83ba2dd266ef436d4ac8e7e09bd15825 Author: Johannes Berg Date: Wed Jan 30 09:03:08 2013 +0100 mac80211: remove unused SSID from BSS The ssid/ssid_len fields in the private BSS struct are unused, contrary to the comment we do look up the SSID in the few cases we need it. Signed-off-by: Johannes Berg commit 37e0838117084eb957fdf124bf555f4b9933a5a5 Author: Johannes Berg Date: Wed Jan 30 08:50:37 2013 +0100 cfg80211: remove unused cfg80211_get_mesh As Thomas pointed out, cfg80211_get_mesh() is unused and can be removed. Cc: Thomas Pedersen Signed-off-by: Johannes Berg commit 3af6341c5378d1ed0905614575ee9ee2e5522c81 Author: Johannes Berg Date: Wed Jan 30 00:40:20 2013 +0100 cfg80211: simplify mesh BSS comparison Instead of first checking if a BSS is an MBSS and then doing the comparisons, inline it all into the BSS comparison function. This avoids doing the IE searches twice and is also a lot less code. Signed-off-by: Johannes Berg commit 4593c4cbe1c96b3995727dc42f6aa103f4ff5afc Author: Johannes Berg Date: Fri Feb 1 19:20:03 2013 +0100 cfg80211: fix BSS list hidden SSID lookup When trying to find a hidden SSID, the lookup function is done wrong; the code is trying to combine the two lookups into one, and as a consequence doesn't always find the entry at all. To understand this, consider a case where multiple BSS entries with the same channel and BSSID exist but have different SSID length. Then comparing against the probe response SSID length is bound to cause problems since the hidden one might be either zeroed out or zero-length. To fix this we need to do two lookups for the two ways to hide SSIDs. Signed-off-by: Johannes Berg commit 5622f5bb8dd3cafe0e56014ed03e31957d1b4a03 Author: Johannes Berg Date: Wed Jan 30 00:26:45 2013 +0100 cfg80211: refactor hidden SSID finding Instead of duplicating the rbtree functions, pass an argument to the compare function. This removes the code duplication for the two searches. Signed-off-by: Johannes Berg commit 42745e039312ab4672c60ec584651f0c74e8264f Author: Vladimir Kondratiev Date: Mon Feb 4 13:53:11 2013 +0200 cfg80211: expand per-station byte counters to 64bit In per-station statistics, present 32bit counters are too small for practical purposes - with gigabit speeds, it get overlapped every few seconds. Expand counters in the struct station_info to be 64-bit. Driver can still fill only 32-bit and indicate in @filled only bits like STATION_INFO_[TR]X_BYTES; in case driver provides full 64-bit counter, it should also set in @filled bit STATION_INFO_[TR]RX_BYTES64 Netlink sends both 32-bit and 64-bit counters, if present, to not break userspace. Signed-off-by: Vladimir Kondratiev [change to also have 32-bit counters if driver advertises 64-bit] Signed-off-by: Johannes Berg commit 682bd38b8ac1fa3e84e84cddd1f1d7eeebce1212 Author: Johannes Berg Date: Tue Jan 29 13:13:50 2013 +0100 mac80211: always allow calling ieee80211_connection_loss() With multi-channel, there's a corner case where a driver doesn't receive a beacon soon enough to be able to sync its timers with the AP. In this case, the only recovery (after trying again) is to disconnect from the AP. Allow calling ieee80211_connection_loss() for such cases. To make that possible, modify the work function to not rely on the IEEE80211_HW_CONNECTION_MONITOR flag but use new state kept in the interface instead. Signed-off-by: Johannes Berg commit eef9e54ce8b8dd08e281e0c399cced807c98959e Author: Johannes Berg Date: Tue Jan 29 13:09:34 2013 +0100 mac80211: send deauth when connection is lost If the driver determines the connection is lost, send a deauth frame to the AP anyway just in case it still considers the connection alive. The frame might not go through, but at least we've tried. Signed-off-by: Johannes Berg commit e737a14cd1f30a0bca753ae32ebada10adf93c3b Author: Alex Deucher Date: Thu Aug 30 14:00:03 2012 -0400 drm/radeon: radeon-asic updates for Oland Signed-off-by: Alex Deucher commit bcc7f5d24dddfbe75893e25d84ebf9d7579c34c1 Author: Alex Deucher Date: Thu Jul 26 18:36:28 2012 -0400 drm/radeon: add ucode loading support for Oland Signed-off-by: Alex Deucher commit d0ae7fccb3bae2f3749aa70636c537aa16f37bb7 Author: Alex Deucher Date: Thu Jul 26 17:42:25 2012 -0400 drm/radeon: fill in gpu init for Oland Signed-off-by: Alex Deucher commit 624d35242a90cb508064c11c1ff3beb54f08a6a5 Author: Alex Deucher Date: Tue Dec 18 17:01:35 2012 -0500 drm/radeon: add Oland chip family Oland is a new asic in the SI family. Signed-off-by: Alex Deucher commit b26f5f09ebdeb85ab152344cc1d6d484a3ce967d Author: Larry Finger Date: Fri Feb 1 10:40:27 2013 -0600 rtlwifi: rtl8723ae: Fix W=1 compile warnings Whe this driver is built with "make W=1", the following warnings are output: drivers/net/wireless/rtlwifi/rtl8723ae/fw.c:515:5: warning: variable ‘own’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/hal_btc.c:1436:5: warning: variable ‘bt_retry_cnt’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/hw.c:706:6: warning: variable ‘reg_ratr’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/hw.c:2033:41: warning: variable ‘cur_rfstate’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:620:23: warning: variable ‘radiob_arraylen’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:619:7: warning: variable ‘radiob_array_table’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:617:7: warning: variable ‘rtstatus’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:1534:6: warning: variable ‘bbvalue’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:1716:6: warning: variable ‘reg_ecc’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:1715:61: warning: variable ‘reg_ec4’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/phy.c:1715:34: warning: variable ‘reg_eac’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/rtl8723ae/trx.c:247:6: warning: variable ‘psaddr’ set but not used [-Wunused-but-set-variable] Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 8925d518663628f769173d3586c66987fdd3ab61 Author: Larry Finger Date: Fri Feb 1 10:40:26 2013 -0600 rtlwifi: rtl8192de: Fix W=1 build warnings when this driver is built with "make W=1", the following warning is printed: drivers/net/wireless/rtlwifi/rtl8192de/dm.c:1058:5: warning: comparison is always false due to limited range of data type [-Wtype-limits] Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 0b948341f398646b0d59d746800fbbf3656886e7 Author: Larry Finger Date: Fri Feb 1 10:40:25 2013 -0600 rtlwifi: rtl8192cu: Fix W=1 build warning When this driver is built with "make W=1", the following warning is output: drivers/net/wireless/rtlwifi/rtl8192cu/sw.c:56:6: warning: variable ‘err’ set but not used [-Wunused-but-set-variable] Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 8a8e31cc22739d1a5780591c008940292edcde87 Author: Larry Finger Date: Fri Feb 1 10:40:24 2013 -0600 rtlwifi: rtl8192c: Fix W=1 warning When this driver is built with "make W=1", the following warning occurs: drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c:907:4: warning: comparison is always false due to limited range of data type [-Wtype-limits] Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 829323cd92d27d7acf128879c96ff1ab34120649 Author: Larry Finger Date: Fri Feb 1 10:40:23 2013 -0600 rtlwifi: Fix warnings in usb.c Building this driver with "make W=1" results in the following 2 warnings: drivers/net/wireless/rtlwifi/usb.c:829:21: warning: variable ‘urb_list’ set but not used [-Wunused-but-set-variable] drivers/net/wireless/rtlwifi/usb.c:828:23: warning: variable ‘skb_list’ set but not used [-Wunused-but-set-variable] Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit d221ad1a8aa281aec505441602dd9f315d31cfb9 Author: Larry Finger Date: Fri Feb 1 10:40:22 2013 -0600 rtlwifi: Fix many compile warnings when using W=1 Many warnings like the following arise from a build with W=1 on the make line: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] Changing the overall debug level storage from unsigned to signed fixes these. Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit c4806014ada1b799388d6188bc11fe5dc720c829 Author: Xose Vazquez Perez Date: Fri Feb 1 14:28:49 2013 +0100 wireless: rt2x00: rt2800pci add id 0x1814,0x359f is a RT3592 802.11a/b/g/n 2x2 WiFi Adapter support added by 872834dfb38edc6f72cfc783a5ce78f2a9f36ec5 Cc: Ivo van Doorn Cc: Gertjan van Wingerde Cc: Helmut Schaa Cc: John W. Linville Cc: users@rt2x00.serialmonkey.com Cc: linux-wireless@vger.kernel.org Signed-off-by: Xose Vazquez Perez Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit c67ba5e5801f912e39fbbfaddbf118abd64ef271 Author: Sven Eckelmann Date: Thu Jan 31 10:26:49 2013 +0100 ath9k: Remove unused variables in ath_mci_cleanup Leaving the unused variables ath_mci_cleanup causes build warnings. Signed-off-by: Sven Eckelmann Signed-off-by: John W. Linville commit 128243740923b2b14d16be2545233a75ba4a2c0f Author: Sven Eckelmann Date: Thu Jan 31 10:26:48 2013 +0100 ath9k: Fix sparse __CHECK_ENDIAN__ for spectral code Signed-off-by: Sven Eckelmann Signed-off-by: John W. Linville commit 00b54182344ea2ca3e570fd8d9803f8e7dc98fb4 Author: Sven Eckelmann Date: Thu Jan 31 15:56:56 2013 +0100 ath9k: Only remove spectral scan relay file when it was created The relay file depends on relayfs. Trying to close this file without having ATH9K_DEBUGFS (and therefore RELAY) activated causes build failures. Signed-off-by: Sven Eckelmann Signed-off-by: John W. Linville commit ab2e2fc8909b3ea6b5adf813b23cd76a4a33fbd8 Author: Sven Eckelmann Date: Thu Jan 31 10:26:46 2013 +0100 ath9k: Only add fix_rssi_inv_only when spectral code is used The code is only used when ATH9K_DEBUGFS is activated and causes build warnings when it is still compiled without user. Signed-off-by: Sven Eckelmann Signed-off-by: John W. Linville commit bd2ffe14d489ad12024d43bace21c6b6793acd2c Author: Sven Eckelmann Date: Thu Jan 31 10:26:45 2013 +0100 ath9k: Only process fft samples when ATH9K_DEBUGFS is enabled The code can only be used when ATH9k_DEBUGFS is enabled an not when ATH_DEBUG is activated. Still enabling it would cause build failures. Signed-off-by: Sven Eckelmann Signed-off-by: John W. Linville commit c672a3abb79b40e7cd39b50a84ea5c5c772e10fa Author: Sven Eckelmann Date: Thu Jan 31 10:26:44 2013 +0100 ath9k: Select RELAY for ATH9K_DEBUGFS The spectral scan support activated through ATH9K_DEBUGFS depends on RELAY for the kernel->userspace communication. Not activating RELAY causes build failures. The RELAY is added as select instead of depend to do it similar like the only other user of RELAY: BLK_DEV_IO_TRACE Signed-off-by: Sven Eckelmann Signed-off-by: John W. Linville commit 5e3175fb6755a3d4ec073c0e739581b23b3855dc Author: Bing Zhao Date: Wed Jan 30 19:56:02 2013 -0800 mwifiex: remove max_tx_buf_size max_tx_buf_size is not used any more after reconfiguration of tx buffer size has been removed. Also add missing curr_tx_buf_size update while dumping debug info via debugfs. Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 62749238d1af581d01169f59ebbde4811c3c3143 Author: Bing Zhao Date: Wed Jan 30 19:56:01 2013 -0800 mwifiex: do not reconfigure tx buffer size in firmware while associating It's observed that reconfiguration of tx buffer size before association can cause data path failure in firmware after associated. Although this is only found with PCIe cards, but potentially it could happen with any other interfaces as well. The tx buffer reconfiguration is not really useful in firmware. Let's remove it for all interfaces. Signed-off-by: Bing Zhao Signed-off-by: Avinash Patil Signed-off-by: John W. Linville commit 21fbbca3376f66edd010f5c76ea94e3353bf9a9e Author: Christian Lamparter Date: Wed Jan 30 23:37:41 2013 +0100 ath9k: report A-MPDU status The ath9k hardware reports whenever an frame was part of an A-MPDU. MAC80211 already provides the necessary API to pass this additional information along to whomever needs it. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit cd435d561add96edc784bffa08ac447dabb387f8 Author: Xose Vazquez Perez Date: Wed Jan 30 17:14:13 2013 +0100 wireless: rt2x00: rt2800usb add/identify ids Devices were taken from Ralink Linux drivers: - RT5370 0x043e, 0x7a32 0x043e, 0x7a42 0x0471, 0x2126 0x0471, 0x2180 0x0471, 0x2181 0x0471, 0x2182 Identify these ones: 0x04da, 0x23f6 in CONFIG_RT2800USB_RT53XX is a Panasonic device 0x07d1, 0x3c17 in RT2800USB_UNKNOWN is a RT3070 0x0586, 0x341a in RT2800USB_UNKNOWN is a RT3070 Cc: Ivo van Doorn Cc: Gertjan van Wingerde Cc: Helmut Schaa Cc: John W. Linville Cc: users@rt2x00.serialmonkey.com Cc: linux-wireless@vger.kernel.org Signed-off-by: Xose Vazquez Perez Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 96ebbe8d019ab50b34fc3499398ab98de8c2d01b Author: Stanislaw Gruszka Date: Wed Jan 30 17:08:03 2013 +0100 iwlegacy: check for dma mapping errors Handle pci_map_page() errors. This fixes "DMA-API: device driver failed to check map error" warning. Reported-by: Zdenek Kabelac Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 0255beda59d3b46c06429699d139ad683b33e5f1 Author: Christian Lamparter Date: Fri Jan 18 23:47:19 2013 +0100 iwl4965: report A-MPDU status This patch is based on "iwlwifi: report A-MPDU status". (12bf6f45d1703858) Since the firmware will give us an A-MPDU bit and only a single PHY information packet for all the subframes in an A-MPDU, we can easily report the minimal A-MPDU information for radiotap. Cc: Stanislaw Gruszka Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 5d38745fa896804ce83cb975ba6bf184d0e85ba0 Merge: e56b04e a3d0935 Author: John W. Linville Date: Fri Feb 1 14:21:56 2013 -0500 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next commit df16004447fe55dcd6f05f6bb47bf8eaeddb160c Author: Alex Deucher Date: Thu Jan 31 16:26:02 2013 -0500 drm/radeon: switch back to using the DMA ring for VM PT updates Now that we have switched to using IBs for page table updates, we can switch back the using the DMA ring. Signed-off-by: Alex Deucher commit 43f1214aa094e46efdfc0255d9601be0e5ea0f62 Author: Alex Deucher Date: Fri Feb 1 17:32:42 2013 +0100 drm/radeon: use IBs for VM page table updates v2 For very large page table updates, we can exceed the size of the ring. To avoid this, use an IB to perform the page table update. v2(ck): cleanup the IB infrastructure and the use it instead of filling the struct ourself. Signed-off-by: Alex Deucher Signed-off-by: Christian König commit a3d09356491d637548dbe815ddb966f52ec9e53a Author: Andre Guedes Date: Fri Feb 1 11:21:30 2013 -0300 Bluetooth: Refactor mgmt_pending_foreach This patch does a trivial refactor in mgmt_pending_foreach function. It replaces list_for_each_safe by list_for_each_entry_safe, simplifying the function. Signed-off-by: Andre Guedes Signed-off-by: Gustavo Padovan commit 2b8a9a2e6a2143928819f2fb948d3904746e1582 Author: Andre Guedes Date: Thu Jan 31 20:12:10 2013 -0300 Bluetooth: Remove unneeded locking This patch removes unneeded locking in hci_le_adv_report_evt. There is no need to lock hdev before calling mgmt_device_found. Signed-off-by: Andre Guedes Signed-off-by: Gustavo Padovan commit 405280887f8fb4e168a1bbc865917bb2b881db95 Author: Andre Guedes Date: Tue Jan 29 19:59:56 2013 -0300 Bluetooth: Reduce critical section in sco_conn_ready This patch reduces the critical section protected by sco_conn_lock in sco_conn_ready function. The lock is acquired only when it is really needed. This patch fixes the following lockdep warning which is generated when the host terminates a SCO connection. Today, this warning is a false positive. There is no way those two threads reported by lockdep are running at the same time since hdev->workqueue (where rx_work is queued) is single-thread. However, if somehow this behavior is changed in future, we will have a potential deadlock. ====================================================== [ INFO: possible circular locking dependency detected ] 3.8.0-rc1+ #7 Not tainted ------------------------------------------------------- kworker/u:1H/1018 is trying to acquire lock: (&(&conn->lock)->rlock){+.+...}, at: [] sco_chan_del+0x66/0x190 [bluetooth] but task is already holding lock: (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}, at: [] sco_conn_del+0x8a/0xe0 [bluetooth] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}: [] lock_acquire+0xb1/0xe0 [] _raw_spin_lock+0x41/0x80 [] sco_connect_cfm+0xbe/0x350 [bluetooth] [] hci_event_packet+0xd3c/0x29b0 [bluetooth] [] hci_rx_work+0x133/0x870 [bluetooth] [] process_one_work+0x2bf/0x4f0 [] worker_thread+0x2b2/0x3e0 [] kthread+0xd1/0xe0 [] ret_from_fork+0x7c/0xb0 -> #0 (&(&conn->lock)->rlock){+.+...}: [] __lock_acquire+0x1465/0x1c70 [] lock_acquire+0xb1/0xe0 [] _raw_spin_lock+0x41/0x80 [] sco_chan_del+0x66/0x190 [bluetooth] [] sco_conn_del+0x9d/0xe0 [bluetooth] [] sco_disconn_cfm+0x53/0x60 [bluetooth] [] hci_disconn_complete_evt.isra.54+0x363/0x3c0 [bluetooth] [] hci_event_packet+0xc7/0x29b0 [bluetooth] [] hci_rx_work+0x133/0x870 [bluetooth] [] process_one_work+0x2bf/0x4f0 [] worker_thread+0x2b2/0x3e0 [] kthread+0xd1/0xe0 [] ret_from_fork+0x7c/0xb0 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(slock-AF_BLUETOOTH-BTPROTO_SCO); lock(&(&conn->lock)->rlock); lock(slock-AF_BLUETOOTH-BTPROTO_SCO); lock(&(&conn->lock)->rlock); *** DEADLOCK *** 4 locks held by kworker/u:1H/1018: #0: (hdev->name#2){.+.+.+}, at: [] process_one_work+0x258/0x4f0 #1: ((&hdev->rx_work)){+.+.+.}, at: [] process_one_work+0x258/0x4f0 #2: (&hdev->lock){+.+.+.}, at: [] hci_disconn_complete_evt.isra.54+0x59/0x3c0 [bluetooth] #3: (slock-AF_BLUETOOTH-BTPROTO_SCO){+.+...}, at: [] sco_conn_del+0x8a/0xe0 [bluetooth] stack backtrace: Pid: 1018, comm: kworker/u:1H Not tainted 3.8.0-rc1+ #7 Call Trace: [] print_circular_bug+0x1fb/0x20c [] __lock_acquire+0x1465/0x1c70 [] lock_acquire+0xb1/0xe0 [] ? sco_chan_del+0x66/0x190 [bluetooth] [] _raw_spin_lock+0x41/0x80 [] ? sco_chan_del+0x66/0x190 [bluetooth] [] sco_chan_del+0x66/0x190 [bluetooth] [] sco_conn_del+0x9d/0xe0 [bluetooth] [] sco_disconn_cfm+0x53/0x60 [bluetooth] [] hci_disconn_complete_evt.isra.54+0x363/0x3c0 [bluetooth] [] ? hci_disconn_complete_evt.isra.54+0x40/0x3c0 [bluetooth] [] hci_event_packet+0xc7/0x29b0 [bluetooth] [] ? __dynamic_pr_debug+0x80/0x90 [] ? kfree_skb+0x2d/0x40 [] ? hci_send_to_monitor+0x1a4/0x1c0 [bluetooth] [] hci_rx_work+0x133/0x870 [bluetooth] [] ? process_one_work+0x258/0x4f0 [] process_one_work+0x2bf/0x4f0 [] ? process_one_work+0x258/0x4f0 [] ? worker_thread+0x51/0x3e0 [] ? hci_tx_work+0x800/0x800 [bluetooth] [] worker_thread+0x2b2/0x3e0 [] ? busy_worker_rebind_fn+0x100/0x100 [] kthread+0xd1/0xe0 [] ? flush_kthread_worker+0xc0/0xc0 [] ret_from_fork+0x7c/0xb0 [] ? flush_kthread_worker+0xc0/0xc0 Signed-off-by: Andre Guedes Signed-off-by: Gustavo Padovan commit 3810285cf8cef5c3f9c4334a317b71b876125269 Author: Johan Hedberg Date: Sun Jan 27 08:32:01 2013 -0600 Bluetooth: Increment Management interface revision This patch increments the management interface revision due to the various fixes, improvements and other changes that have gone in lately. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit f0ff92fbfa14c1cf8c0346f1dde9c3eda26d5abf Author: Johan Hedberg Date: Sun Jan 27 08:32:00 2013 -0600 Bluetooth: Fix link security setting when powering on If a controller is powered on while the HCI_AUTO_OFF flag is set the link security setting (HCI_LINK_SECURITY) might not be in sync with the actual state of the controller (HCI_AUTH). This patch fixes the issue by checking for inequality between the intended and actual settings and sends a HCI_Write_Auth_Enable command if necessary. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit c00d575bd550d3d57aeec2522defa0cea589560c Author: Johan Hedberg Date: Sun Jan 27 00:31:35 2013 +0200 Bluetooth: Add support for 128-bit UUIDs in EIR data This patch adds the necessary code for encoding a list of 128-bit UUIDs into the EIR data. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit cdf1963f7ba075772b4b5f91f395ed8fb84d0e70 Author: Johan Hedberg Date: Sun Jan 27 00:31:34 2013 +0200 Bluetooth: Add support for 32-bit UUIDs in EIR data This patch adds the necessary code for inserting a list of 32-bit UUIDs into the EIR data. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 213202edc9b5ae60eef2a915b83b4aa19b1c3617 Author: Johan Hedberg Date: Sun Jan 27 00:31:33 2013 +0200 Bluetooth: Refactor UUID-16 list generation into its own function We will need to create three separate UUID lists in the EIR data (for 16, 32 and 128 bit UUIDs) so the code is easier to follow if each list is generated in their own function. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 892bbc5794daac57bff09c584821ed271fa18046 Author: Johan Hedberg Date: Sun Jan 27 00:31:32 2013 +0200 Bluetooth: Remove useless eir_len variable from EIR creation The amount of data encoded so far in the create_eir() function can be calculated simply through the difference between the data and ptr pointer variables. The eir_len variable then becomes essentially useless. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit a10f27cf4272033d148d91ff12bb8f4b67dfaca4 Author: Johan Hedberg Date: Sun Jan 27 00:31:31 2013 +0200 Bluetooth: Simplify UUID16 list generation for EIR There's no need to use two separate loops to generate a UUID list for the EIR data. This patch merges the two loops previously used for the 16-bit UUID list generation into a single loop, thus simplifying the code a great deal. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 056341c8cb677356eb2c20a82e788ccb51c6a37b Author: Johan Hedberg Date: Sun Jan 27 00:31:30 2013 +0200 Bluetooth: Simplify UUID removal code The UUID removal code can be simplified by using list_for_each_entry_safe instead of list_for_each_safe. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 83be8eca2e67faaec45280224b798828bbfa69aa Author: Johan Hedberg Date: Sun Jan 27 00:31:29 2013 +0200 Bluetooth: Keep track of UUID type upon addition The primary purpose of the UUIDs is to enable generation of EIR and AD data. In these data formats the UUIDs are split into separate fields based on whether they're 16, 32 or 128 bit UUIDs. To make the generation of these data fields simpler this patch adds a type member to the bt_uuid struct and assigns a value to it as soon as the UUID is added to the kernel. This way the type doesn't need to be calculated each time the UUID list is later iterated. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 4821002ce2baa130666c2d777e0ed30bee6c7702 Author: Johan Hedberg Date: Sun Jan 27 00:31:28 2013 +0200 Bluetooth: Simplify UUIDs clearing code The code for clearing the UUIDs list can be simplified by using list_for_each_entry_safe instead of list_for_each_safe. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit de66aa63054a6fe348869722221d5cd3463d74a0 Author: Johan Hedberg Date: Sun Jan 27 00:31:27 2013 +0200 Bluetooth: Store UUIDs in the same order that they were added We should be encoding UUIDs to the EIR data in the same order that they were added to the kernel, i.e. each UUID should be added to the end of the UUIDs list. This patch fixes the issue by using list_add_tail instead of list_add for storing the UUIDs. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit e56b04efc1f795da42cf1d9651b52a4a5bebd730 Author: Lilach Edelstein Date: Wed Jan 16 11:34:49 2013 +0200 iwlwifi: move register access lock into transport Move the reg_lock that protects HW register access into the transport implementation. Locking is no longer exposed, but handled internally in grab and release NIC access. This simplifies the users. Signed-off-by: Lilach Edelstein Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit e139dc4aebf52a9c88552963b9794fd1dff036f1 Author: Lilach Edelstein Date: Sun Jan 13 13:31:10 2013 +0200 iwlwifi: add iwl_set_bits_mask to transport API Express iwl_set_bit() and iwl_clear_bit() through iwl_set_bits_mask() and add the latter to the transport's API in order to allow different implementation for different transport types in the future. Signed-off-by: Lilach Edelstein Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 6690c01d168ecc620139dbd9df8affc2ac8e0683 Author: Johannes Berg Date: Mon Jan 28 09:58:31 2013 +0100 iwlwifi: lower BT coex aggregation message severity As the rate scaling algorithm will attempt to enable aggregation over and over again, the message will flood the log if there is, for example, Bluetooth streaming music. Make it a debug messages instead of printing it all the time. Reported-by: Jan-Michael Brummer Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 8ca151b568b67a7b72dcfc6ee6ea7c107ddd795c Author: Johannes Berg Date: Thu Jan 24 14:25:36 2013 +0100 iwlwifi: add the MVM driver Newer firmware revisions have a completely new firmware API. This is the new driver for this new API. I've listed the people who directly contributed code, but many others from various teams have contributed in other ways. Cc: Alexander Bondar Cc: Amit Beka Cc: Amnon Paz Cc: Assaf Krauss Cc: David Spinadel Cc: Dor Shaish Cc: Emmanuel Grumbach Cc: Eytan Lifshitz Cc: Ilan Peer Signed-off-by: Johannes Berg commit 7d37beaaf3dbc6ff16f4d32a4dd6f8c557c6ab50 Author: Yasuaki Ishimatsu Date: Fri Feb 1 10:14:20 2013 +0900 GPU/i915: Fix acpi_bus_get_device() check in drivers/gpu/drm/i915/intel_opregion.c acpi_bus_get_device() returns int not acpi_status. The patch change not to apply ACPI_FAILURE() to the return value of acpi_bus_get_device(). Signed-off-by: Yasuaki Ishimatsu Signed-off-by: Daniel Vetter commit 24178ec42b0985d485886bc43b97e54ff173627e Author: Alex Deucher Date: Thu Jan 24 15:00:17 2013 -0500 drm/radeon: don't reset the MC on IGPs/APUs The MC isn't part of the GPU per se. Signed-off-by: Alex Deucher commit 123bc1832c33218dfa677a88c2c54bc1a48a9e72 Author: Alex Deucher Date: Thu Jan 24 11:37:19 2013 -0500 drm/radeon: use the reset mask to determine if rings are hung fetch the reset mask and check if the relevant ring flags are set to determine whether the ring is hung or not. Signed-off-by: Alex Deucher commit f770d78ac159a96071e3c4e4ab97c262e79506d3 Author: Alex Deucher Date: Wed Jan 23 19:00:25 2013 -0500 drm/radeon: halt engines before disabling MC (si) It's better to halt the engines before we disable the MC. Signed-off-by: Alex Deucher commit 90fb87791a698ae16af374aaaa9540fde37f6195 Author: Alex Deucher Date: Wed Jan 23 18:59:17 2013 -0500 drm/radeon: halt engines before disabling MC (cayman/TN) It's better to halt the engines before we disable the MC. Signed-off-by: Alex Deucher commit b21b6e7aab9d0ee97f6d3cf3654fda4348b3b7ea Author: Alex Deucher Date: Wed Jan 23 18:57:56 2013 -0500 drm/radeon: halt engines before disabling MC (evergreen) It's better to halt the engines before we disable the MC. Signed-off-by: Alex Deucher commit ca57802e521de54341efc8a56f70571f79ffac72 Author: Alex Deucher Date: Wed Jan 23 18:56:08 2013 -0500 drm/radeon: halt engines before disabling MC (6xx/7xx) It's better to halt the engines before we disable the MC. Signed-off-by: Alex Deucher commit 014bb209214d8dce9698efea71c68d20ba477abc Author: Alex Deucher Date: Fri Jan 18 19:36:20 2013 -0500 drm/radeon: use status regs to determine what to reset (si) When we attempt the reset the GPU, look at the status registers to determine what blocks need to be reset. Signed-off-by: Alex Deucher commit 168757ea854b7dd8eac3962753ed75a542ebca92 Author: Alex Deucher Date: Fri Jan 18 19:17:22 2013 -0500 drm/radeon: use status regs to determine what to reset (cayman) When we attempt the reset the GPU, look at the status registers to determine what blocks need to be reset. Signed-off-by: Alex Deucher commit a65a4369f7a69281b65ed42b7fa2a8e8d6ff585f Author: Alex Deucher Date: Fri Jan 18 18:55:54 2013 -0500 drm/radeon: use status regs to determine what to reset (evergreen) When we attempt the reset the GPU, look at the status registers to determine what blocks need to be reset. Signed-off-by: Alex Deucher commit f13f7731a20ad2ceee8fa8a940b5a68abc733e06 Author: Alex Deucher Date: Fri Jan 18 18:12:22 2013 -0500 drm/radeon: use status regs to determine what to reset (6xx/7xx) When we attempt the reset the GPU, look at the status registers to determine what blocks need to be reset. Signed-off-by: Alex Deucher commit 1c53467144c3af58f5dbccb13ff48466c2de0496 Author: Alex Deucher Date: Fri Jan 18 15:08:38 2013 -0500 drm/radeon: rework GPU reset on cayman/TN Update the code to better match the recommended programming sequence for soft reset. Signed-off-by: Alex Deucher commit 187e359311ac101c3a0c5078e161d64789ef16e0 Author: Alex Deucher Date: Fri Jan 18 14:51:38 2013 -0500 drm/radeon: rework GPU reset on cayman/TN Update the code to better match the recommended programming sequence for soft reset. Signed-off-by: Alex Deucher commit b7630473def7dad61728c68b4f23d0f2294405bc Author: Alex Deucher Date: Fri Jan 18 14:28:41 2013 -0500 drm/radeon: rework GPU reset on evergreen Update the code to better match the recommended programming sequence for soft reset. Signed-off-by: Alex Deucher commit d3cb781e83b39561f717358e95d357e53a0da720 Author: Alex Deucher Date: Fri Jan 18 13:53:37 2013 -0500 drm/radeon: rework GPU reset on r6xx/r7xx Update the code to better match the recommended programming sequence for soft reset. Signed-off-by: Alex Deucher commit 410a3418a88cc1273a281d347687f736fc39dd86 Author: Alex Deucher Date: Fri Jan 18 13:05:39 2013 -0500 drm/radeon: add a bios scratch asic hung helper Used by all asic families from r600+. Flag for the vbios and later instances of the driver that the GPU is hung. Signed-off-by: Alex Deucher commit 9ff0744c6d7745c331a484a937160f4c2c056923 Author: Alex Deucher Date: Fri Jan 18 12:18:17 2013 -0500 drm/radeon: add additional reset flags This adds further flags for fine grained reset. Signed-off-by: Alex Deucher commit 14adc89298f894816ea2f3aef4d8d2d6ede18575 Author: Christian König Date: Mon Jan 21 13:58:46 2013 +0100 drm/radeon: Deprecate UMS support v2 KMS support is out and stable for a couple of years now and the userspace code has deprecated or abandoned the old UMS interface. So make the KMS interface the default and deprecate the UMS interface in the kernel as well. v2: rebased on alex/drm-next-3.9-wip Signed-off-by: Christian König Signed-off-by: Alex Deucher commit 0fcb6155cb5c146b57a8c50e35afb9b7cfbde394 Author: Jerome Glisse Date: Mon Jan 14 11:32:27 2013 -0500 radeon/kms: cleanup async dma packet checking This simplify and cleanup the async dma checking. Signed-off-by: Jerome Glisse Signed-off-by: Alex Deucher commit 4e872ae2bbb9de838212680c52dcbb85be1e4419 Author: Ilija Hadzic Date: Wed Jan 2 18:27:48 2013 -0500 drm/radeon: consolidate redundant macros and constants After refactoring the _cs logic, we ended up with many macros and constants that #define the same thing. Clean'em up. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 012e976d42d2819c79bdd4ef2843515bdd44e408 Author: Ilija Hadzic Date: Wed Jan 2 18:27:47 2013 -0500 drm/radeon: use common next_reloc function This patch eliminates ASIC-specific ***_cs_packet_next_reloc functions and hooks up the new common function. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit e97169930941c4326dd563578369590a52aec707 Author: Ilija Hadzic Date: Wed Jan 2 18:27:46 2013 -0500 drm/radeon: pull out common next_reloc function next_reloc function does the same thing in all ASICs with the exception of R600 which has a special case in legacy mode. Pull out the common function in preparation for refactoring. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit c3ad63afcdb931159690aa7ba2906079c3b38a13 Author: Ilija Hadzic Date: Wed Jan 2 18:27:45 2013 -0500 drm/radeon: rename r100_cs_dump_packet to radeon_cs_dump_packet This function is not limited to r100, but it can dump a (raw) packet for any ASIC. Rename it accordingly and move its declaration to radeon.h Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit d6e18a3406d401edeb96a01c7bb9d1689454c41b Author: Ilija Hadzic Date: Wed Jan 2 18:27:44 2013 -0500 drm/radeon: add a check to wait_reg_mem command WAIT_REG_MEM on register does not allow the use of PFP. Enforce this restriction when checking packets sent from userland. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 40592a17b8747903be95338f461573916a71d739 Author: Ilija Hadzic Date: Wed Jan 2 18:27:43 2013 -0500 drm/radeon: refactor vline packet parsing function vline packet parsing function for R600 and Evergreen+ are the same, except that they use different registers. Factor out the algorithm into a common function that uses register table passed from ASIC-specific caller. This reduces ASIC-specific function to (trivial) setup of register table and call into the common function. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 9ffb7a6dca4fd260db91c808efd4d5c56057600c Author: Ilija Hadzic Date: Wed Jan 2 18:27:42 2013 -0500 drm/radeon: factor out cs_next_is_pkt3_nop function Once we factored out radeon_cs_packet_parse function, evergreen_cs_next_is_pkt3_nop and r600_cs_next_is_pkt3_nop functions became identical, so they can be factored out into a common function. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit c38f34b53e74dec4e58fef0c895d9e6df7da1190 Author: Ilija Hadzic Date: Wed Jan 2 18:27:41 2013 -0500 drm/radeon: use common cs packet parse function We now have a common radeon_cs_packet_parse function that is good for all ASICs. Hook it up and eliminate ASIC-specific versions. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 4db013110cd3da05e4cf7e1119468817709cb9db Author: Ilija Hadzic Date: Wed Jan 2 18:27:40 2013 -0500 drm/radeon: implement common cs packet parse function CS packet parse functions have a lot of in common across all ASICs. Implement a common function and take care of small differences between families inside the function. This patch is a prep for major refactoring and consolidation of CS parsing code. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 66b3543ef38216bdaf529a207fb495c500eb98be Author: Ilija Hadzic Date: Wed Jan 2 18:27:39 2013 -0500 drm/radeon: fix formatting Preparatory patch: patches to follow will touch a piece of code that had broken indentication, so fix it before touching it. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit d20145043524c4f28d090f5176cf9bf5cc7306c6 Author: Ilija Hadzic Date: Wed Jan 2 18:27:38 2013 -0500 drm/radeon: remove unused prototype from radeon_cs Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 580f839892d659097459eaf3b52fb1af1a83f358 Author: Ilija Hadzic Date: Wed Jan 2 18:27:37 2013 -0500 drm/radeon: remove unecessary assignment length_dw field was assigned twice. While at it, move user_ptr assignment together with all other assignments to p->chunks[i] structure to make the code more readable. Signed-off-by: Ilija Hadzic Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit 3f892b61a8cf6a85bc389c8d13209d686a4f6403 Author: Stanislaw Gruszka Date: Wed Jan 23 12:32:45 2013 +0100 mac80211: improve latency and throughput while software scanning Patch vastly improve latency while scanning. Slight throughput improvements were observed as well. Is intended for improve performance of voice and video applications, when scan is periodically requested by user space (i.e. default NetworkManager behaviour). Patch remove latency requirement based on PM_QOS_NETWORK_LATENCY, this value is 2000 seconds by default (i.e. approximately 0.5 hour !?!). Also remove listen interval requirement, which based on beaconing and depending on BSS parameters. It can make we stay off-channel for a second or more. Instead try to offer the best latency that we could, i.e. be off-channel no longer than PASSIVE channel scan time: 125 ms. That mean we will scan two ACTIVE channels and go back to on-channel, and one PASSIVE channel, and go back to on-channel. Patch also decrease PASSIVE channel scan time to about 110 ms. As drawback patch increase overall scan time. On my tests, when scanning both 2GHz and 5GHz bands, scanning time increase from 5 seconds up to 10 seconds. Since that increase happen only when we are associated, I think it can be acceptable. If eventually better scan time is needed for situations when we lose signal and quickly need to decide to which AP roam, additional scan flag or parameter can be introduced. I tested patch by doing: while true; do iw dev wlan0 scan; sleep 3; done > /dev/null and ping -i0.2 -c 1000 HOST on remote and local machine, results are as below: * Ping from local periodically scanning machine to AP: Unpatched: rtt min/avg/max/mdev = 0.928/24.946/182.135/36.873 ms Patched: rtt min/avg/max/mdev = 0.928/19.678/150.845/33.130 ms * Ping from remote machine to periodically scanning machine: Unpatched: rtt min/avg/max/mdev = 1.637/120.683/709.139/164.337 ms Patched: rtt min/avg/max/mdev = 1.807/26.893/201.435/40.284 ms Throughput measured by scp show following results. * Upload to periodically scanning machine: Unpatched: 3.9MB/s 03:15 Patched: 4.3MB/s 02:58 * Download from periodically scanning machine: Unpatched: 5.5MB/s 02:17 Patched: 6.2MB/s 02:02 Signed-off-by: Stanislaw Gruszka Signed-off-by: Johannes Berg commit 1672c0e31917f49d31d30d79067103432bc20cc7 Author: Johannes Berg Date: Tue Jan 29 15:02:27 2013 +0100 mac80211: start auth/assoc timeout on frame status When sending authentication/association frames they might take a bit of time to go out because we may have to synchronise with the AP, in particular in the case where it's really a P2P GO. In this case the 200ms fixed timeout could potentially be too short if the beacon interval is relatively large. For drivers that report TX status we can do better. Instead of starting the timeout directly, start it only when the frame status arrives. Since then the frame was out on the air, we can wait shorter (the typical response time is supposed to be 30ms, wait 100ms.) Also, if the frame failed to be transmitted try again right away instead of waiting. Signed-off-by: Johannes Berg commit 3ff9a827c683353b9826ef57366b0f313acc21b0 Author: Johannes Berg Date: Tue Jan 29 22:37:48 2013 +0100 cfg80211: remove free_priv BSS API Now that mac80211 no longer uses this API, remove it completely. If anyone needs it again, we can revert this patch of course, but mac80211 was the only user right now. Signed-off-by: Johannes Berg commit 0fe20add2c4b768ba8432ed15635caa46417ede7 Author: Johannes Berg Date: Tue Jan 29 22:37:04 2013 +0100 mac80211: remove unused mesh data from bss These pointers/values are never used, remove them. Signed-off-by: Johannes Berg commit ce9877c0cd68f52e1818f0e175fc7b2f85b0e655 Author: Johannes Berg Date: Tue Jan 29 22:33:30 2013 +0100 mac80211: remove last_probe_resp from bss We track this, but never use it, so we can just remove it. Signed-off-by: Johannes Berg commit c65dd1477b6fe5971489dd8b6e28a07ec277fdd6 Author: Emmanuel Grumbach Date: Wed Dec 12 10:12:24 2012 +0200 mac80211: inform the driver about update of dtim_period Currently, when the driver requires the DTIM period, mac80211 will wait to hear a beacon before association. This behavior is suboptimal since some drivers may be able to deal with knowing the DTIM period after the association, if they get it at all. To address this, notify the drivers with bss_info_changed with the new BSS_CHANGED_DTIM_PERIOD flag when the DTIM becomes known. This might be when changing to associated, or later when the entire association was done with only probe response information. Rename the hardware flag for the current behaviour to IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC to more accurately reflect its behaviour. IEEE80211_HW_NEED_DTIM_PERIOD is no longer accurate as all drivers get the DTIM period now, just not before association. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit fdcb786930777231c81f487ab2526d33971a3438 Author: Johannes Berg Date: Fri Jan 25 00:44:12 2013 +0100 mac80211: remove assoc data "sent_assoc" The field is never used, so remove it. Signed-off-by: Johannes Berg commit cd8f7cb4e6dfa4ea08fc250a814240b883ef7911 Author: Johannes Berg Date: Tue Jan 22 12:34:29 2013 +0100 cfg80211/mac80211: support reporting wakeup reason When waking up from WoWLAN, it is useful to know what triggered the wakeup. Support reporting the wakeup reason(s) in cfg80211 (and a pass-through in mac80211) to allow userspace to know. Signed-off-by: Johannes Berg commit 209d52110a32c2069b5d870504e73fdb0e30fc51 Author: Ville Syrjälä Date: Fri Jan 25 21:44:48 2013 +0200 drm/i915: Set the SR01 "screen off" bit in i915_redisable_vga() too From BSpec / SR01 - Clocking Mode: "The following sequence must be used when disabling the VGA plane. Write SR01 to set bit 5 = 1 to disable video output. Wait for 100us. Disable the VGA plane via Bit 31 of the MMIO VGA control." So simply call i915_disable_vga() from i915_redisable_vga(). Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit fe31b574fb2563f3aaa24dec302ddd0a033cda0f Author: Ville Syrjälä Date: Fri Jan 25 21:44:47 2013 +0200 drm/i915: Kill IS_DISPLAYREG() All display registers should now include the proper offset on VLV. That means IS_DISPLAYREG() is now useless, and we can eliminate it. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 766aa1c42362eafc53f5939cd3f83113e9d062ed Author: Ville Syrjälä Date: Fri Jan 25 21:44:46 2013 +0200 drm/i915: Introduce i915_vgacntrl_reg() The VGACNTRL register has moved around between different platforms. To handle the differences add i915_vgacntrl_reg() which returns the correct offset for the VGACNTRL register. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit d93c6233543cdab83eca4d0590737c3e99314fd6 Author: Changlong Xie Date: Thu Jan 31 11:32:50 2013 +0800 drm/i915: gen6_gmch_remove can be static Signed-off-by: Changlong Xie Reported-by: Fengguang Wu Signed-off-by: Daniel Vetter commit d6dd9eb1d96d2b7345fe4664066c2b7ed86da898 Author: Daniel Vetter Date: Tue Jan 29 16:35:20 2013 -0200 drm/i915: dynamic Haswell display power well support We can disable (almost) all the display hw if we only use pipe A, with the integrated edp transcoder on port A. Because we don't set the cpu transcoder that early (yet), we need to help us with a trick to simply check for any edp encoders. v2: Paulo Zanoni pointed out that we also need to configure the eDP cpu transcoder correctly. v3: Made by Paulo Zanoni - Rebase patch to be on top of "fix intel_init_power_wells" patch - Fix typos - Fix a small bug by adding a "connectors_active" check - Restore the initial code that unconditionally enables the power well when taking over from the BIOS v4: Made by Paulo Zanoni - One more typo spotted by Jani Nikula v5: Made by Paulo Zanoni - Rebase Signed-off-by: Paulo Zanoni Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 693101618a4beedf1b3d291860aee56c5fe44a1c Author: Paulo Zanoni Date: Tue Jan 29 16:35:19 2013 -0200 drm/i915: check the power down well on assert_pipe() If the power well is disabled, we should not try to read its registers, otherwise we'll get "unclaimed register" messages. V2: Don't check whether the power well is enabled or not, just check whether we asked it to be enabled or not: if we asked to disable the power well, don't use the registers on it, even if it's still enabled. V3: Fix bug that breaks all non-Haswell machines. Signed-off-by: Paulo Zanoni Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 10aa17c86f0de1fd902f7b8ee487a3682d7401df Author: Paulo Zanoni Date: Tue Jan 29 16:35:18 2013 -0200 drm/i915: don't send DP "idle" pattern before "normal" on HSW PORT_A The DP_TP_STATUS register for PORT_A doesn't exist. Our documentation will be fixed soon, so the code does not match it for now. This solves "Timed out waiting for DP idle patterns" and "unclaimed register" messages on eDP. V1: Was called "drm/i915: don't read DP_TP_STATUS(PORT_A)" V2: Was called "drm/i915: don't send DP idle pattern before normal pattern on HSW" V3: Only change the code that touches PORT_A. Signed-off-by: Paulo Zanoni Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit d5f21e4072645d0174ed4cc7197e0e30f84f96a2 Author: Daniel Vetter Date: Wed Jan 30 15:59:56 2013 +0100 drm/i915: don't run hsw power well code on !hsw Dumps annoying noise into the dmesg: [drm:intel_set_power_well] *ERROR* Timeout enabling power well Reported-by: Sedat Dilek Cc: Sedat Dilek Cc: Paulo Zanoni Tested-by: Sedat Dilek Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 6b25a88752e8e9dc33c700712059b094d3da3219 Author: Daniel Vetter Date: Wed Jan 30 15:59:57 2013 +0100 drm/i915: kill cargo-culted locking from power well code We may not concurrently change the power wells code. Which is already guaranteed since modesets aren't concurrent. That leaves races against setup/teardown/suspend/resume, and for those we already (try) rather hard not to hit concurrent modesets. No debug WARN_ON added since that would require us to grab the modeset locks in init/suspend code. Which is again just cargo culting since just grabbing the locks in those paths isn't good enough, we need the right order of operations, too. Cc: Paulo Zanoni Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter commit 725a5b54028916cd2511a251c5b5b13d1715addc Author: Chris Wilson Date: Tue Jan 8 11:02:57 2013 +0000 drm/i915: Only run idle processing from i915_gem_retire_requests_worker When adding the fb idle detection to mark-inactive, it was forgotten that userspace can drive the processing of retire-requests. We assumed that it would be principally driven by the retire requests worker, running once every second whilst active and so we would get the deferred timer for free. Instead we spend too many CPU cycles reclocking the LVDS preventing real work from being done. Signed-off-by: Chris Wilson Reported-and-tested-by: Alexander Lam Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58843 Cc: stable@vger.kernel.org Reviewed-by: Rodrigo Vivi Signed-off-by: Daniel Vetter commit f82855d342b6c8483c56e6d2e200a71731509a39 Author: Ben Widawsky Date: Tue Jan 29 12:00:15 2013 -0800 drm/i915: Fix CAGF for HSW The shift changed, hurray. Reported-by: Kenneth Graunke Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Tested-by: Paulo Zanoni Cc: stable@vger.kernel.org Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit e78891ca7648a14dda5760be7b03eba7c628a804 Author: Ben Widawsky Date: Fri Jan 25 16:41:04 2013 -0800 drm/i915: Reclaim GTT space for failed PPGTT When the PPGTT init fails, we may as well reuse the space that we were reserving for the PPGTT PDEs. This also fixes an extraneous mutex_unlock. Reviewed-by: Chris Wilson Signed-off-by: Ben Widawsky Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit a54c0c279f3864171fe53c66e769d5a137c5c651 Author: Ben Widawsky Date: Thu Jan 24 14:45:00 2013 -0800 drm/i915: remove intel_gtt structure With the probe call in our dispatch table, we can now cut away the last three remaining members in the intel_gtt shared struct and so remove it completely. v2: Rebased on top of Daniel's series Signed-off-by: Ben Widawsky Reviewed-by: Damien Lespiau [danvet: bikeshed commit message a bit.] Signed-off-by: Daniel Vetter commit baa09f5fd8a6d033ec075355dda99a65b7f6a0f3 Author: Ben Widawsky Date: Thu Jan 24 13:49:57 2013 -0800 drm/i915: Add probe and remove to the gtt ops The idea, and much of the code came originally from: commit 0712f0249c3148d8cf42a3703403c278590d4de5 Author: Ben Widawsky Date: Fri Jan 18 17:23:16 2013 -0800 drm/i915: Create a vtable for i915 gtt Daniel didn't like the color of that patch series, and so I asked him to start something which appealed to his sense of color. The preceding patches are those, and now this is going on top of that. [extracted from the original commit message] One immediately obvious thing to implement is our gmch probing. The init function was getting massively bloated. Fundamentally, all that's needed from GMCH probing is the GTT size, and the stolen size. It makes design sense to put the mappable calculation in there as well, but the code turns out a bit nicer without it (IMO) The intel_gtt bridge thing is still here, but the subsequent patches will finish ripping that out. Signed-off-by: Ben Widawsky [danvet: Bikeshedded one comment (GMADR is just the PCI aperture, we use it for other things than just accessing tiled surfaces through a linear view) and cut the newly added long lines a bit. Also one checkpatch error.] Signed-off-by: Daniel Vetter commit 3440d265857b411a13ed8f67814a29fa2011cdb3 Author: Daniel Vetter Date: Thu Jan 24 13:49:56 2013 -0800 drm/i915: extract hw ppgtt setup/cleanup code At the moment only cosmetics, but being able to initialize/cleanup arbitrary ppgtt address spaces paves the way to have more than one of them ... Just in case we ever get around to implementing real per-process address spaces. Note that in that case another vfunc for ppgtt would be beneficial though. But that can wait until the code grows a second place which initializes ppgtts. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 960e3e429f0c7d9e27e60cf8fa2f51ada71e717e Author: Daniel Vetter Date: Thu Jan 24 14:44:57 2013 -0800 drm/i915: pte_encode is gen6+ All the other gen6+ hw code has the gen6_ prefix, so be consistent about it. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit def886c3768d24c4e0aa56ff98b5a468c2b5c9bf Author: Daniel Vetter Date: Thu Jan 24 14:44:56 2013 -0800 drm/i915: vfuncs for ppgtt Like for the global gtt we want a notch more flexibility here. Only big change (besides a few tiny function parameter adjustments) was to move gen6_ppgtt_insert_entries up (and remove _sg_ from its name, we only have one kind of insert_entries since the last gtt cleanup). We could also extract the platform ppgtt setup/teardown code a bit better, but I don't care that much. With this we have the hw details of pte writing nicely hidden away behind a bit of abstraction. Which should pave the way for different/multiple ppgtts (e.g. what we need for real ppgtt support). Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 7faf1ab2ff816d6ea9cde099e794a4e18cf13bbc Author: Daniel Vetter Date: Thu Jan 24 14:44:55 2013 -0800 drm/i915: vfuncs for gtt_clear_range/insert_entries We have a few too many differences here, so finally take the prepared abstraction and run with it. A few smaller changes are required to get things into shape: - move i915_cache_level up since we need it in the gt funcs - split up i915_ggtt_clear_range and move the two functions down to where the relevant insert_entries functions are - adjustments to a few function parameter lists Now we have 2 functions which deal with the gen6+ global gtt (gen6_ggtt_ prefix) and 2 functions which deal with the legacy gtt code in the intel-gtt.c fake agp driver (i915_ggtt_ prefix). Init is still a bit a mess, but honestly I don't care about that. One thing I've thought about while deciding on the exact interfaces is a flag parameter for ->clear_range: We could use that to decide between writing invalid pte entries or scratch pte entries. In case we ever get around to fixing all our bugs which currently prevent us from filling the gtt with empty ptes for the truly unused ranges ... Signed-off-by: Daniel Vetter [bwidawsk: Moved functions to the gtt struct] Signed-off-by: Ben Widawsky Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 2f86f1916504525a6fdd6b412374b4ebf1102cbe Author: Ben Widawsky Date: Mon Jan 28 15:32:15 2013 -0800 drm/i915: Error state should print /sys/kernel/debug /sys/kernel/debug has more or less been the standard location of debugfs for several years now. Other parts of DRM already use this location, so we should as well. Signed-off-by: Ben Widawsky Reviewed-by: Carl Worth Reviewed-by: Damien Lespiau [danvet: split up long line.] Signed-off-by: Daniel Vetter commit a65e827dd57b2fd48a698209dd7701eb13e72095 Author: Daniel Vetter Date: Fri Jan 25 17:53:22 2013 +0100 drm/i915: move DP save/restore into i915_ums.c Note that this slightly changes the order, but we only move it within the block of registers that restore encoder state. Specifically LVDS is now restored after DP, whereas previously it was done before. Legacy vga is still restored afterwards, which seems to be the important thing (if there's anything important in this restore ordering at all). Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 44cec74040564cba2ace8c3756d2fc908bc7a373 Author: Daniel Vetter Date: Fri Jan 25 17:53:21 2013 +0100 drm/i915: dont save/restore VGA state for kms The only thing we really care about that it is off. To do so, reuse the recently created i915_redisable_vga function, which is already used to put obnoxious firmware into check on lid reopening. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit d8157a3687323ae5a76f1ecd0fc592b1d87be81b Author: Daniel Vetter Date: Fri Jan 25 17:53:20 2013 +0100 drm/i915: extract ums suspend/resume into i915_ums.c Similarly to how i915_dma.c is shaping up to be the dungeon hole for all things supporting dri1, create a new one to hide all the crazy things which are only really useful for ums support. Biggest part is the register suspend/resume support. Unfortunately a lot of it is still intermingled with bits and pieces we might still need, so needs more analysis and needs to stay in i915_suspend.c for now. Reviewed-by: Imre Deak v2: s/modeset_reg/display_reg/ as suggested by Imre, to avoid confusion between the kernel modeset code and display save/restore to support ums. v3: Fixup alphabetical order in the Makefile, spotted by Chris Wilson. Signed-off-by: Daniel Vetter commit b1e1adfa7d30cd0e8ad9a5c6a89e8c45ebe084f4 Author: Johannes Berg Date: Thu Jan 24 14:14:22 2013 +0100 iwlwifi: add NVM and PHY DB code for new MVM driver The new MVM (multi-virtual MAC) firmware driver requires NVM (non-volatile memory) parsing code and some PHY information database code. Add this separately. Signed-off-by: Johannes Berg commit aa2b17708380ca48946a9ad97907f54032cf48fc Author: Johannes Berg Date: Thu Jan 24 14:12:07 2013 +0100 iwlwifi: fix calibration parser The firmware TLV for calibration data isn't really a u64, but two u32 values. Define a struct for that and change the parser. Signed-off-by: Johannes Berg commit 4a4ee1010dd1e96b6e9a0a5686f2f527385c468e Author: Johannes Berg Date: Thu Jan 24 14:05:43 2013 +0100 iwlwifi: clean up CMD_MODE enum Just format the enum better. Signed-off-by: Johannes Berg commit 99cd471423991fe9ba011e8948cdea95f5432338 Author: Johannes Berg Date: Thu Jan 24 13:52:01 2013 +0100 iwlwifi: add 7000 series device configuration Add configuration and detection code for the new 7000 series, with 7260 and 3160 devices. Signed-off-by: Johannes Berg commit de8d7a53807c8d2bb04b59ff3a0daa225e81a775 Merge: 97c7952 c331997 Author: Johannes Berg Date: Wed Jan 30 21:39:54 2013 +0100 Merge remote-tracking branch 'wireless-next/master' into iwlwifi-next commit c331997b6c9ad7f4b8075e6e60d3caa6e36f5938 Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:09 2013 +0200 wil6210: fix wil_vring_init_tx status In case vring setup with the firmware failed, success status was returned. fix it. Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 2acb4220b264f9d229db01ccc390b8beb37b55af Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:08 2013 +0200 wil6210: Never delete Rx chain with firmware Firmware crash on attempt to delete Rx chain. Driver part of Rx chain removed only in preparation for the target reset; as reset is the only flow that removes Rx chain in the firmware. Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit afda8bb50b950b5ee598e3dd0388b06ad1226eed Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:07 2013 +0200 wil6210: checkpatch warnings Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 7743882d6f59b675809b59b5ac570677c94c426f Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:06 2013 +0200 wil6210: fix checkpatch CamelCase warnings Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit e08b5906ccf323e2ad7b0448329b7cbcfda4c94e Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:05 2013 +0200 wil6210: Reorder reset preparation sequence Disable interrupts first to prevent spurious WMI events arrival Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 56f004b4672972b6c936573eca835ed90787097a Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:04 2013 +0200 wil6210: Separate common code for mbox regs caching to function Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit b98917d742bcf519b15894e78c17f2eb287b3584 Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:03 2013 +0200 wil6210: Fix "don't scan after connect" logic When connect times out, scan was not re-enabled. Strictly say, it is firmware issue - it should issue "disconnect" event but it does not. Compensate in the driver. Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 241804cb7b09d05c1e79735fa51521b211f51fd1 Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:02 2013 +0200 wil6210: Call skb_orphan() right before Rx indication Other parts of Rx path (BACK logic) will need to access associated data Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit cb901733b4d6f6d1f00354f62de7df826cf1dfe8 Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:01 2013 +0200 wil6210: Fix: Tx stall Due to multi-tx-queue design, wil_start_xmit() used to be executed concurrently for different queues. Then, these transmits delivered to the same queue, creating race. As result, Tx descriptor may be skipped, causing stall in hardware. Convert to single Tx queue fixes it. Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 795ce734380b729e076131528e485e98a580d3e8 Author: Vladimir Kondratiev Date: Mon Jan 28 18:31:00 2013 +0200 wil6210: Count Tx statistics on Tx completion This allows to account for Tx errors Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 47e19af9a791d8862cdffb754cc2347b6389d487 Author: Vladimir Kondratiev Date: Mon Jan 28 18:30:59 2013 +0200 wil6210: Refactor rx init/fini Move WMI related operations to wmi.c as helper functions Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 2057ebb2bd5da3aab1603d546f7a019b9a971ee8 Author: Vladimir Kondratiev Date: Mon Jan 28 18:30:58 2013 +0200 wil6210: remove raw wil_dbg() calls Introduce debug category "MISC", convert all raw wil_dbg() to this category. This improves dynamic debug manageability Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 4789d728e5e5e2dbf347d793917523db8776548c Author: Vladimir Kondratiev Date: Mon Jan 28 18:30:57 2013 +0200 wil6210: rearrange IRQ debug printing Make printings from IRQ appears in dmesg in chronological order Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 7269494e12449e8bd4850e69b653562e369558b3 Author: Vladimir Kondratiev Date: Mon Jan 28 18:30:56 2013 +0200 wil6210: Detect FW error In the firmware, added is ability to report internal errors using IRQ. Catch this IRQ and notify user space via netlink User space get notified like (udevadm monitor --kernel --property): KERNEL[12660.320520] change /devices/pci0000:00/0000:00:1c.1/0000:02:00.0/0000:03:01.0/0000:05:00.0/net/wlan12 (net) ACTION=change DEVPATH=/devices/pci0000:00/0000:00:1c.1/0000:02:00.0/0000:03:01.0/0000:05:00.0/net/wlan12 DEVTYPE=wlan EVENT=FW_ERROR IFINDEX=6 INTERFACE=wlan12 SEQNUM=2489 SOURCE=wil6210 SUBSYSTEM=net Signed-off-by: Vladimir Kondratiev Signed-off-by: John W. Linville commit 485f107d341cb1d09e010e0466b02a1ad026f489 Author: Cyril Roelandt Date: Sun Jan 27 23:42:48 2013 +0100 mwifiex: avoid out of bounds access in mwifiex_get_common_rates. Check that the array indexes are in-bounds before accessing the rate2 and tmp arrays. Found with the following semantic patch: @@ identifier t; identifier idx; expression E; statement S; @@ * for (... ; <+... t[idx] ...+> && idx < E ; ...) S Signed-off-by: Cyril Roelandt Acked-by: Bing Zhao Signed-off-by: John W. Linville commit 44ba973699b831414c3f8eef68ee5a7fe1208a05 Author: Larry Finger Date: Sun Jan 27 16:40:34 2013 -0600 rtlwifi: Eliminate two empty routines Signed-off-by: Larry Finger Signed-off-by: John W. Linville commit 44ceaf371b683b0e90cbc0fb111c6d90b87d79cf Author: Guenter Roeck Date: Sun Jan 27 10:55:41 2013 -0800 net: iwlegacy: remove unused variable Fix: drivers/net/wireless/iwlegacy/4965.c: In function ‘il4965_post_associate’: drivers/net/wireless/iwlegacy/4965.c:1751:25: warning: variable ‘conf’ set but not used [-Wunused-but-set-variable] seen when building allmodconfig on x86_64 with W=1 by removing the unused variable. Signed-off-by: Guenter Roeck Signed-off-by: John W. Linville commit 00bcd0d699c7b3c294c1b276709e069b2903bc32 Author: Christian Lamparter Date: Sat Jan 26 22:19:35 2013 +0100 iwlegacy: fix antenna bitmask This patch is based on "iwlwifi: fix antenna bitmask". (362b0563b28506d53) Like the new iwlagn devices, the old 4965N device only supports a maximum of three antennas. Hence only three bits are used, the fourth bit is likely the A-MPDU indicator. Cc: Stanislaw Gruszka Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 5b2e2eccab80e2f56d06df582e473fb0d8630f35 Author: Bing Zhao Date: Fri Jan 25 18:23:00 2013 -0800 mwifiex: do not overwrite error code from lower layer driver Instead of converting it to a bogus error code -1, we should return the original error code from lower layer driver. This error code will be printed so it may give user some clues on what has happened. Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 3220712d3aa4f5df12b7305ce340f6d216a84477 Author: Alexey Khoroshilov Date: Sat Jan 26 00:56:03 2013 +0400 mwifiex: don't return zero on failure paths in mwifiex_pcie_init() If pci_iomap() fails in mwifiex_pcie_init(), it breaks off initialization, deallocates all resources, but returns zero. The patch adds -EIO as return value in this case. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Acked-by: Bing Zhao Signed-off-by: John W. Linville commit baf58b0e8f0e460e252e40f5fdf393b01a3cef7d Author: Anatol Pomozov Date: Fri Jan 25 10:32:30 2013 -0800 rtl8723ae: Fix misspellings sucess->success Signed-off-by: Anatol Pomozov Signed-off-by: John W. Linville commit dcee7438caa409948347c0a3821e3ab6e7459984 Author: Yogesh Ashok Powar Date: Fri Jan 25 16:20:50 2013 +0530 mwl8k: Do not call STA specific cmds not supported by the AP fw While using STA mode in the AP firmware, avoid calling some firmware commands which are not supported by the AP firmware. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit 41bf911910fc41996878afc679c352d89477d626 Author: Yogesh Ashok Powar Date: Fri Jan 25 16:20:42 2013 +0530 mwl8k: Choose interface specific calls on vif type Choose interface specific function calls based on interface type instead of firmware types. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit d994a1c867ed301aaad26f769885d78e599e1daf Author: Yogesh Ashok Powar Date: Fri Jan 25 16:20:35 2013 +0530 mwl8k: Add/Del self entry for AP interface only Add and delete self entry in the firmware sta database for AP interface only. We do not need such an entry for STA interface. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit 751930cb1d6da7b7891d8ffe84877cbf21915e0d Author: Yogesh Ashok Powar Date: Fri Jan 25 16:20:28 2013 +0530 mwl8k: Enable hw encryption for STA mode on AP fw Firmware supports hardware encryption feature for the station interface running on AP firmware. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit af458831c49d634027811b6cf9072cdcd03961e8 Author: Yogesh Ashok Powar Date: Fri Jan 25 16:20:12 2013 +0530 mwl8k: set mac type to MWL8K_MAC_TYPE_SECONDARY_CLIENT Set mac type for station interface on AP firmware as secondary. This allows the firmware to set specific characteristics for the STA interface. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit d59c1cfd7c106f53272143bc3f05b0b15bdd5dfa Author: Yogesh Ashok Powar Date: Fri Jan 25 16:20:03 2013 +0530 mwl8k: Allow adding station interface on AP firmware When user wants to add a station interface when AP firmware is loaded & in-use, allow creating it and also notify user about the same. Allow adding max one STA interface for AP fw. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit 2acdaa7a578cf43566950a6cfb70848ff6607553 Author: Yogesh Ashok Powar Date: Fri Jan 25 16:19:55 2013 +0530 mwl8k: Announce simultaneous AP-STA support on AP fw Specify the STA support in iface_limit and in wihpy->interface_modes Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit a246ac38cdd886bf053f67d5275a20e1a99ff586 Author: Yogesh Ashok Powar Date: Fri Jan 25 16:17:56 2013 +0530 mwl8k: Move tx/rx antenna configuration to mwl8k_probe_hw This avoids calling mwl8k_cmd_rf_antenna functions every time mwl8k_config function is called. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit 0f4316b97d045e9b5b270cafa4b924769699eb3d Author: Yogesh Ashok Powar Date: Fri Jan 25 16:17:45 2013 +0530 mwl8k: Do not call mwl8k_cmd_set_rf_channel unconditionally Avoid calling mwl8k_cmd_set_rf_channel unconditionally by checking IEEE80211_CONF_CHANGE_CHANNEL. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit e882efc96dba0a48adbe460b04d552d9a749a7c0 Author: Yogesh Ashok Powar Date: Fri Jan 25 16:17:32 2013 +0530 mwl8k: Stop bsses before hw specific commands For the commands, that might change the hw characteristics of the PHY device, stop the running bsses and resume them once command is complete. Signed-off-by: Yogesh Ashok Powar Signed-off-by: Nishant Sarmukadam Signed-off-by: John W. Linville commit 4a5fc6d7074de72dd836fbb9c5cd79f9a491871c Author: Chun-Yeow Yeoh Date: Fri Jan 25 12:47:50 2013 +0800 rt2x00: allow AP and mesh mode to operate simultaneously Allow AP and Mesh mode to operate concurrently using single radio. Verify this using fonera 2.0n featuring RT3052 chipset and also TP-LINK TL-WN727N featuring RT5370 chipset. Signed-off-by: Chun-Yeow Yeoh Acked-by: Helmut Schaa Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 92941382e8b80c55a4ad06b88a3bf95110969693 Author: Stanislaw Gruszka Date: Sat Jan 26 18:13:50 2013 +0100 rt2x00: remove NOTICE We use this macro only on 3 places - remove it and replace by other appropriate macros for printing messages. Signed-off-by: Stanislaw Gruszka Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit bb9c298f3193ac5b80e47b325c690700580b6bcf Author: Stanislaw Gruszka Date: Thu Jan 24 22:01:10 2013 +0100 rt2800usb: move "TX status missed" messages to debug level Those messages can flood in dmesg, so do not print them by default. Signed-off-by: Stanislaw Gruszka Acked-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: John W. Linville commit 28f2bce9f8bbf704c86f8c684337f82c51592c81 Author: Stanislaw Gruszka Date: Thu Jan 24 21:59:32 2013 +0100 rt2x00: print warning, notice and info as default Some messages provide useful information, but are disabled without CONFIG_RT2X00_DEBUG=y, so enable them by default Signed-off-by: Stanislaw Gruszka Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit 4ab0b0aa57a794ce299b0192e924379d7353beef Author: Sven Eckelmann Date: Wed Jan 23 20:12:39 2013 +0100 ath9k: Update spectral scan output data The sample data received through the spectral scan can be either in big or little endian byteorder. This information isn't stored in the output file. Therefore it is not possible for the analyzer software to find the correct byte order. It is relative common to get the data from a low end AP in big endian mode and transfer it to another computer in little endian mode to analyze it. Therefore, it would be better to store it in network (big endian) byte order. The extension of the 8 bit bins for each bin to 16 bit is not necessary. This operation can be done in userspace or on a different machine. Instead the max_exp defining the amount of shifting required for each bin is exported to userspace. The change of the output format requires a change of the type in the sample tlv to allow the userspace program to correctly detect the bin format. Reported-by: Zefir Kurtisi Signed-off-by: Sven Eckelmann [siwu@hrz.tu-chemnitz.de: squashed patches, update commit message, rebase, fix endianess bug] Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer Signed-off-by: John W. Linville commit 3a325565c7fa0ba7fd1e319c5fd07665a092fb89 Author: Simon Wunderlich Date: Wed Jan 23 17:38:06 2013 +0100 ath9k: reorder error codes for spectral When using the spectral scan feature, frames with phy errors are returned for further processing to the driver. However, if the frames also have an invalid CRC (which seems to happen quite often), the frame is marked with bad CRC and not with the PHY error bit. The FFT processing function will thus miss the frames. Fix this by changing the precedence in error marking. Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer Signed-off-by: John W. Linville commit 9b99e665f6176500e8ee61d149bbe69544354b40 Author: Simon Wunderlich Date: Wed Jan 23 17:38:05 2013 +0100 ath9k: drop spectral packets after processing them Spectral packets are "bogus" packets and should not be further evaluated by the RX path. Statistics are added to keep track of these packets. Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer Signed-off-by: John W. Linville commit 04ccd4a1a61a2824539e04b5d7f4ee87e8aab0ed Author: Simon Wunderlich Date: Wed Jan 23 17:38:04 2013 +0100 ath9k: add debug parameters for spectral scan Export the various parameters to userspace. Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer Signed-off-by: John W. Linville commit 6ccea75e701d5d452b674dd5550c0caceccb5d56 Author: Avinash Patil Date: Tue Jan 22 16:29:03 2013 -0800 mwifiex: fix invalid access of PCIe RxBD ring buffer descriptor This patch fixes invalid access of RxBD ring buffer descriptor's length and flag inside PCIe send_data_complete() routine. We are supposed to modify TxBD buffer descriptor's length and flag here. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit def64521572d8330bfa6d855e278507100fdf180 Author: Stanislaw Gruszka Date: Tue Jan 22 17:49:14 2013 +0100 rt2x00: print chip and firmware version by default Signed-off-by: Stanislaw Gruszka Tested-by: Xose Vazquez Perez Signed-off-by: John W. Linville commit 29d7b331c73c4f1a8b3f7f4a94abe4eb834be351 Author: Julia Lawall Date: Mon Jan 21 14:02:50 2013 +0100 drivers/net/wireless/iwlegacy/4965-mac.c: adjust duplicate test Delete successive tests to the same location. This looks like simple code duplication. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @s exists@ local idexpression y; expression x,e; @@ *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) ) { ... when forall return ...; } ... when != \(y = e\|y += e\|y -= e\|y |= e\|y &= e\|y++\|y--\|&y\) when != \(XT_GETPAGE(...,y)\|WMI_CMD_BUF(...)\) *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) ) { ... when forall return ...; } // Signed-off-by: Julia Lawall Signed-off-by: John W. Linville commit 1698c6db420bc131d4b34bc39913ee817aa47312 Merge: 20fb9e5 d13f186 Author: John W. Linville Date: Wed Jan 30 14:23:08 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next commit 20fb9e50338199d9e88512703af4c560ab53bad4 Merge: 0f496df 3b4797b Author: John W. Linville Date: Wed Jan 30 14:22:19 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next commit 0f496df2d9ba48faa808b5fa330de0da1a2d29d7 Merge: 56e1bd7 9b008c0 Author: John W. Linville Date: Wed Jan 30 14:21:04 2013 -0500 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next commit f1e7b73acc26e8908af783bcd3a9900fd80688f5 Merge: 218774d fc16e88 Author: David S. Miller Date: Tue Jan 29 15:32:13 2013 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Bring in the 'net' tree so that we can get some ipv4/ipv6 bug fixes that some net-next work will build upon. Signed-off-by: David S. Miller commit 3b144658bc7be5f7fa68d13ba24afb4c24489965 Author: Thomas Pedersen Date: Sat Jan 26 16:39:55 2013 -0800 mac80211: dynamic short slot time for MBSSs The standard mandates mesh STAs to set the ERP Short Slot Time capability info bit in beacons to 0. Even though this is their way of disallowing short slot time for mesh STAs, there should be no harm in enabling it if we determine all STAs in the current MBSS support ERP rates. Increases throughput about 20% for legacy rates when enabled. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 56e1bd770614da94f35e88c150cf9edf8d0b57a2 Merge: 9ebea38 5b37649 Author: John W. Linville Date: Tue Jan 29 14:03:20 2013 -0500 Merge branch 'for-linville' of git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx Conflicts: drivers/net/wireless/ti/wlcore/main.c commit 8dcf011ab05bf1fdd9323a9c460bdd0e325b99e1 Author: Johannes Berg Date: Sat Jan 26 22:16:08 2013 +0100 cfg80211: add SME state to warning in __cfg80211_mlme_disassoc The warning here occasionally triggers but we haven't found the cause yet. It's a valid warning since if it triggers the SME state got confused, so add the SME state to it to help narrow it down in the future. Signed-off-by: Johannes Berg commit 8df6b7b11a5e4200484e9356073d288f08bdefb0 Author: Stanislaw Gruszka Date: Mon Jan 28 14:42:30 2013 +0100 mac80211: remove IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL This is basically a revert of: commit 5b632fe85ec82e5c43740b52e74c66df50a37db3 Author: Stanislaw Gruszka Date: Mon Dec 3 12:56:33 2012 +0100 mac80211: introduce IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL We do not need this flag any longer, rt2x00 BAR/BA problem was fixed correctly by wireless-testing commit: commit 84e9e8ebd369679a958200a8baca96aafb2393bb Author: Helmut Schaa Date: Thu Jan 17 17:34:32 2013 +0100 rt2x00: Improve TX status handling for BlockAckReq frames Signed-off-by: Stanislaw Gruszka Signed-off-by: Johannes Berg commit 448cd55c37dc3ea30705c4826ac3e7dbbcb74aa2 Merge: 3b4797b 9ebea38 Author: Johannes Berg Date: Tue Jan 29 12:16:22 2013 +0100 Merge remote-tracking branch 'wireless-next/master' into HEAD commit 617677295b53a40d0e54aac4cbbc216ffbc755dd Merge: 5c8d1b6 6abb7c2 Author: Jiri Kosina Date: Tue Jan 29 10:48:30 2013 +0100 Merge branch 'master' into for-next Conflicts: drivers/devfreq/exynos4_bus.c Sync with Linus' tree to be able to apply patches that are against newer code (mvneta). commit 2e9723a3e76a050f80064249dac644f86541d3b4 Author: Daniel Vetter Date: Fri Jan 25 17:53:19 2013 +0100 drm/i915: move modeset checks out of save/restore_modeset_reg That way the control flow is clearer, and it prepares the stage to extract these ums functions and hide them somewhere. There's still tons of display stuff outside of these, but that requires more work. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 4205e6ef4ee747aa81930537b6035086ba5f1e28 Merge: cef401d 9ebea38 Author: John W. Linville Date: Mon Jan 28 14:43:00 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem commit 9ebea3829fac7505e0cd2642fbd13cfa9c038831 Merge: c5e818e 83f0c6d Author: John W. Linville Date: Mon Jan 28 13:54:03 2013 -0500 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless Conflicts: drivers/net/wireless/ath/ath9k/main.c drivers/net/wireless/iwlwifi/dvm/tx.c commit 61fd290d213e25d5a119b8ca25644001ed9f8f2d Author: Prashant Gaikwad Date: Fri Jan 11 13:16:26 2013 +0530 ARM: tegra: migrate to new clock code Migrate Tegra clock support to drivers/clk/tegra, this involves moving: 1. definition of tegra_cpu_car_ops to clk.c 2. definition of reset functions to clk-peripheral.c 3. change parent of cpu clock. 4. Remove legacy clock initialization. 5. Initialize clocks using DT. 6. Remove all instance of mach/clk.h Signed-off-by: Prashant Gaikwad [swarren: use to_clk_periph_gate().] Signed-off-by: Stephen Warren commit 41c0b3a88c7bae96d8e2ee60c7ed91f57fd152d7 Author: Ben Widawsky Date: Sat Jan 26 11:52:00 2013 -0800 drm/i915: Implement WaVSRefCountFullforceMissDisable Implements WaVSRefCountFullforceMissDisable as documented in the BSpec 3D workarounds chapter. Cc: Paulo Zanoni Signed-off-by: Ben Widawsky Reviewed-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 3b4797bce0050570e84bedd10e1b14e9320a3551 Author: Thomas Pedersen Date: Sat Jan 26 17:00:02 2013 -0800 mac80211: fix mesh_sta_info_get() reshuffle damage Before "mac80211: clean up mesh sta allocation warning" was applied, mesh_sta_info_get() was reshuffled to please sparse. As a result we neglect to initialize newly created STAs. Fix this. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit cb10799c194369633b183262edc75ec4b3e4e346 Author: Paulo Zanoni Date: Fri Jan 25 16:59:15 2013 -0200 drm/i915: turn on the power well before suspending Our suspend code touches a lot of registers all over the place, so we need to enable the power well before suspending. Signed-off-by: Paulo Zanoni Reviewed-by: Jani Nikula [danvet: Fixup compilation by stealing the header decl from the dynamic power wells patch.] Signed-off-by: Daniel Vetter commit cc464b2a17c59adedbdc02cc54341d630354edc3 Author: Paulo Zanoni Date: Fri Jan 25 16:59:16 2013 -0200 drm/i915: set TRANSCODER_EDP even earlier Instead of setting it at the beginning of haswell_crtc_mode_set, let's set it at the beginning of intel_crtc_mode_set. When intel_crt_mode_set calls drm_vblank_pre_modeset we already need to have the transcoder_edp correctly set, because eventually drm_vblank_pre_modeset calls functions that call i915_pipe_enabled from i915_irq.c, which will read PIPECONF(cpu_transcoder). This is a bug that affects us since we added support for TRANSCODER_EDP, but I was only able to see the problem after suspending a machine with the power well disabled (got an "unclaimed register" error. Signed-off-by: Paulo Zanoni Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 67c964000236497e00c646472cd6b70b5c5109c8 Author: Daniel Vetter Date: Wed Jan 23 16:25:09 2013 +0000 drm/i915: fixup per-crtc locking in intel_release_load_detect_pipe One of the early return cases missed the mutex unlocking. Hilarity ensued. This regression has been introduced in commit 7b24056be6db7ce907baffdd4cf142ab774ea60c Author: Daniel Vetter Date: Wed Dec 12 00:35:33 2012 +0100 drm: don't hold crtc mutexes for connector ->detect callbacks Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59750 Signed-off-by: Daniel Vetter Tested-by: Cancan Feng Signed-off-by: Dave Airlie commit 56e5a3f043f0440cc0cce288e71134d1cb1b44a7 Author: Paulo Zanoni Date: Fri Jan 25 16:59:13 2013 -0200 drm/i915: only disable enabled planes on intel_fb_restore_mode We should avoid touching registers that are on the power down well when we don't need to, because if we touch these registers when the power well is disabled we'll get tons of "unclaimed register" messages. This commit fixes some of these messages. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit fa42e23c1055a4549c433ac56ff869e441c973c8 Author: Paulo Zanoni Date: Fri Jan 25 16:59:11 2013 -0200 drm/i915: fix intel_init_power_wells The current code was wrong in many different ways, so this is a full rewrite. We don't have "different power wells for different parts of the GPU", we have a single power well, but we have multiple registers that can be used to request enabling/disabling the power well. So let's be a good citizen and only use the register we're suppose to use, except when we're loading the driver, where we clear the request made by the BIOS. If any of the registers is requesting the power well to be enabled, it will be enabled. If none of the registers is requesting the power well to be enabled, it will be disabled. For now we're just forcing the power well to be enabled, but in the next commits we'll change this. V2: - Remove debug messages that could be misleading due to possible race conditions with KVMr, Debug and BIOS. - Don't wait on disabling: after a conversaion with a hardware engineer we discovered that the "restriction" on bit 31 is just for the "enable" case, and we don't even need to wait on the "disable" case. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 80a75f7c44c8fd8cf6b271dc20801846bd630349 Author: Ville Syrjälä Date: Thu Jan 24 15:29:33 2013 +0200 drm/i915: SWF screatch registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 56a12a509296c87d6f149be86c6694d312b21d35 Author: Ville Syrjälä Date: Fri Jan 25 21:44:45 2013 +0200 drm/i915: Include display_mmio_offset in sequencer index/data registers SR01 needs to be touched to disable VGA on non-UMS setups too. So the sequencer registers need to include the appripriate offset on VLV. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 67cfc2032b516e44b972abe30209234343e1f145 Author: Ville Syrjälä Date: Fri Jan 25 21:44:44 2013 +0200 drm/i915: Pass VLV_DISPLAY_BASE + reg to intel_{hdmi, dp}_init on VLV When passing the DP/HDMI/SDVO registers to the encoder init functions, include the VLV specific offset in the value. v2: Resolved conflicts w/ VLV SDVO elimination Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 9d5f78fbbf924492001ac7b2915537968906e517 Author: Ville Syrjälä Date: Fri Jan 25 21:44:43 2013 +0200 drm/i915: VLV doesn't have SDVO Don't call intel_sdvo_init() for VLV. Preserve the same behaviour as when intel_sdvo_init() would have returned false. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit ca54b8107f6ad8c161fa102920dd70dfef19cd2e Author: Ville Syrjälä Date: Fri Jan 25 21:44:42 2013 +0200 drm/i915: Always use adpa_reg Instead of using ADPA/VLV_ADPA/PCH_ADPA in various parts of intel_crt code, just use adpa_reg which always contains the correct value for the platform. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit fc2de40986f5a35c02f06dea4221113b3a7a7c3c Author: Ville Syrjälä Date: Fri Jan 25 21:44:41 2013 +0200 drm/i915: PLL registers need an offset on VLV v2: Dropped the clock gating registers Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 422d26b6ecd77af8c77f2a40580679459825170f Merge: 4c271bb 949db15 Author: Greg Kroah-Hartman Date: Fri Jan 25 21:06:30 2013 -0800 Merge 3.8-rc5 into driver-core-next This resolves a gpio driver merge issue pointed out in linux-next. Signed-off-by: Greg Kroah-Hartman commit 9f9cba810f36d16f4e64477e879a69f6c47b389d Merge: dbf5bef 949db15 Author: Greg Kroah-Hartman Date: Fri Jan 25 13:27:36 2013 -0800 Merge 3.8-rc5 into tty-next This resolves a number of tty driver merge issues found in linux-next Signed-off-by: Greg Kroah-Hartman commit d4ed60259e16106566ca489f64ebbd8a379d8972 Author: Thierry Reding Date: Mon Jan 21 11:09:02 2013 +0100 drm: Convert to devm_ioremap_resource() Convert all uses of devm_request_and_ioremap() to the newly introduced devm_ioremap_resource() which provides more consistent error handling. devm_ioremap_resource() provides its own error messages so all explicit error messages can be removed from the failure code paths. Signed-off-by: Thierry Reding Cc: David Airlie Signed-off-by: Greg Kroah-Hartman commit 77765eaf5cfb6b8dd98ec8b54b411d74ff6095f1 Author: Vasanthakumar Thiagarajan Date: Fri Jan 18 11:18:45 2013 +0530 cfg80211/nl80211: add API for MAC address ACLs Add API to enable drivers to implement MAC address based access control in AP/P2P GO mode. Capable drivers advertise this capability by setting the maximum number of MAC addresses in such a list in wiphy->max_acl_mac_addrs. An initial ACL may be given to the NL80211_CMD_START_AP command and/or changed later with NL80211_CMD_SET_MAC_ACL. Black- and whitelists are supported, but not simultaneously. Signed-off-by: Vasanthakumar Thiagarajan [rewrite commit log, many cleanups] Signed-off-by: Johannes Berg commit 6d45a74b1f2e42e41c9931bfb35cdb789d0bb3ea Author: Vasanthakumar Thiagarajan Date: Fri Jan 18 11:18:44 2013 +0530 cfg80211: Move the definition of struct mac_address up struct mac_address will be used by ACL related configuration ops. Signed-off-by: Vasanthakumar Thiagarajan Signed-off-by: Johannes Berg commit fe80123d83d1f9abca426914f768048e601f54db Author: Arnd Bergmann Date: Fri Jan 25 14:14:33 2013 +0000 mac80211: avoid a build warning gcc cannot prove that the value of sdata->vif.type does not change between the switch() statement and the second comparison to NL80211_IFTYPE_AP, causing a harmless warning. Slightly reordering the code makes the warning go away with no functional change. Without this patch, building ARM at91sam9g45_defconfig with gcc-4.6 results in: net/mac80211/tx.c: In function 'ieee80211_subif_start_xmit': net/mac80211/tx.c:1797:22: warning: 'chanctx_conf' may be used uninitialized in this function [-Wuninitialized] Signed-off-by: Arnd Bergmann Cc: Johannes Berg Cc: "John W. Linville" Cc: "David S. Miller" Cc: linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Johannes Berg commit fba5d532d16db812dabaa80fb7570820daa2707b Author: Ville Syrjälä Date: Thu Jan 24 15:29:56 2013 +0200 drm/i915: Set display_mmio_offset for VLV This will cause display registers to include the correct offset on VLV. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit d811215004dbcc213e70eef94541aa10a2258aef Author: Ville Syrjälä Date: Thu Jan 24 15:29:55 2013 +0200 drm/i915: GPIO/GMBUS registers need an offset on VLV GPIO/GMBUS registers must be offset on VLV, so simply adjust gpio_mmio_base to include the correct offset. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 54d9d493ce08a7b106336c7393a7f7d3f2b2d9c0 Author: Ville Syrjälä Date: Thu Jan 24 15:29:53 2013 +0200 drm/i915: DPIO registers are VLV only and need an offset Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit ff7630109978a800481a97d98acab70677c05259 Author: Ville Syrjälä Date: Thu Jan 24 15:29:52 2013 +0200 drm/i915: Spell out VLV_DISPLAY_BASE for interrupt registers Instead of 0x18xxxx use (VLV_DISPLAY_BASE + xxxx). Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 07ec7ec55baec26a3b77d310b0399d2e20f0f67b Author: Ville Syrjälä Date: Thu Jan 24 15:29:51 2013 +0200 drm/i915: Make VLV_GUNIT_CLOCK_GATE register value more readable Instead of 0x18xxxx use (VLV_DISPLAY_BASE + xxxx). Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit d88b2270862087544dd5234d95976db51d8ee5bf Author: Ville Syrjälä Date: Thu Jan 24 15:29:48 2013 +0200 drm/i915: FB_BLC_SELF_VLV is VLV only and needs an offset Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 4b0599854b5669fbbb6c8b9a9463b550718bda11 Author: Ville Syrjälä Date: Thu Jan 24 15:29:47 2013 +0200 drm/i915: Pipe palette registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 4e8e7eb70388c90a2d0ea2ccf951b11c3ec24b3e Author: Ville Syrjälä Date: Thu Jan 24 15:29:46 2013 +0200 drm/i915: Pipe timing registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 67d62c57465e5da7647cb13ef567b80f6deb9a3c Author: Ville Syrjälä Date: Thu Jan 24 15:29:44 2013 +0200 drm/i915: PORT_HOTPLUG registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 7e470abf5488c17b3ca5b5abbd7db12f338cec20 Author: Ville Syrjälä Date: Thu Jan 24 15:29:43 2013 +0200 drm/i915: Panel fitter registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit b41fbda15184e0b4c4e0c0c21737e4abcbaff955 Author: Ville Syrjälä Date: Thu Jan 24 15:29:41 2013 +0200 drm/i915: DPFLIPSTAT and DPINVGTT registers are VLV only and need an offset Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 90f7da3fb5c9988d2ce9e87a35446f8bc9aa5997 Author: Ville Syrjälä Date: Thu Jan 24 15:29:39 2013 +0200 drm/i915: DSPFW registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 8f6d8ee9f6884b8fea026b614d0475177975d066 Author: Ville Syrjälä Date: Thu Jan 24 15:29:38 2013 +0200 drm/i915: VLV_DDL is VLV only and needs an offset Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 9dc33f31f2ed609eb77ddebb82f93c7cdf348879 Author: Ville Syrjälä Date: Thu Jan 24 15:29:37 2013 +0200 drm/i915: Cursor registers need an offset on VLV CURSIZE is not present on VLV, so it was left out, as were the IVB specific cursor B registers. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 0c3870ee585f94650e36918cb29c7dd6b3f3c779 Author: Ville Syrjälä Date: Thu Jan 24 15:29:36 2013 +0200 drm/i915: Pipe registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 895abf0c3c6923c4203630d2288bb1fbe39c39db Author: Ville Syrjälä Date: Thu Jan 24 15:29:35 2013 +0200 drm/i915: Primary plane registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit aab17139a0eec686bad80579f7a5d6969c998392 Author: Ville Syrjälä Date: Thu Jan 24 15:29:32 2013 +0200 drm/i915: PIPE M/N registers need an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit b906487c515711d79e31ceb9fe75738574b5c3a2 Author: Ville Syrjälä Date: Thu Jan 24 15:29:31 2013 +0200 drm/i915: VLV_VIDEO_DIP_CTL is for VLV only Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit f12c47b279ad851f86026b2b142a81f6a63772b9 Author: Ville Syrjälä Date: Thu Jan 24 15:29:30 2013 +0200 drm/i915: Per-pipe PP registers are for VLV only Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit f4ba9f81715ed0ba000750bf8586d097077ce910 Author: Ville Syrjälä Date: Thu Jan 24 15:29:29 2013 +0200 drm/i915: AUD_VID_DID needs an offset on VLV Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 10fce67a971775cfa906eb176e2772938c2aaaf3 Author: Ville Syrjälä Date: Thu Jan 24 15:29:28 2013 +0200 drm/i915: Add display_display_mmio_offset to intel_device_info Add an optional offset to intel_device_info, which will added to most display register offsets. Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 34f2be46c4a4db47aafa1c9e79320723dda7b5e4 Author: Ville Syrjälä Date: Thu Jan 24 15:29:27 2013 +0200 drm/i915: Convert intel_dp to enum port Use intel_dig_port->port rather than intel_dp->output_reg. Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 69fde0a6109eb04d4a32b6a205cff48e9058f16e Author: Ville Syrjälä Date: Thu Jan 24 15:29:26 2013 +0200 drm/i915: Convert intel_hdmi to enum port Use intel_dig_port->port rather than intel_hdmi->sdvox_erg. Signed-off-by: Ville Syrjälä Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 97c7952792018589640ecb3e62e1ab8f06005546 Author: Johannes Berg Date: Thu Jan 24 16:43:48 2013 +0100 iwlwifi: include debugfs.h The iwl-op-mode.h file uses a struct dentry for debugfs so should include debugfs.h. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 8de0add7231f5747f192c1ed35fd792a866c885b Author: Paulo Zanoni Date: Fri Jan 18 18:29:03 2013 -0200 drm/i915: don't save/restore DSPARB on gen5+ Because the register does not exist in gen5+. This patch solves "unclaimed register" messages on Haswell after suspend/resume. Signed-off-by: Paulo Zanoni Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 782d2673655c05a1c0335fe0ee4cb62c23bcc231 Author: Johannes Berg Date: Fri Jan 18 21:21:31 2013 +0100 mac80211: remove redundant check There's no need to have two checks for "associated" in ieee80211_sta_restart(), make the first one locked to not race (unlikely at this point during resume) and remove the second check. Signed-off-by: Johannes Berg commit 683d41ae6755e6ae297ec09603c229795ab9566e Author: Simon Wunderlich Date: Wed Jan 23 15:15:57 2013 +0100 cfg80211: fix channel check in cfg80211_can_use_iftype_chan In commit "cfg80211: check radar interface combinations" a regression was introduced which might lead to NULL dereference if the argument chan = NULL, which might happen in IBSS/wext case (and probably others). Signed-off-by: Simon Wunderlich Signed-off-by: Johannes Berg commit f68d776a04bfcebc426f605c4440ffe38c583a4b Author: Thomas Pedersen Date: Wed Jan 23 12:18:13 2013 -0800 mac80211: support mesh rate updates An existing mesh station entry may change its rate capabilities, so call rate_control_rate_update() to notify the rate control. Signed-off-by: Thomas Pedersen [fix compilation] Signed-off-by: Johannes Berg commit 296fcba3ba1b8888aa8f5211de1e25a78b47aeee Author: Thomas Pedersen Date: Wed Jan 23 12:18:12 2013 -0800 mac80211: clean up mesh sta allocation warning This refactoring fixes a "scheduling while atomic" warning when allocating a mesh station entry while holding the RCU read lock. Fix this by creating a new function mesh_sta_info_get(), which correctly handles the locking and returns under RCU. Also move some unnecessarily #ifdefed mesh station init code from sta_info_alloc() to __mesh_sta_info_alloc(). Signed-off-by: Thomas Pedersen [change code flow to make sparse happy] Signed-off-by: Johannes Berg commit 8147dc7f54f0f2e13c3b65fd9628994ad576610b Author: Johannes Berg Date: Fri Jan 18 23:47:05 2013 +0100 mac80211: fix aggregation state with current drivers For drivers that don't actually flush their queues when aggregation stop with the IEEE80211_AMPDU_TX_STOP_FLUSH or IEEE80211_AMPDU_TX_STOP_FLUSH_CONT reasons is done, like iwlwifi or iwlegacy, mac80211 can then transmit on a TID that the driver still considers busy. This happens in the following way: - IEEE80211_AMPDU_TX_STOP_FLUSH requested - driver marks TID as emptying - mac80211 removes tid_tx data, this can copy packets to the TX pending queues and also let new packets through to the driver - driver gets unexpected TX as it wasn't completely converted to the new API In iwlwifi, this lead to the following warning: WARNING: at drivers/net/wireless/iwlwifi/dvm/tx.c:442 iwlagn_tx_skb+0xc47/0xce0 Tx while agg.state = 4 Modules linked in: [...] Pid: 0, comm: kworker/0:0 Tainted: G W 3.1.0 #1 Call Trace: [] warn_slowpath_common+0x72/0xa0 [] warn_slowpath_fmt+0x33/0x40 [] iwlagn_tx_skb+0xc47/0xce0 [iwldvm] [] iwlagn_mac_tx+0x23/0x40 [iwldvm] [] __ieee80211_tx+0xf6/0x3c0 [mac80211] [] ieee80211_tx+0xd0/0x100 [mac80211] [] ieee80211_xmit+0x96/0xe0 [mac80211] [] ieee80211_subif_start_xmit+0x348/0xc80 [mac80211] [] dev_hard_start_xmit+0x337/0x6d0 [] sch_direct_xmit+0xa9/0x210 [] dev_queue_xmit+0x1b0/0x8e0 Fortunately, solving this problem is easy as the station is being destroyed, so such transmit packets can only happen due to races. Instead of trying to close the race just let the race not reach the drivers by making two changes: 1) remove the explicit aggregation session teardown in the managed mode code, the same thing will be done when the station is removed, in __sta_info_destroy. 2) When aggregation stop with AGG_STOP_DESTROY_STA is requested, leave the tid_tx data around as stopped. It will be cleared and freed in cleanup_single_sta later, but until then any racy packets will be put onto the tid_tx pending queue instead of transmitted which is fine since the station is being removed. Signed-off-by: Johannes Berg commit 887da9176e011a044b12ec0deff62df5faadd67c Author: Emmanuel Grumbach Date: Sun Jan 20 17:32:41 2013 +0200 mac80211: provide the vif in rssi_callback Since drivers can support several BSS / P2P Client interfaces, the rssi callback needs to inform the driver about the interface teh rssi event relates to. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit d13f1862c0ad892eded4cdf633ab32bc993cc1d9 Author: Emmanuel Grumbach Date: Wed Jan 23 10:59:29 2013 +0200 iwlwifi: provide RX page order When the pages are to be used by front-end, it may need to know the page order, provide it. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 128e63ef077ef7ccd9c5779bbdce566641714666 Author: Johannes Berg Date: Mon Jan 21 21:39:26 2013 +0100 iwlwifi: update copyright Update Copyright notices to 2013. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit edb37a95c58147f89713e6c5cd220fa8fdfb4833 Author: Steffen Trumtrar Date: Sun Oct 28 18:28:06 2012 +0100 drm_modes: add of_videomode helpers Add helper to get drm_display_mode from devicetree. Signed-off-by: Steffen Trumtrar Reviewed-by: Thierry Reding Acked-by: Thierry Reding Tested-by: Thierry Reding Tested-by: Philipp Zabel Reviewed-by: Laurent Pinchart Acked-by: Laurent Pinchart Tested-by: Afzal Mohammed Tested-by: Rob Clark Tested-by: Leela Krishna Amudala commit ebc64e453857e93b230881f48126257be9aa8830 Author: Steffen Trumtrar Date: Wed Nov 14 11:22:52 2012 +0100 drm_modes: add videomode helpers Add conversion from videomode to drm_display_mode Signed-off-by: Steffen Trumtrar Reviewed-by: Thierry Reding Acked-by: Thierry Reding Tested-by: Thierry Reding Tested-by: Philipp Zabel Reviewed-by: Laurent Pinchart Acked-by: Laurent Pinchart Tested-by: Afzal Mohammed Tested-by: Rob Clark Tested-by: Leela Krishna Amudala commit 9b008c0457e583e10e62d1215bed6ab26ee54906 Author: Johan Hedberg Date: Tue Jan 22 14:02:01 2013 +0200 Bluetooth: Add support for reading LE supported states The LE supported states indicate the states and state combinations that the link layer supports. This is important information for knowing what operations are possible when dealing with multiple connected devices. This patch adds reading of the supported states to the HCI init sequence. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit cf1d081f6597a45e5ff63f55c893494a8ae1cdaf Author: Johan Hedberg Date: Tue Jan 22 14:02:00 2013 +0200 Bluetooth: Add support for reading LE White List Size The LE White List Size is necessary to be known before attempting to feed the controller with any addresses intended for the white list. This patch adds the necessary HCI command sending to the HCI init sequence. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 60e77321985ab599fac010afdc465c3e30281a06 Author: Johan Hedberg Date: Tue Jan 22 14:01:59 2013 +0200 Bluetooth: Add LE Local Features reading support To be able to make the appropriate decisions for some LE procedures we need to know the LE features that the local controller supports. Therefore, it's important to have the LE Read Local Supported Features HCI comand as part of the HCI init sequence. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 5d0846d416a6c8b7fda1b24aa7369818a7dfa00e Author: Johan Hedberg Date: Sun Jan 20 14:27:22 2013 +0200 Bluetooth: Fix returning proper cmd_complete for mgmt_block/unblock The Block/Unblock Device Management commands should return Command Complete instead of Command Status whenever possible so that user space can distinguish exactly which command failed in the case of multiple commands. This patch does the necessary changes in the command handler to return the right event to user space. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 06a63b19e9eb90402e465d60d4c2564afd3ca211 Author: Johan Hedberg Date: Sun Jan 20 14:27:21 2013 +0200 Bluetooth: Fix returning proper cmd_complete for mgmt_disconnect The Disconnect Management command should return Command Complete instead of Command Status whenever possible so that user space can distinguish exactly which command failed in the case of multiple commands. This patch does the necessary changes in the disconnect command handler to return the right event to user space. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 118da70b760f04bb2b8130ced97a9f9cc173440a Author: Johan Hedberg Date: Sun Jan 20 14:27:20 2013 +0200 Bluetooth: Fix checking for valid disconnect parameters in unpair_device The valid values for the Disconnect parameter in the Unpair Device command are 0x00 and 0x01. If any other value is encountered the command should fail with the appropriate invalid params response. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 4ee71b2017336f68128515bdbe7c946a39aa9250 Author: Johan Hedberg Date: Sun Jan 20 14:27:19 2013 +0200 Bluetooth: Fix checking for valid address type values in mgmt commands This patch adds checks for valid address type values passed to mgmt commands. If an invalid address type is encountered the code will return a proper invalid params response. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 44b20d33962a73ca14b934540e9168e0da1b49ab Author: Johan Hedberg Date: Sun Jan 20 14:27:17 2013 +0200 Bluetooth: Check for valid key->authenticated value for LTKs This patch adds necessary checks for the two allowed values of the authenticated parameter of each Long Term Key, i.e. 0x00 and 0x01. If any other value is encountered the valid response is to return invalid params to user space. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 3f706b7205456c90cdc91e21eab36e2fcf4a8bce Author: Johan Hedberg Date: Sun Jan 20 14:27:16 2013 +0200 Bluetooth: Refactor valid LTK data testing into its own function This patch refactors valid LTK data testing into its own function. This will help keep the code readable since there are several tests still missing that need to be done on the LTK data. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 54ad6d8a5afe1a6d162d8d229a3d8fc48b254d24 Author: Johan Hedberg Date: Sun Jan 20 14:27:15 2013 +0200 Bluetooth: Fix checking for proper key->master value in Load LTKs The allowed values for the key->master parameter in the Load LTKs command are 0x00 and 0x01. If there is a key in the list with some other value the command should fail with a proper invalid params response. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit e57e619f463e7841940ef1b98969e23f71f5ee8a Author: Johan Hedberg Date: Sun Jan 20 14:27:14 2013 +0200 Bluetooth: Fix returning proper mgmt status for Load LTKs Failures of mgmt commands should be indicated with valid mgmt status codes, and EINVAL is not one of them. Instead MGMT_STATUS_INVALID_PARAMS should be returned. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 4ae14301c3b180adaf6b72285499e7404819a023 Author: Johan Hedberg Date: Sun Jan 20 14:27:13 2013 +0200 Bluetooth: Fix checking for correct mgmt_load_link_keys parameters The debug_keys parameter is only allowed to have the values 0x00 and 0x01. Any other value should result in a proper command status with MGMT_STATUS_INVALID_PARAMS. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit f950a30e2433f049c17fc47caced1397d25373a6 Author: Szymon Janc Date: Fri Jan 18 12:48:07 2013 +0100 Bluetooth: Fix pair device command reply if adapter is powered off According to Bluetooth Management API specification Pair Device Command should generate command complete event on both success and failure. This fix replying with command status (which lacks address info) when adapter is powered off. Signed-off-by: Szymon Janc Acked-by: Johan Hedberg Signed-off-by: Gustavo Padovan commit fe038884a83b85f2bb61c77609eacb5cf613d3fb Author: Johan Hedberg Date: Wed Jan 16 16:15:34 2013 +0200 Bluetooth: Fix Class of Device indication when powering off When a HCI device is powered off the Management interface specification dictates that the class of device value is indicated as zero. This patch fixes sending of the appropriate class of device changed event when a HCI device is powered off. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit c00db2463978ffab59d731773aae1a4f4e11d78c Author: Daniel Vetter Date: Tue Jan 22 15:33:27 2013 +0100 drm/i915: fixup sbi_read/write locking commit 09153000b8ca32a539a1207edebabd0d40b6c61b Author: Daniel Vetter Date: Wed Dec 12 14:06:44 2012 +0100 drm/i915: rework locking for intel_dpio|sbi_read|write reworked the locking around sbi_read/write functions for 3.8-fixes. But commit dde86e2db54545ef981b64805097a7b4c3156d6e Author: Paulo Zanoni Date: Sat Dec 1 12:04:25 2012 -0200 drm/i915: add lpt_init_pch_refcl Added new use-cases in the -next tree which has not been updated in the merge. Fix it up. Reported-by: Ben Widawsky Reviewed-by: Ben Widawsky Tested-by: Ben Widawsky Signed-off-by: Daniel Vetter commit c5e818ef081c4144177fdbdeed154332cd7e4d7a Author: Felix Fietkau Date: Sun Jan 20 18:51:59 2013 +0100 ath9k_hw: remove a useless WARN_ON &ah->curchan->ani can never be NULL Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 9dbac67da314ccdab3bb7f429b4936e59d5389b7 Author: Felix Fietkau Date: Sun Jan 20 18:51:58 2013 +0100 ath9k_hw: reduce struct ar5416AniState size It is kept per-channel, so removing unnecessary (or constant) fields from it can save quite a bit of memory. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit f5ffe23aa0a8f6512952cf393daf86cbd6e4685d Author: Felix Fietkau Date: Sun Jan 20 18:51:57 2013 +0100 ath9k_hw: remove ath9k_hw_ani_setup and its variables They are no longer needed for ANI functionality Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 0166b4beec575f9740b7a0843675173c2e00cdbc Author: Felix Fietkau Date: Sun Jan 20 18:51:55 2013 +0100 ath9k_hw: make the initval parameter to ath9k_hw_write_array const Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 81b519504f3b2e72c8ff282a03ecc01879f28e31 Author: Felix Fietkau Date: Sun Jan 20 18:51:54 2013 +0100 ath9k: use ath_tx_process_buffer instead of open-coding similar code Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 1381559ba48a04ca7c98f1b4c487bd44d0b75db5 Author: Felix Fietkau Date: Sun Jan 20 18:51:53 2013 +0100 ath9k: clean up processing of pending tx frames on reset Dropping packets from aggregation sessions is usually not a good idea, as it might upset the synchronization of the BlockAck receive window of the remote node. The use of the retry_tx parameter to reset/tx-drain functions also seemed a bit arbitrary. This patch removes this parameter altogether and ensures that pending tx frames are not dropped for no good reason. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 0a62acb1c9da58b54cb1c9fa6604a36507a61d48 Author: Felix Fietkau Date: Sun Jan 20 18:51:52 2013 +0100 ath9k: stop rx after tx Completing frame transmission can fail if the rx engine is stopped prematurely, as the hw might be waiting for an ACK from the other side. Shutting down tx before rx might make the DMA shutdown more reliable. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit eee569e403861392dc693ab984ede5f0610dde29 Author: Cong Ding Date: Sat Jan 19 13:56:36 2013 +0100 net: wireless/rtlwifi: fix uninitialized variable issue The use of variable packet_beacon might be uninitialized in the three files. Signed-off-by: Cong Ding Signed-off-by: John W. Linville commit 662845057f2d063461c88a97b737ec7f66daece0 Author: Alexey Khoroshilov Date: Sat Jan 19 16:56:34 2013 +0400 iwlegacy: don't return zero on failure paths in il4965_pci_probe() If hardware is not ready, il4965_pci_probe() breaks off initialization, deallocates all resources, but returns zero. The patch adds -EIO as return value in this case. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: John W. Linville commit a2ca8ecb8ffc985e82c9570c3837408f7efe8c9d Author: Alexey Khoroshilov Date: Sat Jan 19 01:24:01 2013 +0400 mwl8k: don't return zero on failure paths in mwl8k_probe[_hw]() If pci_iomap() fails in mwl8k_probe(), it breaks off initialization, deallocates all resources, but returns zero. There is a similar issue when priv->rxd_ops is NULL in mwl8k_probe_hw(). The patch adds proper error code return values. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: John W. Linville commit 7532c7d0138a4984eb0c8b12b9c310cf8a6d6977 Author: Amitkumar Karwar Date: Thu Jan 17 17:41:57 2013 -0800 mwifiex: correction in status codes used for association failure When AP responds with appropriate status code, we forward that code correctly to cfg80211. But sometimes when there is no response from AP, our firmware uses proprietary status codes. We will map authentication timeout to WLAN_STATUS_AUTH_TIMEOUT and other proprietary codes to WLAN_STATUS_UNSPECIFIED_FAILURE. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 84e9e8ebd369679a958200a8baca96aafb2393bb Author: Helmut Schaa Date: Thu Jan 17 17:34:32 2013 +0100 rt2x00: Improve TX status handling for BlockAckReq frames Since rt2800 hardware isn't capable of reporting the TX status of BlockAckReq frames implement the TX status handling of BARs in rt2x00lib. We keep track of all BARs that are send out and try to match incoming BAs to the appropriate BARs. This allows us to report a more or less accurate TX status for BAR frames which in turn improves BA session stability. This is loosley based on Christian Lamparter's patch for carl9170 "carl9170: fix HT peer BA session corruption". We have to walk the list of pending BARs for every rx'red BA even though most BAs don't belong to any of these BARs as they are just acknowledging an AMPDU. To keep that overhead low use RCU which allows us to walk the list of pending BARs without the need to acquire a lock. This however requires us to _copy_ relevant information from the BAR (RA, TA, control field, start sequence number) into our BAR list entry. Signed-off-by: Helmut Schaa Tested-by: Andreas Hartmann Acked-by: Gertjan van Wingerde Signed-off-by: John W. Linville commit f49aabf816afa5913e5001bd1db1c3efb4c6e19e Author: Dan Carpenter Date: Sun Jan 13 23:03:42 2013 +0300 prism54: bug in getting auth type There is a missing break statement so SHARED_KEY authentication doesn't work. Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit e03e8ddbfd1f04fc1437e5e3e7a8ec05a1355c5f Author: Dan Carpenter Date: Sun Jan 20 19:31:30 2013 +0300 b43: N-PHY: fix gain in b43_nphy_get_gain_ctl_workaround_ent() There were no break statements in this switch statement so everything used the default settings. Per Walter Harms's suggestion, I've replaced the switch statement and done a little cleanup. Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit 708d019fd1d2d1bf184e797ebe934c90a6527d50 Author: Chen Gang Date: Tue Jan 8 13:33:03 2013 +0800 drivers/net/wireless: need consider the not '\0' terminated string. in ray_cs.c: the a_current_ess_id is "Null terminated unless ESSID_SIZE long" so we need buffer it with '\0' firstly, before using strlen or %s. additional information: in drivers/net/wireless/rayctl.h: "NULL terminated unless 32 long" is a comment at line 616, 664 ESSID_SIZE is 32, at line 190 in include/uapi/linux/wireless.h: IW_ESSID_MAX_SIZE is also 32 in drivers/net/wireless/ray_cs.c: use strncpy for it, without '\0' terminated, at line 639 use memcpy for it, assume not '\0' terminated in line 1092..1097 buffer it with '\0' firstly, before using %s, in line 2576, 2598..2600 Signed-off-by: Chen Gang Signed-off-by: John W. Linville commit 6aaacd861517f89797f2f4a54624a599847262f3 Author: Felix Fietkau Date: Sun Jan 13 19:54:58 2013 +0100 ath9k_hw: fix RF bank initialization ar900*_init_mode_regs needs to be called before RF banks are allocated, otherwise the storage size of RF banks isn't known. This patch fixes a memory overrun that can show up as a crash on unloading the module. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit 066433a6fa9249db2117adcda330a34ae99814b7 Merge: aa3c90b 5a32aff Author: John W. Linville Date: Tue Jan 22 15:40:56 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next commit aa3c90b89045b532418feb3eca6ca258920bf702 Merge: 660b9ca 1c3fea8 Author: John W. Linville Date: Tue Jan 22 15:39:51 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next commit 6cba014857f48e28d8ef59efcb37f66adc761055 Author: Kees Cook Date: Tue Jan 22 10:30:44 2013 -0800 drivers/net/wireless/rtlwifi: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. Cc: Larry Finger Cc: Chaoming Li Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 73272db9d4a61be50b1ac3b3ed970ce124a2e1e9 Author: Kees Cook Date: Tue Jan 22 10:30:43 2013 -0800 drivers/net/wireless/zd1211rw: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Ulrich Kunitz Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit a4b4d2148c675017fe44631189ee89c086681bd7 Author: Kees Cook Date: Tue Jan 22 10:30:42 2013 -0800 drivers/net/wireless/rtl818x: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit a716ff169b54cfa8232a5e9dd0cd3629c69b7dde Author: Kees Cook Date: Tue Jan 22 10:30:41 2013 -0800 drivers/net/wireless/rt2x00: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Ivo van Doorn CC: Gertjan van Wingerde CC: Helmut Schaa Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Acked-by: Gertjan van Wingerde Acked-by: Ivo van Doorn Signed-off-by: Greg Kroah-Hartman commit ce15ffbeb94d92c20ccade96b9058b05beb26531 Author: Kees Cook Date: Tue Jan 22 10:30:40 2013 -0800 drivers/net/wireless/p54: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. Acked-by: Christian Lamparter Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 23681908b5d41f5aa9ec61579dcd5018db6921ea Author: Kees Cook Date: Tue Jan 22 10:30:39 2013 -0800 drivers/net/wireless/ipw2x00: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Stanislav Yakovlev Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit afd19ef0b1a98f420ddcfc619182fd589034577f Author: Kees Cook Date: Tue Jan 22 10:30:38 2013 -0800 drivers/net/wireless/b43: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Stefano Brivio Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 49f82162ea82ec90347a55923cdf6c08318f5949 Author: Kees Cook Date: Tue Jan 22 10:30:37 2013 -0800 drivers/net/wireless/ath/carl9170: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Christian Lamparter Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 33fd8fe9857eb7ca8bdfa08e9bb26af5d36a3e29 Author: Kees Cook Date: Tue Jan 22 10:30:36 2013 -0800 drivers/net/wireless/ath/ath6kl: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Kalle Valo Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 798f4e5eaae27805ebee14becc832fa5ad54046c Author: Kees Cook Date: Tue Jan 22 10:30:35 2013 -0800 drivers/net/wireless: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. Acked-by: John W. Linville Acked-by: David S. Miller Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 7b9f35a6dd72f89452c58bbdbaf063027bf857ec Author: Wang Xingchao Date: Tue Jan 22 23:25:25 2013 +0800 drm/i915: HDMI/DP - ELD info refresh support for Haswell ELD info should be updated dynamically according to hot plug event. For haswell chip, clear/set the eld valid bit and output enable bit from callback intel_disable/eanble_ddi(). Reviewed-by: Ville Syrjälä Reviewed-by: Rodrigo Vivi Signed-off-by: Wang Xingchao Signed-off-by: Daniel Vetter commit 99433931950f33039d9e1a52b4ed9af3f1b58e84 Author: Mika Kuoppala Date: Tue Jan 22 14:12:17 2013 +0200 drm/i915: use gem_set_seqno() on hardware init When machine was rebooted or module was reloaded, gem_hw_init() set last_seqno to be identical to next_seqno. This lead to situation that waits for first ever request always passed immediately regardless if it was actually executed. Use gem_set_seqno() to be consistent how hw is initialized on init, wrap and on resume. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 5559ecadad5a73b27f863e92f4b4f369501dce6f Author: Jani Nikula Date: Tue Jan 22 12:50:36 2013 +0200 drm/i915: add quirk to invert brightness on Packard Bell NCL20 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44156 Reported-by: Alan Zimmerman Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter commit 01e3a8feb40e54b962a20fa7eb595c5efef5e109 Author: Jani Nikula Date: Tue Jan 22 12:50:35 2013 +0200 drm/i915: add quirk to invert brightness on eMachines e725 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=31522#c35 [Note: There are more than one broken setups in the bug. This fixes one.] Reported-by: Martins Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter commit 1ffff60320879830e469e26062c18f75236822ba Author: Jani Nikula Date: Tue Jan 22 12:50:34 2013 +0200 drm/i915: add quirk to invert brightness on eMachines G725 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=59628 Reported-by: Roland Gruber Signed-off-by: Jani Nikula Signed-off-by: Daniel Vetter commit e11847b18402ded98e06fb7e9520603a3626bfb7 Author: Kees Cook Date: Wed Jan 16 18:53:36 2013 -0800 drivers/gpu/drm/mgag200: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Dave Airlie Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit c97fc5fbd38cfb6084072af19463092d0d2316be Author: Kees Cook Date: Wed Jan 16 18:53:35 2013 -0800 drivers/gpu/drm/gma500: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Dave Airlie CC: Alan Cox CC: "Kirill A. Shutemov" Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 38ccbfbdc10c5b99158168a6a0955db3bf1aa3ee Author: Kees Cook Date: Wed Jan 16 18:53:33 2013 -0800 drivers/gpu/drm/ast: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Dave Airlie Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit 7db0ba242b3a7ddcfc1450bc50eb3102c68f0244 Author: Daniel Vetter Date: Thu Dec 6 16:23:37 2012 +0100 drm/i915: clarify concurrent hang detect/gpu reset consistency Damien Lespiau wondered how race the gpu reset/hang detection code is against concurrent gpu resets/hang detections or combinations thereof. Luckily the single work item is guranteed to never run concurrently, so reset handling is already single-threaded. Hence we only have to worry about concurrent hang detections, or a hang detection firing off while we're still processing an older gpu reset request. Due to the new mechanism of setting the reset in progress flag and the ordering guaranteed by the schedule_work function there's nothing to do but add a comment explaining why we're safe. The only thing I've noticed is that we still try to reset the gpu now, even when it is declared terminally wedged. Add a check for that to avoid continous warnings about failed resets, in case the hangcheck timer ever gets stuck. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit f69061bedd6ea63f271fe97914364def2f33fc6b Author: Daniel Vetter Date: Thu Dec 6 09:01:42 2012 +0100 drm/i915: create a race-free reset detection With the previous patch the state transition handling of the reset code itself is now (hopefully) race free and solid. But that still leaves out everyone else - with the various lock-free wait paths we have there's the possibility that the reset happens between the point where we read the seqno we should wait on and the actual wait. And if __wait_seqno then never sees the RESET_IN_PROGRESS state, we'll happily wait for a seqno which will in all likelyhood never signal. In practice this is not a big problem since the X server gets constantly interrupted, and can then submit more work (hopefully) to unblock everyone else: As soon as a new seqno write lands, all waiters will unblock. But running the i-g-t reset testcase ZZ_hangman can expose this race, especially on slower hw with fewer cpu cores. Now looking forward to ARB_robustness and friends that's not the best possible behaviour, hence this patch adds a reset_counter to be able to detect any reset, even if a given thread never observed the in-progress state. The important part is to correctly order things: - The write side needs to increment the counter after any seqno gets reset. Hence we need to do that at the end of the reset work, and again wake everyone up. We also need to place a barrier in between any possible seqno changes and the counter increment, since any unlock operations only guarantee that nothing leaks out, but not that at later load operation gets moved ahead. - On the read side we need to ensure that no reset can sneak in and invalidate the seqno. In all cases we can use the one-sided barrier that unlock operations guarantee (of the lock protecting the respective seqno/ring pair) to ensure correct ordering. Hence it is sufficient to place the atomic read before the mutex/spin_unlock and no additional barriers are required. The end-result of all this is that we need to wake up everyone twice in a reset operation: - First, before the reset starts, to get any lockholders of the locks, so that the reset can proceed. - Second, after the reset is completed, to allow waiters to properly and reliably detect the reset condition and bail out. I admit that this entire reset_counter thing smells a bit like overkill, but I think it's justified since it makes it really explicit what the bail-out condition is. And we need a reset counter anyway to implement ARB_robustness, and imo with finer-grained locking on the horizont this is the most resilient scheme I could think of. v2: Drop spurious change in the wait_for_error EXIT_COND - we only need to wait until we leave the reset-in-progress wedged state. v3: Don't play tricks with barriers in the throttle ioctl, the spin_unlock is barrier enough. I've also considered using a little helper to grab the current reset_counter, but then decided that hiding the atomic_read isn't a great idea, since having it explicitly show up in the code is a nice remainder to reviews to check the memory barriers. v4: Add a comment to explain why we need to fall through in __wait_seqno in the end variable assignments. v5: Review from Damien: - s/smb/smp/ in a comment - don't increment the reset counter after we've set it to WEDGED. Now we (again) properly wedge the gpu when the reset fails. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 735dc0d1e29329ff34ec97f66e130cce481c9607 Merge: bac4b7c 20c60c3 Author: Dave Airlie Date: Mon Jan 21 07:44:58 2013 +1000 Merge branch 'drm-kms-locking' of git://people.freedesktop.org/~danvet/drm-intel into drm-next The aim of this locking rework is that ioctls which a compositor should be might call for every frame (set_cursor, page_flip, addfb, rmfb and getfb/create_handle) should not be able to block on kms background activities like output detection. And since each EDID read takes about 25ms (in the best case), that always means we'll drop at least one frame. The solution is to add per-crtc locking for these ioctls, and restrict background activities to only use the global lock. Change-the-world type of events (modeset, dpms, ...) need to grab all locks. Two tricky parts arose in the conversion: - A lot of current code assumes that a kms fb object can't disappear while holding the global lock, since the current code serializes fb destruction with it. Hence proper lifetime management using the already created refcounting for fbs need to be instantiated for all ioctls and interfaces/users. - The rmfb ioctl removes the to-be-deleted fb from all active users. But unconditionally taking the global kms lock to do so introduces an unacceptable potential stall point. And obviously changing the userspace abi isn't on the table, either. Hence this conversion opportunistically checks whether the rmfb ioctl holds the very last reference, which guarantees that the fb isn't in active use on any crtc or plane (thanks to the conversion to the new lifetime rules using proper refcounting). Only if this is not the case will the code go through the slowpath and grab all modeset locks. Sane compositors will never hit this path and so avoid the stall, but userspace relying on these semantics will also not break. All these cases are exercised by the newly added subtests for the i-g-t kms_flip, tested on a machine where a full detect cycle takes around 100 ms. It works, and no frames are dropped any more with these patches applied. kms_flip also contains a special case to exercise the above-describe rmfb slowpath. * 'drm-kms-locking' of git://people.freedesktop.org/~danvet/drm-intel: (335 commits) drm/fb_helper: check whether fbcon is bound drm/doc: updates for new framebuffer lifetime rules drm: don't hold crtc mutexes for connector ->detect callbacks drm: only grab the crtc lock for pageflips drm: optimize drm_framebuffer_remove drm/vmwgfx: add proper framebuffer refcounting drm/i915: dump refcount into framebuffer debugfs file drm: refcounting for crtc framebuffers drm: refcounting for sprite framebuffers drm: fb refcounting for dirtyfb_ioctl drm: don't take modeset locks in getfb ioctl drm: push modeset_lock_all into ->fb_create driver callbacks drm: nest modeset locks within fpriv->fbs_lock drm: reference framebuffers which are on the idr drm: revamp framebuffer cleanup interfaces drm: create drm_framebuffer_lookup drm: revamp locking around fb creation/destruction drm: only take the crtc lock for ->cursor_move drm: only take the crtc lock for ->cursor_set drm: add per-crtc locks ... commit 20c60c35de3285222b3476c3445c66bedf0c449c Author: Daniel Vetter Date: Mon Dec 17 12:13:23 2012 +0100 drm/fb_helper: check whether fbcon is bound We need to make sure that the fbcon is still bound when touching the hw, since otherwise we might corrupt the modeset state of kms clients. X mostly works around that with VT switching and setting the VT into raw mode, which disables most fbcon events. Raw kms test programs though don't do that dance, and in the future we might want to aim to abolish CONFIG_VT anyway. So improve preventive measures a bit. To do so, extract the existing logic for handling hotplug events (which X can't block with the current set of tricks) and reuse it for the fbdev blanking helper. Long-term we really need to either scrap this all and only have a OOPS console, or come up with a saner model for device ownership sharing between fbdev/fbcon and kms userspace. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 7b24056be6db7ce907baffdd4cf142ab774ea60c Author: Daniel Vetter Date: Wed Dec 12 00:35:33 2012 +0100 drm: don't hold crtc mutexes for connector ->detect callbacks The coup de grace of the entire journey. No more dropped frames every 10s on my testbox! I've tried to audit all ->detect and ->get_modes callbacks, but things became a bit fuzzy after trying to piece together the umpteenth implemenation. Afaict most drivers just have bog-standard output register frobbing with a notch of i2c edid reading, nothing which could potentially race with the newly concurrent pageflip/set_cursor code. The big exception is load-detection code which requires a running pipe, but radeon/nouveau seem to to this without touching any state which can be observed from page_flip (e.g. disabled crtcs temporarily getting enabled and so a pageflip succeeding). The only special case I could find is the i915 load detect code. That uses the normal modeset interface to enable the load-detect crtc, and so userspace could try to squeeze in a pageflip on the load-detect pipe. So we need to grab the relevant crtc mutex in there, to avoid the temporary crtc enabling to sneak out and be visible to userspace. Note that the sysfs files already stopped grabbing the per-crtc locks, since I didn't want to bother with doing a interruptible modeset_lock_all. But since there's very little in-between breakage (essentially just the ability for userspace to pageflip on load-detect crtcs when it shouldn't on the i915 driver) I figured I don't need to bother. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit b4d5e7d1dbdd6a758a4f7717beef7bd6b007bd66 Author: Daniel Vetter Date: Tue Dec 11 16:59:31 2012 +0100 drm: only grab the crtc lock for pageflips The pagelip ioctl itself is rather simply, so the hard work for this patch is auditing all the drivers: - exynos: Pageflip is protect with dev->struct_mutex and ... synchronous. But nothing fancy going on, besides a check whether the crtc is enabled, which should probably be somewhere in the drm core so that we have unified behaviour across all drivers. - i915: hw-state is protected with dev->struct_mutex, the delayed unpin work together with the other stuff the pageflip complete irq handler needs is protected by the event_lock spinlock. - nouveau: With the pin/unpin functions fixed, everything looks safe: A bit of ttm wrestling and refcounting, and a few channel accesses. The later are either already proteced sufficiently, or are now safe with the channel locking introduced to make cursor updates safe. - radeon: The irq_get/put functions look a bit race, since the atomic_inc/dec isn't protect with locks. Otoh they're all per-crtc, so we should be safe with per-crtc locking from the drm core. Then there's tons of per-crtc register access, which could potentially go through the indirect reg acces. But that's fixed to make cursor updates concurrent. Bookeeping for the drm even is also protected with the even_lock, which also protects against the pageflip irq handler since radeon hw seems to have no way to queue these up asynchronously. Otherwise just a bit of ttm-based buffer handling and fencing, which is now safe with the previous patch to hold bdev->fence_lock while grabbing the ttm fence. - shmob: Only one crtc. That's an easy one ... - vmwgfx: As usual a bit special with tons different things: - Flippable check using is_implicit and num_implicit. Changes to those seem to be nicely covered with the global modeset lock, so we should be fine. - Some dirty cliprect handling stuff, or at least that is my guess. Looks like it's fine since either it's per-crtc, invariant or (like the execbuf stuff launched) protected otherwise. - Adding the actual flip to the fence_event list. On a quick look this seems to have solid locking in place, too. ... but generally this is all way over my head. - imx: Impressive display of races between the page_flip implementation and the irq handler. Also, ipu_drm_set_base which gets eventually called from the irq handler to update the display base isn't really protected against concurrent set_config calls from process context. In any case, going for per-crtc locking won't make this worse, so nothing to do. - omap: The new async callback code merged into 3.8 seems to have solid locking in place, and there doesn't seem to be any shared state at risk. Especially since the callbacks still use modeset_lock_all and are so not converted. v2: Update omapdrm analysis to 3.8 code per the discussion with Rob Clark. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit b62584e366ebcb3adffefad373a5abc4c4b677ca Author: Daniel Vetter Date: Tue Dec 11 16:51:35 2012 +0100 drm: optimize drm_framebuffer_remove Now that all framebuffer usage is properly refcounted, we are no longer required to hold the modeset locks while dropping the last reference. Hence implemented a fastpath which avoids the potential stalls associated with grabbing mode_config.lock for the case where there's no other reference around. Explain in a big comment why it is safe. Also update kerneldocs with the new locking rules around drm_framebuffer_remove. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 2fd5eabab02d9cdade04397eae0bfd49f452cdba Author: Daniel Vetter Date: Tue Dec 11 16:28:34 2012 +0100 drm/vmwgfx: add proper framebuffer refcounting Afact vmwgfx already has all the right refcounting implemented on the backing storage, and we only need to ensure that the drm fb doesn't disappear untimely. So holding onto the fb reference from _lookup until vmw_kms_present has completed should be enough. Signed-off-by: Daniel Vetter commit 623f9783027ef0a948205f17792c9e1fcedb61c6 Author: Daniel Vetter Date: Tue Dec 11 16:21:38 2012 +0100 drm/i915: dump refcount into framebuffer debugfs file Useful for checking whether the new refcounting works as advertised. Signed-off-by: Daniel Vetter commit b0d1232589df5575c5971224ac4cb30e7e525884 Author: Daniel Vetter Date: Tue Dec 11 01:07:12 2012 +0100 drm: refcounting for crtc framebuffers With the prep patch to encapsulate ->set_crtc calls, this is now rather easy. Hooray for inconsistent semantics between ->set_crtc and ->page_flip, where the driver callback is supposed to update the fb pointer, and ->update_plane, where the drm core does the same. Also, since the drm core functions check crtc->fb before calling into driver callbacks, we can't really reduce the critical sections protected by the mode_config locks. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8 Author: Daniel Vetter Date: Tue Dec 11 00:59:24 2012 +0100 drm: refcounting for sprite framebuffers Now plane->fb holds a reference onto it's framebuffer. Nothing too fancy going on here: - Extract __drm_framebuffer_unreference to be called when we know we're not dropping the last reference, e.g. useful in the fb cleanup code. - Reduce the locked sections in the set_plane ioctl to only protect plane->fb/plane->crtc and the driver callback (i.e. hw state). Everything either doesn't disappear (crtc, plane) or is refcounted (fb), and all the data we check is invariant over the respective object's lifetimes. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 4ccf097f1935321f03ad36218588a9e446006b6a Author: Daniel Vetter Date: Tue Dec 11 00:38:18 2012 +0100 drm: fb refcounting for dirtyfb_ioctl We only need to ensure that the fb stays around for long enough. While at it, only grab the modeset locks when we need them (since most drivers don't implement the dirty callback, this should help jitter and stalls when using the generic modeset driver). Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 58c0dca10614117cf4b385e3314e79e3b37fa66b Author: Daniel Vetter Date: Thu Dec 13 23:06:08 2012 +0100 drm: don't take modeset locks in getfb ioctl We only need to push the fb unreference a bit down. While at it, properly pass the return value from ->create_handle back to userspace. Most drivers either return -ENODEV if they don't have a concept of buffer objects (ast, cirrus, ...) or just install a handle for the underlying gem object (which is ok since we hold a reference on that through the framebuffer). v2: Split out the ->create_handle rework in the individual drivers. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 468174f748603497e73dba9b5c6d1d9f71121486 Author: Daniel Vetter Date: Tue Dec 11 00:09:12 2012 +0100 drm: push modeset_lock_all into ->fb_create driver callbacks And drop it where it's not needed. Most driver just lookup the gem object, allocate an fb struct, fill in all the useful fields and then register it with drm_framebuffer_init. All of these operations are already separately locked, and since we only put the fb into the fpriv->fbs list _after_ having called ->fb_create, we can't also race with rmfb. We can otoh race with other ioctls that put the framebuffer to use, but all drivers have been reorganized already to call drm_framebuffer_init last in the fb creation sequence. So essentially, we can completely remove any modeset locks from the addfb ioctl paths. Yeah! Also, reference-counting is solid - we get a reference from fb_create which we transfer to the fpriv->fbs list. And after unlocking the fpriv->fbs_lock we don't touch the framebuffer any longer. Furthermore drm_framebuffer_init has added a 2nd reference for the idr lookup, and any access through that table will do it's own refcounting. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 7d331595b05d6f3c38567ad7031b75075557ce2a Author: Daniel Vetter Date: Mon Dec 10 23:44:22 2012 +0100 drm: nest modeset locks within fpriv->fbs_lock Atm we still need to unconditionally take the modeset locks in the rmfb paths. But eventually we only want to take them if there are other users around as a slow-path. This way sane userspace avoids blocking on edid reads and other stuff in rmfb if it ensures that the fb isn't used anywhere by a crtc/plane. We can do a quick check for such other users once framebuffers are properly refcounting by locking at the refcount - if it's more than 1, there are other users left. Again, rmfb racing against other ioctls isn't a real problem, userspace is allowed to shoot its foot. This patch just prepares this by moving the modeset locks to nest within fpriv->fbs_lock. Now the distinction between the fbs_lock and the device-global fb_lock is clear, since we need to hold the fbs_lock outside of any modeset_locks in fb_release. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 2b677e8c08eed11e4ebe66a7c334f03e389a19a3 Author: Daniel Vetter Date: Mon Dec 10 21:16:05 2012 +0100 drm: reference framebuffers which are on the idr Since otherwise looking and reference-counting around drm_framebuffer_lookup will be an unmanageable mess. With this change, an object can either be found in the idr and will stay around once we incremented the reference counter. Or it will be gone for good and can't be looked up using its id any more. Atomicity is guaranteed by the dev->mode_config.fb_lock. The newly-introduce fpriv->fbs_lock looks a bit redundant, but the next patch will shuffle the locking order between these two locks and all the modeset locks taken in modeset_lock_all, so we'll need it. Also, since userspace could do really funky stuff and race e.g. a getresources with an rmfb, we need to make sure that the kernel doesn't fall over trying to look-up an inexistent fb, or causing confusion by having two fbs around with the same id. Simply reset the framebuffer id to 0, which marks it as reaped. Any lookups of that id will fail, so the object is really gone for good from userspace's pov. Note that we still need to protect the "remove framebuffer from all use-cases" and the final unreference with the modeset-lock, since most framebuffer use-sites don't implement proper reference counting yet. We can only lift this once _all_ users are converted. With this change, two references are held on alife, but unused framebuffers: - The reference for the idr lookup, created in this patch. - For user-created framebuffers the fpriv->fbs reference, for driver-private fbs the driver is supposed to hold it's own last reference. Note that the dev->mode_config.fb_list itself does _not_ hold a reference onto the framebuffers (this list is essentially only used for debugfs files). Hence if there's anything left there when the driver has cleaned up all it's modeset resources, this is a ref-leak. WARN about it. Now we only need to fix up all other places to properly reference count framebuffers. v2: Fix spelling fail in a comment spotted by Rob Clark. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 362063619cf67c2c2fc2eb90951b2623cbb69a7c Author: Daniel Vetter Date: Mon Dec 10 20:42:17 2012 +0100 drm: revamp framebuffer cleanup interfaces We have two classes of framebuffer - Created by the driver (atm only for fbdev), and the driver holds onto the last reference count until destruction. - Created by userspace and associated with a given fd. These framebuffers will be reaped when their assoiciated fb is closed. Now these two cases are set up differently, the framebuffers are on different lists and hence destruction needs to clean up different things. Also, for userspace framebuffers we remove them from any current usage, whereas for internal framebuffers it is assumed that the driver has done this already. Long story short, we need two different ways to cleanup such drivers. Three functions are involved in total: - drm_framebuffer_remove: Convenience function which removes the fb from all active usage and then drops the passed-in reference. - drm_framebuffer_unregister_private: Will remove driver-private framebuffers from relevant lists and drop the corresponding references. Should be called for driver-private framebuffers before dropping the last reference (or like for a lot of the drivers where the fbdev is embedded someplace else, before doing the cleanup manually). - drm_framebuffer_cleanup: Final cleanup for both classes of fbs, should be called by the driver's ->destroy callback once the last reference is gone. This patch just rolls out the new interfaces and updates all drivers (by adding calls to drm_framebuffer_unregister_private at all the right places)- no functional changes yet. Follow-on patches will move drm core code around and update the lifetime management for framebuffers, so that we are no longer required to keep framebuffers alive by locking mode_config.mutex. I've also updated the kerneldoc already. vmwgfx seems to again be a bit special, at least I haven't figured out how the fbdev support in that driver works. It smells like it's external though. v2: The i915 driver creates another private framebuffer in the load-detect code. Adjust its cleanup code, too. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 786b99ed13223d8ac58a937dd348aead45eb8191 Author: Daniel Vetter Date: Sun Dec 2 21:53:40 2012 +0100 drm: create drm_framebuffer_lookup And replace all fb lookups with it. Also add a WARN to drm_mode_object_find since that is now no longer the blessed interface to look up an fb. And add kerneldoc to both functions. This only updates all callsites, but immediately drops the acquired refence again. Hence all callers still rely on the fact that a mode fb can't disappear while they're holding the struct mutex. Subsequent patches will instate proper use of refcounts, and then rework the rmfb and unref code to no longer serialize fb destruction with the mode_config lock. We don't want that since otherwise a compositor might end up stalling for a few frames in rmfb. v2: Don't use kref_get_unless_zero - Greg KH doesn't like that kind of interface. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 4b096ac10da0b63f09bd123b86fed8deb80646ce Author: Daniel Vetter Date: Mon Dec 10 21:19:18 2012 +0100 drm: revamp locking around fb creation/destruction Well, at least step 1. The goal here is that framebuffer objects can survive outside of the mode_config lock, with just a reference held as protection. The first step to get there is to introduce a special fb_lock which protects fb lookup, creation and destruction, to make them appear atomic. This new fb_lock can nest within the mode_config lock. But the idea is (once the reference counting part is completed) that we only quickly take that fb_lock to lookup a framebuffer and grab a reference, without any other locks involved. vmwgfx is the only driver which does framebuffer lookups itself, also wrap those calls to drm_mode_object_find with the new lock. Also protect the fb_list walking in i915 and omapdrm with the new lock. As a slight complication there's also the list of user-created fbs attached to the file private. The problem now is that at fclose() time we need to walk that list, eventually do a modeset call to remove the fb from active usage (and are required to be able to take the mode_config lock), but in the end we need to grab the new fb_lock to remove the fb from the list. The easiest solution is to add another mutex to protect this per-file list. Currently that new fbs_lock nests within the modeset locks and so appears redudant. But later patches will switch around this sequence so that taking the modeset locks in the fb destruction path is optional in the fastpath. Ultimately the goal is that addfb and rmfb do not require the mode_config lock, since otherwise they have the potential to introduce stalls in the pageflip sequence of a compositor (if the compositor e.g. switches to a fullscreen client or if it enables a plane). But that requires a few more steps and hoops to jump through. Note that framebuffer creation/destruction is now double-protected - once by the fb_lock and in parts by the idr_lock. The later would be unnecessariy if framebuffers would have their own idr allocator. But that's material for another patch (series). v2: Properly initialize the fb->filp_head list in _init, otherwise the newly added WARN to check whether the fb isn't on a fpriv list any more will fail for driver-private objects. v3: Fixup two error-case unlock bugs spotted by Richard Wilbur. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit dac35663cef4ca7f572d430bb54b14be8f03cb10 Author: Daniel Vetter Date: Sun Dec 2 15:24:10 2012 +0100 drm: only take the crtc lock for ->cursor_move ->cursor_move uses mostly the same facilities in drivers as ->cursor_set, so pretty much nothing to fix up: - ast/gma500/i915: They all use per-crtc registers to update the cursor position. ast again touches the global cursor cache, but that's ok since there's only one crtc. - nouveau: nv50+ is again special, updates happen through the per-crtc channel (without pushbufs), so it's not protected by the new evo lock introduced earlier. But since this channel is per-crtc, we should be fine anyway. - radeon: A bit a mess: avivo asics need a workaround when both output pipes are enabled, which means it'll access the crtc list. Just reading that flag is ok though as long as radeon _always_ grabs all locks when changing the crtc configuration. Which means with the current scheme it cannot do an optimized modeset which only locks the relevant crtcs. This can be fixed though by introducing a bit of global state with separate locks and ensure in the modeset code that the cursor will be updated appropriately when enabling the 2nd pipe (on affected asics). - vmwgfx: I still don't understand what it's doing exactly, so apply the same trick for now. v2: Fixup unlocking for the error cases, spotted by Richard Wilbur. v3: Another error-case fixup. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit bfb899282f500eeb9dff2600729904aad0fd39e7 Author: Daniel Vetter Date: Sun Dec 2 13:48:21 2012 +0100 drm: only take the crtc lock for ->cursor_set First convert ->cursor_set to only take the crtc lock, since that seems to be the function with the least amount of state - the core ioctl function doesn't check anything which can change at runtime, so we don't have any object lifetime issues to contend. The only thing which is important is that the driver's implementation doesn't touch any state outside of that single crtc which is not yet properly protected by other locking: - ast: access the global ast->cache_kmap. Luckily we only have on crtc on this driver, so this is fine. Add a comment. - gma500: calls gma_power_begin|and and psb_gtt_pin|unpin, both which have their own locking to protect their state. Everything else is crtc-local. - i915: touches a bit of global gem state, all protected by the One Lock to Rule Them All (dev->struct_mutex). - nouveau: Pre-nv50 is all nice, nv50+ uses the evo channels to queue up all display changes. And some of these channels are device global. But this is fine now since the previous patch introduced an evo channel mutex. - radeon: Uses some indirect register access for cursor updates, but with the previous patches to protect these indirect 2-register access patterns with a spinlock, this should be fine now, too. - vmwgfx: I have no idea how that works - update_cursor_position doesn't take any per-crtc argument and I haven't figured out any other place where this could be set in some form of a side-channel. But vmwgfx definitely has more than one crtc (or at least can register more than one), so I have no idea how this is supposed to not fail with the current code already. Hence take the easy way out and simply acquire all locks (which requires dropping the crtc lock the core acquired for us). That way it's not worse off for consistency than the old code. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 29494c174dc4793ebd236aa522a2a1ed73b7180e Author: Daniel Vetter Date: Sun Dec 2 02:18:25 2012 +0100 drm: add per-crtc locks *drumroll* The basic idea is to protect per-crtc state which can change without touching the output configuration with separate mutexes, i.e. all the input side state to a crtc like framebuffers, cursor settings or plane configuration. Holding such a crtc lock gives a read-lock on all the other crtc state which can be changed by e.g. a modeset. All non-crtc state is still protected by the mode_config mutex. Callers that need to change modeset state of a crtc (e.g. dpms or set_mode) need to grab both the mode_config lock and nested within any crtc locks. Note that since there can only ever be one holder of the mode_config lock we can grab the subordinate crtc locks in any order (if we need to grab more than one of them). Lockdep can handle such nesting with the mutex_lock_nest_lock call correctly. With this functions that only touch connectors/encoders but not crtcs only need to take the mode_config lock. The biggest such case is the output probing, which means that we can now pageflip and move cursors while the output probe code is reading an edid. Most cases neatly fall into the three buckets: - Only touches connectors and similar output state and so only needs the mode_config lock. - Touches the global configuration and so needs all locks. - Only touches the crtc input side and so only needs the crtc lock. But a few cases that need special consideration: - Load detection which requires a crtc. The mode_config lock already prevents a modeset change, so we can use any unused crtc as we like to do load detection. The only thing to consider is that such temporary state changes don't leak out to userspace through ioctls that only take the crtc look (like a pageflip). Hence the load detect code needs to grab the crtc of any output pipes it touches (but only if it touches state used by the pageflip or cursor ioctls). - Atomic pageflip when moving planes. The first case is sane hw, where planes have a fixed association with crtcs - nothing needs to be done there. More insane^Wflexible hw needs to have plane->crtc mapping which is separately protect with a lock that nests within the crtc lock. If the plane is unused we can just assign it to the current crtc and continue. But if a plane is already in use by another crtc we can't just reassign it. Two solution present themselves: Either go back to a slow-path which takes all modeset locks, potentially incure quite a hefty delay. Or simply disallowing such changes in one atomic pageflip - in general the vblanks of two crtcs are not synced, so there's no sane way to atomically flip such plane changes accross more than one crtc. I'd heavily favour the later approach, going as far as mandating it as part of the ABI of such a new a nuclear pageflip. And if we _really_ want such semantics, we can always get them by introducing another pageflip mutex between the mode_config.mutex and the individual crtc locks. Pageflips crossing more than one crtc would then need to take that lock first, to lock out concurrent multi-crtc pageflips. - Optimized global modeset operations: We could just take the mode_config lock and then lazily lock all crtc which are affected by a modeset operation. This has the advantage that pageflip could continue unhampered on unaffected crtc. But if e.g. global resources like plls need to be reassigned and so affect unrelated crtcs we can still do that - nested locking works in any order. This patch just adds the locks and takes them in drm_modeset_lock_all, no real locking changes yet. v2: Need to initialize the new lock in crtc_init and lock it righ away, for otherwise the modeset_unlock_all below will try to unlock a not-locked mutex. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit bbe4b99ff2443e305598768ae8eac6bc3516b7c9 Author: Daniel Vetter Date: Sun Dec 2 01:48:38 2012 +0100 drm/vmwgfx: use drm_modeset_lock_all Ok, this one here is a bit more complicated, and I can't really claim to fully understand the locking and lifetime rules of the vmwgfx driver. So just convert ever mutex_lock call, including the interruptible one. Since other places (e.g. in the execbuf ioctl) take the mode_config.mutex without bothering with interruptible handling, I've figured I should be able to get away with this in a few more places ... Signed-off-by: Daniel Vetter commit b13f59804918ad584a97a639064a24d14e2fd740 Author: Daniel Vetter Date: Sun Dec 2 01:36:59 2012 +0100 drm/shmobile: use drm_modeset_lock_all Only a resume method to account for. v2: Fixup compilation. Signed-off-by: Daniel Vetter commit 795f1426b484ddfc136e723a26bfd6a46c8ab085 Author: Daniel Vetter Date: Sun Dec 2 01:34:59 2012 +0100 drm/ast: use drm_modeset_lock_all Just a call to drm_helper_resume_force_mode, obviously wants full locking for that. Signed-off-by: Daniel Vetter commit 0a819515fc346b4e79d6e3fc01d837a660452c74 Author: Daniel Vetter Date: Sun Dec 2 01:33:17 2012 +0100 drm/gma500: use drm_modeset_lock_all Only two places: - suspend/resume - Some really strange mode validation tool with too much funny-lucking hand-rolled conversion code. - The recently-added lastclose fbdev restore code. Better safe than sorry, so convert both places to keep the locking semantics as much as possible. Signed-off-by: Daniel Vetter commit a0e99e68c12ac6dc5d6b1da7942b5e05d5f848af Author: Daniel Vetter Date: Sun Dec 2 01:05:46 2012 +0100 drm/i915: use drm_modeset_lock_all Two exceptions: - debugfs files only read information which is not related to crtc, so can stay on the modeset_config lock. - Same holds for the edp vdd work in intel_dp.c. Add a corresponding WARN_ON and a comment next to the intel_dp struct fields for documentation. Signed-off-by: Daniel Vetter commit 848499032504b1defdebdcf930aa70bd01a45ac1 Author: Daniel Vetter Date: Sun Dec 2 00:28:11 2012 +0100 drm: add drm_modeset_lock|unlock_all This is the first step towards introducing the new modeset locking scheme. The plan is to put helper functions into place at all the right places step-by-step, so that the final patch to switch on the new locking scheme doesn't need to touch every single driver. This helper here will serve as the shotgun solutions for all places where a more fine-grained locking isn't (yet) implemented. v2: Fixup kerneldoc for unlock_all. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 2d13b6796e420ed00389b7399a5d5ac7b1fed436 Author: Daniel Vetter Date: Tue Dec 11 13:47:23 2012 +0100 drm: encapsulate crtc->set_config calls With refcounting we need to adjust framebuffer refcounts at each callsite - much easier to do if they all call the same little helper function. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit af26ef3b3978349cfbd864163a6ebb4906b733b5 Author: Daniel Vetter Date: Thu Dec 13 23:07:50 2012 +0100 drm/: Unified handling of unimplemented fb->create_handle Some drivers don't have real ->create_handle callbacks. - cirrus/ast/mga200: Returns either 0 or -EINVAL. - udl: Didn't even bother with a callback, leading to a nice userspace-triggerable OOPS. - vmwgfx: This driver bothered with an implementation to return 0 as the handle (which is the canonical no-obj gem handle). All have in common that ->create_handle doesn't really make too much sense for them - that ioctl is used only for seamless fb takeover in the radeon/nouveau/i915 ddx drivers. So allow drivers to not implement this and return a consistent -ENODEV. Signed-off-by: Daniel Vetter commit 0ae6d7bc0e70dafc1739d50b2b8d9d7c61968395 Author: Daniel Vetter Date: Tue Dec 11 21:52:30 2012 +0100 drm/nouveau: try to protect nbo->pin_refcount ... by moving the bo_pin/bo_unpin manipulation of the pin_refcount under the protection of the ttm reservation lock. pin/unpin seems to get called from all over the place, so atm this is completely racy. After this patch there are only a few places in cleanup functions left which access ->pin_refcount without locking. But I'm hoping that those are safe and some other code invariant guarantees that this won't blow up. In any case, I only need to fix up pin/unpin to make ->pageflip work safely, so let's keep it at that. Add a comment to the header to explain the new locking rule. Signed-off-by: Daniel Vetter commit 59ad1465423d968f06f243bc52cc3b1a320a27cf Author: Daniel Vetter Date: Sun Dec 2 14:49:44 2012 +0100 drm/nouveau: protect evo_wait/evo_kick sections with a channel mutex With per-crtc locks modeset operations can run in parallel, and the cursor code uses the device-global evo master channel for hw frobbing. But the pageflip code can also sync with the master under some circumstances. Hence just wrap things up in a mutex to ensure that pushbuf access doesn't intermingle. The approach here is a bit overkill since the per-crtc channels used to schedule the pageflips could probably be used without this pushbuf locking, but I'm not familiar enough with the nouveau codebase to be sure of that. v2: Add missing mutex_init to avoid angering lockdep. Signed-off-by: Daniel Vetter commit 7147573a5ce499dec3979e6b524691d47e1288d5 Author: Daniel Vetter Date: Sun Dec 2 21:55:41 2012 +0100 drm/gma500: move fbcon restore to lastclose Doing this within the fb->destroy callback leads to a locking nightmare. And all other drm drivers that restore the fbcon do it in lastclose, too. With this adjustments all fb->destroy callbacks optionally drop references to any gem objects used as backing storage, call drm_framebuffer_cleanup and then kfree the struct. Which nicely simplifies the locking for framebuffer unreferencing and freeing, since this doesn't require that we hold the mode_config lock. A slight exception is the vmwgfx surface backed framebuffer, it also calls drm_master_put and removes the object from a device-private framebuffer list. Both seem to have solid locking in place already. Conclusion is that now it is no longer required to hold the mode_config lock while freeing a framebuffer. v2: Drop the corresponding mutex_lock WARN check from drm_framebuffer_unreference. v3: Use just the mode_config lock not modeset_lock_all, due to patch reordering. Acked-by: Alan Cox Signed-off-by: Daniel Vetter commit 80f0b5aff8f49f63eaf08bdae243de3a8ea3f77e Author: Daniel Vetter Date: Thu Dec 13 23:39:01 2012 +0100 drm/vmwgfx: reorder framebuffer init sequence vmwgfx has an oddity, when failing to reference the surface it'll return 0, since that's what the successfull drm_framebuffer_init will leave behind in ret. Fix this up by returning -EINVAL. Split out from all the other driver updates due to the above tiny semantic change. Shouldn't matter though since the reference grabbing seemingly can't fail. Signed-off-by: Daniel Vetter commit c7d73f6a8ad71f9d9f58c86981322c6e48093a4f Author: Daniel Vetter Date: Thu Dec 13 23:38:38 2012 +0100 drm/: reorder framebuffer init sequence With more fine-grained locking we can no longer rely on the big mode_config lock to prevent concurrent access to mode resources like framebuffers. Instead a framebuffer becomes accessible to other threads as soon as it is added to the relevant lookup structures. Hence it needs to be fully set up by the time drivers call drm_framebuffer_init. This patch here is the drivers part of that reorg. Nothing really fancy going on safe for three special cases. - exynos needs to be careful to properly unref all handles. - nouveau gets a resource leak fixed for free: one of the error cases didn't cleanup the framebuffer, which is now moot since the framebuffer is only registered once it is fully set up. - vmwgfx requires a slight reordering of operations, I'm hoping I didn't break anything (but it's refcount management only, so should be safe). v2: Split out exynos, since it's a bit more hairy than expected. v3: Drop bogus cirrus hunk noticed by Richard Wilbur. v4: Split out vmwgfx since there's a small change in return values. Reviewed-by: Rob Clark (core + omapdrm) Signed-off-by: Daniel Vetter commit 065a50ed3ef75cb265e12e3e1b615db0835150bc Author: Daniel Vetter Date: Sun Dec 2 00:09:18 2012 +0100 drm/doc: integrate drm_crtc.c kerneldoc And do a quick pass to adjust them to the last few (years?) of changes ... This time actually compile-tested ;-) Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 8faf6b18a2a6bece008de1e6bb80f0c608e58483 Author: Daniel Vetter Date: Sat Dec 1 23:43:11 2012 +0100 drm: review locking rules in drm_crtc.c - config_cleanup was confused: It claimed that callers need to hold the modeset lock, but the connector|encoder_cleanup helpers grabbed that themselves (note that crtc_cleanup did _not_ grab the modeset lock). Which resulted in all drivers _not_ hodling the lock. Since this is for single-threaded cleanup code, drop the requirement from docs and also drop the lock_grabbing from all _cleanup functions. - Kill the LOCKING section in the doctype, since clearly we're not good enough to keep them up-to-date. And misleading locking documentation is worse than useless (see e.g. the comment in the vmgfx driver about the cleanup mess). And since for most functions the very first line either grabs the lock or has a WARN_ON(!locked) the documentation doesn't really add anything. - Instead put in some effort into explaining the only two special cases a bit better: config_init and config_cleanup are both called from single-threaded setup/teardown code, so don't do any locking. It's the driver's job though to enforce this. - Where lacking, add a WARN_ON(!is_locked). Not many places though, since locking around fbdev setup/teardown is through-roughly screwed up, and so will break almost every single WARN annotation I've tried to add. - Add a drm_modeset_is_locked helper - the Grate Modset Locking Rework will use the compiler to assist in the big reorg by renaming the mode lock, so start encapsulating things. Unfortunately this ended up in the "wrong" header file since it needs the definition of struct drm_device. v2: Drop most WARNS again - we hit them all over the place, mostly in the setup and teardown sequences. And trying to fix it up leads to nice deadlocks, since the locking in the setup code is really inconsistent. Reviewed-by: Rob Clark Signed-off-by: Daniel Vetter commit 97c809fd9cf5e914322b53773ad0d67efe503fde Author: Chris Wilson Date: Tue Oct 9 19:24:38 2012 +0100 drm/i915: Only apply the mb() when flushing the GTT domain during a finish Now that we seem to have brought order to the GTT barriers, the last one to review is the terminal barrier before we unbind the buffer from the GTT. This needs to only be performed if the buffer still resides in the GTT domain, and so we can skip some needless barriers otherwise. Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter commit d0a57789d5ec807fc218151b2fb2de4da30fbef5 Author: Chris Wilson Date: Tue Oct 9 19:24:37 2012 +0100 drm/i915: Only insert the mb() before updating the fence parameter With a fence, we only need to insert a memory barrier around the actual fence alteration for CPU accesses through the GTT. Performing the barrier in flush-fence was inserting unnecessary and expensive barriers for never fenced objects. Note removing the barriers from flush-fence, which was effectively a barrier before every direct access through the GTT, revealed that we where missing a barrier before the first access through the GTT. Lack of that barrier was sufficient to cause GPU hangs. v2: Add a couple more comments to explain the new barriers Signed-off-by: Chris Wilson Reviewed-by: Daniel Vetter Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter commit 1f83fee08d625f8d0130f9fe5ef7b17c2e022f3c Author: Daniel Vetter Date: Thu Nov 15 17:17:22 2012 +0100 drm/i915: clear up wedged transitions We have two important transitions of the wedged state in the current code: - 0 -> 1: This means a hang has been detected, and signals to everyone that they please get of any locks, so that the reset work item can do its job. - 1 -> 0: The reset handler has completed. Now the last transition mixes up two states: "Reset completed and successful" and "Reset failed". To distinguish these two we do some tricks with the reset completion, but I simply could not convince myself that this doesn't race under odd circumstances. Hence split this up, and add a new terminal state indicating that the hw is gone for good. Also add explicit #defines for both states, update comments. v2: Split out the reset handling bugfix for the throttle ioctl. v3: s/tmp/wedged/ sugested by Chris Wilson. Also fixup up a rebase error which prevented this patch from actually compiling. v4: To unify the wedged state with the reset counter, keep the reset-in-progress state just as a flag. The terminally-wedged state is now denoted with a big number. v5: Add a comment to the reset_counter special values explaining that WEDGED & RESET_IN_PROGRESS needs to be true for the code to be correct. v6: Fixup logic errors introduced with the wedged+reset_counter unification. Since WEDGED implies reset-in-progress (in a way we're terminally stuck in the dead-but-reset-not-completed state), we need ensure that we check for this everywhere. The specific bug was in wait_for_error, which would simply have timed out. v7: Extract an inline i915_reset_in_progress helper to make the code more readable. Also annote the reset-in-progress case with an unlikely, to help the compiler optimize the fastpath. Do the same for the terminally wedged case with i915_terminally_wedged. Reviewed-by: Damien Lespiau Signed-Off-by: Daniel Vetter commit 308887aad14c4ecc3fc10a3c58ec42641c5e4423 Author: Daniel Vetter Date: Wed Nov 14 17:14:06 2012 +0100 drm/i915: fix reset handling in the throttle ioctl While auditing the code I've noticed one place (the throttle ioctl) which does not yet wait for the reset handler to complete and doesn't properly decode the wedge state into -EAGAIN/-EIO. Fix this up by calling the right helpers. This might explain the oddball "my compositor just died in a successfull gpu reset" reports. Or maybe not, since current mesa doesn't use this ioctl to throttle command submission. The throttle ioctl doesn't take the struct_mutex, so to avoid busy-looping with -EAGAIN while a reset is in process, check for errors first and wait for the handler to complete if a reset is pending by calling i915_gem_wait_for_error. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 33196deddacc7790defb9a7e84659e0362d4da7a Author: Daniel Vetter Date: Wed Nov 14 17:14:05 2012 +0100 drm/i915: move wedged to the other gpu error handling stuff And to make Ben Widawsky happier, use the gpu_error instead of the entire device as the argument in some functions. Drop the outdated comment on ->wedged for now, a follow-up patch will change the semantics and add a proper comment again. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 99584db33ba4f864777e2cfef5329ed1bf13f714 Author: Daniel Vetter Date: Wed Nov 14 17:14:04 2012 +0100 drm/i915: extract hangcheck/reset/error_state state into substruct This has been sprinkled all over the place in dev_priv. I think it'd be good to also move all the code into a separate file like i915_gem_error.c, but that's for another patch. Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 4b5aed62121eddfc47fd8f2739ca6b802b97390e Author: Daniel Vetter Date: Wed Nov 14 17:14:03 2012 +0100 drm/i915: move dev_priv->mm out of line Tha one is really big, since it contains tons of comments explaining how things work. Which is nice ;-) Reviewed-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 8d2e630899165d413ae8a2adc36846ac0b71bada Author: Ben Widawsky Date: Fri Jan 18 12:30:33 2013 -0800 drm/i915: Needs_dmar, not The reasoning behind our code taking two paths depending upon whether or not we may have been configured for IOMMU isn't clear to me. It should always be safe to use the pci mapping functions as they are designed to abstract the decision we were handling in i915. Aside from simpler code, removing another member for the intel_gtt struct is a nice motivation. I ran this by Chris, and he wasn't concerned about the extra kzalloc, and memory references vs. page_to_phys calculation in the case without IOMMU. v2: Update commit message v3: Remove needs_dmar addition from Zhenyu upstream This reverts (and then other stuff) commit 20652097dadd9a7fb4d652f25466299974bc78f9 Author: Zhenyu Wang Date: Thu Dec 13 23:47:47 2012 +0800 drm/i915: Fix missed needs_dmar setting Reviewed-by: Rodrigo Vivi (v2) Cc: Zhenyu Wang Signed-off-by: Ben Widawsky [danvet: Squash in follow-up fix to remove the bogus hunk which deleted the dma_mask configuration for gen6+.] Signed-off-by: Daniel Vetter commit 9c61a32d31a55c8c6e590d83ae5645e14fde09f2 Author: Ben Widawsky Date: Fri Jan 18 12:30:32 2013 -0800 drm/i915: Remove scratch page from shared We already had a mapping in both (minus the phys_addr in AGP). Reviewed-by: Rodrigo Vivi Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit a81cc00c11ab6816fbcb7dd99a60b50e71765d25 Author: Ben Widawsky Date: Fri Jan 18 12:30:31 2013 -0800 drm/i915: Cut out the infamous ILK w/a from AGP layer And, move it to where the rest of the logic is. There is some slight functionality changes. There was extra paranoid checks in AGP code making sure we never do idle maps on gen2 parts. That was not duplicated as the simple PCI id check should do the right thing. v2: use IS_GEN5 && IS_MOBILE check instead. For now, this is the same as IS_IRONLAKE_M but is more future proof. The workaround docs hint that more than one platform may be effected, but we've never seen such a platform in the wild. (Rodrigo, Daniel) Reviewed-by: Rodrigo Vivi (v1) Cc: Dave Airlie Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit abedc077b45eff0b5a8630af8431ad5d59213582 Author: Ville Syrjälä Date: Thu Jan 17 16:31:31 2013 +0200 drm/i915: Provide the quantization range in the AVI infoframe The AVI infoframe is able to inform the display whether the source is sending full or limited range RGB data. As per CEA-861 [1] we must first check whether the display reports the quantization range as selectable, and if so we can set the approriate bits in the AVI inforframe. [1] CEA-861-E - 6.4 Format of Version 2 AVI InfoFrame v2: Give the Q bits better names, add spec chapter information Reviewed-by: Paulo Zanoni Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit b1edd6a6ecd436af33f210a5c75e0249466fd200 Author: Ville Syrjälä Date: Thu Jan 17 16:31:30 2013 +0200 drm/edid: Add drm_rgb_quant_range_selectable() drm_rgb_quant_range_selectable() will report whether the monitor claims to support for RGB quantization range selection. The information can be found in the CEA Video capability block. v2: s/quantzation/quantization/ in the comment Reviewed-by: Paulo Zanoni Signed-off-by: Ville Syrjälä Acked-by: David Airlie Signed-off-by: Daniel Vetter commit 55bc60db5988c8366751d3d04dd690698a53412c Author: Ville Syrjälä Date: Thu Jan 17 16:31:29 2013 +0200 drm/i915: Add "Automatic" mode for the "Broadcast RGB" property Add a new "Automatic" mode to the "Broadcast RGB" range property. When selected the driver automagically selects between full range and limited range output. Based on CEA-861 [1] guidelines, limited range output is selected if the mode is a CEA mode, except 640x480. Otherwise full range output is used. Additionally DVI monitors should most likely default to full range always. As per DP1.2a [2] DisplayPort should always use full range for 18bpp, and otherwise will follow CEA-861 rules. NOTE: The default value for the property will now be "Automatic" so some people may be affected in case they're relying on the current full range default. [1] CEA-861-E - 5.1 Default Encoding Parameters [2] VESA DisplayPort Ver.1.2a - 5.1.1.1 Video Colorimetry v2: Use has_hdmi_sink to check if a HDMI monitor is present v3: Add information about relevant spec chapters Reviewed-by: Paulo Zanoni Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 3685a8f38f2c54bb6058c0e66ae0562f8ab84e66 Author: Ville Syrjälä Date: Thu Jan 17 16:31:28 2013 +0200 drm/i915: Fix RGB color range property for PCH platforms The RGB color range select bit on the DP/SDVO/HDMI registers disappeared when PCH was introduced, and instead a new PIPECONF bit was added that performs the same function. Add a new INTEL_MODE_LIMITED_COLOR_RANGE private mode flag, and set it in the encoder mode_fixup if limited color range is requested. Set the the PIPECONF bit 13 based on the flag. Experimentation showed that simply toggling the bit while the pipe is active doesn't work. We need to restart the pipe, which luckily already happens. The DP/SDVO/HDMI bit 8 is marked MBZ in the docs, so avoid setting it, although it doesn't seem to do any harm in practice. TODO: - the PIPECONF bit too seems to have disappeared from HSW. Need a volunteer to test if it's just a documentation issue or if it's really gone. If the bit is gone and no easy replacement is found, then I suppose we may need to use the pipe CSC unit to perform the range compression. v2: Use mode private_flags instead of intel_encoder virtual functions v3: Moved the intel_dp color_range handling after bpc check to help later patches Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46800 Reviewed-by: Paulo Zanoni Signed-off-by: Ville Syrjälä Signed-off-by: Daniel Vetter commit 93d187993b783c68383a884091a600d9ad499ea6 Author: Ben Widawsky Date: Thu Jan 17 12:45:17 2013 -0800 drm/i915: Remove use of gtt_mappable_entries Mappable_end, ie. size is almost always what you want as opposed to the number of entries. Since we already have that information, we can scrap the number of entries and only calculate it when needed. If gtt_start is !0, this will have slightly different behavior. This difference can only occur in DRI1, and exists when we try to kick out the firmware fb. The new code seems like a bugfix to me. The other case where we've changed the behavior is during init we check the mappable region against our current known upper and lower limits (64MB, and 512MB). This now matches the comment, and makes things more convenient after removing gtt_mappable_entries. Also worth noting is the setting of mappable_end is taken out of setup because we do it earlier now in the DRI2 case and therefore need to add that tiny hunk to support the DRI1 IOCTL. v2: Move up mappable end to before legacy AGP init v3: Add the dev_priv inclusion here from previous rebase error in patch 5 Reviewed-by: Rodrigo Vivi (v2) Signed-off-by: Ben Widawsky [danvet: squash in fix for a printk format flag mismatch warning.] Signed-off-by: Daniel Vetter commit 4f73bc4dd3e8563ef4109f293a092820dff66d92 Author: Joe Millenbach Date: Thu Jan 17 22:44:22 2013 -0800 tty: Added a CONFIG_TTY option to allow removal of TTY The option allows you to remove TTY and compile without errors. This saves space on systems that won't support TTY interfaces anyway. bloat-o-meter output is below. The bulk of this patch consists of Kconfig changes adding "depends on TTY" to various serial devices and similar drivers that require the TTY layer. Ideally, these dependencies would occur on a common intermediate symbol such as SERIO, but most drivers "select SERIO" rather than "depends on SERIO", and "select" does not respect dependencies. bloat-o-meter output comparing our previous minimal to new minimal by removing TTY. The list is filtered to not show removed entries with awk '$3 != "-"' as the list was very long. add/remove: 0/226 grow/shrink: 2/14 up/down: 6/-35356 (-35350) function old new delta chr_dev_init 166 170 +4 allow_signal 80 82 +2 static.__warned 143 142 -1 disallow_signal 63 62 -1 __set_special_pids 95 94 -1 unregister_console 126 121 -5 start_kernel 546 541 -5 register_console 593 588 -5 copy_from_user 45 40 -5 sys_setsid 128 120 -8 sys_vhangup 32 19 -13 do_exit 1543 1526 -17 bitmap_zero 60 40 -20 arch_local_irq_save 137 117 -20 release_task 674 652 -22 static.spin_unlock_irqrestore 308 260 -48 Signed-off-by: Joe Millenbach Reviewed-by: Jamey Sharp Reviewed-by: Josh Triplett Signed-off-by: Greg Kroah-Hartman commit a65240c1013222dbf41166c8b2c5ed2720c807c3 Author: Johannes Berg Date: Mon Jan 14 15:14:34 2013 +0100 mac80211: allow drivers to access IPv6 information To be able to implement NS response offloading (in regular operation or while in WoWLAN) drivers need to know the IPv6 addresses assigned to interfaces. Implement an IPv6 notifier in mac80211 to call the driver when addresses change. Unlike for IPv4, implement it as a callback rather than as a list in the BSS configuration, that is more flexible. Signed-off-by: Johannes Berg commit 0a214d3f7e5041685ebff054628a4354bedd78c3 Author: Johannes Berg Date: Wed Jan 16 10:39:44 2013 +0100 mac80211: improve aggregation debug messages A lot of the aggregation messages don't indicate the station so they're hard to understand if there are multiple sessions in progress. Make that easier by adding the MAC address to most messages. Also add the TID if it wasn't already there. Signed-off-by: Johannes Berg commit 0f19b41e223d787251c59137e61fc5145c13d1c4 Author: Johannes Berg Date: Mon Jan 14 16:39:07 2013 +0100 mac80211: remove ARP filter enable/disable logic Depending on the driver, having ARP filtering for some addresses may be possible. Remove the logic that tracks whether ARP filter is enabled or not and give the driver the total number of addresses instead of the length of the list so it can make its own decision. Reviewed-by: Luciano Coelho Signed-off-by: Johannes Berg commit de5fad815703b5b24bc4726cd71422929537d259 Author: Yoni Divinsky Date: Wed May 30 11:36:39 2012 +0300 mac80211: add op to configure default key id There are hardwares which support offload of data packets for example when auto ARP is enabled the hw will send the ARP response. In such cases if WEP encryption is configured the hw must know the default WEP key in order to encrypt the packets correctly. When hw_accel is enabled and encryption type is set to WEP, the driver should get the default key index from mac80211. Signed-off-by: Yoni Divinsky [cleanups, fixes, documentation] Signed-off-by: Johannes Berg commit 5b37649bbcfc14c1ecfb76c5b018dd686924b946 Merge: 660b9ca 2e07d02 Author: Luciano Coelho Date: Fri Jan 18 09:40:07 2013 +0200 Merge branch 'wl12xx-next' into for-linville Conflicts: drivers/net/wireless/ti/wl12xx/main.c drivers/net/wireless/ti/wlcore/wlcore.h commit 46818ed514102c8d251d4aff5c99ad3ff6805432 Author: Johan Hedberg Date: Mon Jan 14 22:33:52 2013 +0200 Bluetooth: Fix using system-global workqueue when not necessary There's a per-HCI device workqueue (hdev->workqueue) that should be used for general per-HCI device work (except hdev->req_workqueue that's for hci_request() related work). This patch fixes places using the system-global work queue and makes them use the hdev->workqueue instead. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 1920257316615676387794cc5fb838183b3bae7f Author: Johan Hedberg Date: Mon Jan 14 22:33:51 2013 +0200 Bluetooth: Use req_workqueue for hci_request operations This patch converts work assignment relying on hci_request() from the system-global work queue to the per-HCI device specific work queue (hdev->req_workqueue) intended for hci_request() related tasks. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 6ead1bbc381a674c20f227dbe6f3a8c6f67ce7a2 Author: Johan Hedberg Date: Mon Jan 14 22:33:50 2013 +0200 Bluetooth: Add a new workqueue for hci_request operations The hci_request function is blocking and cannot be called through the usual per-HCI device workqueue (hdev->workqueue). While hci_request is in progress any other work from the queue, including sending HCI commands to the controller would be blocked and eventually cause the hci_request call to time out. This patch adds a second workqueue to be used by operations needing hci_request and thereby avoiding issues with blocking other workqueue users. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 0d4fb6e4cd0e067f7887ed2ce3784b04feafa097 Author: Stephen Rothwell Date: Fri Jan 18 13:24:32 2013 +1100 wireless: remove conflicting version of print_hex_dump_bytes This fixes the build due to there now being two copies of print_hex_dump_bytes in the tree. Signed-off-by: Stephen Rothwell Signed-off-by: Greg Kroah-Hartman commit ed408f7c0fab7ecc72f94f204f0d2607b2749f69 Merge: 52f7a82 7d1f9ae Author: Greg Kroah-Hartman Date: Thu Jan 17 19:48:18 2013 -0800 Merge 3.9-rc4 into driver-core-next This is to fix up a build problem with a wireless driver due to the dynamic-debug patches in this branch. Signed-off-by: Greg Kroah-Hartman commit dabb7a91ae6442d642a52e0de22d781a8ad2af12 Author: Ben Widawsky Date: Thu Jan 17 12:45:16 2013 -0800 drm/i915: Remove use on gma_bus_addr on gen6+ We have enough info to not use the intel_gtt bridge stuff. v2: Move setup of mappable_base above the legacy init stuff because we still need that on older platforms. (Daniel) v3: Remove the dev_priv hunk which was rebased in by accident Reviewed-by: Rodrigo Vivi (v2) Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 5d4545aef561ad47f91bcf75814af20c104b5a9e Author: Ben Widawsky Date: Thu Jan 17 12:45:15 2013 -0800 drm/i915: Create a gtt structure The purpose of the gtt structure is to help isolate our gtt specific properties from the rest of the code (in doing so it help us finish the isolation from the AGP connection). The following members are pulled out (and renamed): gtt_start gtt_total gtt_mappable_end gtt_mappable gtt_base_addr gsm The gtt structure will serve as a nice place to put gen specific gtt routines in upcoming patches. As far as what else I feel belongs in this structure: it is meant to encapsulate the GTT's physical properties. This is why I've not added fields which track various drm_mm properties, or things like gtt_mtrr (which is itself a pretty transient field). Reviewed-by: Rodrigo Vivi [Ben modified commit messages] Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 00fc2c3c53d7bfc9a29e5f4bdf2677f0c399f3bc Author: Ben Widawsky Date: Thu Jan 17 12:45:14 2013 -0800 drm/i915: Remove gtt_mappable_total With the assertion from the previous patch in place, it should be safe to get rid gtt_mappable_total. Keeps things saner to not have to track the same info in two places. In order to keep the diff as simple as possible and keep with the existing gtt_setup semantics we opt to keep gtt_mappable_end. It's not as consistent with the 'total' used in the previous patch, but that can be fixed later. Reviewed-by: Rodrigo Vivi [Ben modified commit message] Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 35451cb6fbd3655ede4694b11761a587d400d647 Author: Ben Widawsky Date: Thu Jan 17 12:45:13 2013 -0800 drm/i915: Mappable_end can't ever be > end Both DRI1 and DRI2 can never specify a mappable size which goes past the GTT size. Don't pretend otherwise. Reviewed-by: Rodrigo Vivi Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit c1fc6521efbed7d3aca4e37ac61b23300f161cd1 Author: Ben Widawsky Date: Thu Jan 17 12:45:12 2013 -0800 drm/i915: Kill gtt_end It's duplicated in the more useful gtt_total. Reviewed-by: Rodrigo Vivi Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit c70af1e4b60a1853feeaae2bf6e2aa98de68acd9 Author: Ville Syrjälä Date: Wed Jan 16 19:59:03 2013 +0200 drm/i915: Fix SPRITE0_FLIP_DONE_INT_EN_VLV and SPRITE0_FLIPDONE_INT_STATUS_VLV Fix up some copypaste errors in the PIPESTAT register for VLV. SPRITE0_FLIP_DONE_INT_EN_VLV is bit 22, not bit 26. SPRITE0_FLIPDONE_INT_STATUS_VLV is bit 14, not bit 15. Signed-off-by: Ville Syrjälä Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter commit eef90ccb8a4d50b219a95cc53878ebb007315b32 Author: Chris Wilson Date: Tue Jan 8 10:53:17 2013 +0000 drm/i915: Use the reloc.handle as an index into the execbuffer array Using copywinwin10 as an example that is dependent upon emitting a lot of relocations (2 per operation), we see improvements of: c2d/gm45: 618000.0/sec to 623000.0/sec. i3-330m: 748000.0/sec to 789000.0/sec. (measured relative to a baseline with neither optimisations applied). Signed-off-by: Chris Wilson Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit ed5982e6ce5f106abcbf071f80730db344a6da42 Author: Daniel Vetter Date: Thu Jan 17 22:23:36 2013 +0100 drm/i915: Allow userspace to hint that the relocations were known Userspace is able to hint to the kernel that its command stream and auxiliary state buffers already hold the correct presumed addresses and so the relocation process may be skipped if the kernel does not need to move any buffers in preparation for the execbuffer. Thus for the common case where the allotment of buffers is static between batches, we can avoid the overhead of individually checking the relocation entries. Note that this requires userspace to supply the domain tracking and requests for workarounds itself that would otherwise be computed based upon the relocation entries. Using copywinwin10 as an example that is dependent upon emitting a lot of relocations (2 per operation), we see improvements of: c2d/gm45: 618000.0/sec to 632000.0/sec. i3-330m: 748000.0/sec to 830000.0/sec. (measured relative to a baseline with neither optimisations applied). Signed-off-by: Chris Wilson Reviewed-by: Imre Deak [danvet: Fixup merge conflict in userspace header due to different baseline trees.] Signed-off-by: Daniel Vetter commit bcffc3faa692d6b2ef734e4f0c8f097175284db6 Author: Chris Wilson Date: Tue Jan 8 10:53:15 2013 +0000 drm/i915: Move the execbuffer objects list from the stack into the tracker Instead of passing around the eb-objects hashtable and a separate object list, we can include the object list into the eb-objects structure for convenience. Signed-off-by: Chris Wilson Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 3b96eff447b4ca34ca8ccd42e2651be2955f34b4 Author: Chris Wilson Date: Tue Jan 8 10:53:14 2013 +0000 drm/i915: Take the handle idr spinlock once for looking up the exec objects Signed-off-by: Chris Wilson Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 419fa72a1973c9ba2fd2c2505dc889f54b857459 Author: Chris Wilson Date: Tue Jan 8 10:53:13 2013 +0000 drm/i915: Mark a temporary allocation for copy-from-user as such The difference is that the kernel will then know that this memory will be reclaimable in the near future. Signed-off-by: Chris Wilson Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 43e28f092b2fa4ebc46bdc210134a80610815785 Author: Chris Wilson Date: Tue Jan 8 10:53:09 2013 +0000 drm/i915: Bail if we attempt to allocate pages for a purged object Move the existing checking inside bind_to_gtt() to the more appropriate layer in order to prevent recreation of the pages after they have been explicitly truncated. Signed-off-by: Chris Wilson Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit dd624afd533bdc87b8c10835515a0c8b2b9868b1 Author: Chris Wilson Date: Tue Jan 15 12:39:35 2013 +0000 drm/i915: Add a debug interface to forcibly evict and shrink our object caches As a means to investigate some bad system behaviour related to the purging of the active, inactive and unbound lists, it is useful to be able to manually control when those lists should be cleared. v2: use _safe list iterators as we kick objects from the list as we walk. Signed-off-by: Chris Wilson [danvet: Add a small comment explaining why we don't need to check and wait for gpu resets, acked by Chris on irc.] Signed-off-by: Daniel Vetter commit 0fa877965194fa79fe87944844185d90cfc35352 Author: Imre Deak Date: Mon Jan 7 21:47:35 2013 +0200 drm/i915: use gtt_get_size() instead of open coding it Signed-off-by: Imre Deak Signed-off-by: Daniel Vetter commit 56c844e539f1f6f5768c5f73f119e6f4aed9d320 Author: Imre Deak Date: Mon Jan 7 21:47:34 2013 +0200 drm/i915: merge {i965, sandybridge}_write_fence_reg() The two functions are rather similar, so merge them. Signed-off-by: Imre Deak Signed-off-by: Daniel Vetter commit d865110cc2345d67752cd7e1350b391c34feb2aa Author: Imre Deak Date: Mon Jan 7 21:47:33 2013 +0200 drm/i915: merge get_gtt_alignment/get_unfenced_gtt_alignment() The two functions are rather similar, so merge them. Signed-off-by: Imre Deak Signed-off-by: Daniel Vetter commit af5163acd8319dbc901bb59a8d503d8bb774d88b Author: Egbert Eich Date: Thu Jan 10 10:02:39 2013 -0500 drm/i915: Remove pch_rq_mask from struct drm_i915_private. This variable is only used locally in the irq postinstall functions for ivybridge and ironlake. Signed-off-by: Egbert Eich Signed-off-by: Daniel Vetter commit 2c10d571169abab9181e0c91b259e0c4e392bc5b Author: Daniel Vetter Date: Thu Dec 20 21:24:07 2012 +0100 drm/i915: wake up all pageflip waiters Otherwise it seems like we can get stuck with concurrent waiters. Right now this /shouldn't/ be a problem, since all pending pageflip waiters are serialized by the one mode_config.mutex, so there's at most on waiter. But better paranoid than sorry, since this is tricky code. v2: WARN_ON(waitqueue_active) before waiting, as suggested by Chris Wilson. Acked-by: Chris Wilson Signed-off-by: Daniel Vetter commit b4e6537ee66792019569b8934e420d0ba091aecb Author: Kees Cook Date: Wed Jan 16 18:53:34 2013 -0800 drivers/gpu/drm/cirrus: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Dave Airlie Reviewed-by: Adam Jackson Signed-off-by: Kees Cook Signed-off-by: Greg Kroah-Hartman commit b5cc6c0387b2f8d269c1df1e68c97c958dd22fed Merge: 9931fac c0c36b9 Author: Dave Airlie Date: Thu Jan 17 20:34:08 2013 +1000 Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next Daniel writes: - seqno wrap fixes and debug infrastructure from Mika Kuoppala and Chris Wilson - some leftover kill-agp on gen6+ patches from Ben - hotplug improvements from Damien - clear fb when allocated from stolen, avoids dirt on the fbcon (Chris) - Stolen mem support from Chris Wilson, one of the many steps to get to real fastboot support. - Some DDI code cleanups from Paulo. - Some refactorings around lvds and dp code. - some random little bits&pieces * tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel: (93 commits) drm/i915: Return the real error code from intel_set_mode() drm/i915: Make GSM void drm/i915: Move GSM mapping into dev_priv drm/i915: Move even more gtt code to i915_gem_gtt drm/i915: Make next_seqno debugs entry to use i915_gem_set_seqno drm/i915: Introduce i915_gem_set_seqno() drm/i915: Always clear semaphore mboxes on seqno wrap drm/i915: Initialize hardware semaphore state on ring init drm/i915: Introduce ring set_seqno drm/i915: Missed conversion to gtt_pte_t drm/i915: Bug on unsupported swizzled platforms drm/i915: BUG() if fences are used on unsupported platform drm/i915: fixup overlay stolen memory leak drm/i915: clean up PIPECONF bpc #defines drm/i915: add intel_dp_set_signal_levels drm/i915: remove leftover display.update_wm assignment drm/i915: check for the PCH when setting pch_transcoder drm/i915: Clear the stolen fb before enabling drm/i915: Access to snooped system memory through the GTT is incoherent drm/i915: Remove stale comment about intel_dp_detect() ... Conflicts: drivers/gpu/drm/i915/intel_display.c commit 5a32aff37a02ebc959837f08d09ac8ba65d4f1b0 Author: Johannes Berg Date: Fri Dec 21 12:36:33 2012 +0100 mac80211: split out chandef tracing macros Some new APIs will require tracing a chandef without it being part of a channel context, so separate out the tracing macros for that. Signed-off-by: Johannes Berg commit 11c4a075db2f8774d37544342c8cb9752b4db9e1 Author: Simon Wunderlich Date: Tue Jan 8 14:04:07 2013 +0100 cfg80211: check radar interface combinations To ease further DFS development regarding interface combinations, use the interface combinations structure to test for radar capabilities. Drivers can specify which channel widths they support, and in which modes. Right now only a single AP interface is allowed, but as the DFS code evolves other combinations can be enabled. Signed-off-by: Simon Wunderlich Signed-off-by: Johannes Berg commit cee00a959c0a86571e6f99cf42f0261d7e54d2ae Author: Jouni Malinen Date: Tue Jan 15 17:15:57 2013 +0200 cfg80211: Allow use_mfp to be specified with the connect command The NL80211_ATTR_USE_MFP attribute was originally added for NL80211_CMD_ASSOCIATE, but it is actually as useful (if not even more useful) with NL80211_CMD_CONNECT, so process that attribute with the connect command, too. Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg commit 1c18f1452a772dfe884ed25677bddb3ecaf9c43a Author: Arend van Spriel Date: Tue Jan 8 10:17:27 2013 +0100 nl80211: allow user-space to set address for P2P_DEVICE As per email discussion Jouni Malinen pointed out that: "P2P message exchanges can be executed on the current operating channel of any operation (both P2P and non-P2P station). These can be on 5 GHz and even on 60 GHz (so yes, you _can_ do GO Negotiation on 60 GHz). As an example, it would be possible to receive a GO Negotiation Request frame on a 5 GHz only radio and then to complete GO Negotiation on that band. This can happen both when connected to a P2P group (through client discoverability mechanism) and when connected to a legacy AP (assuming the station receive Probe Request frame from full scan in the beginning of P2P device discovery)." This means that P2P messages can be sent over different radio devices. However, these should use the same P2P device address so it should be able to provision this from user-space. This patch adds a parameter for this to struct vif_params which should only be used during creation of the P2P device interface. Cc: Jouni Malinen Cc: Greg Goldman Cc: Jithu Jance Signed-off-by: Arend van Spriel [add error checking] Signed-off-by: Johannes Berg commit 3b1c5a5307fb5277f395efdcf330c064d79df07d Author: Marco Porsch Date: Mon Jan 7 16:04:52 2013 +0100 {cfg,nl}80211: mesh power mode primitives and userspace access Add the nl80211_mesh_power_mode enumeration which holds possible values for the mesh power mode. These modes are unknown, active, light sleep and deep sleep. Add power_mode entry to the mesh config structure to hold the user-configured default mesh power mode. This value will be used for new peer links. Add the dot11MeshAwakeWindowDuration value to the mesh config. The awake window is a duration in TU describing how long the STA will stay awake after transmitting its beacon in PS mode. Add access routines to: - get/set local link-specific power mode (STA) - get remote STA's link-specific power mode (STA) - get remote STA's non-peer power mode (STA) - get/set default mesh power mode (mesh config) - get/set mesh awake window duration (mesh config) All config changes may be done at mesh runtime and take effect immediately. Signed-off-by: Marco Porsch Signed-off-by: Ivan Bezyazychnyy Signed-off-by: Mike Krinkin [fix commit message line length, error handling in set station] Signed-off-by: Johannes Berg commit 9bdbf04db099c11bbbaea9dcea7465c508531fb8 Author: Marco Porsch Date: Mon Jan 7 16:04:51 2013 +0100 {cfg,nl,mac}80211: set beacon interval and DTIM period on mesh join Move the default mesh beacon interval and DTIM period to cfg80211 and make them accessible to nl80211. This enables setting both values when joining an MBSS. Previously the DTIM parameter was not set by mac80211 so the driver's default value was used. Signed-off-by: Marco Porsch Signed-off-by: Johannes Berg commit eac70c135def117849faa7cc8b7ccb941498085f Author: Marco Porsch Date: Mon Jan 7 16:04:50 2013 +0100 mac80211: move add_tim to subfunction This functions will be used for mesh beacons, too. Signed-off-by: Marco Porsch [some formatting fixes] Signed-off-by: Johannes Berg commit 1617bab8db81427392d424f2c7ffb5a3282c417c Author: Marco Porsch Date: Mon Jan 7 16:04:49 2013 +0100 mac80211: update mesh peer link counter during userspace peering The established peer link count is indicated in mesh beacons and used for other internal tasks. Previously it was not updated when authenticated peering is performed in userspace. Signed-off-by: Marco Porsch Acked-by: Thomas Pedersen Signed-off-by: Johannes Berg commit ea54fba20985b7a0cb8e1c8e2760a0865ee47763 Author: Marco Porsch Date: Mon Jan 7 16:04:48 2013 +0100 nl80211: add range checks to mesh parameters Ranges are taken from IEEE 802.11-2012, common sense or current implementation requirements. Signed-off-by: Marco Porsch Acked-by: Thomas Pedersen Signed-off-by: Johannes Berg commit ee1f668136b2fb6640ee2d54c2a525ea41f98211 Author: Chun-Yeow Yeoh Date: Thu Jan 10 23:31:54 2013 +0800 mac80211: allow disable power save in mesh Allow mesh interface to disable the power save which is by default turn on in certain chipset. Testing with 2 units of ZCN-1523H-5-16 featuring AR9280 chipset which have power save enabled by default. Constant reset if the average signal of the peer mesh STA is below -80 dBm and power save is enabled. Signed-off-by: Chun-Yeow Yeoh Signed-off-by: Johannes Berg commit 8f21b0adfe95907926da1bb0bcd3382b13d0143d Author: Johannes Berg Date: Fri Jan 11 00:28:01 2013 +0100 mac80211: call restart complete at wowlan resume time When the driver's resume function can't completely restore the configuration in the device, it returns 1 from the callback which will be treated like a HW restart request, but done directly. In this case, also call the driver's restart_complete() function so it can finish the reconfiguration there. Signed-off-by: Johannes Berg commit d888130a024d1d1e8b2c3d0c9841a218fc0aed9e Author: Johannes Berg Date: Thu Jan 10 23:55:33 2013 +0100 mac80211: fix resume from WoWLAN My commit 529ba6e9313dbe60dab7e72c6fdf647a012e9f5b ("mac80211: clean up association better in suspend") introduced a bug when resuming from WoWLAN when a device reset is desired. This case must not use the suspend_bss_conf as it hasn't been stored. Signed-off-by: Johannes Berg commit 0ae997dc75efb60d47f0c71890f1e972f7d462c1 Author: Yacine Belkadi Date: Sat Jan 12 13:54:14 2013 +0100 {cfg,mac}80211.h: fix some kernel-doc warnings When building the 80211 DocBook, scripts/kernel-doc reports the following type of warnings: Warning(include/net/cfg80211.h:334): No description found for return value of 'cfg80211_get_chandef_type' These warnings are only reported when scripts/kernel-doc runs in verbose mode. To fix these use "Return:" to describe function return values. Signed-off-by: Yacine Belkadi [adjust for freq_reg_info() change] Signed-off-by: Johannes Berg commit 1c3fea82d6ebf33edadefed2d9ce3efa1a654338 Author: Emmanuel Grumbach Date: Wed Jan 2 12:12:25 2013 +0200 iwlwifi: improve the reports in TX path Also when things go wrong (queues don't get emtpy), try to get some data from the HW. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit ddaf5a5b300b8f9d3591b509fd8bedab1c9887be Author: Johannes Berg Date: Tue Jan 8 11:25:44 2013 +0100 iwlwifi: enable communication with WoWLAN firmware On resuming, the opmode may have to be able to talk to the WoWLAN/D3 firmware in order to query it about its status and wakeup reasons. To do that, the opmode has to call the new d3_resume() transport API which will set up the device for command communcation. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 22dc3c9561825a7c2cd18d01b01358c2141a8e16 Author: Johannes Berg Date: Wed Jan 9 00:47:07 2013 +0100 iwlwifi: simplify scheduler memory clearing Writing 130 dwords into the device one by one is rather inefficient, every one needs to lock, grab NIC access (a few register reads/writes) and then write the address and data registers. Use the new memory clearing function to make this easier and faster. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 01387ffd19f37b4026fd0e4c32260bc25f6469d4 Author: Emmanuel Grumbach Date: Wed Jan 9 11:37:59 2013 +0200 iwlwifi: allow to zero SRAM Sending a NULL pointer to iwl_trans_write_mem allows now to zero SRAM. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit b1cf1bc160a94f2d56863522982160c9373b8860 Author: Johannes Berg Date: Tue Jan 8 10:26:17 2013 +0100 iwlwifi: don't enable all interrupts on resuming Enabling the RF-kill interrupt is sufficient for getting RF-kill notifications, and no other interrupt is needed as the device isn't functional when suspended and will be restarted/reconfigured when mac80211 resumes it later. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit d21fa2dad63677b5fd0c9942c0745c1e4f0832df Author: Johannes Berg Date: Tue Jan 8 00:25:21 2013 +0100 iwlwifi: don't memset scalar values The dma_addr_t type is a scalar value, so it should just be assigned, not memset. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 2e124b4a390ca85325fae75764bef92f0547fa25 Author: Jiri Slaby Date: Thu Jan 3 15:53:06 2013 +0100 TTY: switch tty_flip_buffer_push Now, we start converting tty buffer functions to actually use tty_port. This will allow us to get rid of the need of tty in many call sites. Only tty_port will needed and hence no more tty_port_tty_get in those paths. Now, the one where most of tty_port_tty_get gets removed: tty_flip_buffer_push. IOW we also closed all the races in drivers not using tty_port_tty_get at all yet. Also we move tty_flip_buffer_push declaration from include/linux/tty.h to include/linux/tty_flip.h to all others while we are changing it anyway. Signed-off-by: Jiri Slaby Signed-off-by: Greg Kroah-Hartman commit 05c7cd39907184328f48d3e7899f9cdd653ad336 Author: Jiri Slaby Date: Thu Jan 3 15:53:04 2013 +0100 TTY: switch tty_insert_flip_string Now, we start converting tty buffer functions to actually use tty_port. This will allow us to get rid of the need of tty in many call sites. Only tty_port will needed and hence no more tty_port_tty_get in those paths. tty_insert_flip_string this time. Signed-off-by: Jiri Slaby Signed-off-by: Greg Kroah-Hartman commit 4b87f922598acf91eee18f71688a33f54f57bcde Merge: 55eb555 daf3ec6 Author: David S. Miller Date: Tue Jan 15 15:05:59 2013 -0500 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflicts: Documentation/networking/ip-sysctl.txt drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c Both conflicts were simply overlapping context. A build fix for qlcnic is in here too, simply removing the added devinit annotations which no longer exist. Signed-off-by: David S. Miller commit cc4c0c4de3c775be22072ec3251f2e581b63d9a0 Author: Maarten Lankhorst Date: Tue Jan 15 14:57:28 2013 +0100 drm/ttm: unexport ttm_bo_wait_unreserved All legitimate users of this function outside ttm_bo.c are gone, now it's only an implementation detail. Signed-off-by: Maarten Lankhorst Reviewed-by: Jerome Glisse commit c354c893dd57aac11f5d96ada7c47a20fe090a6e Author: Maarten Lankhorst Date: Tue Jan 15 14:57:20 2013 +0100 drm/nouveau: use ttm_bo_reserve_slowpath in validate_init, v2 Similar rationale to the identical commit in drm/ttm. Instead of only waiting for unreservation, we make sure we actually own the reservation, then retry to get the rest. Changes since v1: - Increase the seqno before calling ttm_bo_reserve_slowpath Signed-off-by: Maarten Lankhorst Reviewed-by: Jerome Glisse commit f2d476a110bc24fde008698ae9018c99e803e25c Author: Maarten Lankhorst Date: Tue Jan 15 14:57:10 2013 +0100 drm/ttm: use ttm_bo_reserve_slowpath_nolru in ttm_eu_reserve_buffers, v2 This requires re-use of the seqno, which increases fairness slightly. Instead of spinning with a new seqno every time we keep the current one, but still drop all other reservations we hold. Only when we succeed, we try to get back our other reservations again. This should increase fairness slightly as well. Changes since v1: - Increase val_seq before calling ttm_bo_reserve_slowpath_nolru and retrying to take all entries to prevent a race. Signed-off-by: Maarten Lankhorst Reviewed-by: Jerome Glisse commit 5e45d7dfd74100d622f9cdc70bfd1f9fae1671de Author: Maarten Lankhorst Date: Tue Jan 15 14:57:05 2013 +0100 drm/ttm: add ttm_bo_reserve_slowpath Instead of dropping everything, waiting for the bo to be unreserved and trying over, a better strategy would be to do a blocking wait. This can be mapped a lot better to a mutex_lock-like call. Signed-off-by: Maarten Lankhorst Reviewed-by: Jerome Glisse commit 7a1863084c9d90ce4b67d645bf9b0f1612e68f62 Author: Maarten Lankhorst Date: Tue Jan 15 14:56:48 2013 +0100 drm/ttm: cleanup ttm_eu_reserve_buffers handling With the lru lock no longer required for protecting reservations we can just do a ttm_bo_reserve_nolru on -EBUSY, and handle all errors in a single path. Signed-off-by: Maarten Lankhorst Reviewed-by: Jerome Glisse commit 63d0a4195560362e2e00a3ad38fc331d34e1da9b Author: Maarten Lankhorst Date: Tue Jan 15 14:56:37 2013 +0100 drm/ttm: remove lru_lock around ttm_bo_reserve There should no longer be assumptions that reserve will always succeed with the lru lock held, so we can safely break the whole atomic reserve/lru thing. As a bonus this fixes most lockdep annotations for reservations. Signed-off-by: Maarten Lankhorst Reviewed-by: Jerome Glisse commit 979ee290ff0a543352243145dc3654af5a856ab8 Author: Maarten Lankhorst Date: Tue Jan 15 14:54:22 2013 +0100 drm/nouveau: increase reservation sequence every retry This is temporary until the fence framework can be used. With the lru/reservation atomicity removal it is possible to see your old sequence number and the buffer being reserved, leading to erroneously reporting -EDEADLK. Workaround it by bumping the sequence number every retry. Signed-off-by: Maarten Lankhorst commit 42f6e3da974dc8ad81775110c8d06835acdf375e Author: Maarten Lankhorst Date: Tue Jan 15 14:53:18 2013 +0100 drm/vmwgfx: always use ttm_bo_is_reserved Signed-off-by: Maarten Lankhorst Reviewed-by: Thomas Hellstrom commit e2d4a24e03f9f7b255e86a2537dca0927f08af4a Author: Fengguang Wu Date: Sat Jan 12 10:28:12 2013 +0800 ath9k_hw: ar9002_hw_spectral_scan_config() can be static Signed-off-by: Fengguang Wu Signed-off-by: John W. Linville commit 0c0280bd0ba410326eecdaeb1b936696eda6381d Author: Luis R. Rodriguez Date: Fri Jan 11 18:39:36 2013 +0000 wireless: make the reg_notifier() void The reg_notifier()'s return value need not be checked as it is only supposed to do post regulatory work and that should never fail. Any behaviour to regulatory that needs to be considered before cfg80211 does work to a driver should be specified by using the already existing flags, the reg_notifier() just does post processing should it find it needs to. Also make lbs_reg_notifier static. Signed-off-by: Luis R. Rodriguez [move lbs_reg_notifier to not break compile] Signed-off-by: Johannes Berg commit eab6d7921d5704128c941d7cc647dacd4d50697c Author: Felix Fietkau Date: Thu Jan 10 19:41:52 2013 +0100 ath9k_hw: add tx gain tables for newer devices Improves stability on affected devices and also fixes the Tx IQ calibration related regression on some AR9340 devices such as the TP-Link TL-WDR4300. Signed-off-by: Felix Fietkau Signed-off-by: John W. Linville commit aad12ede97d62b290ac03f0077d05b999bbddd05 Author: Simon Wunderlich Date: Thu Jan 10 11:45:14 2013 +0100 ath9k: fix spectral scan endless mode on AR9002 There was a copy+paste error in ar9002 for the endless spectral mode, fix that. Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer Signed-off-by: John W. Linville commit b66851c3c89629e72a2eaa54d1b838fb74dad644 Author: Thomas Pedersen Date: Mon Jan 7 14:48:07 2013 -0800 mac80211_hwsim: fix beacon timestamp and mactime Set the beacon timestamp once during "transmission" so the monitor interface also gets a timestamped beacon. Also use a common base between TX timestamp and RX mactime. This eliminates "TX" path delay, which shows up as a constant error in Toffset. Get the global TSF once before iterating over all RX HWs, so they all set a mactime with the same time base. Signed-off-by: Thomas Pedersen Signed-off-by: John W. Linville commit 48f6edceb02d7a5173e7184c181ec054e47acc61 Author: Kees Cook Date: Tue Oct 2 11:19:53 2012 -0700 net/mac80211: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: "John W. Linville" CC: Johannes Berg CC: "David S. Miller" Signed-off-by: Kees Cook Acked-by: Johannes Berg Acked-by: David S. Miller commit ea167c9bf5fa4b28fe87764a7ef64c3bca3bf603 Author: Kees Cook Date: Tue Oct 2 11:17:05 2012 -0700 drivers/gpu/drm/udl: remove depends on CONFIG_EXPERIMENTAL The CONFIG_EXPERIMENTAL config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it from any "depends on" lines in Kconfigs. CC: Dave Airlie CC: Greg Kroah-Hartman CC: Guenter Roeck Signed-off-by: Kees Cook Acked-by: Greg Kroah-Hartman commit 55b183ad8635589ea731a31653de79a2626491c4 Author: Felix Fietkau Date: Fri Jan 11 14:22:58 2013 +0100 wireless: fix regulatory HT40 allowed check commit 1a9193185f462a51815fe48491f8a6fb6b942551 "regulatory: code cleanup" changed is_ht40_allowed without considering that IEEE80211_CHAN_NO_HT40 is not just one flag, but two. This is causing HT40- to be blocked completely. Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit 75e6934a9e996ee7cfe7a488b7f7cc2baa86717a Author: Johannes Berg Date: Fri Jan 11 12:32:37 2013 +0100 mac80211: fix HT40 connections My commit 4bf88530be971bf95a7830ca61b4120980bf4347 ("mac80211: convert to channel definition struct") accidentally broke HT40 connections due to swapped channel flag checks -- fix that. Reported-by: Sujith Manoharan Tested-by: Sujith Manoharan Signed-off-by: Johannes Berg commit 52e0b011e29f36bc5c02ea3adbf4d864a38373de Author: Gustavo Padovan Date: Thu Jan 10 06:06:29 2013 -0200 Bluetooth: Fix uuid output in debugfs The uuid should be printed in the CPU endianness and not in little-endian. Acked-by: Johan Hedberg Signed-off-by: Gustavo Padovan commit a1d704509d5b96756d3d4cfb7f10a555efeadb87 Author: Johan Hedberg Date: Wed Jan 9 15:29:40 2013 +0200 Bluetooth: Fix sending incorrect new_settings for mgmt_set_powered The socket from which a mgmt_set_powered command was received should only receive the command response but no new_settings event. The mgmt_powered() function which is used to handle the situation with the HCI_AUTO_OFF flag tries to check for a pending command to know which socket to skip the event for, but since the pending command hasn't been added this will not happen. This patch fixes the issue by adding the pending command for the HCI_AUTO_OFF case and thereby ensures that mgmt_powered() will skip the right socket when sending the new_settings event, but still send the proper response to the socket where the command came from. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 04106755763f558886a631338d12546345bae6e9 Author: Johan Hedberg Date: Thu Jan 10 14:54:09 2013 +0200 Bluetooth: Fix returning proper command status for start_discovery Management commands should whenever possible fail with proper command status or command complete events. This patch fixes the mgmt_start_discovery command to do this for the failure cases where an incorrect parameter value was passed to it ("not supported" if the parameter value was valid but the controller doesn't support it and "invalid params" if it isn't valid at all). Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit a7e80f25ae2296d78163d75d753c796270464000 Author: Johan Hedberg Date: Wed Jan 9 16:05:19 2013 +0200 Bluetooth: Fix checking for exact values of boolean mgmt parameters All mgmt_set_* commands that take a boolean value encoded in the form of a byte should only accept the values 0x00 and 0x01. This patch adds the necessary checks for this and returns "invalid params" responses if anything else is provided as the value. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 13ecd8b6628c14c9a27832ce7c48315385272208 Author: Johan Hedberg Date: Wed Jan 9 15:29:38 2013 +0200 Bluetooth: Move non-critical sections outside of the dev lock This patch fixes sections of code that do not need hci_lock_dev to be outside of the lock. Such sections include code that do not touch the hdev at all as well as sections which just read a single byte from the supported_features value (i.e. all lmp_*_capable() macros). Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit ee98f4738050bb93823ce9ba849f5d78f5b8c1a1 Author: Johan Hedberg Date: Wed Jan 9 15:29:36 2013 +0200 Bluetooth: Fix accepting set_dev_class for non-BR/EDR controllers The concept of Class of Device only exists for BR/EDR controllers. The mgmt_set_dev_class command should therefore return a proper "not supported" error if it is attempted for a controller that doesn't support BR/EDR (e.g. a single mode LE-only one). Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 575b3a02e20a10bb8110378ef363a8a174018680 Author: Johan Hedberg Date: Wed Jan 9 15:29:35 2013 +0200 Bluetooth: Fix checking for valid device class values The two lowest bits of the minor device class value are reserved and should be zero, and the three highest bits of the major device class likewise. The management code should therefore test for this and return a proper "invalid params" error if the condition is not met. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit 715a5bf2db4df4a7df64f420d21fb49ba146b3fa Author: Johan Hedberg Date: Wed Jan 9 15:29:34 2013 +0200 Bluetooth: Fix missing command complete for mgmt_load_long_term_keys All management events are expected to indicate successful completion through a command complete event, however the load long term keys command was missing this. This patch adds the missing event. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit e384662b1c1004e6b1e9d2c4979945a383c07b7d Author: Johan Hedberg Date: Wed Jan 9 15:29:33 2013 +0200 Bluetooth: Fix missing command complete event for mgmt_confirm_name All management commands are expected to indicate successful completion through a command complete event however the confirm name command was missing it. This patch add the sending of the missing event. Signed-off-by: Johan Hedberg Acked-by: Marcel Holtmann Signed-off-by: Gustavo Padovan commit e93d083f42a126b5ad8137b5f0e8d6f900b332b8 Author: Simon Wunderlich Date: Tue Jan 8 14:48:58 2013 +0100 ath9k: add spectral scan feature Adds the spectral scan feature for ath9k. AR92xx and AR93xx chips are supported for now. The spectral scan is triggered by configuring a mode through a debugfs control file. Samples can be gathered via another relay debugfs file. Essentially, to try it out: echo chanscan > /sys/kernel/debug/ieee80211/phy0/ath9k/spectral_scan_ctl iw dev wlan0 scan cat /sys/kernel/debug/ieee80211/phy0/ath9k/spectral_scan0 > samples echo disable > /sys/kernel/debug/ieee80211/phy0/ath9k/spectral_scan_ctl This feature is still experimental. The special "chanscan" mode is used to perform spectral scan while mac80211 is scanning for channels. To allow this, sw_scan_start/complete() ops have been added. The patch contains code snippets and information from Zefir Kurtisi and information provided by Adrian Chadd and Felix Fietkau. Signed-off-by: Simon Wunderlich Signed-off-by: Mathias Kretschmer Signed-off-by: John W. Linville commit 1a26cda8e0d954257ef2e4e732350232e1506a65 Author: Sujith Manoharan Date: Tue Jan 8 20:57:53 2013 +0530 ath9k_hw: Fix radio programming for AR9550 For AR9550, program the synth value based on the ref. clock. The logic for AR9550 is similar to AR9330, but keep the code separate since changes for AR9330 are required - which would be done later. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 2d7caefbafc4ca00cc87ec675c7981e07fa7f37b Author: Sujith Manoharan Date: Tue Jan 8 20:57:52 2013 +0530 ath9k_hw: Add TempCompensation feature for AR9550 Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 3a6a62fbc99e1b49a5f7b9d926a7061cc623a1c2 Author: Sujith Manoharan Date: Tue Jan 8 20:57:51 2013 +0530 ath9k_hw: Update initvals for QCA955x Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 4850b6d355b457738fe7d872c833474dbec25304 Author: Nishant Sarmukadam Date: Tue Jan 8 12:10:53 2013 +0530 mwl8k: Wake up queues in mwl8k_start If queues are stopped in mwl8k_stop, these should be started in mwl8k_start Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Powar Signed-off-by: John W. Linville commit 0dd13a48a913f096cb44dbcb6c1daebd94b2cf84 Author: Yogesh Ashok Powar Date: Tue Jan 8 10:16:37 2013 +0530 mwl8k: Delete ampdu streams with state AMPDU_STREAM_NEW in sta remove When a station deauths, we do not delete the streams with state AMPDU_STREAM_NEW and these remain created forever. Fix this issue by removing such streams in the driver Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 9b0b11fb1e286e03ce911b94844952edd05f554e Author: Nishant Sarmukadam Date: Tue Jan 8 10:16:05 2013 +0530 mwl8k: Disable tx_wait completion Whenever TX ring is drained, priv->tx_wait still points to a valid completion. Making sure that it points to NULL before returning from the mwl8k_tx_wait_empty check. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 96da6fdd5ae28568be63ccf1f70b14a72135d493 Author: Sujith Manoharan Date: Mon Jan 7 14:43:33 2013 +0530 ath9k_hw: Use helper routines to simplify ar9003_hw_init_cal() Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit dfcca60b884185cc1e12de932156bd806d896747 Author: Sujith Manoharan Date: Mon Jan 7 13:53:47 2013 +0530 ath9k_hw: Fix MCI init for AGC calibration When AGC calibration is to be done, a GPM message with the payload, MCI_GPM_WLAN_CAL_REQ has to be sent. Currently this falls within the IQ-CAL code block which is incorrect. Fix this by using a separate variable to decide when IQ-CAL is to be done separately and call ar9003_mci_init_cal_req correctly. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 4656b8f680b4405d68a84e6223b1709b3e1944a6 Author: Sujith Manoharan Date: Mon Jan 7 13:53:46 2013 +0530 ath9k_hw: Do not enable IQ-CAL for half/quarter rates IQ calibration doesn't complete and times out for half/quarter rates, so skip it correctly. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 79afb22d093993ef50f250f5368b565d0a0b7569 Merge: e7f767a 2d31986 Author: John W. Linville Date: Wed Jan 9 14:22:45 2013 -0500 Merge branch 'for-john' of git://git.sipsolutions.net/mac80211-next commit a6785be2f76e2c39b3008820e7bfef8f5fd838bc Author: Szymon Janc Date: Thu Dec 13 15:11:21 2012 +0100 Bluetooth: mgmt: Avoid using magic number in status code Use MGMT_STATUS_SUCCESS for success return code. Signed-off-by: Szymon Janc Signed-off-by: Gustavo Padovan commit 47c37941b8895557409db286e6a441e6d557d62f Author: Szymon Janc Date: Thu Dec 13 15:11:20 2012 +0100 Bluetooth: mgmt: Remove not needed restriction on add/remove OOB data Those commands don't send any HCI commands to controller so there is no need to restrict them to only powered up controller. This also makes implementation more consistent as already stored remote OOB data persist power toggle. Signed-off-by: Szymon Janc Signed-off-by: Gustavo Padovan commit cb6801c640c759fe02c812728c2661bd8ba5a302 Author: Andrei Emeltchenko Date: Fri Dec 7 14:59:08 2012 +0200 Bluetooth: AMP: Use set_bit / test_bit for amp_mgr state Using bit operations solves problems with multiple requests and clearing state. Signed-off-by: Andrei Emeltchenko Signed-off-by: Gustavo Padovan commit cbf54ad104cb2ec6f5734d95be1dc783bea0343b Author: Andrei Emeltchenko Date: Fri Dec 7 14:59:07 2012 +0200 Bluetooth: AMP: Remove dead code Remove code which cannot execute. l2cap_conn_add for AMP_LINK might only be invoked when receiving data in l2cap_recv_acldata. But this case is checked in the first statement there. Signed-off-by: Andrei Emeltchenko Signed-off-by: Gustavo Padovan commit 7a9898c6ff67ad640304fd3d02f9a22874483c3d Author: Andrei Emeltchenko Date: Fri Dec 7 14:59:06 2012 +0200 Bluetooth: AMP: Clean up logical link create / accept Use chan->hs_hcon instead of lookup by dst address. Signed-off-by: Andrei Emeltchenko Signed-off-by: Gustavo Padovan commit 8e05e3ba88adcf7ac644e6ef26676ea7c048a08c Author: Andrei Emeltchenko Date: Fri Dec 7 14:59:05 2012 +0200 Bluetooth: AMP: Send A2MP Create Phylink Rsp after Assoc write Postpone sending A2MP Create Phylink Response until we got successful HCI Command Complete after HCI Write Remote AMP Assoc. Signed-off-by: Andrei Emeltchenko Signed-off-by: Gustavo Padovan commit d6b67c6c0c54c1b18507c15cf1667a362959a0d3 Author: Rami Rosen Date: Sat Dec 8 07:08:25 2012 +0200 Bluetooth: Remove unnecessary include l2cap.h This patch removes unnecessary include of in bluetooth/bnep/core.c. Signed-off-by: Rami Rosen Signed-off-by: Gustavo Padovan commit 2d31986764926630a6df72123a5e217219b32594 Author: Johannes Berg Date: Wed Jan 9 12:01:38 2013 +0100 regulatory: fix restore_regulatory_settings My commit 379b82f4c9dc6e67bf61aa61b096c06a2f320f60 ("regulatory: pass new regdomain to reset function") broke the restore_regulatory_settings() function due to a logic change. Consider this change: - reset_regdomains(true); - cfg80211_regdomain = cfg80211_world_regdom; + reset_regdomains(true, cfg80211_world_regdom); This looks innocent enough, until you realise that the called function (reset_regdomains) also resets the cfg80211_world_regdom pointer, so that the old version of the code would use the new object it pointed to and the new version of the code uses the old object. This lead to a double-free of this object. Since reset_regdomains() sets it to &world_regdom, use that directly. Reported-by: Sujith Manoharan Tested-by: Sujith Manoharan Reported-by: Bob Copeland Reported-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 4a484cffc5e1836114e9556f7c704412d491200c Author: Johannes Berg Date: Wed Jan 9 10:22:07 2013 +0100 regulatory: fix uevent The uevent callback doesn't protect its access to last_request, which now causes a warning since the conversion to get_last_request(). Fix this by allowing to use RCU protection for last_request. Reported-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 8a168ca7074b463d0e19a9e9c15946db1afbddc4 Author: Masanari Iida Date: Sat Dec 29 02:00:09 2012 +0900 treewide: Fix typo in various drivers Correct spelling typo in printk within various drivers. Signed-off-by: Masanari Iida Signed-off-by: Jiri Kosina commit aaeb6cdfa5c07533c2cd6d2c381374c69f7db9dc Author: Jiri Pirko Date: Tue Jan 8 01:38:26 2013 +0000 remove init of dev->perm_addr in drivers perm_addr is initialized correctly in register_netdevice() so to init it in drivers is no longer needed. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit e7f767a7d9f809c494bfffffeda2bbdbfec110b4 Author: Avinash Patil Date: Thu Jan 3 21:21:32 2013 -0800 mwifiex: use map/unmap APIs in TX and RX to reduce memcpy This patch is an enhacement to mwifiex_pcie driver to use map/unmap PCI memory APIs. This reduces one memcpy each in TX path and RX path, and enhances throughput. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit fbd7e7ac6db3db8bccf3210d23b5a2a66471c538 Author: Avinash Patil Date: Thu Jan 3 21:21:31 2013 -0800 mwifiex: flush TX ring for PCIe after disconnect or bss stop This patch adds handler to clean PCIe TX rings after disconnect or bss stop is called for PCIe based mwifiex driver. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit fc3314609047daf472b3ffc49f9a1c5608068713 Author: Avinash Patil Date: Thu Jan 3 21:21:30 2013 -0800 mwifiex: use pci_alloc/free_consistent APIs for PCIe This patch uses pci_alloc_consistent and pci_free_consistent APIs for mwifiex_pcie driver. Consistent DMA memory is allocated for TX, RX and event rings. Command buffer and command response buffer also uses map/unmap memory APIs to download commands and get command responses. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit c6d1d87a10d1e5317701676c39bbec20e4651b91 Author: Avinash Patil Date: Thu Jan 3 21:21:29 2013 -0800 mwifiex: add init_fw_port handler for PCIe interface This patch adds support for init_fw_port handler for PCIe interface, which resets RXBD read pointer for PCIe. This fixes issue where RX doesn't work until some TX from driver happens. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 659c4788611f725ede2def6e4db5d8d4a59b93b5 Author: Avinash Patil Date: Thu Jan 3 21:21:28 2013 -0800 mwifiex: access interrupt status only while holding lock This patch fixes a bug for few instances where PCIe interrupt status variable is accessed without holding spin lock. This can result into missing interrupts. Fix this by copying interrupt status to a local variable and then using it for calling specific routine. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 03c2dc73581ad4ae54f1ccfc1463929b16b8b736 Author: Sujith Manoharan Date: Thu Jan 3 14:55:48 2013 +0530 ath9k_hw: Fix calibration for AR9340 TX_IQ_ON_AGC_CAL should not be enabled for AR9340. TX-IQ calibration is run as part of AGC calibration only for AR9485, AR9462 and AR9565. For the others (AR9300, AR9330, AR9340), TX-IQ cal is done independent of AGC-cal. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit c2f2e2029bea2a8a759b2bc2a44f4d41539af236 Author: Yogesh Ashok Powar Date: Thu Jan 3 13:24:44 2013 +0530 mwl8k: bump firmware API to 3 New firmware is required to support a) Add support for additional ampdu streams b) Handle corresponding watchdog events to destroy ampdu streams Bumping firmware API version by one. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit c27a54d3f12383789b57a404649daf98a05cbd72 Author: Yogesh Ashok Powar Date: Thu Jan 3 13:24:19 2013 +0530 mwl8k: Handle watchdog event with highest prioriry Currently, command path waits till all the tx host queues are empty. Whenever watchdog event is raised, firmware expects driver to destroy ampdu queues immediately. This requires corresponding commands i.e. mwl8k_cmd_get_watchdog_bitmap and mwl8k_destroy_ba to be sent without waiting for the tx queues to be completely empty. Use "watchdog_event_pending" to ensure the above mentioned two commands are sent down immediately. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit cfacba12f573abd04a202e3e86c09f246339071f Author: Yogesh Ashok Powar Date: Thu Jan 3 13:24:03 2013 +0530 mwl8k: Handle Watchdog events for the new ampdu streams With more ampdu streams, we need to handle watchdog events for the new ampdu streams. Handle these events appropriately. Earlier mwl8k_cmd_get_watchdog_bitmap used to return only one stream index and hence bitwise operations on the return value were not required. Now the function returns a bitmap with different bits are mapped with different stream indices. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 07f6dda1e7ed653c87ed329c99d6ae12ee114d52 Author: Yogesh Ashok Powar Date: Thu Jan 3 13:23:33 2013 +0530 mwl8k: changing mwl8k_destroy_ba prototype Currently, mwl8k_ampdu_stream is passed as one of the argument to the function mwl8k_destroy_ba. Instead of this pass only the stream index. This will be helpful during watchdog event handling when bitmap of stream indices are received. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 7fb978b7e93b5c4a378eba5767c7513540b56642 Author: Yogesh Ashok Powar Date: Thu Jan 3 13:22:56 2013 +0530 mwl8k: Enable support to support additional ampdu streams Currently, we have 2 ampdu streams that can be created simultaneously. Firmware is capable of supporting additional streams. Add support to use these streams. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 5f2a14940db23350612071a3c906c8960e3ceb9a Author: Yogesh Ashok Powar Date: Thu Jan 3 13:21:25 2013 +0530 mwl8k: set ack policy to normal Set ACK policy to NORMAL when its not going to be an AMPDU packet. Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 96769caf8a755c9767b1a5c56fe71e062c2ad7da Author: Yogesh Ashok Powar Date: Thu Jan 3 13:20:47 2013 +0530 mwl8k: Remove redundant txq_idx Ampdu stream index can be derived from stream->idx. So we no longer need stream->txq_idx, hence removing it. Signed-off-by: Nishant Sarmukadam Signed-off-by: Yogesh Ashok Powar Signed-off-by: John W. Linville commit 1a6e5d7c96c247ee0d9f446248679cac1bd65dd1 Author: Sujith Manoharan Date: Thu Jan 3 12:21:23 2013 +0530 ath9k_hw: Remove TEMP_COMP_CAL This is not enabled for any chip and is unused. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit b686929c544be6d2d30b82dfb7a61a7766885177 Author: Sujith Manoharan Date: Thu Jan 3 12:21:21 2013 +0530 ath9k_hw: Enable calibration types in init_cal_settings Doing this in ath9k_hw_fill_cap_info() is odd and it's cleaner to do this in the init function for calibration. Also, setup the supported calibration type in init_cal_settings. Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit 54428c57b6d7a9dc172ecfa80b07f17431015d09 Author: Avinash Patil Date: Wed Jan 2 16:56:01 2013 -0800 mwifiex: parse WMM IEs from hostapd for mwifiex AP This patch adds support for parsing WMM IEs from hostapd and setting them to FW via sys configure command. Patch also sets wiphy flag to advertise AP uAPSD support. Signed-off-by: Avinash Patil Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit d35f1035b53e92167a8231e15121dd10f4aa8edd Author: Amitkumar Karwar Date: Wed Jan 2 16:56:00 2013 -0800 mwifiex: use correct htcapinfo for HT20 ibss network It is observed that same htcapinfo ie is included in beacon for HT20, HT40+ and HT40- ibss networks. This patch makes sure that we will not advertise 40Mhz flags while creating/joining ibss network in HT20 mode. Signed-off-by: Amitkumar Karwar Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit fc40ca92344a4e4a45bf916cf067e92085b881ea Author: Sasha Levin Date: Wed Jan 2 16:23:01 2013 -0800 wireless: mwifiex: remove unreachable paths We know 'firmware' is non-NULL from the beginning of mwifiex_prog_fw_w_helper, remove all !firmware paths from the rest of the function. Signed-off-by: Sasha Levin Signed-off-by: Bing Zhao Signed-off-by: John W. Linville commit 6960af6dce1f0b2d9d1b4ddf75952d54e633b923 Author: Alexey Khoroshilov Date: Thu Jan 3 00:06:47 2013 +0400 p54pci: don't return zero on failure paths in p54p_probe() If pci_set_dma_mask() or pci_set_consistent_dma_mask() fails in p54p_probe(), it breaks off initialization, deallocates all resources, but returns zero. Similar issue is if check for returned value of pci_resource_len() fails. The patch implements proper error code propagation. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Acked-by: Christian Lamparter Signed-off-by: John W. Linville commit 40a23296854dded596fda33e0df4a7373229d75e Author: Hante Meuleman Date: Wed Jan 2 15:22:51 2013 +0100 brcmfmac: Update init code routines from interface up. On interface up dongle gets inialized. Move UP command to common routine and update these common init routines using ifp. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 88d1239a1b9713cd505314fe9a1031c775b3eb3c Author: Hante Meuleman Date: Wed Jan 2 15:22:50 2013 +0100 brcmfmac: Removing obsolete variables and inline functions. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 80fd2dbee00edcd19fb8c04a12dbeefc55533f2e Author: Hante Meuleman Date: Wed Jan 2 15:22:49 2013 +0100 brcmfmac: Return correct error on netdev xmit. Netdev xmit routine brcfm_netdev_start_xmit was defined incorrectly and used wrong return codes. Always eat the packet and return ok. Remove drvr_up check since it is not relevant. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 03abad08bb837650feb2bd7581ef14c8a1c51964 Author: Hante Meuleman Date: Wed Jan 2 15:22:48 2013 +0100 brcmfmac: Remove unused caching dongle error. CDC errors are retained. However, it is never used so it can be removed. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit b84e3112ecc73482a7e07cd88bf2feaa60e42634 Author: Arend van Spriel Date: Wed Jan 2 15:22:47 2013 +0100 brcmfmac: remove unnecessary curly braces in dhd_attach() Stumbled into a curly braces used for if statement with only one conditional statement. Removing them. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 12b33dacb4bb3780512d3c6a4d064d9ed1172c0e Author: Arend van Spriel Date: Wed Jan 2 15:22:46 2013 +0100 brcmfmac: cleanup netdev transmit callback The header of the ethernet packet is processed conditionally, but the check is wrong as it checks skb length is at least ETH_ALEN. It should check it is at least sizeof struct ethhdr instead. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 7833b5799fb4dd201d6808c164712ea9d0c3dec0 Author: Arend van Spriel Date: Wed Jan 2 15:22:45 2013 +0100 brcmfmac: remove unused event related definitions The driver had some global definitions in dhd.h to map event identifiers to event names. With redesign of firmware event processing this has all moved to fweh module so these definitions can be removed. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit a6cfb1477d23aa251a1a4b0285fb385d94cdde51 Author: Hante Meuleman Date: Wed Jan 2 15:22:44 2013 +0100 brcmfmac: Use dedicated trace level for CDC. CDC debug is partly done with TRACE and partly with CTL, however CDC hardly ever needs debugging. Use dedicated level CDC and replace TRACE and CTL in dhd_cdc with that. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit a43af515f6252e62604a1bfc139d43fa43ef5b6f Author: Arend van Spriel Date: Wed Jan 2 15:22:43 2013 +0100 brcmfmac: remove brcmf_proto_hdrpull() from bus interface The use of the function brcmf_proto_hdrpull() is moved to the common part of the driver and consequently it can be removed from the bus interface. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 3aa7aad2b2da32dd897900ab3eb62348a54d2dc1 Author: Arend van Spriel Date: Wed Jan 2 15:22:42 2013 +0100 brcmfmac: remove rx helper function from bus interface The bus interface provided a wrapper function to pass a single packet to the common driver part filling a skb queue with one packet. For clarity the caller now sets up the skb queue and call the rx bus interface function. Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 79d7c4e8da4ac3cfa98e8e622a17baaeb3c9d29d Author: Arend van Spriel Date: Wed Jan 2 21:20:10 2013 +0100 brcmfmac: define pr_fmt in one place Several source files (but not all) define the pr_fmt() macro in exactly the same way. Instead this commit defines it in a header file so driver logging is consistent. Cc: Joe Perches Reviewed-by: Hante Meuleman Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 81d5f1bbc47961b2347d2b92b2aec56e6bad8779 Author: Arend van Spriel Date: Wed Jan 2 15:22:40 2013 +0100 brcmfmac: assure USB dongle firmware is reset upon module unload Upon unloading the brcmfmac module the USB firmware should be reset as the device remains powered. The reset assures a known device state when a new brcmfmac driver load is being done. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit ac744395ba0a0491f8524a8371ad6f7df67bf673 Author: Hante Meuleman Date: Wed Jan 2 15:22:39 2013 +0100 brcmfmac: removed deprecated set_bitrate_mask support Set bitrate_mask is not desired anymore. The firmware will determine the correct rates to be used. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 0429a6fa6be9489bf451e9fcc0f97341e4a356b6 Author: Hante Meuleman Date: Wed Jan 2 15:22:38 2013 +0100 brcmfmac: do not reconfigure refill rx on 0-length packet. When USB device gets removed rx complete comes with 0-length packets. Do not refill those packets. In some rare cases it can cause infinite loop. Reviewed-by: Arend Van Spriel Reviewed-by: Pieter-Paul Giesberts Signed-off-by: Hante Meuleman Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 637ccc27f46f2232267e689b6f8eb744f78f4810 Author: Piotr Haber Date: Wed Jan 2 15:22:37 2013 +0100 brcmsmac: remove dead code Dead code after AMPDU restructure. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Reviewed-by: Arend van Spriel Signed-off-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit b180b10056e204fa1f65f0494215d73eb8253c87 Author: Arend van Spriel Date: Wed Jan 2 15:22:36 2013 +0100 brcmsmac: allow user-space setting of interface address The interface address of the wireless device is determined by the permanent address stored in the device. This patch allows it to be overridden from user-space. Reported-by: Maximilian Engelhardt Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 66578c0a8cb8c34ef284acf34e05f2d8e7416ee1 Author: Arend van Spriel Date: Wed Jan 2 15:22:35 2013 +0100 brcmsmac: use perimeter lock in add_interface() callback All callbacks that access driver functions should do that under perimeter lock protection. The add_interface() callback was lacking this lock. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit 01486c5ad388c8a38f2e075666e8c2ee32bda4b6 Author: Piotr Haber Date: Wed Jan 2 15:22:34 2013 +0100 brcmsmac: increase timer reference count for new timers only On hardware reintialization reference count of already existing timers would be increased again. This leads to problems on module unloading. Reviewed-by: Pieter-Paul Giesberts Reviewed-by: Hante Meuleman Reviewed-by: Arend van Spriel Signed-off-by: Piotr Haber Signed-off-by: Arend van Spriel Signed-off-by: John W. Linville commit a02308e931ad0bba19803779bec491c4b2d67b47 Author: Gabor Juhos Date: Sat Dec 29 14:51:51 2012 +0100 rt2x00: rt2800: convert read_eeprom functions to return an int value Both the rtt2x00usb_eeprom_read and the ioremap functions are allowed to fail, however their return values are not checked in the read_eeprom functions in the rt2800{pci,usb} drivers. The patch adds the missing checks, and converts all read_eeprom functions to return an int value, so the error values can be propagated up to the 'rt2800_validate_eeprom' function. Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit e1b97c9bc5902ec8b36247bcb7c3552895611485 Author: Sujith Manoharan Date: Wed Dec 26 12:27:38 2012 +0530 ath9k_hw: Remove AR9485 1.0 macro Signed-off-by: Sujith Manoharan Signed-off-by: John W. Linville commit c2397bb0c55495d8474c36143fdaced5c435a5e4 Author: Geert Uytterhoeven Date: Sat Dec 22 22:07:14 2012 +0100 brcmsmac: initialize morepending in brcms_b_recv() drivers/net/wireless/brcm80211/brcmsmac/main.c: In function ‘brcms_b_recv’: drivers/net/wireless/brcm80211/brcmsmac/main.c:7636: warning: ‘morepending’ may be used uninitialized in this function Signed-off-by: Geert Uytterhoeven Acked-by: Arend van Spriel Signed-off-by: John W. Linville commit 07db8f8fe9889a2db44d7692e5514a41d20e32c6 Author: Stanislaw Gruszka Date: Thu Dec 20 14:31:53 2012 +0100 iwlegacy: allow to enable PS Power save support was removed from iwlegacy due to possible firmware crashes problems it cause. I use to plan first inspect code to find reason of problems, fix them and then allow to enable PS. But realistically - code inspection will not happen, so let's do it, and wait for eventual bug reports. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 70277f47b58b174a6b0b891dcd06ae5125afb73b Author: Stanislaw Gruszka Date: Thu Dec 20 14:31:51 2012 +0100 iwlegacy: add flush callback Dump implementation of flush, which just wait until all TX queues become empty. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 93476b1e685036e8513be8df34ca442096af6b4c Author: Gabor Juhos Date: Mon Dec 17 22:06:08 2012 +0100 ath9k: fix column header comments for some initval arrays Some 3-column initval arrays have wrong comments. The column of these arrays is indexed by the 'freqIndex' variable in 'ar5008_hw_process_ini' which only depends on the actual band. The 'initvals' tool from 'qca-swiss-army-knife' prints the correct comment lines for these arrays, since commit 'atheros-initvals: fix comments for non-fastclock 3-column tables' however the comments were not refreshed in ath9k. The patch contains no functional changes. Signed-off-by: Gabor Juhos Signed-off-by: John W. Linville commit 1f1d9654e183c31df4d168591165beed869ea098 Author: Christian Lamparter Date: Sat Dec 22 15:05:26 2012 +0100 carl9170: refactor carl9170_update_beacon This patch moves parts of carl9170_update_beacon into separate subroutines, so the parts become more manageable. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 558925f3135731d67c5e65436ecff1a4b1c9450f Author: Christian Lamparter Date: Thu Dec 20 02:44:29 2012 +0100 carl9170: remove custom NUM_TID and friends The commit: "mac80211: introduce IEEE80211_NUM_TIDS and use it" introduced a generic NUM_TID definitions for all everyone. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 55fa645e3a3f4c0b5da744eb0e1fec4e51dfc75e Author: Christian Lamparter Date: Mon Dec 17 17:05:55 2012 +0100 carl9170: disable hw crypto for p2p networks While the driver supports HW offload in a single P2P client configuration, it doesn't support HW offload in the concurrent P2P GO+CLIENT configuration. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 7a5c7307736cdc26146581aed24cc46a4c7e6f35 Author: Christian Lamparter Date: Mon Dec 17 16:30:05 2012 +0100 carl9170: don't enable hw crypto offload, if the fw doesn't support it Previously, op_start would set disable_offload always to false, even if it was set to true by the fw parser. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 17f658ac8c7e0af0c7aa12587477f9bbc093229e Author: Christian Lamparter Date: Mon Dec 17 14:54:19 2012 +0100 carl9170: Only specify interface combinations if more than one interface is possible Otherwise carl9170 triggers a warning in cfg80211, from net/wireless/core.c /* Combinations with just one interface aren't real */ if (WARN_ON(c->max_interfaces < 2)) Note: The number of supported interfaces is set by the carl9170 firmware. The default number of supported interfaces for all current firmwares is 2. Therefore this warning can only be observed with custom firmwares. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 7f878b0d96e6b3bd27d736fb2fb7e3cc94b16b26 Author: Christian Lamparter Date: Sun Dec 16 01:41:37 2012 +0100 carl9170: allow P2P_GO interface creation after P2P_CLIENT Janusz Dziedzic reported that after a change in wpa_supplicant ["nl80211: Automatically use concurrent P2P if possible"], carl9170 was no longer able to host a P2P network. This patch tackles the problem by allowing GO interfaces to be registered, long after the P2P_CLIENT interface is brought up. Reported-by: Janusz Dziedzic Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit 5ae994d0984ddc2f1e79c4f8de7189faecfc0af9 Author: Christian Lamparter Date: Sat Dec 15 23:21:32 2012 +0100 carl9170: import 1.9.7 firmware headers Import new headers from my firmware branch: visit our wiki at: Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit d1f3de71a584a82ee4e84505fce9acccf40215ff Author: Christian Lamparter Date: Sat Dec 15 23:18:06 2012 +0100 carl9170: advertise support for TDLS Based on a quick test [ath9k and carl9170], TDLS seemed to be working fine. And while we are at it, let's move the wiphy feature flag set from carl9170_alloc into a single place in carl9170_fw. Signed-off-by: Christian Lamparter Signed-off-by: John W. Linville commit c1b976d2fcb3b308906be7c6bda1390251dec32d Author: Felix Fietkau Date: Wed Dec 12 13:14:23 2012 +0100 ath9k_hw: use the devres API for allocations Signed-off-by: Felix Fietkau Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit b81950b165ff71d826fcac851153f9265a83d9ab Author: Felix Fietkau Date: Wed Dec 12 13:14:22 2012 +0100 ath9k: use the devres API for allocations/mappings Signed-off-by: Felix Fietkau Acked-by: Luis R. Rodriguez Signed-off-by: John W. Linville commit d5374ef13ebda6ec93f0b4af6b30682ea4b14782 Author: Stanislaw Gruszka Date: Wed Dec 12 06:30:55 2012 +0100 rt2800: refactor RFCSR initialization rt2800_init_rfcsr() is too big, split RF initialization into per chip functions. Code will change, but we should setup the same values onto RF registers and in the same order as before. Signed-off-by: Stanislaw Gruszka Signed-off-by: John W. Linville commit 48c6cc04c9ce5c38c76304377f6f7e5b1e98ca47 Merge: ba23d20 abae238 Author: John W. Linville Date: Mon Jan 7 14:57:43 2013 -0500 Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next commit 81135548e697a24ab41944c4354953a71b0b9efe Author: Jiri Pirko Date: Sun Jan 6 02:12:51 2013 +0000 net: use ETHTOOL_FWVERS_LEN instead of ETHTOOL_BUSINFO_LEN for fw_ver strings Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 7826d43f2db45c9305a6e0ba165650e1a203f517 Author: Jiri Pirko Date: Sun Jan 6 00:44:26 2013 +0000 ethtool: fix drvinfo strings set in drivers Use strlcpy where possible to ensure the string is \0 terminated. Use always sizeof(string) instead of 32, ETHTOOL_BUSINFO_LEN and custom defines. Use snprintf instead of sprint. Remove unnecessary inits of ->fw_version Remove unnecessary inits of drvinfo struct. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit c51f878379b1d0677619798b1d9358d053bdbdb1 Author: Thomas Pedersen Date: Wed Jan 2 14:55:18 2013 -0800 mac80211_hwsim: fix beacon timing A beacon period starts at TSF time 0. Spoof this by rounding the starting beacon time to a multiple of the beacon interval, and keep TBTT aligned on TSF adjustment. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 01e59e467ecf976c782eecd4dc99644802cc60e2 Author: Thomas Pedersen Date: Wed Jan 2 14:55:17 2013 -0800 mac80211_hwsim: hrtimer beacon For testing various timing-sensitive protocols (power save, MBCA, etc.), a beacon accuracy of jiffies is not sufficient. A tasklet_hrtimer is used for the beacon since it runs the callback in soft-IRQ context with hrtimer resolution. Also handle BSS_CHANGED_BEACON_ENABLED for hwsim. Signed-off-by: Thomas Pedersen [simplify timer container_of] Signed-off-by: Johannes Berg commit 45034bfb8c9ecc62db40b438bea7fe728ac8facf Author: Thomas Pedersen Date: Wed Jan 2 14:55:16 2013 -0800 mac80211_hwsim: fix tsf adjustment Make hwsim TSF offset adjustments cumulative and relative to the fake PHY TSF. Now adding 1000us, then adding -1000us doesn't result in a tsf_offset of -1000. Also the beacon timestamp can now correctly be expressed as (tsf + data->tsf_offset), which will be done in a later patch. Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit 75ea719cb4773b05cc48e741feb4e267522b9656 Author: Bob Copeland Date: Thu Jan 3 00:09:46 2013 -0500 mac80211: fix mesh_hwmp kerneldoc One of the function names was wrong and some parameters were missing. Signed-off-by: Bob Copeland Signed-off-by: Johannes Berg commit 15c6ff3bc0ff3464a8c7efcdea09c86454571622 Author: Jiri Pirko Date: Tue Jan 1 03:30:17 2013 +0000 net: remove unnecessary NET_ADDR_RANDOM "bitclean" NET_ADDR_SET is set in dev_set_mac_address() no need to alter dev->addr_assign_type value in drivers. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit e41b2d7fe7803e85e1202d0eb172717d7bf1bbaf Author: Jiri Pirko Date: Tue Jan 1 03:30:15 2013 +0000 net: set dev->addr_assign_type correctly Not a bitfield, but a plain value. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit d82603c6da7579c50ebe3fe7da6e3e267d9f6427 Author: Jorrit Schippers Date: Thu Dec 27 17:33:02 2012 +0100 treewide: Replace incomming with incoming in all comments and strings Signed-off-by: Jorrit Schippers Signed-off-by: Jiri Kosina commit abae2386d55aff1d395cdb665f03684c227a6a69 Author: Emmanuel Grumbach Date: Mon Dec 31 13:46:42 2012 +0200 iwlwifi: always check that grab_nic_access succeeds This allows to let sparse check that the NIC access is always released. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit c8f9b0feab564e1ecf460b440e838673aced282c Author: Eytan Lifshitz Date: Fri Dec 28 00:10:36 2012 +0200 iwlwifi: fix spelling and value in LED registers. Fix typo in the macro name and the wrong value. Signed-off-by: Eytan Lifshitz Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 0aa86df673d2122fcffc43ed0266279e1b8d8204 Author: Johannes Berg Date: Thu Dec 27 22:58:21 2012 +0100 iwlwifi: move some PCIe calls to better places Synchronizing the IRQ is pointless when we will then enable the RF-Kill interrupt again, but is needed before we free it and the data needed to handle IRQs; move it to the free function. Simiarly, cancelling the replenish work struct can move to the function that frees the RX data structures. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit a8b691e6104e6bd27070b6ed6622d0b640707fa8 Author: Johannes Berg Date: Thu Dec 27 23:08:06 2012 +0100 iwlwifi: request IRQ only once There's no need to request the IRQ every time the device is started, we can request it just once. Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 653ea7a6a5a912a96affc6443b6e9f42dfce2234 Author: Emmanuel Grumbach Date: Mon Dec 31 13:15:36 2012 +0200 iwlwifi: don't treat a bool as an error code iwl_trans_grab_nic_access returns a boolean. So ret should explicitely set to an error code and not rely on the value returned by iwl_trans_grab_nic_access. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 4fd442db98dadf33ecce6d489bbbc95f6e8d3b31 Author: Emmanuel Grumbach Date: Mon Dec 24 14:27:11 2012 +0200 iwlwifi: virtualize SRAM access Different transports implement the access to the SRAM in different ways. Virtualize it. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 7a65d17053c758109477f420e813ba2d826b0eae Author: Emmanuel Grumbach Date: Mon Dec 24 15:01:24 2012 +0200 iwlwifi: virtualize iwl_{grab,release}_nic_access Since different transports have different ways to wake the up the NIC, we need to virtualize it. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit f317243a8ba1b05338bc03c6606a51021f249a67 Author: Johannes Berg Date: Fri Dec 28 12:27:43 2012 +0100 iwlwifi: use __packed Use __packed instead of __attribute__((packed)). Reviewed-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 6ae02f3ef7f20af0237e21a979f66b13198921da Author: Emmanuel Grumbach Date: Mon Dec 24 11:10:43 2012 +0200 iwlwifi: let the op_mode run a FW while in RFKILL In some cases, the fw should run even if the NIC is in RFKILL. Make the API more flexible to allow that. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit d28cbdef8cb7ea04d5ef7c9d7b14df0751560522 Author: Emmanuel Grumbach Date: Mon Dec 24 16:51:22 2012 +0200 iwlwifi: don't verify fw after download No need to verify that the fw has been written correctly. In case it hasn't, we won't get ALIVE notification. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit da58eefa6d16281c063eba6467690325bfb5f372 Author: Emmanuel Grumbach Date: Tue Dec 18 10:47:28 2012 +0200 iwlwifi: clean up code in AGG If we take a pointer to the tid_data, then use it. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit 046db346386661906dffa33f5ed3dfcdccfddc0b Author: Emmanuel Grumbach Date: Wed Dec 5 15:07:54 2012 +0200 iwlwifi: make the BC table layout configurable This is needed for newer NICs. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit ba23d2068d85f6616ea5f92320c04e87d4b9e141 Author: Johannes Berg Date: Thu Dec 27 17:32:09 2012 +0100 cfg80211: disallow more station changes The following changes are invalid and should be disallowed when a station already exists: * supported rates changes, except for TDLS peers * listen interval changes * HT capability changes Disallow them and also update a mac80211 comment explaining how they would be racy. Signed-off-by: Johannes Berg commit 21add825f90a50407e0121833c8b7cd2c071c478 Author: Johannes Berg Date: Fri Dec 28 15:01:57 2012 +0100 mac80211: unset peer's HT 40 MHz support if not usable When an interface is configured to a 20 MHz channel and the device as well as the peer are 40 MHz capable the HT capabilities of the peer are not restricted to 20 MHz, even though they're supposed to be restricted to the currently possible capabilities. Unset the 40 MHz HT capability bits in this case. Signed-off-by: Johannes Berg commit 1c06ef9831c78648f719a174e4598ae2600b0cf7 Author: Johannes Berg Date: Fri Dec 28 12:22:02 2012 +0100 wireless: use __aligned Use __aligned(...) instead of __attribute__((aligned(...))) in mac80211 and cfg80211. Signed-off-by: Johannes Berg commit ec61cd63dd3f3bf982180b2bcc1b325160d73837 Author: Johannes Berg Date: Fri Dec 28 12:12:10 2012 +0100 mac80211: support HT notify channel width action Support the HT notify channel width action frame to update the rate scaling about the bandwidth the peer can receive in. Signed-off-by: Johannes Berg commit 18b559d5db47c86b10c14590aa2d26c0243c39e4 Author: Johannes Berg Date: Wed Jul 18 13:51:25 2012 +0200 mac80211: split TX aggregation stop action When TX aggregation is stopped, there are a few different cases: - connection with the peer was dropped - session stop was requested locally - session stop was requested by the peer - connection was dropped while a session is stopping The behaviour in these cases should be different, if the connection is dropped then the driver should drop all frames, otherwise the frames may continue to be transmitted, aggregated in the case of a locally requested session stop or unaggregated in the case of the peer requesting session stop. Split these different cases so that the driver can act accordingly; however, treat local and remote stop the same way and ask the driver to not send frames as aggregated packets any more. In the case of connection drop, the stop callback the driver is otherwise supposed to call is no longer required. Signed-off-by: Johannes Berg commit 30bf5f1f433c7612857ed13c50525945c483dfe0 Author: Johannes Berg Date: Fri Dec 28 09:43:03 2012 +0100 mac80211: move ieee80211_remove_tid_tx function To call it from ___ieee80211_stop_tx_ba_session, move the function and dependencies up. Signed-off-by: Johannes Berg commit faec12ee2dd92edc09f75aab3d8c5085102052c5 Author: Johannes Berg Date: Wed Jul 18 14:12:44 2012 +0200 mac80211: split out aggregation TX removal Create the function ieee80211_remove_tid_tx to call it from ___ieee80211_stop_tx_ba_session later. Signed-off-by: Johannes Berg commit c82c4a80bbb9c8ffa1d783070a8caa37f2db45b6 Author: Johannes Berg Date: Wed Jul 18 13:31:31 2012 +0200 mac80211: split aggregation stop by reason The initiator/tx doesn't really identify why an aggregation session is stopped, give a reason for stopping that more clearly identifies what's going on. This will help tell the driver clearly what is expected of it. Signed-off-by: Johannes Berg commit d582cffbcd04eae0bd8a83b05648bfd54bfd21c9 Author: Johannes Berg Date: Fri Oct 26 17:53:44 2012 +0200 nl80211/mac80211: support full station state in AP mode Today, stations are added already associated. That is inefficient if, for example, the driver has no room for stations any more because then the station will go through the entire auth/assoc handshake, only to be kicked out afterwards. To address this a bit better, at least with drivers using the new station state callback, allow hostapd to add stations in unauthenticated mode, just after receiving the AUTH frame, before even replying. Thus if there's no more space at that point, it can send a negative auth frame back. It still needs to handle later state transition errors though, of course. Signed-off-by: Johannes Berg commit dfa674da1807bc8fb782fc38a7d48c8ea3168eb7 Author: Johannes Berg Date: Thu Dec 20 18:23:01 2012 +0100 cfg80211: move some AP code to right file Some AP code ended up in mlme.c as ap.c didn't exist when it was written, move it now. Signed-off-by: Johannes Berg commit b08fbbd8ade1fe3eea821a65b98d9f6a828329da Author: Johannes Berg Date: Fri Dec 7 13:06:48 2012 +0100 mac80211: restrict assoc request VHT capabilities In interoperability testing some APs showed bad behaviour if some of the VHT capabilities of the station are better than their own. Restrict the assoc request parameters - beamformee capabable, - RX STBC and - RX MCS set to the subset that the AP can support. Signed-off-by: Johannes Berg commit 0f500a5f6cadac888d5d3fce326452372d1a8343 Author: Luis R. Rodriguez Date: Wed Dec 19 10:53:04 2012 -0800 cfg80211: move world roaming check for beacon hints We should not add new beacon hints even if the wiphy is not world roaming. Without this we were always adding a beacon hint if not world roaming for every non world roaming wiphy interface. Tested-by: Ben Greear Reported-by: Ben Greear Reported-by: Johannes Berg Signed-off-by: Luis R. Rodriguez [fix locking] Signed-off-by: Johannes Berg commit 3195e489a878aaa3b735d4a1b7c5c79b3786efed Author: Luis R. Rodriguez Date: Wed Dec 19 10:53:03 2012 -0800 cfg80211: move reg_is_world_roaming() This will be used later by other code. This has no functional change. Tested-by: Ben Greear Reported-by: Ben Greear Reported-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 3ebfa6e76beab01e644e1facd5fdb84d4274043e Author: Luis R. Rodriguez Date: Wed Dec 19 10:53:02 2012 -0800 cfg80211: do not process beacon hints if one is already queued Regulatory beacon hints are used to help with world roaming and as it is right now we learn from a beacon hint processed on one wiphy to all other wiphys. The processing of beacon hints however is scheduled and if we have a lot of interfaces we may hit the case that we'll queue a the same beacon hint many times until its processed. To avoid this do a lookup on the queued up beacon hints prior to adding a new beacon hint. If the beacon hint is removed from the pending reg beacon hint list then it would be processed and we'd ensure all wiphys would have learned from it, if its on the pending reg beacon list we'd now find it prior to it being processed. Tested-by: Ben Greear Reported-by: Ben Greear Reported-by: Johannes Berg Signed-off-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit ad2d223aa900179031feb40273881e212941573d Author: Johannes Berg Date: Fri Dec 14 14:34:25 2012 +0100 mac80211: assign bss_conf.bssid only once Instead of checking every time bss_info_changed is called, assign the pointer once depending on the interface type and then leave it untouched until the interface type is changed. This makes the ieee80211_bss_info_change_notify() now a simple wrapper to call the driver only. Signed-off-by: Johannes Berg commit b8dc1a35c88dddcf62ce7bc59a7ed4c38c2f7597 Author: Johannes Berg Date: Fri Dec 14 14:22:10 2012 +0100 mac80211: further simplify ieee80211_bss_info_change_notify The special case in the function isn't really needed, instead make the suspend code a bit better and also easier to understand and move the warning into the driver op wrapper inline. Signed-off-by: Johannes Berg commit 8da349329ae52462253052f804ef30d086c9911a Author: Johannes Berg Date: Fri Dec 14 14:17:26 2012 +0100 mac80211: reconfig bss_info_changed only if beaconing For AP/IBSS/mesh interfaces, call the driver to reconfigure bss_info_changed only if the interface was beaconing before suspend, otherwise we call the driver and it might interpret the change as going from enabled to disabled. Signed-off-by: Johannes Berg commit d6a83228823fc0cc8d79d95c9f0bf568b7317862 Author: Johannes Berg Date: Fri Dec 14 14:06:28 2012 +0100 mac80211: track enable_beacon explicitly Instead of calculating in ieee80211_bss_info_change_notify() whether beaconing should be enabled or not, set it in the correct places in the callers. This simplifies the logic in this function at the expense of offchannel, but is also more robust. Signed-off-by: Johannes Berg commit 8a61af65c6d03781015315dbc43d0942a5b31db9 Author: Johannes Berg Date: Thu Dec 13 17:42:30 2012 +0100 mac80211: fix channel context iteration During suspend/resume channel contexts might be iterated even if they haven't been re-added to the driver, keep track of this and skip them in iteration. Also use the new status for sanity checks. Also clarify the fact that during HW restart all contexts are iterated over (thanks Eliad.) Signed-off-by: Johannes Berg commit 529ba6e9313dbe60dab7e72c6fdf647a012e9f5b Author: Johannes Berg Date: Thu Dec 13 17:16:45 2012 +0100 mac80211: clean up association better in suspend When suspending, bss_info_changed() is called to disable beacons, but managed mode interfaces are simply removed (bss_info_changed() is called with "no change" only). This can lead to problems. To fix this and copy the BSS configuration, clear it during suspend and restore it on resume. Signed-off-by: Johannes Berg commit 61e8a48cc1283c8e4358b3ce06305d886c55f7ce Author: Johannes Berg Date: Thu Dec 13 16:47:42 2012 +0100 mac80211: clean up ieee80211_quiesce It's a bit odd that there's a return value that only depends on the iftype, move that logic out of the function into the only caller that needs it. Also, since the quiescing could stop timers that trigger the sdata work, move the sdata work cancel into the function and after the actual quiesce. Finally, there's no need to call it on interfaces that are down, so don't. Change-Id: I1632d46d21ba3558ea713d035184f1939905f2f1 Signed-off-by: Johannes Berg commit d45c41722a3eca639ced2c4c93665ced229b1da9 Author: Emmanuel Grumbach Date: Mon Dec 10 16:19:13 2012 +0200 mac82011: use frame control to differentiate probe resp/beacon The probe response/beacon management frame RX code passes a bool parameter to differentiate beacons and probe responses. This is useless since we have the frame and can thus use its frame control field. Moreover it is buggy since there is one call to ieee80211_rx_bss_info with a beacon frame that is indicated as a probe response, which is also fixed by using the frame control field, so do that. Signed-off-by: Emmanuel Grumbach Signed-off-by: Johannes Berg commit cc3983d8ab174ca43d5817f16c489b3cce3a795a Author: Johannes Berg Date: Fri Dec 7 12:45:06 2012 +0100 mac80211: fix ieee80211_ie_build_vht_cap indentation Signed-off-by: Johannes Berg commit 9cab315190cddbe3aaa31b64841354dd719afdfd Author: Johannes Berg Date: Fri Dec 14 00:19:08 2012 +0100 cfg80211: adjacent 80+80 MHz channel segments are invalid In that case, it's really a 160 MHz channel, so disallow this configuration. Signed-off-by: Johannes Berg commit 75de9113bb9dc4939a7cd54e4bdfad555b35f5b1 Author: Johannes Berg Date: Fri Dec 14 14:56:03 2012 +0100 mac80211: optimise AP stop RCU handling If there are VLANs, stopping an AP is inefficient as it calls rcu_barrier() once for each interface (the VLANs and the AP itself). Optimise this by moving rcu_barrier() out of the station cleanups and calling it only once for all interfaces combined. Signed-off-by: Johannes Berg commit 361c9c8b0eeeec7d881e018d5143bf883558c566 Author: Johannes Berg Date: Thu Dec 6 15:57:14 2012 +0100 regulatory: use IS_ERR macro family for freq_reg_info Instead of returning an error and filling a pointer return the pointer and an ERR_PTR value in error cases. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit c492db370c17c428a0a58d3673294d4e99634b7d Author: Johannes Berg Date: Thu Dec 6 16:29:25 2012 +0100 regulatory: use RCU to protect last_request This will allow making freq_reg_info() lock-free. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 458f4f9e960b9a3b674c4b87d996eef186b1fe83 Author: Johannes Berg Date: Thu Dec 6 15:47:38 2012 +0100 regulatory: use RCU to protect global and wiphy regdomains To simplify the locking and not require cfg80211_mutex (which nl80211 uses to access the global regdomain) and also to make it possible for drivers to access their wiphy->regd safely, use RCU to protect these pointers. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 379b82f4c9dc6e67bf61aa61b096c06a2f320f60 Author: Johannes Berg Date: Thu Dec 6 15:44:07 2012 +0100 regulatory: pass new regdomain to reset function Instead of assigning after calling the function do it inside the function. This will later avoid a period of time where the pointer is NULL. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit fe7ef5e9ba0c60bab01390493a4c6790f7b093af Author: Johannes Berg Date: Tue Dec 4 15:07:34 2012 +0100 regulatory: remove handling of channel bandwidth The channel bandwidth handling isn't really quite right, it assumes that a 40 MHz channel is really two 20 MHz channels, which isn't strictly true. This is the way the regulatory database handling is defined right now though so remove the logic to handle other channel widths. Signed-off-by: Johannes Berg commit 6913b49a5071064f49f7a74b432286fa735f7612 Author: Johannes Berg Date: Tue Dec 4 00:48:59 2012 +0100 regulatory: fix reg_is_valid_request handling There's a bug with the world regulatory domain, it can be updated any time which is different from all other regdomains that can only be updated once after a request for them. Fix this by adding a check for "processed" to the reg_is_valid_request() function and clear that when doing a request. While looking at this I also found another locking bug, last_request is protected by the reg_mutex not the cfg80211_mutex so the code in nl80211 is racy. Remove that code as it only tries to prevent an allocation in an error case, which isn't necessary. Then the function can also become static and locking in nl80211 can have a smaller scope. Also change __set_regdom() to do the checks earlier and not different for world/other regdomains. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 540f6f2cc545da9ae2baa9faa3152fc550bedb57 Author: Johannes Berg Date: Tue Dec 4 00:19:24 2012 +0100 regulatory: remove locking from wiphy_apply_custom_regulatory wiphy_apply_custom_regulatory() doesn't have to hold the regulatory mutex as it only modifies the given wiphy with the given regulatory domain, it doesn't access any global regulatory data. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit e8da2bb4fe9ecb888f44714e2624c7d4268ac09d Author: Johannes Berg Date: Mon Dec 3 23:00:08 2012 +0100 regulatory: clarify locking rules and assertions Many places that currently check that cfg80211_mutex is held don't actually use any data protected by it. The functions that need to hold the cfg80211_mutex are the ones using the cfg80211_regdomain variable, so add the lock assertion to those and clarify this in the comments. The reason for this is that nl80211 uses the regdom without being able to hold reg_mutex. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 5d885b999c68283c493cf00cc020260d38951ae6 Author: Johannes Berg Date: Tue Dec 4 00:14:17 2012 +0100 regulatory: simplify freq_reg_info_regd The function itself has dual-purpose: it can retrieve from a given regdomain or from the globally installed one. Change it to have a single purpose only: to look up from a given regdomain. Pass the correct regdomain in the freq_reg_info() function instead. This also changes the locking rules for it, no locking is required any more. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 0ba857ad671aa8aa2a1276aa7a0c79abd0575146 Author: Johannes Berg Date: Mon Dec 3 19:12:02 2012 +0100 regulatory: remove useless warning Even if it never happens and is hidden behind the debug config option, it's completely useless: the calltrace will only show module loading. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit d4f2c8819a51f31ef0f929574ce8d80b323c6a76 Author: Johannes Berg Date: Mon Dec 3 18:59:58 2012 +0100 regulatory: remove redundant isalpha() check toupper() only modifies lower-case letters, so the isalpha() check is redundant; remove it. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 11cff96c0660e1e361d60ab90514ffbbfbaf7c03 Author: Johannes Berg Date: Mon Dec 3 18:56:41 2012 +0100 regulatory: simplify restore_regulatory_settings Use list_splice_tail_init() and also simplify the locking. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit fdc9d7b2863ce67f51ed64f89e5b20f3077be569 Author: Johannes Berg Date: Mon Dec 3 18:36:09 2012 +0100 regulatory: remove BUG_ON This code is a bit too BUG_ON happy, remove all instances and while doing so make some code a bit smarter by passing the right pointer instead of indices into arrays. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit f41737669d2f4c07c09e90767498243e142171f9 Author: Johannes Berg Date: Mon Dec 3 18:23:37 2012 +0100 cfg80211: remove wiphy_idx_valid This is pretty much useless since get_wiphy_idx() always returns true since it's always called with a valid wiphy pointer. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 2f92212b71f198d42060f7133ff1dc4edf438f6c Author: Johannes Berg Date: Mon Dec 3 17:54:55 2012 +0100 regulatory: use proper enum for return values Instead of treating special error codes specially, like -EALREADY, introduce a real enum for all the needed possibilities and use it. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 9027b1493b57a6a8f9f56741e4c4189048ea5633 Author: Johannes Berg Date: Mon Dec 3 17:59:24 2012 +0100 regulatory: remove useless locking on exit It would be a major problem if anything were to run concurrently while the module is being unloaded so remove the locking that doesn't help anything. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 1a9193185f462a51815fe48491f8a6fb6b942551 Author: Johannes Berg Date: Mon Dec 3 17:21:11 2012 +0100 regulatory: code cleanup Clean up various things like indentation, extra parentheses, too many/few line breaks, etc. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 75e2dba866706ab9b133983b7fd9a6297b24c22d Author: Johannes Berg Date: Mon Dec 3 17:21:26 2012 +0100 regulatory: simplify regulatory_hint_11d There's no need to unlock before calling queue_regulatory_request(), so simplify the function. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit fea9bcedce2d0c751d4f31155f4634689d46166e Author: Johannes Berg Date: Mon Dec 3 17:32:01 2012 +0100 regulatory: don't test list before iterating There's no need to test whether a list is empty or not before iterating. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit e9763c3c295a8b31316e16558b58b226e005b160 Author: Johannes Berg Date: Mon Dec 3 16:59:46 2012 +0100 regulatory: clean up reg_copy_regd() Use ERR_PTR/IS_ERR to return the result or errors, also do some code cleanups. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 74f53cd8d4474f9ba91c7309feabebae80a60089 Author: Johannes Berg Date: Thu Dec 6 17:26:17 2012 +0100 regulatory: clean up regdom_intersect As the dummy_rule (also renamed from irule) is only used for output by the reg_rules_intersect() function there's no need to clear it at all, remove that. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 82f20856304319d5a931846e0269eb911d52a905 Author: Johannes Berg Date: Tue Dec 4 12:49:16 2012 +0100 regulatory: don't allocate too much memory There's no need to allocate one reg rule more than will be used, reduce the allocations. The allocation in nl80211 already doesn't allocate too much space. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 8a57fff0c178febbe28669a0ef68a8e3460a7589 Author: Johannes Berg Date: Thu Dec 6 17:03:17 2012 +0100 regulatory: don't write past array when intersecting rules When intersecting rules, we count first to know how many rules need to be allocated, and then do the intersection into the allocated array. However, the code doing this writes past the end of the array because it attempts to do all intersections. Make it stop when the right number of rules has been reached. Acked-by: Luis R. Rodriguez Signed-off-by: Johannes Berg commit 10ff57f98d5fccb9bb508ba30230e5df030d67e3 Author: Johannes Berg Date: Sat Dec 15 09:45:50 2012 +0100 mac80211: remove a bit of dead mesh code In a file that's only built when CONFIG_MAC80211_MESH is defined, having an #ifdef on the same is entirely pointless, so remove it. Signed-off-by: Johannes Berg commit 051007d9e281cd8ea603a4cc4c96b0170b26c7e9 Author: Johannes Berg Date: Thu Dec 13 23:49:02 2012 +0100 mac80211: optimise roaming time again The last fixes re-added the RCU synchronize penalty on roaming to fix the races. Split up sta_info_flush() now to get rid of that again, and let managed mode (and only it) delay the actual destruction. Tested-by: Ben Greear Signed-off-by: Johannes Berg commit 09f4114e02aac9cbf40553a17580b07ab29715d8 Author: Johannes Berg Date: Thu Dec 13 23:26:57 2012 +0100 mac80211: warn if unexpectedly removing stations When an interface is brought down it must have been disconnected (or similar) in all modes other than WDS, so warn if any stations were removed in other modes. Tested-by: Ben Greear Signed-off-by: Johannes Berg commit b998e8bb3e1c6eeae5eab9d6a434563270286c3b Author: Johannes Berg Date: Thu Dec 13 23:07:46 2012 +0100 mac80211: remove final sta_info_flush() When all interfaces have been removed, there can't be any stations left over, so there's no need to flush again. Remove this, and all code associated with it, which also simplifies the function. Tested-by: Ben Greear Signed-off-by: Johannes Berg commit a357d7f9855e3002d6aaaea5c40dd1ac02b78de7 Author: Johannes Berg Date: Mon Dec 10 11:57:42 2012 +0100 mac80211_hwsim: allow testing paged RX Paged RX, i.e. SKBs with (some of) the data in pages instead of the SKB header data (skb->data) can behave differently in the stack and cause other bugs. To make debugging easier add an option to hwsim to test with such SKBs. Signed-off-by: Johannes Berg commit f4eabc918c3b88763bc20dd9e2b248aa6c757005 Author: Chun-Yeow Yeoh Date: Thu Dec 13 18:59:57 2012 +0800 mac80211: use short slot time in mesh for 5GHz Use short slot time in 5GHz for mesh. The performance is increased from 16.4Mbps to 23.4Mbps for two directly connected mesh STAs operating in legacy rate using iperf measurement. Almost similar to the results claimed in IBSS mode. Signed-off-by: Chun-Yeow Yeoh [call ieee80211_get_sdata_band() only once] Signed-off-by: Johannes Berg commit bc0784d951470ca6597239f1bae6e59caf49fb10 Author: Ben Greear Date: Wed Dec 12 16:56:20 2012 -0800 mac80211: Allow disabling SGI-20 This allows user-space (wpa_supplicant) to disable short guard interval (SGI) for 20Mhz. The SGI-40 disable option is already handled. Signed-off-by: Ben Greear Signed-off-by: Johannes Berg commit ba0c96cd9a361693b0bae409510d614dc0e26d0f Author: Tejun Heo Date: Fri Dec 21 17:57:04 2012 -0800 rfkill: don't use [delayed_]work_pending() There's no need to test whether a (delayed) work item in pending before queueing, flushing or cancelling it. Most uses are unnecessary and quite a few of them are buggy. Remove unnecessary pending tests from rfkill. Only compile tested. Signed-off-by: Tejun Heo Acked-by: Johannes Berg Cc: "John W. Linville" Cc: linux-wireless@vger.kernel.org commit 02957f92bcc96be5c84a4000f9d22c592158602e Author: Tejun Heo Date: Fri Dec 21 17:56:59 2012 -0800 wl1251: don't use [delayed_]work_pending() There's no need to test whether a (delayed) work item in pending before queueing, flushing or cancelling it. Most uses are unnecessary and quite a few of them are buggy. Remove unnecessary pending tests from wl1251. Only compile tested. Signed-off-by: Tejun Heo Acked-by: Luciano Coelho Cc: linux-wireless@vger.kernel.org commit 7f5855c979ef0d49a8680b7fbdd3fc8e3093cb73 Author: Tejun Heo Date: Fri Dec 21 17:56:57 2012 -0800 mwifiex: don't use [delayed_]work_pending() Drop work_pending() test from mwifiex_sdio_card_reset(). As work_pending() becomes %false before sdio_card_reset_worker() starts executing, it doesn't really protect anything. reset_host may change between mmc_remove_host() and mmc_add_host(). Make sdio_card_reset_worker() cache the target mmc_host so that it isn't affected by mwifiex_sdio_card_reset() racing with it. Only compile tested. Signed-off-by: Tejun Heo Acked-by: Bing Zhao Cc: linux-wireless@vger.kernel.org commit c0c36b941b6f0be6ac74f340040cbb29d6a0b06c Author: Chris Wilson Date: Wed Dec 19 16:08:43 2012 +0000 drm/i915: Return the real error code from intel_set_mode() Note: This patch also adds a little helper intel_crtc_restore_mode for the common case where we do a full modeset but with the same parameters, e.g. to undo bios damage or update a property. Signed-off-by: Chris Wilson Reviewed-by: Rodrigo Vivi [danvet: Added note.] Signed-off-by: Daniel Vetter commit 1c45140d3da0c98fa7eda2cd10f9805232a5e9ac Author: Ben Widawsky Date: Tue Dec 18 10:31:27 2012 -0800 drm/i915: Make GSM void The iomapping of the register region has historically been a uint32_t for the obvious reason that our PTE size was always 4b. In the future however, we cannot make this assumption. By making the type void, it makes the upcoming pointer math we will do much easier, and hopefully gives the compiler opportunities to warn us when we do stupid things. v2: Cast to __iomem, caught by Ville Signed-off-by: Ben Widawsky [danvet: Fixup __iomem issue for real.] Signed-off-by: Daniel Vetter commit 06e5598fce5ce89fe8bf081398296e5b08d993dd Author: Ben Widawsky Date: Tue Dec 18 10:31:26 2012 -0800 drm/i915: Move GSM mapping into dev_priv This removes an unused field from the AGP structure and moves it into the dev_priv structure (with a slightly better name). This builds upon the kill-agp series already merged. GSM is a well defined term in the bspec: GSM: Graphics Stolen Memory GTT stolen space is defined for storage of the GFX GTT entries in physical memory. IA can not access GSM directly , it can only access via GTTMMADR. GT can access GSM directly or through GTTMMADR. This is not the entire stolen space. Signed-off-by: Ben Widawsky Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter commit d7e5008f7c2077d856e40a3af746f1a47028b5f2 Author: Ben Widawsky Date: Tue Dec 18 10:31:25 2012 -0800 drm/i915: Move even more gtt code to i915_gem_gtt This really should have been part of the kill agp series. Signed-off-by: Ben Widawsky Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter commit e94fbaa8750a8f20c14718633764fba2e6755825 Author: Mika Kuoppala Date: Wed Dec 19 11:13:09 2012 +0200 drm/i915: Make next_seqno debugs entry to use i915_gem_set_seqno This debugs entry can be used to set arbitrary value to next_seqno. Use i915_gem_set_seqno instead of poking next_seqno. v2: nasty details of next_seqno and last_seqno handling moved inside i915_gem_set_seqno as suggested by Chris Wilson. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit fca26bb45375266d9d9b8b4b57fee905ac38fe3c Author: Mika Kuoppala Date: Wed Dec 19 11:13:08 2012 +0200 drm/i915: Introduce i915_gem_set_seqno() This function can be used to set the driver's next_seqno to arbitrary value. i915_gem_set_seqno() will idle the gpu, retire outstanding requests, clear the semaphore mailboxes and set the hardware status page's seqno index. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit ba1a7067c00f4cbdd99b00a570ff072639ae59f2 Author: Mika Kuoppala Date: Wed Dec 19 11:13:07 2012 +0200 drm/i915: Always clear semaphore mboxes on seqno wrap In preparation for setting the seqno to arbitrary value on init or through debugfs. We need to always clear the semaphores and set the hws page seqno index by calling intel_ring_init_seqno(). v2: rewrote the commit message as suggested by Chris Wilson. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit f7e98ad4d4a8afa043126a6f24d0a154a684e081 Author: Mika Kuoppala Date: Wed Dec 19 11:13:06 2012 +0200 drm/i915: Initialize hardware semaphore state on ring init Hardware status page needs to have proper seqno set as our initial seqno can be arbitrary. If initial seqno is close to wrap boundary on init and i915_seqno_passed() (31bit space) refers to hw status page which contains zero, errorneous result will be returned. v2: clear mboxes and set hws page directly instead of going through rings. Suggested by Chris Wilson. v3: hws needs to be updated for all gens. Noticed by Chris Wilson. References: https://bugs.freedesktop.org/show_bug.cgi?id=58230 Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit b70ec5bf439b35a18e702f88078d393261c3e3f2 Author: Mika Kuoppala Date: Wed Dec 19 11:13:05 2012 +0200 drm/i915: Introduce ring set_seqno In preparation for setting per ring initial seqno values add ring::set_seqno(). Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 079a43f67f41274b137d8be1fb6093c8f6b6a762 Author: Ben Widawsky Date: Tue Dec 18 10:31:24 2012 -0800 drm/i915: Missed conversion to gtt_pte_t commit f61c0609073133375ace61f74b0e4e7cf631406b Author: Ben Widawsky Date: Mon Oct 22 11:44:43 2012 -0700 drm/i915: introduce gtt_pte_t Signed-off-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 8782e26c0cf3444a0d11400277bb44de710a0142 Author: Ben Widawsky Date: Tue Dec 18 10:31:23 2012 -0800 drm/i915: Bug on unsupported swizzled platforms Signed-off-by: Ben Widawsky Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter commit 7dbf9d6e0fd8d42398955de119ccba6c35813c88 Author: Ben Widawsky Date: Tue Dec 18 10:31:22 2012 -0800 drm/i915: BUG() if fences are used on unsupported platform Signed-off-by: Ben Widawsky Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter commit 4d7bb01162b768ca0f7e50aa3f31790d8d08402c Author: Daniel Vetter Date: Tue Dec 18 15:24:37 2012 +0100 drm/i915: fixup overlay stolen memory leak We need to clean up the overlay first, before taking down the stolen memory allocator. This regression has been introducec in commit 8040513870399f1cb032cb8bc805df5042fedcdf Author: Chris Wilson Date: Thu Nov 15 11:32:29 2012 +0000 drm/i915: Allocate overlay registers from stolen memory v2: Rework the patch a bit as suggested by Chris Wilson: - move the overlay teardown up, into the modeset cleanup - move the stolen mm takedown into i915_gem_cleanup_stolen Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit dfd07d72cf70cc8845006b698b55369f5d9c2733 Author: Daniel Vetter Date: Mon Dec 17 11:21:38 2012 +0100 drm/i915: clean up PIPECONF bpc #defines Ilk+ somehow used #defines in near the PIPESTAT definitions, which decently confused me. Earlier platforms called it BPP instead of BPC. Clean this all up. Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit f0a3424e964ec8e934497a0724cd1d58690fd9ab Author: Paulo Zanoni Date: Thu Dec 6 16:51:50 2012 -0200 drm/i915: add intel_dp_set_signal_levels So we can de-duplicate code that's inside intel_dp_start_link_train and intel_dp_complete_link_train. V2: Rebase since patch 3/5 was discarded. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit a0e63c22ee6daae8fda98e1c6eaff5f5f1e2ba31 Author: Paulo Zanoni Date: Thu Dec 6 11:12:39 2012 -0200 drm/i915: remove leftover display.update_wm assignment This was moved to intel_init_pm. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 681e5811f88b7ecca77734421adafb62f19563be Author: Paulo Zanoni Date: Thu Dec 6 11:12:38 2012 -0200 drm/i915: check for the PCH when setting pch_transcoder Don't check the CPU, it doesn't have any PCH transcoder. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 88afe715dd5469bc24ca7a19ac62dd3c241cab48 Author: Chris Wilson Date: Sun Dec 16 12:15:41 2012 +0000 drm/i915: Clear the stolen fb before enabling As the stolen memory region will contain the contents of whatever was last there, it invariably contains garbage. To be consistent with the shmemfs backed fb and the expectations of the fb layer, we need to clear the fb prior to installing it as an fbcon. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58111 Signed-off-by: Chris Wilson [danvet: Fixup sparse __iomem confusion reported by Wu Fengguang.] Signed-off-by: Daniel Vetter commit eb119bd612906519cacef2536a9a524c2da5f7fb Author: Chris Wilson Date: Sun Dec 16 12:43:36 2012 +0000 drm/i915: Access to snooped system memory through the GTT is incoherent We ignore all the user requests to handle flushing to the GTT domain if the user requests such on a snoopable bo, and as such access through the GTT to such pages remains incoherent. The specs even warn that such behaviour is undefined - a strong reason never to do so. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit 3f8c65d60467c6ccf4d690f5266567d6c423ae7d Author: Damien Lespiau Date: Thu Dec 13 16:09:04 2012 +0000 drm/i915: Remove stale comment about intel_dp_detect() The function doesn't use any of the registers mentioned, nor does it return true or false. Hard to do worse. Remove it, the function is absolutely descriptive enough to not need any comment. Signed-off-by: Damien Lespiau Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit c36346e302b3a36bfb10b58167b69ab7ac95f10a Author: Damien Lespiau Date: Thu Dec 13 16:09:03 2012 +0000 drm/i915: Implement ibx_digital_port_connected() for IBX CPT+ PCHs have different bit definition to read the HPD live status. I don't have an ILK with digital ports handy, which is why this patch is separate from the CPT+ implementation. If the docs don't lie, it should all be fine though. Signed-off-by: Damien Lespiau Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 577c7a505b5601a9a441039dd37543775f9af8f5 Author: Damien Lespiau Date: Thu Dec 13 16:09:02 2012 +0000 drm/i915/dp: Log the DPCD only if we have successfully retrieved one Moving the DPCD just after a successful read will allow to: - log all DPCD reads (eDP ones, changes signalled by HPD IRQ) - don't log it if we haven't been able to read it v2: Be sure to log the DPCD when a downstream port does not have HPD support and the branch device asserts HPD (Jani Nikula) Signed-off-by: Damien Lespiau Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 1b4696394aeb8a550f8537e92ae6cc65f444dca0 Author: Damien Lespiau Date: Thu Dec 13 16:09:01 2012 +0000 drm/i915/dp: Read the HPD status before trying to read the DPCD Just like: Author: Damien Lespiau Date: Wed Dec 12 19:37:22 2012 +0000 drm/i915/hdmi: Read the HPD status before trying to read the EDID But this time for DiplayPort. v2: Adapt to the ibx_ name change and don't add commit hash (Chris Wilson, Jani Nikula) Reviewed-by: Jani Nikula Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter commit b0ea7d37a8f63eeec5ae80b4a6403cfba01da02f Author: Damien Lespiau Date: Thu Dec 13 16:09:00 2012 +0000 drm/i915/hdmi: Read the HPD status before trying to read the EDID If you unplug the hdmi connector slowly enough, the hotplug interrupt fires but then the kernel code tries to read the EDID and succeeds (because the connector is still half connected, the HPD pin is shorter than the others, and DDC works). Since EDID succeeds it thinks the monitor is still connected. To prevent that, read the live HPD status in the hotplug handler before trying to read the EDID. v2: Rename the function to ibx_ (Chris Wilson) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=55372 Signed-off-by: Damien Lespiau Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit b696519e51910943f084ea0fc8bdceceae8383ef Author: Damien Lespiau Date: Thu Dec 13 16:08:59 2012 +0000 drm/i915: Cleanup SHOTPLUG_CTL status bits definitions Those status bits don't follow the usual pattern: _MASK (those bits are write 1 to clear, useful to select the value we want to read) and the values shifted by the same amount. Cleaned that that up when poking at the register for testing purposes, might as well upstream that cleanup. Reviewed-by: Jani Nikula Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 09153000b8ca32a539a1207edebabd0d40b6c61b Author: Daniel Vetter Date: Wed Dec 12 14:06:44 2012 +0100 drm/i915: rework locking for intel_dpio|sbi_read|write Spinning for up to 200 us with interrupts locked out is not good. So let's just spin (and even that seems to be excessive). And we don't call these functions from interrupt context, so this is not required. Besides that doing anything in interrupt contexts which might take a few hundred us is a no-go. So just convert the entire thing to a mutex. Also move the mutex-grabbing out of the read/write functions (add a WARN_ON(!is_locked)) instead) since all callers are nicely grouped together. Finally the real motivation for this change: Dont grab the modeset mutex in the dpio debugfs file, we don't need that consistency. And correctness of the dpio interface is ensured with the dpio_lock. Reviewed-by: Jesse Barnes Signed-off-by: Daniel Vetter commit 20afbda209d708be66944907966486d0c1331cb8 Author: Daniel Vetter Date: Tue Dec 11 14:05:07 2012 +0100 drm/i915: Fixup hpd irq register setup ordering For GMCH platforms we set up the hpd irq registers in the irq postinstall hook. But since we only enable the irq sources we actually need in PORT_HOTPLUG_EN/STATUS, taking dev_priv->hotplug_supported_mask into account, no hpd interrupt sources is enabled since commit 52d7ecedac3f96fb562cb482c139015372728638 Author: Daniel Vetter Date: Sat Dec 1 21:03:22 2012 +0100 drm/i915: reorder setup sequence to have irqs for output setup Wrongly set-up interrupts also lead to broken hw-based load-detection on at least GM45, resulting in ghost VGA/TV-out outputs. To fix this, delay the hotplug register setup until after all outputs are set up, by moving it into a new dev_priv->display.hpd_irq_callback. We might also move the PCH_SPLIT platforms to such a setup eventually. Another funny part is that we need to delay the fbdev initial config probing until after the hpd regs are setup, for otherwise it'll detect ghost outputs. But we can only enable the hpd interrupt handling itself (and the output polling) _after_ that initial scan, due to massive locking brain-damage in the fbdev setup code. Add a big comment to explain this cute little dragon lair. v2: Encapsulate all the fbdev handling by wrapping the move call into intel_fbdev_initial_config in intel_fb.c. Requested by Chris Wilson. v3: Applied bikeshed from Jesse Barnes. v4: Imre Deak noticed that we also need to call intel_hpd_init after the drm_irqinstall calls in the gpu reset and resume paths - otherwise hotplug will be broken. Also improve the comment a bit about why hpd_init needs to be called before we set up the initial fbdev config. Bugzilla: Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54943 Reported-by: Chris Wilson Reviewed-by: Jesse Barnes (v3) Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 9e8e36879f268f1652e11b1c8560bbb67cf4f08e Author: Mika Kuoppala Date: Tue Dec 4 15:12:05 2012 +0200 drm/i915: Set initial seqno value close to wrap boundary To gain confidence in the wrap handling, make it happen quite soon after the boot. Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter commit 107f27a5df8ad33a351d6e82fe95ff92b428f72e Author: Chris Wilson Date: Mon Dec 10 13:56:17 2012 +0200 drm/i915: Open-code i915_gpu_idle() for handling seqno wrapping The complication is that during seqno wrapping we must be extremely careful not to write to any ring as that will require a new seqno, and so would recurse back into the seqno wrap handler. So we cannot call i915_gpu_idle() as that does additional work beyond simply retiring the current set of requests, and instead must do the minimal work ourselves during seqno wrapping. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter commit f72b3435c1a75406d82d6e252bb78f009efd4bd9 Author: Mika Kuoppala Date: Mon Dec 10 15:41:48 2012 +0200 drm/i915: Don't emit semaphore wait if wrap happened If wrap just happened we need to prevent emitting waits for pre wrap values. Detect this and emit no-ops instead. v2: Use olr > seqno to detect wrap instead of *seqno == 0 as suggested by Chris Wilson. v3: Use last used seqno to detect the wraparound. From Chris Wilson v4: Fixed unnecessary last_seqno assigment References: https://bugs.freedesktop.org/show_bug.cgi?id=57967 Signed-off-by: Mika Kuoppala Signed-off-by: Daniel Vetter commit 2e07d02828759a506b5205b2cff40daa58df5bf7 Author: Ido Yariv Date: Wed Nov 28 11:42:49 2012 +0200 wlcore: Always pass DMA-able buffers to mmc functions Some of the mmc drivers initiate DMA transfers with buffers passed from higher layers. This means that the driver shouldn't ever pass non DMA-able buffers, such as ones that are unaligned, allocated on the stack or static. Fix a couple of calls to the mmc layer in which buffers which weren't necessarily DMA-able were passed. [Use sizeof(*wl->buffer_32) instead of sizeof(u32) -- Luca] Signed-off-by: Ido Yariv Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 2fd8a3bb49400a4a0fe9d9cd9d49019e7a46403e Author: Arik Nemtsov Date: Wed Nov 28 11:42:48 2012 +0200 wl18xx: count HW block spare based correctly on keys We have no idea how many VIFs there are requiring a special spare, we know just about the number of keys set. Rename the counter appropriately and toggle it whenever a special key is added/removed. Previously this was only changed once, since it was toggled whenever the actual spare was changed. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 0b70078c38fd1c8d69cf52b93e8c3bdd719a2394 Author: Eyal Shapira Date: Wed Nov 28 11:42:47 2012 +0200 wlcore: support scan reports during periodic scan FW API changed and now PERIODIC_SCAN_REPORT_EVENT is sent in case results were found at the end of each sched scan cycle. Previous FW was missing that and broke sched scan. This API change is available from 18xx FW 8.5.0.0.27 [Arik - move changes to 18xx specific files, align FW structures to latest for scan command] Signed-off-by: Eyal Shapira Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit c80daad625b382fcd72ad68a5c0a26933263aa85 Author: Arik Nemtsov Date: Wed Nov 28 11:42:46 2012 +0200 wl18xx: support MIMO only if HT mode is not forced to SISO Don't use MIMO rates when HT mode is forced to SISO, even if we have multiple antennas. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 9ae5d8d4b7b845869a04576a7bc5fa6cf9716cd5 Author: Arik Nemtsov Date: Wed Nov 28 11:42:45 2012 +0200 wlcore: consolidate Rx BA bitmap management to links struct Remove the STA specific ba_rx_bitmap field and use the common links structure. This simplifies code setting/checking the BA bitmap. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit d6037d22f30738e942ddfd29e3fef17deb075420 Author: Arik Nemtsov Date: Wed Nov 28 11:42:44 2012 +0200 wlcore: don't take mutex before stopping queues Protect all functions touching queue_stop_reasons by spin-lock, since they are accessed by op_tx. Now there's no need to take the mutex before caling wlcore_queue_xxx functions. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 1c33db782d1d0d9be83feacbb065cd4956f485e7 Author: Arik Nemtsov Date: Fri Nov 30 00:48:03 2012 +0200 wlcore: use separate HW queue for each AC in each vif Start using the new hw_queue mechanism in mac80211 and give each AC in each vif its own hw_queue number. This allows us to stop an AC in a vif independently from other vifs. Change the Tx watermark handling functions to count packets per AC in vif. From now on fast links should not be able to hurt the throughput of slow links on the same AC but on different vifs. Change internal queue mgmt functions to operate per vif, to support the new Tx watermark granularity. Make the global versions of the queue stop/start functions to use the global mac80211 API for queue mgmt. This helps in situations where the driver currently doesn't know all the vifs that reside in mac80211. Recovery is a good example for such a case. [Moved hw_base_queue addition into the wlcore_tx_get_mac80211_queue() function; changed WARN_ONs to WARN_ON_ONCEs; simplified for loops; fixed new checkpatch warnings. -- Luca] Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 9a1009684df5295883ba2eb85066a23ed3c3f6a6 Author: Arik Nemtsov Date: Wed Nov 28 11:42:42 2012 +0200 wlcore: use link count for single-STA-PSM optimization Only allow a PSM STA to congest FW memory when it is the single active link. Being a single STA doesn't imply a single link - there might be other links on other roles. [Changed WARN_ON to WARN_ON_ONCE -- Luca] Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 98323895c021ff010685ba77773af876eff503a5 Author: Arik Nemtsov Date: Wed Nov 28 11:42:41 2012 +0200 wl18xx: limit Tx for the AP single-STA-in-PSM case Treat a single connected STA in PSM as a slow link and regulate Tx speed according to slow link priority/stop thresholds. This allows us to avoid flooding the FW, while delivering decent throughput to a peer in forced-PSM. [Small simplification of the if statements -- Luca] Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit f1626fd8983a5bc68ce2879865cce297eb96c0b4 Author: Arik Nemtsov Date: Wed Nov 28 11:42:40 2012 +0200 wlcore/wl18xx: change priority calculations for links Update the 18xx FW status private part to include Tx related link priorities. Introduce new HW ops to determine link priority per chip family. For 18xx the changes are: - Suspended links are at most low priority and Tx for them is stopped beyond the suspend threshold. - Active links now get their thresholds directly from FW - There's a new "stop" threshold for active links, at which point a link stops receiving new packets. Update the min 18xx FW version required to make sure suspended links bitmap is advertised by the FW. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit c91ec5f3ada86807ea4857fc5793a4efe99c9de3 Author: Yair Shapira Date: Wed Nov 28 11:42:39 2012 +0200 wl18xx: fix a bug in wl->num_rx_desc initialization wl->num_rx_desc was mistakenly initialized with WL18XX_NUM_TX_DESCRIPTORS but it should use WL18XX_NUM_RX_DESCRIPTORS instead. This bug was passed unnoticed because currently both RX and TX descriptors are initialized to the same value (32). Signed-off-by: Yair Shapira Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit c23280eb1436edd30814e5e40e4c46ae4cdb3cf4 Author: Arik Nemtsov Date: Wed Nov 28 11:42:36 2012 +0200 wlcore: set 5Ghz probe-req template for DFS channels Even passive scans on DFS channels require us to send probe requests, so configure the probe-req in this case. Also use this opportunity to prevent the code from crashing in case no SSIDs are sent from above. This will likely happen in the DFS case introduced. Even a passive scan might need the probe request configured because of DFS channels. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 387116b89e987521653b7e9b70a13a9dc1ea6a85 Author: Arik Nemtsov Date: Wed Nov 28 11:42:35 2012 +0200 wlcore: improve handling for Rx errors Treat Rx error code as a bitmask. This allows sending MIC failures when other error bit are on. Align Rx descriptor status mask to the FW definition. Ease debugging in case FW reports failure to decrypt on packets. Discard corrupted packets early in Rx path to avoid reporting other abnormalities with corrupted packets that also have other failure bytes on. Namely - we don't want to get a MIC failure on a corrupted packet. This is mandated by the WiFi specification - see section 11.4.2.4.1 in 802.11-2012. Signed-off-by: Eyal Shapira Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 5d3a160365306c4161b7064d482c26a85829f170 Author: Eyal Shapira Date: Sat Dec 8 02:58:23 2012 +0200 wlcore: increase scan dwell times if no activity There's a limit on scan dwell times of max 30ms in order to avoid degrading voip traffic which could be going on while scanning. However these dwell times increase the chance of missing out on nearby APs leading to partial scan results. Allow configuration of longer dwell times in case there no active interface (i.e. no STA associated or AP up). [Arik - count started vifs using an in-driver function] [Fixed some new checkpatch warnings regarding comments in the networking subsystem. -- Luca] Signed-off-by: Eyal Shapira Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit f4d02007cdd56c59bdb9362c699875cb2d02c0fe Author: Arik Nemtsov Date: Wed Nov 28 11:42:33 2012 +0200 wlcore: remove support for injected Tx Require each incoming packet to have a valid vif. The injected Tx code path was buggy (and unused), so disallow it altogether. Cleanup a few places and add a warning so we can better discover anomalies (corrupted skbs?) masquerading as injected Tx. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 530abe195df6918d43c9381fd9a70b7e16d55036 Author: Eliad Peller Date: Wed Nov 28 11:42:31 2012 +0200 wlcore: add ACX_PEER_CAP command ACX_PEER_CAP command is just ACX_PEER_HT_CAP, but allows configuring the peer's support rates as well. this is needed because we start the station role when the remote rates are not known yet. the two commands should be unified in future fw versions, but for now add a new set_peer_cap per-hw op, that will use ACX_PEER_CAP for 18xx, and ACX_PEER_HT_CAP for 12xx. Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 3ac18232946aacf0a9807c3143f8449ed4aa68f4 Author: Tim Gardner Date: Fri Dec 7 07:54:26 2012 -0700 i915: intel_set_mode: Reduce stack allocation from 500 bytes to 2 pointers smatch warning: drivers/gpu/drm/i915/intel_display.c:7019 intel_set_mode() warn: function puts 500 bytes on stack Refactor so that saved_mode and saved_hwmode are dynamically allocated as opposed to being automatic variables. 500 bytes seems like it could run the potential for blowing the kernel stack. Cc: Daniel Vetter Cc: David Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Tim Gardner Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 378a6a77ae59d3312627b996ded94e23166d9e63 Author: Sachin Kamat Date: Fri Dec 7 14:18:29 2012 +0530 drm/i915: Remove duplicate inclusion of drm/drm_edid.h drm/drm_edid.h was included twice. Signed-off-by: Sachin Kamat Reviewed-by: Jani Nikula Signed-off-by: Daniel Vetter commit 97a19a247c23e286814a5ac7ec0825d0ff82a16c Author: Tomas Janousek Date: Sat Dec 8 13:48:13 2012 +0100 drm/i915: don't prevent CPU idle states Commit 9ee32fea5f unconditionally prevents the CPU from entering idle states until intel_dp_aux_ch completes for the first time, which never happens on my DisplayPort-less intel gfx, causing the CPU to get rather hot. Signed-off-by: Tomas Janousek Signed-off-by: Daniel Vetter commit e9b73c67390a5d4faec1d22cbdf24cd6fcca53f6 Author: Chris Wilson Date: Mon Dec 3 21:03:14 2012 +0000 drm/i915: Reduce memory pressure during shrinker by preallocating swizzle pages On a machine with bit17 swizzling, we need to store the bit17 of the physical page address in put-pages. This requires a memory allocation, on average less than a page, which may be difficult to satisfy is the request to put-pages is on behalf of the shrinker. We could allow that allocation to pull from the reserved memory pools, but it seems much safer to preallocate the array for tiled objects on affected machines. v2: Export i915_gem_object_needs_bit17_swizzle() for reuse. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit e69d0bc1c67520c302e070ac078975ea9c786de8 Author: Daniel Vetter Date: Thu Nov 29 15:59:36 2012 +0100 drm/i915: extract common link_m_n helpers Both the dp and fdi code use the exact same computations (ignore minor differences in conversion between bits and bytes). This makes it even more apparent that we have a _massive_ mess between cpu transcoder/fdi link/pch transcoder and pch link settings. And also that we have hilarious amounts of confusion between edp and dp (despite that they're identical at a link level). Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 2f0c2ad18b88691496e23d1ddbc2d0af8f6df5fa Author: Daniel Vetter Date: Thu Nov 29 15:59:35 2012 +0100 drm/i915: drop unnecessary clearing of pch dp transcoder timings This has originally been added in commit 8db9d77b1b14fd730561f64beea8c00e4478d7c5 Author: Zhenyu Wang Date: Wed Apr 7 16:15:54 2010 +0800 drm/i915: Support for Cougarpoint PCH display pipeline probably to combat issues with hw state left behind by the BIOS. And indeed, I've checked out that specific revision, and there is no DP support yet. So the pch dp transcoder won't be correctly disabled, and that's important since it requires a rether special disable dance: Just writing 0 to TRANS_DP_CTL won't cut it, since we need to select the NONE port when disabling, too. And indeed, things seem to still work, so let's just remove this. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit ff50afe9aceb6264a4fbe40459da75170fb9a2a2 Author: Daniel Vetter Date: Thu Nov 29 15:59:34 2012 +0100 drm/i915: WARN on !crtc in intel_dp_link_down This could have happened with the old crtc helper based modeset code, but can't happen any longer with the new code. Hence put in a WARN and adjust the comment. If no one hits this, we can eventually remove it (like a few other such cases across our code). Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit ab527efc2feadcab1cad0740be307cb4153b493f Author: Daniel Vetter Date: Thu Nov 29 15:59:33 2012 +0100 drm/i915: use wait_for_vblank instead of msleep(17) 17 ms is eerily close to 60 Hz ^-1 Unfortunately this goes back to the original DP enabling for ilk, and unfortunately does not come with a reason for it's existance attached. Some closer inspection of the code and DP specs shows that we set the idle link pattern before we disable the port. And it seems like that the DP spec (or at least our hw) only switch to the idle pattern on the next vblank. Hence a vblank wait at this spot makes _much_ more sense than a really long wait. v2: Rebase fixup. v3: Add comment requested by Paulo Zanoni saying that we don't really know what this wait is for. Signed-off-by: Daniel Vetter commit 1ce17038093f02e708e5816f645bbec63aff8bd2 Author: Daniel Vetter Date: Thu Nov 29 15:59:32 2012 +0100 drm/i915: rip out pre-production ilk cpu edp w/a While reading docs I've noticed that this special workaround to select the 1.6 GHz DP clock only applies to pre-production ilk machines. Since the registers we're touching here are rather undocumented and might be harmful on later chips, rip it out. For the Bspec reference of this w/a look in "vol4g CPU Display Registers [DevILK]", Section 4.1.7.1 "DP_A—DisplayPort A Control Register", "DP_PLL_Frequency_Select". v2: Keep a debug message as a hint in case something regresses. Requested by Chris Wilson. Reviewed-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit ea9b6006b51b79cfbb87c1ca81923761b7799c0f Author: Daniel Vetter Date: Thu Nov 29 15:59:31 2012 +0100 drm/i915: move set_pll_edp to intel_dp.c Now that we enable the cpu edp pll in intel_dp->pre_enable and no longer in crtc_mode_set, we can also move the modeset part to the intel_dp->mode_set callback. Previously this was not possible because the encoder ->mode_set callbacks are called after the crtc mode set callback. v2: Rebase on top of copy&pasted hsw crtc_mode_set. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit ed7ef43989b3a8235b1cbf1e2b025aa4af3368a6 Author: Daniel Vetter Date: Thu Dec 6 14:24:21 2012 +0100 drm/i915: rip out pre-DDI stuff from haswell_crtc_mode_set Especially getting rid of all things lvds is ... great! v2: Drop the two additional pre-hsw hunks noticed by Paulo Zanoni. v3: - handle DP ports correctly (spoted by Paulo) - don't leave {} behind for a single-line block (again spotted by Paulo) - kill another if (IBX || CPT) block Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 36dacf5b8b3c0bab7010943c34d2dbcc09a0d6f3 Author: Paulo Zanoni Date: Thu Dec 6 09:44:52 2012 -0200 drm/i915: be less verbose when handling gmbus/aux irqs Having 9500 lines repeated on dmesg does not help me at all. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 6ef6a450b9a4c8851d63e58aa62ee6a34c01c156 Author: Dexuan Cui Date: Wed Dec 5 22:37:17 2012 +0800 drm/i915: Remove duplicate and unused register #defines in i915_reg.h TRANS_DP_VIDEO_AUDIO is not used at all. The other 3 has duplicated #defines. Signed-off-by: Dexuan Cui Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit ef04f00d12312e43b13ba8f79435763e25aaff5c Author: Daniel Vetter Date: Sat Dec 1 21:03:59 2012 +0100 drm/i915: use _NOTRACE for gmbus/dp aux wait loops Less clutter in the traces. And in both cases we yell rather loud into the logs if we time out. Patch suggested by Chris Wilson. v2: Annotate another I915_READ in dp_aux to be consistent - we filter out all register io in wait_for and similar loops. Chris also suggested to mark all dp_aux register access as _NOTRACE, but I think we should keep all functionally relevant access around, and filter unneeded bits in userspace after the trace is captured. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 9ee32fea5fe810ec06af3a15e4c65478de56d4f5 Author: Daniel Vetter Date: Sat Dec 1 13:53:48 2012 +0100 drm/i915: irq-drive the dp aux communication At least on the platforms that have a dp aux irq and also have it enabled - vlvhsw should have one, too. But I don't have a machine to test this on. Judging from docs there's no dp aux interrupt for gm45. Also, I only have an ivb cpu edp machine, so the dp aux A code for snb/ilk is untested. For dpcd probing when nothing is connected it slashes about 5ms of cpu time (cpu time is now negligible), which agrees with 3 * 5 400 usec timeouts. A previous version of this patch increases the time required to go through the dp_detect cycle (which includes reading the edid) from around 33 ms to around 40 ms. Experiments indicated that this is purely due to the irq latency - the hw doesn't allow us to queue up dp aux transactions and hence irq latency directly affects throughput. gmbus is much better, there we have a 8 byte buffer, and we get the irq once another 4 bytes can be queued up. But by using the pm_qos interface to request the lowest possible cpu wake-up latency this slowdown completely disappeared. Since all our output detection logic is single-threaded with the mode_config mutex right now anyway, I've decide not ot play fancy and to just reuse the gmbus wait queue. But this would definitely prep the way to run dp detection on different ports in parallel v2: Add a timeout for dp aux transfers when using interrupts - the hw _does_ prevent this with the hw-based 400 usec timeout, but if the irq somehow doesn't arrive we're screwed. Lesson learned while developing this ;-) v3: While at it also convert the busy-loop to wait_for_atomic, so that we don't run the risk of an infinite loop any more. v4: Ensure we have the smallest possible irq latency by using the pm_qos interface. v5: Add a comment to the code to explain why we frob pm_qos. Suggested by Chris Wilson. v6: Disable dp irq for vlv, that's easier than trying to get at docs and hw. v7: Squash in a fix for Haswell that Paulo Zanoni tracked down - the dp aux registers aren't at a fixed offset any more, but can be on the PCH while the DP port is on the cpu die. Reviewed-by: Imre Deak (v6) Signed-off-by: Daniel Vetter commit ce99c2569dfcec9662993961db7f433e160c50f3 Author: Daniel Vetter Date: Sat Dec 1 13:53:47 2012 +0100 drm/i915: wire up do aux channel done interrupt Doesn't do anything yet than call dp_aux_irq_handler. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 2c438c0273b76d6cb158f8bdd0aa3ebf66e48a28 Author: Daniel Vetter Date: Sat Dec 1 13:53:46 2012 +0100 drm/i915: use gmbus irq to wait for gmbus idle GMBUS_ACTIVE has inverted sense and so doesn't fit into the wait_hw_status helper, hence create a new gmbus_wait_idle functions. Also, we only care about the idle irq event and nothing else, which allows us to use the wait_event_timeout helper directly without jumping through hoops to catch NAKs. Since gen2/3 don't have gmbus interrupts, handle them separately with the old wait_for macro. This shaves another few ms off reading EDID from a hdmi screen on my testbox here. EDID reading with interrupt driven gmbus is now as fast as with busy-looping gmbus at 28 ms here (with negligible cpu overhead). Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 28c70f162a315bdcfbe0bf940a740ef8bfb918d6 Author: Daniel Vetter Date: Sat Dec 1 13:53:45 2012 +0100 drm/i915: use the gmbus irq for waits We need two special things to properly wire this up: - Add another argument to gmbus_wait_hw_status to pass in the correct interrupt bit in gmbus4. - Since we can only get an irq for one of the two events we want, hand-roll the wait_event_timeout code so that we wake up every jiffie and can check for NAKs. This way we also subsume gmbus support for platforms without interrupts (or where those are not yet enabled). The important bit really is to only enable one gmbus interrupt source at the same time - with that piece of lore figured out, this seems to work flawlessly. Ben Widawsky rightfully complained the lack of measurements for the claimed benefits (especially since the first version was actually broken and fell back to bit-banging). Previously reading the 256 byte hdmi EDID takes about 72 ms here. With this patch it's down to 33 ms. Given that transfering the 256 bytes over i2c at wire speed takes 20.5ms alone, the reduction in additional overhead is rather nice. v2: Chris Wilson wondered whether GMBUS4 might contain some set bits when booting up an hence result in some spurious interrupts. Since we clear GMBUS4 after every wait and we do gmbus transfer really early in the setup sequence to detect displays the window is small, but still be paranoid and clear it properly. v3: Clarify the comment that gmbus irq generation can only support one kind of event, why it bothers us and how we work around that limit. Cc: Daniel Kurtz Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 515ac2bb95f609bc4a0d2ad5f7011b3264b2bb21 Author: Daniel Vetter Date: Sat Dec 1 13:53:44 2012 +0100 drm/i915: wire up gmbus irq handler Only enables the interrupt and puts a irq handler into place, doesn't do anything yet. Unfortunately there's no gmbus interrupt support for gen2/3 (safe for pnv, but there the irq is marked as "Test mode"). v2: Wire up the irq handler for vlv and gen4 properly. v3: i915_enable_pipestat expects the mask bit, not the status bits ... and for added hilarity those are rather inconsistently named. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 61168c53f5be309332006dbd967aaac501cde8b2 Author: Daniel Vetter Date: Sat Dec 1 13:53:43 2012 +0100 drm/i915: extract gmbus_wait_hw_status The gmbus interrupt generation is rather fiddly: We can only ever enable one interrupt source (but we always want to check for NAK in addition to the real bit). And the bits in the gmbus status register don't map at all to the bis in the irq register. To prepare for this mess, start by extracting the hw status wait loop into it's own function, consolidate the NAK error handling a bit. To keep things flexible, pass in the status bit we care about (in addition to any NAK signalling). v2: I've failed to notice that the sense of GMBUS_ACTIVE is inverted, Chris Wilson gladly pointed that out for me. To keep things simple, ignore that case for now (we only need to idle the gmbus controller at the end of an entire i2c transaction, not after every message). Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 52d7ecedac3f96fb562cb482c139015372728638 Author: Daniel Vetter Date: Sat Dec 1 21:03:22 2012 +0100 drm/i915: reorder setup sequence to have irqs for output setup Otherwise the new&shiny irq-driven gmbus and dp aux code won't work that well. Noticed since the dp aux code doesn't have an automatic fallback with a timeout (since the hw provides for that already). v2: Simple move drm_irq_install before intel_modeset_gem_init, as suggested by Ben Widawsky. v3: Now that interrupts are enabled before all connectors are fully set up, we might fall over serving a HPD interrupt while things are still being set up. Instead of jumping through massive hoops and complicating the code with a separate hpd irq enable step, simply block out the hotplug work item from doing anything until things are in place. v4: Actually, we can enable hotplug processing only after the fbdev is fully set up, since we call down into the fbdev from the hotplug work functions. So stick the hpd enabling right next to the poll helper initialization. v5: We need to enable irqs before intel_modeset_init, since that function sets up the outputs. v6: Fixup cleanup sequence, too. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 61bac78e03d4385e225cb2837e33974feda489c2 Author: Daniel Vetter Date: Sat Dec 1 21:03:21 2012 +0100 drm/i915: setup the hangcheck timer early ... together with all the other irq related resources in intel_irq_init. I've managed to oops in the notify_ring function on my ilk, presumably because of the powerctx setup call to i915_gpu_idle. Note that this is only a problem with the reorder irq setup sequence for irq-driver gmbus/dp aux. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit d83779a9cb9374977c1c05364b4d7dfe9ec68ef3 Author: Daniel Vetter Date: Sat Dec 1 13:53:41 2012 +0100 drm/i915: don't handle PIPE_LEGACY_BLC_EVENT_STATUS on vlv This is for legacy legacy stuff, and checking with the leftover pipe from the previous loop is propably not what we want. Since pipe == 2 after the loop ... Then we only assing a variable and do nothing with it. Cc: Jesse Barnes Reviewed-by: Jesse Barnes Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 4a06e201dae98ed893bae677b7b05bff29fcbab0 Author: Daniel Vetter Date: Sat Dec 1 13:53:40 2012 +0100 drm/i915: haswell has the same irq handlers as ivb No need to have the exaxt same code twice. Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 498d2ac15ce0fc08edb005a7faf9ed6b5aa028d8 Author: Mika Kuoppala Date: Tue Dec 4 15:12:04 2012 +0200 drm/i915: Add intel_ring_handle_seqno wrap If there are pre-wrap values in semaphore-mbox registers after wrap, syncing against some after-wrap request will complete immediately. Fix this by emitting ring commands to set mbox registers to zero when the wrap happens. v2: Use __intel_ring_begin to emit ring commands, from Chris Wilson. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson [danvet: Add a small comment to handle_seqno_wrap.] Signed-off-by: Daniel Vetter commit cbcc80dff3896015385c67d6be0beb3399999e5c Author: Mika Kuoppala Date: Tue Dec 4 15:12:03 2012 +0200 drm/i915: Split intel_ring_begin In preparation for handling ring seqno wrapping, split intel_ring_begin into helper part which doesn't allocate seqno. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 43a7b924a920729ff775e6a847f671d0ea456801 Author: Mika Kuoppala Date: Tue Dec 4 15:12:01 2012 +0200 drm/i915: Fix debugfs seqno info print to use uint seqno's are u32 so print accordingly Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 40633219a0ff4953601c7b2326f8faabc0171fd9 Author: Mika Kuoppala Date: Tue Dec 4 15:12:00 2012 +0200 drm/i915: Add debugfs entry to read/write next_seqno This is needed for testing seqno wrapping. Be careful to not bump next_seqno more than 0x7FFFFFFF at a time (between some handled requests) as i915_seqno_passed() can't handle bigger difference in between. v2: Address review comments from Chris Wilson. Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson [danvet: Squash in fixup to properly remove the debugfs file on driver unload again.] Signed-off-by: Daniel Vetter commit 4d703847617fa053689b119e43122088c81ef86d Author: Arik Nemtsov Date: Fri Nov 30 00:46:48 2012 +0200 wl18xx: set last Tx rate from FW status Obtain the last Tx rate from the FW status and translate it to the mac80211 rate+flag format before sending it up via the Tx status. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 0e81047996fdde7fc9e8a1c01d532df1f53586fa Author: Arik Nemtsov Date: Tue Nov 27 08:45:00 2012 +0200 wlcore: improved Tx scheduling algorithm Prioritize EDCA by choosing the AC before anything else. Use the fast/slow link bitmap in FW to improve the scheduling algorithm for the multi-link scenario. Set packet thresholds to determine if a given link is high or low priority according to its speed. A slow link will be given high priority if the amount of packets queued for it in the FW is lower than the slow-threshold. Similarly, a fast link will be given high priority if the number of its packets queued in FW is smaller than the high-threshold. The improved algorithm: 1. Choose optimal AC according to FW utilization 2. Traversing the VIFs in a round-robin fashion, try to choose a high priority link. Links are traversed in a round-robin fashion inside a VIF. 3. If no high priority links are found, choose the first non-empty (low priority) link found in the round robin. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 9ebcb232158c737db21e22b7bfdc4fc6d661ea8c Author: Arik Nemtsov Date: Tue Nov 27 08:44:59 2012 +0200 wlcore: track FW-allocated packets per link Move FW-allocation tracking code to the fw_status function and track allocations made by all links. These will be incorporated in the improved Tx scheduling algorithm. Manually zero the system link counters on op_stop, as this link is not allocated the normal way. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 8591d42452f16b1888419da4456142864b08ef9e Author: Arik Nemtsov Date: Tue Nov 27 08:44:58 2012 +0200 wlcore: count packets held per AC in each vif This accounting will help find a vif that has data in a specific AC. Otherwise we have to traverse all the links, which can be lengthy for the AP case. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 1e0708a9574aee0136611edc5d3a7a9b2775a113 Author: Arik Nemtsov Date: Tue Nov 27 08:44:57 2012 +0200 wlcore: track wlvif inside per-link structure This allows us to pass only the link as a parameter to various functions and deduce the wlvif. Note that this member will be NULL for global links. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit b50a62bb39c66e6ed5f1f581bb32644936f08cf3 Author: Arik Nemtsov Date: Tue Nov 27 08:44:56 2012 +0200 wlcore: initialize per-link FW freed blocks correctly When a link is allocated, sometimes the "freed packets" counter in FW is non zero, but we always assumed it is. This caused us to incorrectly account FW allocated blocks in some cases. When operating in AP mode, this bug caused some stations to never come back from PSM. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 583f81644ab34a1314827a1dffc7fc8fbad7dc0f Author: Victor Goldenshtein Date: Tue Nov 27 08:44:55 2012 +0200 wlcore: restore default channel configuration wlcore allocates two static structs wl1271_band_2ghz & wl1271_band_5ghz which are used/modified by Reg-Domain e.g. some channel might be marked as passive at some point. Make sure we don't keep stale settings around if the HW is unregistered/registered during operation. [Arik - use Tx-power constant and tweak commit message] Signed-off-by: Victor Goldenshtein Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 6c4c45346289ec1c8a6a204e2c81325a4cf96924 Author: Arik Nemtsov Date: Tue Nov 27 08:44:54 2012 +0200 wlcore: consolidate free_link and always call it Make sure free_link is always called when removing an interface. This ensures all skbs belonging to this interface are returned to mac80211. Otherwise these dangling skbs might crash the system on the next call to wl1271_tx_reset_link_queues(). This happens on recovery/stop or an unsuccessful Tx flush. Signed-off-by: Ido Yariv Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit d935e385f88616fa867406de97521e07fe41539d Author: Arik Nemtsov Date: Tue Nov 27 08:44:53 2012 +0200 wlcore: take the mutex before resetting Tx queues Otherwise we risk contention for private members of our global structure while op_stop_locked is running. Reported-by: Ido Yariv Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 4c145185175dcca660265d2fcdd4feffc0249f8e Author: Victor Goldenshtein Date: Tue Nov 27 08:44:52 2012 +0200 wlcore: remove unnecessary WARN_ON in wl12xx_tx_reset Sometimes the driver can perform a recovery while Tx is active, this will trigger unnecessary warning which might delay the recovery for more than 100 mS. Signed-off-by: Victor Goldenshtein Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 0330ee1f5bb65bd2fd3c4b3980f4ba999405a153 Author: Eliad Peller Date: Tue Nov 27 08:44:49 2012 +0200 wl18xx: declare support for greenfield ht_cap The 18xx fw supports greenfield so add the IEEE80211_HT_CAP_GRN_FLD flag to the supported ht capabilities flags. Signed-off-by: Eliad Peller Signed-off-by: Ido Reis Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 5d979f35179c365a6455302bd5a1fa0063a4065e Author: Arik Nemtsov Date: Tue Nov 27 08:44:48 2012 +0200 wlcore: clear roc_vif on iface removal When removing an interface currently performing a ROC operation, clear the current ROC state. This is useful especially during recovery and keeps mac80211 in sync to our state. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 2718bf409937655f9b0bbc174faee3ac2ecf1062 Author: Eliad Peller Date: Tue Nov 27 08:44:47 2012 +0200 wlcore: remove WLCORE_QUIRK_NO_ELP all the current firmwares support elp, so we can safely remove WLCORE_QUIRK_NO_ELP. Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 3b44b3b3687534be24171db6ff80669b3a6dcbab Author: Eliad Peller Date: Tue Nov 27 08:44:46 2012 +0200 wlcore: allow ACX_BA_SESSION_RX_SETUP to fail Under some circumstances, that fw might be asked to remove a rx ba sessions it doesn't know about. In this case, instead of triggering a recovery, accept the error code (CMD_STATUS_NO_RX_BA_SESSION) and ignore it. [Arik - indicate failure up when the BA session cannot be setup] Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit ea5084356fb05093da9ff225fd2c2fcfd363371c Author: Eliad Peller Date: Tue Nov 27 08:44:45 2012 +0200 wlcore: allow fw commands to fail Currently, each fw command/acx that return a status code different than CMD_STATUS_SUCCESS will trigger a recovery in the driver. However, it is a valid for some fw commands to fail (e.g. due to temporary lack of resources), so add new functions that allow passing bitmap of valid error return values. (make the current wl1271_cmd_send/wl1271_cmd_configure wrappers around the new functions, in order to avoid changing the whole driver) Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit d88949b7def1e982871406f3ad3efa361ffa6ffc Author: Yair Shapira Date: Tue Nov 27 08:44:43 2012 +0200 wl18xx: support 2nd set of mac/phy tx-power params First set (low, medium and high TX power values) is used for STA-HP background role. The 2nd set is used for other roles. Update other mac/phy parameters according to new FW. Signed-off-by: Yair Shapira Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho Conflicts: drivers/net/wireless/ti/wl18xx/main.c commit ec4f4b76a622822d5d47e99bf4062fc308a7d424 Author: Ido Reis Date: Tue Nov 27 08:44:42 2012 +0200 wl18xx: update default mac/phy parameters Update mac/phy paramters according to the default HP SISO boards. Signed-off-by: Ido Reis Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 3ea186d137f79da5e6af283e5803715da1eb6259 Author: Arik Nemtsov Date: Fri Nov 30 00:50:06 2012 +0200 wlcore/wl12xx: make sure session id is always zero for AP The 12xx FW doesn't support non-zero session ids for AP-mode. Introduce an appropriate quirk to make sure the session id is always zero when needed. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit aaabee8b7686dfe49f10289cb4b7a817b99e5dd9 Merge: 795e936 2f24456 Author: Luciano Coelho Date: Tue Dec 4 16:39:47 2012 +0200 Merge branch 'wl12xx-next' into for-linville Conflicts: drivers/net/wireless/ti/wlcore/main.c commit 2f24456149110f4d9f0547429f1249d40143561d Author: Luciano Coelho Date: Tue Nov 27 15:52:01 2012 +0200 wl18xx: ignore irrelevant firmware version fields For wl18xx, only the chip ID and the minor version number are relevant. Ignore the other numbers which are either not used or relate to internal projects or internal branches. Signed-off-by: Luciano Coelho commit 8675f9abdf5b67a3f621fa99e1f0e0c8d8ae2531 Author: Luciano Coelho Date: Tue Nov 27 15:52:00 2012 +0200 wlcore/wl12xx/wl18xx: verify multi-role and single-role fw versions Previously we were only checking the single-role firmware version. Now add code to check for the firmware versions separately for each firmware type. Signed-off-by: Luciano Coelho commit b3ec9cf2052981171364c4f354f53a64089ecc75 Author: Luciano Coelho Date: Tue Nov 27 15:51:59 2012 +0200 wl12xx: ignore some of the firmware version fields The firmware type and the project number fields in the firmware version number, cannot be checked as if they increase sequentially, because the former is the firmware type and the latter is an internal project number. There's no guarantee that these numbers will remain incremental, so use WLCORE_FW_VER_IGNORE. Signed-off-by: Luciano Coelho commit af4e94c56581b446b2010854a983ef722ad9ed1f Author: Luciano Coelho Date: Tue Nov 27 15:51:58 2012 +0200 wlcore: change way of checking the firmware version The firmwares version string contain 5 integers. We used to consider all the digits (except for the first one, which indicates the chip) as linearly increasing version numbers. This is not correct, because some of the integers indicate type of firmware (eg. single-role vs. multi-role) or the internal project it was created for. Besides, this varies a bit from chip to chip, so we need to make the firmware version checks more flexible (eg. allow the lower driver to ignore some of the integers). Additionally, we need to change the code so that we only check for a linearly increasing number on the fields where this actually makes sense. Signed-off-by: Luciano Coelho commit c3552c06256cf7ac787ab8db0d3c8317be48bba1 Author: Luciano Coelho Date: Tue Nov 27 15:51:57 2012 +0200 wlcore/wl12xx: remove deprecated FW version check We don't distinguish between STA and AP firmwares anymore, so the firmware version checking and quirks setting in wl12xx isn't needed anymore. Remove implementation of .identify_fw in wl12xx and deprecated definitions. Don't remove the op entirely from wlcore, because it may be needed for more fine-grained checking later. Signed-off-by: Luciano Coelho commit 986f3aa1666b4ef1e9e30672c73e19742b8abfd9 Author: Luciano Coelho Date: Tue Nov 27 15:51:56 2012 +0200 wlcore/wl12xx: move wl12xx chip ID defines to the lower driver Move wl12xx-specific chip ID macros to the wl12xx driver and rename them to 127X and 128X for clarity since both the "1" (2.4GHz) and the "3" (2.4GHz and 5GHz) variants use the same chip ID. Signed-off-by: Luciano Coelho commit 7230341f254c9bce39e9576362f18b94854bc779 Author: Yair Shapira Date: Mon Nov 26 18:05:50 2012 +0200 wlcore/wl18xx/wl12xx: add recovery settings to conf add support for recovery settings including bug_on_recovery and no_recovery options. These options can now be set using wl18xx-conf.bin file and wlconf tool. Signed-off-by: Yair Shapira Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit c108c90535ae29099de88187a90b8411bc1fe9a1 Author: Luciano Coelho Date: Mon Nov 26 18:05:49 2012 +0200 wlcore: gather information about firmware stability It's sometimes useful to gather information about the firmware stability in long test runs, especially to see if problems are recurring frequently or not. With this commit we count the number of times a hardware recovery was issued and print it out during recovery and in the driver_state in debugfs. Signed-off-by: Luciano Coelho Signed-off-by: Igal Chernobelsky Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 518b680a8eb3ef953c80c9ef1bd6502e107b36fb Author: Eliad Peller Date: Mon Nov 26 18:05:47 2012 +0200 wlcore: move ps change handling to .bss_info_changed() Adapt the new mac80211 BSS_CHANGED_PS notification, and do the ps handling in mac80211's per-vif callback (.bss_info_changed), rather than in the per-device (.config) callback. Make sure to configure it only after association. Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 873d2a403462b3b495603c0a9a39bd857575aa82 Author: Eliad Peller Date: Mon Nov 26 18:05:46 2012 +0200 wlcore: mask out CCK rates when starting GO mask out CCK rates from the AP's local rates when the interace is p2p interface (GO). Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 426001a6aaffce040226a19ad2795ac26c10f942 Author: Eliad Peller Date: Mon Nov 26 18:05:45 2012 +0200 wlcore: use sta_state-based ROCs for AP mode Try an opportunistic ROC when a STA is first added and stop the ROC when the STA is removed or successfully authenticated. This would ensure we don't miss auth/assoc/EAPOL packets during connection Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit de40750f4b10aa236ae44a9a3f10f50998e1c345 Author: Arik Nemtsov Date: Mon Nov 26 18:05:44 2012 +0200 wlcore/wl18xx/wl12xx: separate channel count between chips 18xx chips are capable of staying on 2 channels at the same time. Introduce a chip-family specific parameter to set the number of channels in the interface-combinations published by the driver. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 1a240d4de2ccf40de5796a4d1dbb3a0236051fc9 Author: Daniel Vetter Date: Thu Nov 29 22:18:51 2012 +0100 drm/i915: fixup sparse warnings - __iomem where there is none (I love how we mix these things up). - Use gfp_t instead of an other plain type. - Unconfuse one place about enum pipe vs enum transcoder - for the pch transcoder we actually use the pipe enum. Fixup the other cases where we assign the pipe to the cpu transcoder with explicit casts. - Declare the mch_lock properly in a header. There is still a decent mess in intel_bios.c about __iomem, but heck, this is x86 and we're allowed to do that. Makes-sparse-happy: Chris Wilson [danvet: Use a space after the cast consistently and fix up the newly-added cast in i915_irq.c to properly use __iomem.] Signed-off-by: Daniel Vetter commit c1f093e09c4ceb583b04d11e767bb3201812e4d2 Author: Chris Wilson Date: Mon Dec 3 11:49:07 2012 +0000 drm/i915: Remove check for conflicting relocation write-domains Simply use the last write-domain set for the object in the batch, trusting userspace to have correctly flushed the caches between usage as a write target. This check dates back from the golden age of having only a single operation per batch with the kernel repeating it for each cliprect, and conflicts both with userspace trying to efficiently batch multiple operations and with reducing the kernel overhead of relocation processing. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit 2a2d548240ff5f5bd826640bdf8baa016ab6cec4 Author: Chris Wilson Date: Mon Dec 3 11:49:06 2012 +0000 drm/i915: Tighten the checks for invalid relocation domains Be specific for the GPU domains so that we can detect if userspace ever passed in an invalid combination, as well as accurately reflect the known GPU domains when printing state. Fixes i-g-t/gem_exec_bad_domains References: https://bugs.freedesktop.org/show_bug.cgi?id=57826 Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit 4239ca779dbe47a310a3106d9f4cd5458014bdb6 Author: Damien Lespiau Date: Mon Dec 3 16:26:16 2012 +0000 drm/i915: Fix dieing -> dying typo Signed-off-by: Damien Lespiau Signed-off-by: Daniel Vetter commit 42dcedd4f2e715dc0313e359c8288e6397843fff Author: Chris Wilson Date: Thu Nov 15 11:32:30 2012 +0000 drm/i915: Use a slab for object allocation The primary purpose of this was to debug some use-after-free memory corruption that was causing an OOPS inside drm/i915. As it turned out the corruption was being caused elsewhere and i915.ko as a major user of many objects was being hit hardest. Indeed as we do frequent the generic kmalloc caches, dedicating one to ourselves (or at least naming one for us depending upon the core) aids debugging our own slab usage. Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 8040513870399f1cb032cb8bc805df5042fedcdf Author: Chris Wilson Date: Thu Nov 15 11:32:29 2012 +0000 drm/i915: Allocate overlay registers from stolen memory Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Acked-by: Ben Widawsky Signed-off-by: Daniel Vetter commit ebc052e0c65f84f68626e388ffa1704b3a190ef7 Author: Chris Wilson Date: Thu Nov 15 11:32:28 2012 +0000 drm/i915: Allocate ringbuffers from stolen memory Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Acked-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 0ffb0ff283cca16f72caf29c44496d83b0c291fb Author: Chris Wilson Date: Thu Nov 15 11:32:27 2012 +0000 drm/i915: Allocate fbcon from stolen memory Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Acked-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 0104fdbb84d7adb0e377ed05bf75eba97b007544 Author: Chris Wilson Date: Thu Nov 15 11:32:26 2012 +0000 drm/i915: Introduce i915_gem_object_create_stolen() Allow for the creation of GEM objects backed by stolen memory. As these are not backed by ordinary pages, we create a fake dma mapping and store the address in the scatterlist rather than obj->pages. v2: Mark _i915_gem_object_create_stolen() as static, as noticed by Jesse Barnes. Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 960e3564bfa464f92549383d41659f2aaeee1420 Author: Chris Wilson Date: Thu Nov 15 11:32:23 2012 +0000 drm/i915: Support readback of stolen objects upon error Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit c1ad11fce86405c955873974f58ab305d894be78 Author: Chris Wilson Date: Thu Nov 15 11:32:21 2012 +0000 drm/i915: Allow objects to be created with no backing pages, but stolen space In order to accommodate objects that are not backed by struct pages, but instead point into a contiguous region of stolen space, we need to make various changes to avoid dereferencing obj->pages or obj->base.filp. First introduce a marker for the stolen object, that specifies its offset into the stolen region and implies that it has no backing pages. Signed-off-by: Chris Wilson Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 11be49eb4db24c5e971edef160afb87788cc270c Author: Chris Wilson Date: Thu Nov 15 11:32:20 2012 +0000 drm/i915: Delay allocation of stolen space for FBC As FBC is commonly disabled due to limitations of the chipset upon output configurations, on many systems FBC is never enabled. For those systems, it is advantageous to make use of the stolen memory for other objects and so we defer allocation of the FBC chunk until we actually require it. This increases the likelihood of that allocation failing, but that in turns means that we are already taking advantage of the stolen memory! As well as delaying the allocation from driver initialisation until the first use of FBC, we also return the stolen block after we finish using it - allowing greater flexibility in our usage of stolen space. A side effect of this is that we can then attempt to allocate only the required amount of space (with a little slack to reduce reallocation rate and avoid fragmentation). Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit ed2f3452677e46a4270c25c1b7fa3e060fdd501e Author: Chris Wilson Date: Thu Nov 15 11:32:19 2012 +0000 drm/i915: Avoid clearing preallocated regions from the GTT As yet we do not do any preallocation (chicken-and-egg problem), but we may like to preserve anything already allocated by the BIOS or grub and reuse for own purposes after initialising the driver. Signed-off-by: Chris Wilson Reviewed-by: Jesse Barnes Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit e12a2d53ae45a69aea499b64f75e7222cca0f12f Author: Chris Wilson Date: Thu Nov 15 11:32:18 2012 +0000 drm/i915: Fix detection of base of stolen memory The routine to query the base of stolen memory was using the wrong registers and the wrong encodings on virtually every platform. It was not until the G33 refresh, that a PCI config register was introduced that explicitly said where the stolen memory was. Prior to 865G there was not even a register that said where the end of usable low memory was and where the stolen memory began (or ended depending upon chipset). Before then, one has to look at the BIOS memory maps to find the Top of Memory. Alas that is not exported by arch/x86 and so we have to resort to disabling stolen memory on gen2 for the time being. Then SandyBridge enlarged the PCI register to a full 32-bits and change the encoding of the address, so even though we happened to be querying the right register, we read the wrong bits and ended up using address 0 for our stolen data, i.e. notably FBC. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit 9e8944ab564f2e3dde90a518cd32048c58918608 Author: Chris Wilson Date: Thu Nov 15 11:32:17 2012 +0000 drm: Introduce an iterator over holes in the drm_mm range manager This will be used i915 in forthcoming patches in order to measure the largest contiguous chunk of memory available for enabling chipset features. v2: Try to make the macro marginally safer and more readable by not depending upon the drm_mm_hole_node_end() being non-zero. Note that we need to open code list_for_each() in order to update the hole_start, hole_end variable on each iteration and keep the macro sane. v3: Tidy up few BUG_ONs that fell foul of adding additional tests to drm_mm_hole_node_start(). Signed-off-by: Chris Wilson Cc: Dave Airlie Acked-by: Dave Airlie Cc: dri-devel@lists.freedesktop.org Reviewed-by: Ben Widawsky Signed-off-by: Daniel Vetter commit 5973c7ee519e2a240c68b290a1836bdb25ed3701 Author: Chris Wilson Date: Thu Nov 15 11:32:16 2012 +0000 drm: Introduce drm_mm_create_block() To be used later by i915 to preallocate exact blocks of space from the range manager. Signed-off-by: Chris Wilson Cc: Dave Airlie Acked-by: Dave Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Daniel Vetter commit acd15b6cc20f85bcef9e08b6ed4f142c34791c32 Author: Daniel Vetter Date: Fri Nov 30 11:24:50 2012 +0100 drm/i915: optimize ilk/snb irq handler We only need to read/write the south interrupt register if the corresponding bit is set in the north master interrupt register. Noticed while reading our interrupt handling code. Same optimization has already been applied on ivb in commit 0e43406bcc1868a316eea6012a0a09d992c53521 Author: Chris Wilson Date: Wed May 9 21:45:44 2012 +0100 drm/i915: Simplify interrupt processing for IvyBridge We can take advantage that the PCH_IIR is a subordinate register to reduce one of the required IIR reads, and that we only need to clear interrupts handled to reduce the writes. And by simply tidying the code we can reduce the line count and hopefully make it more readable. Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 99057c81037ee45e94e5c7e6b403b73caccbaf9e Author: Luis R. Rodriguez Date: Thu Nov 29 12:45:06 2012 -0800 i915: convert struct spinlock to spinlock_t spinlock_t should always be used. LD drivers/gpu/drm/i915/built-in.o CHECK drivers/gpu/drm/i915/i915_drv.c CC [M] drivers/gpu/drm/i915/i915_drv.o CHECK drivers/gpu/drm/i915/i915_dma.c CC [M] drivers/gpu/drm/i915/i915_dma.o CHECK drivers/gpu/drm/i915/i915_irq.c CC [M] drivers/gpu/drm/i915/i915_irq.o CHECK drivers/gpu/drm/i915/i915_debugfs.c drivers/gpu/drm/i915/i915_debugfs.c:558:31: warning: dereference of noderef expression drivers/gpu/drm/i915/i915_debugfs.c:558:39: warning: dereference of noderef expression drivers/gpu/drm/i915/i915_debugfs.c:558:51: warning: dereference of noderef expression drivers/gpu/drm/i915/i915_debugfs.c:558:63: warning: dereference of noderef expression CC [M] drivers/gpu/drm/i915/i915_debugfs.o CHECK drivers/gpu/drm/i915/i915_suspend.c CC [M] drivers/gpu/drm/i915/i915_suspend.o CHECK drivers/gpu/drm/i915/i915_gem.c drivers/gpu/drm/i915/i915_gem.c:3703:14: warning: incorrect type in assignment (different base types) drivers/gpu/drm/i915/i915_gem.c:3703:14: expected unsigned int [unsigned] [usertype] mask drivers/gpu/drm/i915/i915_gem.c:3703:14: got restricted gfp_t drivers/gpu/drm/i915/i915_gem.c:3706:22: warning: invalid assignment: &= drivers/gpu/drm/i915/i915_gem.c:3706:22: left side has type unsigned int drivers/gpu/drm/i915/i915_gem.c:3706:22: right side has type restricted gfp_t drivers/gpu/drm/i915/i915_gem.c:3707:22: warning: invalid assignment: |= drivers/gpu/drm/i915/i915_gem.c:3707:22: left side has type unsigned int drivers/gpu/drm/i915/i915_gem.c:3707:22: right side has type restricted gfp_t drivers/gpu/drm/i915/i915_gem.c:3711:39: warning: incorrect type in argument 2 (different base types) drivers/gpu/drm/i915/i915_gem.c:3711:39: expected restricted gfp_t [usertype] mask drivers/gpu/drm/i915/i915_gem.c:3711:39: got unsigned int [unsigned] [usertype] mask CC [M] drivers/gpu/drm/i915/i915_gem.o CHECK drivers/gpu/drm/i915/i915_gem_context.c CC [M] drivers/gpu/drm/i915/i915_gem_context.o CHECK drivers/gpu/drm/i915/i915_gem_debug.c CC [M] drivers/gpu/drm/i915/i915_gem_debug.o CHECK drivers/gpu/drm/i915/i915_gem_evict.c CC [M] drivers/gpu/drm/i915/i915_gem_evict.o CHECK drivers/gpu/drm/i915/i915_gem_execbuffer.c CC [M] drivers/gpu/drm/i915/i915_gem_execbuffer.o CHECK drivers/gpu/drm/i915/i915_gem_gtt.c CC [M] drivers/gpu/drm/i915/i915_gem_gtt.o CHECK drivers/gpu/drm/i915/i915_gem_stolen.c CC [M] drivers/gpu/drm/i915/i915_gem_stolen.o CHECK drivers/gpu/drm/i915/i915_gem_tiling.c CC [M] drivers/gpu/drm/i915/i915_gem_tiling.o CHECK drivers/gpu/drm/i915/i915_sysfs.c CC [M] drivers/gpu/drm/i915/i915_sysfs.o CHECK drivers/gpu/drm/i915/i915_trace_points.c CC [M] drivers/gpu/drm/i915/i915_trace_points.o CHECK drivers/gpu/drm/i915/intel_display.c drivers/gpu/drm/i915/intel_display.c:1736:9: warning: mixing different enum types drivers/gpu/drm/i915/intel_display.c:1736:9: int enum transcoder versus drivers/gpu/drm/i915/intel_display.c:1736:9: int enum pipe drivers/gpu/drm/i915/intel_display.c:3659:48: warning: mixing different enum types drivers/gpu/drm/i915/intel_display.c:3659:48: int enum pipe versus drivers/gpu/drm/i915/intel_display.c:3659:48: int enum transcoder CC [M] drivers/gpu/drm/i915/intel_display.o CHECK drivers/gpu/drm/i915/intel_crt.c CC [M] drivers/gpu/drm/i915/intel_crt.o CHECK drivers/gpu/drm/i915/intel_lvds.c CC [M] drivers/gpu/drm/i915/intel_lvds.o CHECK drivers/gpu/drm/i915/intel_bios.c drivers/gpu/drm/i915/intel_bios.c:706:60: warning: incorrect type in initializer (different address spaces) drivers/gpu/drm/i915/intel_bios.c:706:60: expected struct vbt_header *vbt drivers/gpu/drm/i915/intel_bios.c:706:60: got void [noderef] *vbt drivers/gpu/drm/i915/intel_bios.c:726:42: warning: incorrect type in argument 1 (different address spaces) drivers/gpu/drm/i915/intel_bios.c:726:42: expected void const * drivers/gpu/drm/i915/intel_bios.c:726:42: got unsigned char [noderef] [usertype] * drivers/gpu/drm/i915/intel_bios.c:727:40: warning: cast removes address space of expression drivers/gpu/drm/i915/intel_bios.c:738:24: warning: cast removes address space of expression CC [M] drivers/gpu/drm/i915/intel_bios.o CHECK drivers/gpu/drm/i915/intel_ddi.c drivers/gpu/drm/i915/intel_ddi.c:87:6: warning: symbol 'intel_prepare_ddi_buffers' was not declared. Should it be static? drivers/gpu/drm/i915/intel_ddi.c:1036:34: warning: mixing different enum types drivers/gpu/drm/i915/intel_ddi.c:1036:34: int enum pipe versus drivers/gpu/drm/i915/intel_ddi.c:1036:34: int enum transcoder CC [M] drivers/gpu/drm/i915/intel_ddi.o drivers/gpu/drm/i915/intel_ddi.c: In function ‘intel_ddi_setup_hw_pll_state’: drivers/gpu/drm/i915/intel_ddi.c:1129:2: warning: ‘port’ may be used uninitialized in this function [-Wmaybe-uninitialized] drivers/gpu/drm/i915/intel_ddi.c:1111:12: note: ‘port’ was declared here CHECK drivers/gpu/drm/i915/intel_dp.c CC [M] drivers/gpu/drm/i915/intel_dp.o CHECK drivers/gpu/drm/i915/intel_hdmi.c CC [M] drivers/gpu/drm/i915/intel_hdmi.o CHECK drivers/gpu/drm/i915/intel_sdvo.c CC [M] drivers/gpu/drm/i915/intel_sdvo.o CHECK drivers/gpu/drm/i915/intel_modes.c CC [M] drivers/gpu/drm/i915/intel_modes.o CHECK drivers/gpu/drm/i915/intel_panel.c CC [M] drivers/gpu/drm/i915/intel_panel.o CHECK drivers/gpu/drm/i915/intel_pm.c drivers/gpu/drm/i915/intel_pm.c:2173:1: warning: symbol 'mchdev_lock' was not declared. Should it be static? CC [M] drivers/gpu/drm/i915/intel_pm.o CHECK drivers/gpu/drm/i915/intel_i2c.c CC [M] drivers/gpu/drm/i915/intel_i2c.o CHECK drivers/gpu/drm/i915/intel_fb.c CC [M] drivers/gpu/drm/i915/intel_fb.o CHECK drivers/gpu/drm/i915/intel_tv.c CC [M] drivers/gpu/drm/i915/intel_tv.o CHECK drivers/gpu/drm/i915/intel_dvo.c CC [M] drivers/gpu/drm/i915/intel_dvo.o CHECK drivers/gpu/drm/i915/intel_ringbuffer.c CC [M] drivers/gpu/drm/i915/intel_ringbuffer.o CHECK drivers/gpu/drm/i915/intel_overlay.c CC [M] drivers/gpu/drm/i915/intel_overlay.o CHECK drivers/gpu/drm/i915/intel_sprite.c CC [M] drivers/gpu/drm/i915/intel_sprite.o CHECK drivers/gpu/drm/i915/intel_opregion.c CC [M] drivers/gpu/drm/i915/intel_opregion.o CHECK drivers/gpu/drm/i915/dvo_ch7xxx.c CC [M] drivers/gpu/drm/i915/dvo_ch7xxx.o CHECK drivers/gpu/drm/i915/dvo_ch7017.c CC [M] drivers/gpu/drm/i915/dvo_ch7017.o CHECK drivers/gpu/drm/i915/dvo_ivch.c CC [M] drivers/gpu/drm/i915/dvo_ivch.o CHECK drivers/gpu/drm/i915/dvo_tfp410.c CC [M] drivers/gpu/drm/i915/dvo_tfp410.o CHECK drivers/gpu/drm/i915/dvo_sil164.c CC [M] drivers/gpu/drm/i915/dvo_sil164.o CHECK drivers/gpu/drm/i915/dvo_ns2501.c CC [M] drivers/gpu/drm/i915/dvo_ns2501.o CHECK drivers/gpu/drm/i915/i915_gem_dmabuf.c CC [M] drivers/gpu/drm/i915/i915_gem_dmabuf.o CHECK drivers/gpu/drm/i915/i915_ioc32.c CC [M] drivers/gpu/drm/i915/i915_ioc32.o CHECK drivers/gpu/drm/i915/intel_acpi.c CC [M] drivers/gpu/drm/i915/intel_acpi.o LD [M] drivers/gpu/drm/i915/i915.o Building modules, stage 2. MODPOST 1 modules CC drivers/gpu/drm/i915/i915.mod.o LD [M] drivers/gpu/drm/i915/i915.ko Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Reported-by: Hauke Mehrtens Signed-off-by: Luis R. Rodriguez Signed-off-by: Daniel Vetter commit 9fa5f6522e6eecb5ab20192a264a29ba4f2f4e85 Author: Paulo Zanoni Date: Thu Nov 29 11:31:29 2012 -0200 drm/i915: kill intel_dp_link_clock() Use drm_dp_bw_code_to_link_rate insead. It's the same thing, but supports DP_LINK_BW_5_4 and is also used by the other drivers. Signed-off-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 0d536cb4e911c2496073f268e9730a9badaafa55 Author: Paulo Zanoni Date: Fri Nov 23 16:46:41 2012 -0200 drm/i915: invert the log inside intel_prepare_ddi Do an early return in case we don't have DDI instead of having the whole function inside an "if" statement. Signed-off-by: Paulo Zanoni Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit affa935440733a79c5a9eb0e5357e2564ca4b355 Author: Paulo Zanoni Date: Fri Nov 23 15:30:39 2012 -0200 drm/i915: add HAS_DDI check And use it whenever we call code that uses the DDIs. We already have intel_ddi.c and prefix every function with intel_ddi_something instead of haswell_something, so I think replacing the checks with HAS_DDI makes more sense. Just a cosmetical change, yes I know, but I have this OCD... Signed-off-by: Paulo Zanoni Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 20749730e39bba1c6100bec0e0d1a45c99db559e Author: Paulo Zanoni Date: Fri Nov 23 15:30:38 2012 -0200 drm/i915: remove Haswell code from ironlake_fdi_pll_enable This function is not called on Haswell anymore. Signed-off-by: Paulo Zanoni Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit c1f63f9d688e68088ef743a48a3aa8e0dc01a160 Author: Paulo Zanoni Date: Fri Nov 23 15:30:37 2012 -0200 drm/i915: intel_prepare_ddi_buffers should be static It's not even declared on header files. Signed-off-by: Paulo Zanoni Reviewed-by: Imre Deak Signed-off-by: Daniel Vetter commit 8dcf015eb967c718962c0690330d9a94d56f2c5d Author: Daniel Vetter Date: Thu Nov 15 16:53:58 2012 +0100 drm/i915: optimize the shmem_pwrite slowpath handling Since we drop dev->struct_mutex when going through the slowpath, the object might have been moved out of the cpu domain. Hence we need to clflush the entire object to ensure that after the ioctl returns, everything is coherent again (interwoven writes are ill-defined anyway). But we only need to do this if we start in the cpu domain and the object requires flushing for coherency. So don't do the flushing if the object is coherent anyway or if we've done in-line clfushing already. v2: i915_gem_clflush_object already checks whether the object is coherent and if so, drops the flushing. Hence we don't need to check that ourselves, simplifying the condition. v3: Reorder the checks for better clarity (and adjust the comment accordingly), suggested by Chris Wilson. Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit a39a68054f63da0ea3b4806e1bfad79670a93d9f Author: Daniel Vetter Date: Thu Nov 15 15:40:05 2012 +0100 drm/i915: simplify shmem pwrite/pread slowpath handling The shmem paths for pwrite/pread used a clever trick to hold onto a single page when dropping the big dev->struct_mutex for the slowpath. But this ran the risk of reinstating (or not completely purging) the backing storage when dropping purgeable objects. Hence the code needed to keep track of whether it ever dropped the lock, and if it did, manually check whether it needs to re-purge the backing storage. But thanks to the pages pin count introduced in commit a5570178c059cec59e9835be20bc8546377fa7b5 Author: Chris Wilson Date: Tue Sep 4 21:02:54 2012 +0100 drm/i915: Pin backing pages whilst exporting through a dmabuf vmap which allowed us to pin the backing storage and remove that page reference trick from shmem_pwrite/read in commit f60d7f0c1d55a935475ab394955cafddefaa6533 Author: Chris Wilson Date: Tue Sep 4 21:02:56 2012 +0100 drm/i915: Pin backing pages for pread and commit 755d22184f1e5015b040acee794542d9cf8a16c5 Author: Chris Wilson Date: Tue Sep 4 21:02:55 2012 +0100 drm/i915: Pin backing pages for pwrite we can now abolish this check. The slowpath cleanup completely disappears from pread, and for pwrite we're only left with the domain fixup in case someone moved the object out of the cpu domain from under us. A follow-on patch will optimize that a notch more. Reviewed-by: Chris Wilson Signed-off-by: Daniel Vetter commit 62810e5a9df3f47b7261e5d78fc1c33e550f2171 Author: Daniel Vetter Date: Mon Nov 26 17:22:13 2012 +0100 drm/i915: enable intel_lvds->pre_pll_enable for ilk+, too Only two things needed adjustment: - pipe select for PCH_CPT - There's no dithering bit on ilk+ in the lvds ctl reg Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit fc683091eb57692679f629784f42dce453877430 Author: Daniel Vetter Date: Mon Nov 26 17:22:12 2012 +0100 drm/i915: move intel_update_lvds to intel_lvds->pre_pll_enable A few things needed to change: - HAS_PCH_SPLIT since ilk+ is not yet converted to this. - s/LVDS/intel_lvds->reg/ to prep for ilk conversion - replace the clock.p2 == 7 check with a is_dual_link check - s/adjusted_mode/intel_lvds->fixed_mode v2: Rebase on top of Jani Nikula's panel rework. I'm wondering whether we shouldn't add an attached_panel pointer to intel_encoder, to replace the encoder private ->attached_connector pointers, since that's essentially what we need. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 7dec060675125f17a547950d715018a63131a437 Author: Daniel Vetter Date: Tue Sep 11 14:12:25 2012 +0200 drm/i915: add intel_lvds->reg To ditch at least some of the PCH_SPLIT ? PCH_LVDS : LVDS code ... v2: Rebase on top of Jani Nikula's panel rework. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 13c7d8703127334890c894ddab13b3a92a26580a Author: Daniel Vetter Date: Mon Nov 26 17:22:10 2012 +0100 drm/i915: track is_dual_link in intel_lvds Yeah, all users (both the clock selection special cases and the lvds pin pair stuff) are still in common code, but this will change. v2: Rebase on top of Jani Nikula's panel rework. v3: Incorporate review from Paulo Zanoni: - s/__is_dual_link_lvds/compute_is_dual_link_lvds - kill dev_priv->lvds_val - drop spurious whitespace change v4: Add a debug printk to display the dual-link status, as suggested by Paulo Zanoni in review. Reviewed-by: Paulo Zanoni (v3) Signed-off-by: Daniel Vetter commit 1974cad0ee4ce84e5cb792e49c4f0d9421e0312c Author: Daniel Vetter Date: Mon Nov 26 17:22:09 2012 +0100 drm/i915: move is_dual_link_lvds to intel_lvds.c Just a prep patch to make this a property of intel_lvds. Makes more sense, removes clutter from intel_display.c and eventually I want to move all the encoder special cases wrt clock handling to encoders anyway. v2: Add an intel_ prefixe to is_dual_link_lvds since it's non-static now. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit a210b028f07690c127733addbbe137e8f4cad30c Author: Daniel Vetter Date: Mon Nov 26 17:22:08 2012 +0100 drm/i915: replace ad-hoc dual-link lvds checks ... with is_dual_link_lvds introduced in commit b03543857fd75876b96e10d4320b775e95041bb7 Author: Takashi Iwai Date: Tue Mar 20 13:07:05 2012 +0100 drm/i915: Check VBIOS value for determining LVDS dual channel mode, too All these checks predate this commit and have simply been overlooked. Since we don't support switching between single-link and dual-link modes anyway, this different checks could at best only get in the way of refactorings, and in the worst case cause inconsistencies. v2: Update the comment, we now have a solid way to figure out whether we need dual-link lvds or not (falling back to vbt values as a last resort). We still don't know how to switch between dual-link and single link so leave that part intact. I'm not sure though whether switching between these two modes makes any sense - we always drive the panel at its fixed mode (with a fixed bpc) anyway ... Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit dafd226c4f54eded10ba43c37789a6aa20b59c32 Author: Daniel Vetter Date: Mon Nov 26 17:22:07 2012 +0100 drm/i915: add encoder->pre_pll_enable callback Currently we have two encoder specific bits in the common mode_set functions: - lvds pin pair enabling - dp m/n setting and computation Now the lvds stuff needs to happen before the pll is enabled. Since that is done in the crtc_mode_set functions, we need to add a new callback to be able to move them to the encoder code (where they belong). The dp m/n stuff is a giant mess anyway (since it also confuses itself with the fdi link m/n handling), so that needs to be handled separately. I think that we can move the pll enabling down quite a bit, which might allow us to eventually merge encoder->pre_enable with this new pre_pll_enable callback. But for now this will allow us to clean things up a bit. Note that vlv doesn't support lvds, hence we don't need to change anything in there. v2: Fixup commit message, both suggested from Paulo Zanoni. - dp m/n doesn't need to happen before pll enabling - lvds doesn't exist on vlv, hence no changes required in the vlv pll function. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 04b97b3422c3403696f3bcb52140b7ebeaee9d3c Author: Chris Wilson Date: Tue Nov 27 17:06:53 2012 +0000 drm/i915/debugfs: Prune a couple of superfluous leading zeros from bo domains As we do not have any domains occupying the high bits, there is no point in always printing the leading 00. Signed-off-by: Chris Wilson Signed-off-by: Daniel Vetter commit ca9c46c5c77987acf1bf7137bf85e9221bc459ba Author: Ville Syrjälä Date: Tue Nov 27 20:34:58 2012 +0200 drm/i915: Kill i915_gem_execbuffer_wait_for_flips() As per Chris Wilson's suggestion make i915_gem_execbuffer_wait_for_flips() go away. This was used to stall the GPU ring while there are pending page flips involving the relevant BO. Ie. while the BO is still being scanned out by the display controller. The recommended alternative is to use the page flip events to wait for the page flips to fully complete before reusing the BO of the old front buffer. Or use more buffers. Signed-off-by: Ville Syrjälä Reviewed-by: Chris Wilson Acked-by: Kristian Høgsberg Acked-by: Jesse Barnes [danvet: don't remove obj->pending_flips, still required due to reorder patches.] Signed-off-by: Daniel Vetter commit f930ddd0583c1a9e68d80a27d4e5077e795007b1 Author: Daniel Vetter Date: Wed Nov 21 15:55:21 2012 +0100 drm/i915: remove duplicate register #defines Somehow a chunk of unused register defines ended up in the middle of the PLL defines. They go back to the original kms merging. The only used #define is SR01, move it to the register name together with the other legacy vga stuff. Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Vetter commit 847cbebd527c2ba184f1951802d91e043fd81b47 Author: Eliad Peller Date: Mon Nov 26 18:05:42 2012 +0200 wlcore: don't stop fwlog if dbgpins are used Due to a bug, the fw asserts on fw log stop when dbg-pins are used. Don't stop the fw log in this case. Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 5f9b67770be4201f4449b0f180effecaac4e2686 Author: Arik Nemtsov Date: Mon Nov 26 18:05:41 2012 +0200 wlcore: use new set bandwidth command to adjusting channel BW We support changing the channel BW when we started the STA role on a 40Mhz bandwidth. Otherwise a reconnection is required. Save the started channel width and use it when channel width updates arrive. Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 7c482c1040ae54e89a8fd4d6415577070d5a915d Author: Eliad Peller Date: Mon Nov 26 18:05:40 2012 +0200 wlcore: configure dwell times according to scan type Allow configuring different dwell times to the different scan types (regular and scheduled). Add new configuration entry (dwell_time_dfs) to conf_scan_settings, in order to allow setting different values for normal scan and scheduled scan. Signed-off-by: Eliad Peller Signed-off-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 6507babab4f7fe6c51c20abedd66d7449b7a9aca Author: Eliad Peller Date: Thu Nov 22 18:06:24 2012 +0200 wl18xx: make driver operational again we have done updating the driver to the new fw api, so make the driver operational again. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 1019975640ec16d1753c06ac99207f4af6a721a2 Author: Eliad Peller Date: Thu Nov 22 18:06:23 2012 +0200 wlcore: call ieee80211_sched_scan_stopped on interface removal The interface might go down before we got the SCHED_STOPPED event, so make sure to call ieee80211_sched_scan_stopped() if the scanned interface is removed. Replace sched_scanning with sched_vif in order to save the scanned interface. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 6b70e7eb70cd6c5ad445ec02f74b84131a4c721a Author: Victor Goldenshtein Date: Sun Nov 25 18:26:59 2012 +0200 wlcore: add new reg-domain configuration command In 18xx the calibration process of the PHY Cortex domain requires to perform an active calibration of the channel before it can be used for transmission. To fulfill world wide regulatory restrictions, fw should be always synchronized/updated with current CRDA configuration. Add a new "CMD_DFS_CHANNEL_CONFIG" command to update the fw with current reg-domain, this command passes a bit map of channels that are allowed to be used for transmission. The driver shall update the fw during initialization and after each change in the current reg-domain configuration. The driver will save the channel number of incoming beacons during the scan process, as they might be a result of the passive scan on "IEEE80211_CHAN_PASSIVE_SCAN" channel and will update the fw accordingly once the scan is finished, the purpose of this is to be ready in case of the authentication request on one of these disabled (uncalibrated) channels. The new command requires to wait for the fw completion event "DFS_CHANNELS_CONFIG_COMPLETE_EVENT". No scan commands (including the sched scan) can be executed concurrently with the "CMD_DFS_CHANNEL_CONFIG", wl->mutex ensures that. [Arik - move reset of reg_ch_conf_last to safe place inside op_stop_locked] [Eliad - adjust to new event waiting api] Signed-off-by: Victor Goldenshtein Signed-off-by: Arik Nemtsov Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 6f7c1adb7529935df6e288a1436003c1f6dc0653 Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:24:37 2012 +0530 ath6kl: minor optimization using if, else if Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit 355b3a982095c8647cce13dd43ebc4bc4299f31a Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:23:36 2012 +0530 ath6kl: Move and rename ath6kl_cleanup_vif function Rename ath6kl_cleanup_vif function as 'ath6kl_cfg80211_vif_stop' which is the more appropriate name considering the functionality of the module and vif specific cleanup is actually done by ath6kl_cfg80211_vif_cleanup. Also move it to cfg80211.c. Also make ath6kl_cfg80211_sta_bmiss_enhance as static function. This addresses a FIXME/TODO. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit eb922e4b41fd315f4ef95fef0ca1051b61cd5538 Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:23:15 2012 +0530 ath6kl: Parse beacon interval from userspace Parse beacon interval from userspace to firmware. Incase the firmware does not supports it, just print a warning message and continue with AP settings. Cc: Sumathi Mandipati Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit 8aa659d2c9ad2df8873c5ba1d7f030d6acf39c4c Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:22:57 2012 +0530 ath6kl: trivial cleanup on interface type selection a minor cleanup in assigning the driver specific network type based on interface type. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit de2070fc4aa7c0205348010f500f5abce012e67b Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:22:40 2012 +0530 ath6kl: Fix kernel panic on continuous driver load/unload On continuous loading and unloading of AR6004 ath6kl USB driver it triggers a panic due to NULL pointer dereference of 'target' pointer. while true; do sudo modprobe -v ath6kl_core; sudo modprobe -v ath6kl_usb; sudo modprobe -r usb; sudo modprobe -r ath6kl_core; done ar->htc_target can be NULL due to a race condition that can occur during driver initialization(we do 'ath6kl_hif_power_on' before initializing 'ar->htc_target' via 'ath6kl_htc_create'). 'ath6kl_hif_power_on' assigns 'ath6kl_recv_complete' as usb_complete_t/callback function for 'usb_fill_bulk_urb'. Thus the possibility of ar->htc_target being NULL via ath6kl_recv_complete -> ath6kl_usb_io_comp_work before even 'ath6kl_htc_create' is finished to initialize ar->htc_create. Worth noting is the obvious solution of doing 'ath6kl_hif_power_on' later(i.e after we are done with 'ath6kl_htc_create', causes a h/w bring up failure in AR6003 SDIO, as 'ath6kl_hif_power_on' is a pre-requisite to get the target version 'ath6kl_bmi_get_target_info'. So simply check for NULL pointer for 'ar->htc_target' and bail out. [23614.518282] BUG: unable to handle kernel NULL pointer dereference at 00000904 [23614.518463] IP: [] __ticket_spin_trylock+0x6/0x30 [23614.518570] *pde = 00000000 [23614.518664] Oops: 0000 [#1] SMP [23614.518795] Modules linked in: ath6kl_usb(O+) ath6kl_core(O) [23614.520012] EIP: 0060:[] EFLAGS: 00010286 CPU: 0 [23614.520012] EIP is at __ticket_spin_trylock+0x6/0x30 Call Trace: [] do_raw_spin_trylock+0x14/0x40 [] _raw_spin_lock_bh+0x52/0x80 [] ? ath6kl_htc_pipe_rx_complete+0x3b4/0x4c0 [ath6kl_core] [] ath6kl_htc_pipe_rx_complete+0x3b4/0x4c0 [ath6kl_core] [] ? skb_dequeue+0x22/0x70 [] ? skb_dequeue+0x22/0x70 [] ath6kl_core_rx_complete+0x12/0x20 [ath6kl_core] [] ath6kl_usb_io_comp_work+0xaa/0xb0 [ath6kl_usb] [] process_one_work+0x1a3/0x5e0 [] ? process_one_work+0x127/0x5e0 [] ? ath6kl_usb_reset_resume+0x30/0x30 [ath6kl_usb] [] worker_thread+0x11e/0x3f0 Kernel panic - not syncing: Fatal exception in interrupt Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit e16ccfeefbba6a268d00eb04145a172ad6e51cd8 Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:22:22 2012 +0530 ath6kl: remove unnecessary check for NULL skb dev_kfree_skb kernel API itself takes for checking for NULL skb, so an explicit check is not required. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit 895dc3867705f7622977c8870771e15881b3e421 Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:22:03 2012 +0530 ath6kl: Use standard way to assign the boolean variable Assign 'true' to the bool variable instead of needless typecasting. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit 050757da5d54d8e25dc06bfbd9179c7d0073137a Author: Mohammed Shafi Shajakhan Date: Fri Nov 16 18:21:41 2012 +0530 ath6kl: Remove erroneous flag clearing WLAN_ENABLED is vif specific, not part of the driver's struct ath6kl. Proper clearing of this flag is already taken care in ath6kl_cleanup_vif. Cc: wei-jen jlin Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo commit 978cd3a0b82969c1f85942e208f8a00412964ef6 Author: Eliad Peller Date: Thu Nov 22 18:06:21 2012 +0200 wlcore: save session_id per-link A new session_id is generated on link allocation. it is saved in a global array and used later, on tx. The new fw api adds new bcast/global_session_id fields to start_role(ap) command, and a new session_id field to add_peer command. align the driver with it. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit d50529c0d8b7f03012f140349161c29b0f7bd24c Author: Eliad Peller Date: Thu Nov 22 18:06:20 2012 +0200 wlcore: pass wmm configuration to the fw New fields were added to start_role(ap) and set_peer_state commands, so the fw will be able to know whether the sta/ap supports wmm (the fw uses it in order to choose the AC for some of its internally-generated frames) For sta, take this value right from bss_conf->qos. For ap, check for wmm support by looking for the WMM IE in the configured beacon. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit c50a282515dc7092f7318708a0f3ae7ca7342b9f Author: Eliad Peller Date: Thu Nov 22 18:06:19 2012 +0200 wlcore: update events enum/struct to new fw api The event mailbox in wl18xx has a different (non-compatible) structure. Create common functions in wlcore to handle the events, and call them from the chip-specific event mailbox parsers. This way, each driver (wl12xx/wl18xx) extracts the event mailbox by itself according to its own structure, and then calls the common wlcore functions to handle it. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit fcab189027cdd68df7f97474d1419aaa4a82130c Author: Eliad Peller Date: Thu Nov 22 18:06:18 2012 +0200 wlcore: update channel_switch/stop_channel_switch commands Some fields were added to the channel_switch and stop_channel_switch commands. Unfortunately, the new 18xx channel_switch struct is not backward compatible with the 12xx channel switch struct. Add a new channel_switch op to wlcore, and update the driver accordingly. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit b6acb4e00e187cb5ae8dd479958a02fe0ea97bf0 Author: Eliad Peller Date: Thu Nov 22 18:06:17 2012 +0200 wlcore: update acx enum update the acx enum to the new fw api. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 0a1c720c63be74bbfe416fa085d0783348e4d69b Author: Eliad Peller Date: Thu Nov 22 18:06:16 2012 +0200 wl18xx: increase MAX_CHANNELS_5GHZ Some regdomains have more than 23 valid 5ghz channels, so 18xx's MAX_CHANNELS_5GHZ was increased to 32. Since now we have different max 5ghz channels values for wl12xx and wl18xx, add a new wl->max_channels_5ghz field, and use it for scan channels configuration. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 78e28062fea51c62280cd17fe6143ed583f83ba0 Author: Eliad Peller Date: Thu Nov 22 18:06:15 2012 +0200 wlcore: split 18xx and 12xx scan mechanism The scan APIs of 12xx and 18xx are totally different. Use some common functions as much as possible (e.g. for setting scan channels), but split scan.c into chip-specific scan.c files, each implementing its own scan mechanism. (in other words - move most of the current wlcore's scan.c into wl12xx, and implement a similar mechanism in 18xx, according to the new api) New wlcore ops are introduced in order to call the chip-specific scan functions. The template indices used for each scan (regular/scheduled) are also different between the chips, so set the correct indices used for each scan type after identifying the chip. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit e9b9d4550733dc322cd0d191e0423a480d9180ef Author: Eliad Peller Date: Thu Nov 22 18:06:14 2012 +0200 wlcore: update commands enum to new fw api Align the commands enum with the new fw api (8.4.0.0.19) Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 750a986d6a69f3f9ed7913bab8c6d171f291ebe6 Author: Eliad Peller Date: Thu Nov 22 18:06:13 2012 +0200 wl18xx: change fw name and temporarily fail loading The new fw (8.5.0.0.28) is not backward compatible with older drivers. Use a new fw name (along with bumping the min fw version), and add some code to fail any boot attempt during the fw api alignment patches (as the driver is not functional in these transitional patches). This code will be removed after the api alignment will be done. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 512c5385e6dc86addc9e51848913378052aa5e03 Author: Eliad Peller Date: Thu Nov 22 18:06:12 2012 +0200 wlcore: make scan scan configuration functions more generic 18xx and 12xx have different scan APIs. In 18xx, the scan and the sched scan use the same struct. Prepare the scan configuration functions to it, by taking more generic params (e.g. ieee80211_channel) instead of specific structs/requests. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 598b262a06235ced311a5327e1fbcedd74da53c9 Author: Eliad Peller Date: Thu Nov 22 18:06:11 2012 +0200 wlcore: don't call ieee80211_sched_scan_stopped directly When we stop sched scan during connection, we shouldn't call ieee80211_sched_scan_stopped directly, but do it in the normal flow, as part of the SCHED_SCAN_COMPLETED event handling. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit 48af2eb046bd452f381f142b19cf9c86ddf575f5 Author: Luciano Coelho Date: Tue Nov 20 11:03:32 2012 +0200 wlcore: remove a bunch of unnecessary parentheses Some if statements had unnecessary parentheses. Remove them for consistency. Signed-off-by: Luciano Coelho commit ef08d0281a90781b07d2030c1c69f4fb2f156267 Author: Luciano Coelho Date: Tue Nov 20 11:03:31 2012 +0200 wlcore: avoid using goto in normal code flow Remove goto and label in the code where a simple if can be used. If nothing else, this is at least confusing git diff, which shows the label name as the name of the function. Signed-off-by: Luciano Coelho commit a8e27820f27155d2eaea2426b10bac810c293f3b Author: Eliad Peller Date: Mon Nov 19 17:14:06 2012 +0200 wlcore: don't leak wl->mbox free it on wlcore_free_hw() Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit d3f5a1b59839e3df3e40b9e520d16b8475d27681 Author: Eliad Peller Date: Mon Nov 19 17:14:05 2012 +0200 wlcore: print role_id on bss_info_changed In multi-vif setup it's useful to know the role_id being configured. Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit dc62a3dbf38a7c3aa5a7ae724b04e0fefc10fea4 Author: Eliad Peller Date: Tue Nov 20 13:20:11 2012 +0200 wlcore: configure the remote rates with our own rates With the new connection flow, start_sta is called before the remote rates where updated. Use our own supported rates instead to make sure we don't disable any potential rate (the rate policies will be updated later, but there is currently no way to update the remote rates) Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 58321b296de93df4a060f012151213fe1a1a3498 Author: Eliad Peller Date: Tue Nov 20 13:20:10 2012 +0200 wlcore: refactor CHANGED_HT handling Pass a variable indicating whether HT is enabled, instead of duplicating the function call with different arguments. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit ec87011a4ac30a4a6ddfbf5dc17e302a490c7763 Author: Eliad Peller Date: Tue Nov 20 13:20:09 2012 +0200 wlcore: reconfigure rate policy on association When first configuring the rate policy, before auth, we still don't have the correct rates that were agreed during association. Reconfigure the rate policy on association in order to update them. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 42ec1f82a862b38eb84bc3bbd7fb97b1aa48f18c Author: Eliad Peller Date: Tue Nov 20 13:20:08 2012 +0200 wlcore: specify correct supported_rates The supported_rates field should contain all our supported rates, even if the remote peer doesn't support them. (rename CONF_TX_AP_ENABLED_RATES to CONF_TX_ENABLED_RATES, as we now use it for both ap and sta) Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 6c7b519464cf6c64b02ea0d9e41bd2e49bbd51ce Author: Eliad Peller Date: Tue Nov 20 13:20:07 2012 +0200 wlcore: set active psm on association The default ps mode of the fw is auto, while the default ps mode of mac80211 is active (ps off). In order to sync them, configure active ps on association. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 29936266780295c812b9b8ac27a3db669e0ed1be Author: Eliad Peller Date: Tue Nov 20 13:20:06 2012 +0200 wlcore: initiate ROC/CROC on sta state updates Use the sta_state notifications to ROC when a station is about to connect, and CROC respectively on authorization (success) / deletion (failure). Change the wl12xx_update_sta_state() flow to bail out only on error, so multiple code blocks could refer to the same state. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit b6970ee582acf059fbbc35d861376bd2ae38b7de Author: Eliad Peller Date: Tue Nov 20 13:20:05 2012 +0200 wlcore: add chanctx implementation Add some basic chanctx implementation - debug prints, and save the vif's channel/band/type. After that, we no longer need to handle channel change notifications on op_config. Signed-off-by: Arik Nemtsov Signed-off-by: Eliad Peller Signed-off-by: Luciano Coelho commit cd1810ddcffbf779afb42c0c675aa93f5a86adda Author: Eliad Peller Date: Tue Nov 20 13:20:04 2012 +0200 wlcore: get channel from bss_conf instead of hw->conf We care only about the operational channel, not about the temporal hw channel (which won't have any real meaning in multi-channel env anyway) Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit dabf37dba405565ab46f4d1821c781730285b9ed Author: Eliad Peller Date: Tue Nov 20 13:20:03 2012 +0200 wlcore: implement .remain_on_channel() callback implement the reamin_on_channel() callback by starting a dev role (already associated with the current vif) on the requested channel/band. This channel is usually different from the channel of the sta role, so pass it to wl12xx_roc() as well, and notify mac80211 (async) when the fw is ready on the new channel. Now, in case of offchannel tx, we should use the dev role hlid, instead of the sta hlid. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 18eab430700dc877bae38cf04f0b0574b4724f0a Author: Eliad Peller Date: Tue Nov 20 13:20:02 2012 +0200 wlcore: workaround start_sta problem in wl12xx fw for some reason, the wl12xx fw is not able to rx/tx on the first start_sta cmd. Workaround it by issuing a dummy start_sta + stop_sta before starting the sta for the final time. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 3230f35e09f386ee604f55450dcd26098a3c4bc3 Author: Eliad Peller Date: Tue Nov 20 13:20:01 2012 +0200 wlcore: start sta role on CHANGED_BSSID Make the connection flow simpler by starting sta role on bssid change. Currently, we start dev role when going idle-off, and start the sta role only after association indication. This complicates the connection flow with some possible intermediate states. Make it simpler by starting sta role on bssid change, which now happens *before* auth req get sent. Update the handling of mac80211's notifications and change wl1271_join/unjoin accordingly - * Split wl1271_join() into wlcore_join (tuning on a channel/bssid) and wlcore_set_assoc (configure sta after association). * Rename wl1271_unjoin() to wlcore_unset_assoc(), as it is no longer the inversion of wl1271_join() (now it's only used to disconnect associated sta / joined ibss, without stopping the role). * Set ssid before starting station role (needed for start_role(sta) While on it, split wl1271_bss_info_changed_sta() into some sub-functions. since we no longer use dev role in the connection flow, we now always use the hlid of the sta role. Signed-off-by: Eliad Peller Reviewed-by: Arik Nemtsov Signed-off-by: Luciano Coelho commit 8f1fd6cb6a036bf2e600f8a3e397681a5e33ab07 Author: Tushar Behera Date: Fri Nov 16 12:20:46 2012 +0530 wlcore: Remove redundant check on unsigned variable No need to check whether unsigned variable is less than 0. CC: Luciano Coelho CC: linux-wireless@vger.kernel.org CC: netdev@vger.kernel.org Signed-off-by: Tushar Behera Signed-off-by: Luciano Coelho commit 25b08bf662dea1291a9872547819f0e96bf68fe6 Author: Chuansheng Liu Date: Wed Nov 7 01:28:14 2012 +0800 wlcore: Fix the usage of wait_for_completion_timeout The return value of wait_for_completion_timeout() is always >= 0 with unsigned int type. So the condition "ret < 0" or "ret >= 0" is pointless. Signed-off-by: liu chuansheng Signed-off-by: Luciano Coelho commit 4eeac22c159f053ea34527e4fea359ab10b4b5a5 Author: Janusz.Dziedzic@tieto.com Date: Wed Nov 7 15:42:19 2012 +0200 wlcore: SPI - fix spi transfer_list In corner case for wl12xx_spi_raw_write() when len == SPI_AGGR_BUFFER_SIZE we don't setup correctly spi transfer_list. Next we will have garbage and strange errors reported by SPI framework (eg. wrong speed_hz, failed to transfer one message from queue) when iterate transfer_list. Signed-off-by: Janusz Dziedzic Signed-off-by: Luciano Coelho commit 99c227e3d9270840884ded780787693fd0b82dde Author: Kees Cook Date: Tue Oct 23 13:03:01 2012 -0700 drivers/net/wireless/ti/wl1251: remove CONFIG_EXPERIMENTAL This config item has not carried much meaning for a while now and is almost always enabled by default. As agreed during the Linux kernel summit, remove it. CC: Luciano Coelho CC: "John W. Linville" Signed-off-by: Kees Cook Signed-off-by: Luciano Coelho commit 200e932649dc11e4d69545a6b513d012a6492d0d Author: Wei Yongjun Date: Tue Oct 23 13:23:13 2012 +0800 wlcore: sdio: use platform_device_unregister in wl1271_remove() platform_device_unregister() only calls platform_device_del() and platform_device_put(), thus use platform_device_unregister() to simplify the code. Also the documents in platform.c shows that platform_device_del and platform_device_put must _only_ be externally called in error cases. All other usage is a bug. dpatch engine is used to auto generate this patch. (https://github.com/weiyj/dpatch) Signed-off-by: Wei Yongjun Signed-off-by: Luciano Coelho commit ca6dc10343ba6811dc2e1b31dafd54bb5fff6437 Author: Wei Yongjun Date: Tue Oct 23 13:22:48 2012 +0800 wlcore: spi: use platform_device_unregister in wl1271_remove() platform_device_unregister() only calls platform_device_del() and platform_device_put(), thus use platform_device_unregister() to simplify the code. Also the documents in platform.c shows that platform_device_del and platform_device_put must _only_ be externally called in error cases. All other usage is a bug. dpatch engine is used to auto generate this patch. (https://github.com/weiyj/dpatch) Signed-off-by: Wei Yongjun Signed-off-by: Luciano Coelho commit 4fb4e0bee12d66a175e13ed5d956e61398c34e4e Author: Julia Lawall Date: Sun Oct 21 12:52:04 2012 +0200 drivers/net/wireless/ti/wlcore/main.c: eliminate possible double power off The function wl12xx_set_power_on is only called twice, once in wl12xx_chip_wakeup and once in wl12xx_get_hw_info. On the failure of the call in wl12xx_chip_wakeup, the containing function just returns, but on the failure of the call in wl12xx_get_hw_info, the containing function calls wl1271_power_off. This does not seem necessary, because if wl12xx_set_power_on has set the power on and then fails, it has already turned the power off. A simplified version of the semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ identifier f,free,a; parameter list[n] ps; type T; expression e; @@ f(ps,T a,...) { ... when any when != a = e if(...) { ... free(a); ... return ...; } ... when any } @@ identifier r.f,r.free; expression x,a; expression list[r.n] xs; @@ * x = f(xs,a,...); if (...) { ... free(a); ... return ...; } // Signed-off-by: Julia Lawall Signed-off-by: Luciano Coelho commit f5750c657a94bcc17cd2129368ff00085d475996 Author: Julia Lawall Date: Sat Nov 3 21:30:25 2012 +0100 drivers/net/wireless/ath/ath6kl/hif.c: drop if around WARN_ON Just use WARN_ON rather than an if containing only WARN_ON(1). A simplified version of the semantic patch that makes this transformation is as follows: (http://coccinelle.lip6.fr/) // @@ expression e; @@ - if (e) WARN_ON(1); + WARN_ON(e); // Signed-off-by: Julia Lawall Signed-off-by: Kalle Valo commit f0ed67ec607f6c4e99aa5bb0bd5ac184bcaa5908 Author: Mohammed Shafi Shajakhan Date: Fri Oct 12 17:40:41 2012 +0530 ath6kl: Fix a mismatch in power management debug message Power Save Enabled : REC_POWER - conserve power without sacrificing performance. Power Save Disabled : MAX_PERF_POWER - maximum performance at the expense of power. Hence fix the debug message. Signed-off-by: Mohammed Shafi Shajakhan Signed-off-by: Kalle Valo