- 14 Jan, 2014 11 commits
-
-
Rashika authored
Mark functions cirrus_ttm_global_release(), cirrus_ttm_bo_is_cirrus_bo() and cirrus_ttm_tt_create() as static in drm/cirrus/cirrus_ttm.c because they are not used outside this file. Remove unused function cirrus_bo_unpin() from drm/cirrus/cirrus_ttm.c. This eliminates the following warnings in drm/cirrus/cirrus_ttm.c: drivers/gpu/drm/cirrus/cirrus_ttm.c:84:1: warning: no previous prototype for ‘cirrus_ttm_global_release’ [-Wmissing-prototypes] drivers/gpu/drm/cirrus/cirrus_ttm.c:105:6: warning: no previous prototype for ‘cirrus_ttm_bo_is_cirrus_bo’ [-Wmissing-prototypes] drivers/gpu/drm/cirrus/cirrus_ttm.c:211:16: warning: no previous prototype for ‘cirrus_ttm_tt_create’ [-Wmissing-prototypes] drivers/gpu/drm/cirrus/cirrus_ttm.c:378:5: warning: no previous prototype for ‘cirrus_bo_unpin’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Rashika authored
Mark functions cirrus_set_start_address(), cirrus_encoder_destroy(), cirrus_vga_get_modes() and cirrus_connector_best_encoder() as static in drm/cirrus/cirrus_mode.c because they are not used outside this file. This eliminates the following warnings in drm/cirrus/cirrus_mode.c: drivers/gpu/drm/cirrus/cirrus_mode.c:105:6: warning: no previous prototype for ‘cirrus_set_start_address’ [-Wmissing-prototypes] drivers/gpu/drm/cirrus/cirrus_mode.c:456:6: warning: no previous prototype for ‘cirrus_encoder_destroy’ [-Wmissing-prototypes] drivers/gpu/drm/cirrus/cirrus_mode.c:495:5: warning: no previous prototype for ‘cirrus_vga_get_modes’ [-Wmissing-prototypes] drivers/gpu/drm/cirrus/cirrus_mode.c:512:21: warning: no previous prototype for ‘cirrus_connector_best_encoder’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Rashika authored
Mark function cirrus_bo_unref() as static in drm/cirrus/cirrus_main.c because it is not used outside this file. This eliminates the following warning in drm/cirrus/cirrus_main.c: drivers/gpu/drm/cirrus/cirrus_main.c:258:6: warning: no previous prototype for ‘cirrus_bo_unref’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Rashika authored
Mark functions ast_ttm_global_release(), ast_ttm_bo_is_ast_bo() and ast_ttm_tt_create() as static in drm/ast/ast_ttm.c because they are not used outside this file. This eliminates the following warnings in drm/ast/ast_ttm.c: drivers/gpu/drm/ast/ast_ttm.c:84:1: warning: no previous prototype for ‘ast_ttm_global_release’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_ttm.c:105:6: warning: no previous prototype for ‘ast_ttm_bo_is_ast_bo’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_ttm.c:211:16: warning: no previous prototype for ‘ast_ttm_tt_create’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Rashika authored
Mark functions ast_set_sync_reg(), ast_set_dac_reg(), ast_set_start_address_crt1(), ast_crtc_init(), ast_encoder_init(), ast_connector_init(), ast_cursor_init(), ast_cursor_fini(), ast_show_cursor() and ast_hide_cursor() as static in drm/ast/ast_mode.c because they are not used outside this file. This eliminates the following warning in drm/ast/ast_mode.c: drivers/gpu/drm/ast/ast_mode.c:407:6: warning: no previous prototype for ‘ast_set_sync_reg’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:418:6: warning: no previous prototype for ‘ast_set_dac_reg’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:430:6: warning: no previous prototype for ‘ast_set_start_address_crt1’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:626:5: warning: no previous prototype for ‘ast_crtc_init’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:713:5: warning: no previous prototype for ‘ast_encoder_init’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:780:5: warning: no previous prototype for ‘ast_connector_init’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:813:5: warning: no previous prototype for ‘ast_cursor_init’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:850:6: warning: no previous prototype for ‘ast_cursor_fini’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:968:6: warning: no previous prototype for ‘ast_show_cursor’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_mode.c:979:6: warning: no previous prototype for ‘ast_hide_cursor’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Rashika authored
Mark function ast_bo_unref() as static because it is not used outside file ast_main.c and remove unused function ast_get_max_dclk() in ast_main.c. This eliminates the following warning in drm/ast/ast_main.c: drivers/gpu/drm/ast/ast_main.c:192:10: warning: no previous prototype for ‘ast_get_max_dclk’ [-Wmissing-prototypes] drivers/gpu/drm/ast/ast_main.c:452:6: warning: no previous prototype for ‘ast_bo_unref’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Rashika authored
Include appropriate header file include/drm/drm_usb.h in drm/drm_usb.c because functions drm_get_usb_dev(), drm_usb_init() and drm_usb_exit() have their prototype declarations in the header file. This eliminates the following warning in drm/drm_usb.c: drivers/gpu/drm/drm_usb.c:5:5: warning: no previous prototype for ‘drm_get_usb_dev’ [-Wmissing-prototypes] drivers/gpu/drm/drm_usb.c:61:5: warning: no previous prototype for ‘drm_usb_init’ [-Wmissing-prototypes] drivers/gpu/drm/drm_usb.c:75:6: warning: no previous prototype for ‘drm_usb_exit’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Acked-by:
Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Daniel Vetter authored
Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Signed-off-by:
Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by:
Patrik Jakobsson <patrik.r.jakobsson@gmail.com> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Daniel Vetter authored
This was hidden in a generic void * dev->mm_private. But only ever used for gem. But thanks to this fake generic pretension no one noticed that Rob's drm drivers are now all broken. So just give the offset manager a type pointer and fix up msm, omapdrm and tilcdc. v2: Fixup compile fail. v3: Fixup rebase fail that David spotted. Cc: David Herrmann <dh.herrmann@gmail.com> Cc: Rob Clark <robdclark@gmail.com> Signed-off-by:
Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
git://people.freedesktop.org/~thomash/linuxDave Airlie authored
Anyway, nothing big here, Three more code cleanup patches from Rashika Kheria, and one TTM/vmwgfx patch from me that tightens security around TTM objects enough for them to opened using prime objects from render nodes: Previously any client could access a shared buffer using the "name", also without actually opening it. Now a reference is required, and for render nodes such a reference is intended to only be obtainable using a prime fd. vmwgfx-next 2014-01-13 pull request * tag 'vmwgfx-next-2014-01-13' of git://people.freedesktop.org/~thomash/linux: drivers: gpu: Mark functions as static in vmwgfx_fence.c drivers: gpu: Mark functions as static in vmwgfx_buffer.c drivers: gpu: Mark functions as static in vmwgfx_kms.c drm/ttm: ttm object security fixes for render nodes
-
git://people.freedesktop.org/~thomash/linuxDave Airlie authored
Some code cleanup by Rashika Keria, VM stuff for ttm: -Use PFNMAP instead of MIXEDMAP where possible for performance -Refuse to fault imported pages, an initial step to support dma-bufs better from within TTM. -Correctly set page mapping and -index members. These are needed in various places in the vm subsystem that we are not using yet, but plan to use soonish: For example unmap-mapping-range keeping COW pages, and dirty tracking fbdefio style, but also for PCI memory. ttm-next 2013-01-14 pull request * tag 'ttm-next-2014-01-13' of git://people.freedesktop.org/~thomash/linux: drivers: gpu: Remove unused function in ttm_lock.c drivers: gpu: Mark function as static in ttm_bo_util.c drivers: gpu: Mark function as static in ttm_bo.c drm/ttm: Correctly set page mapping and -index members drm/ttm: Refuse to fault (prime-) imported pages drm/ttm: Use VM_PFNMAP for shared bo maps
-
- 13 Jan, 2014 4 commits
-
-
Martin Koegler authored
Xorg fbdev driver requires smem_start/smem_len, otherwise it tries to map 0 bytes as video memory. Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=856760Signed-off-by:
Martin Koegler <martin.koegler@chello.at> Signed-off-by:
Takashi Iwai <tiwai@suse.de> Signed-off-by:
Dave Airlie <airlied@redhat.com>
-
Dave Airlie authored
Merge branch 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next This pull request adds an anon file for exynos specific mmaper to resolve potential a dead lock issue pointed out by Al Viro, and fixes build break of drm-next. * 'exynos-drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: fix build error caused by removed drm core macros drm/exynos: use a new anon file for exynos gem mmaper
-
git://people.freedesktop.org/~agd5f/linuxDave Airlie authored
This is the drm-next pull for radeon for 3.14. Highlights include: - dpm rework which fixes some issues and allows us to enable dpm by default on CIK parts - enable clockgating on CIK parts - pci config reset. This is a bus-level chip reset that can be more reliable than soft reset in certain cases. Disabled by default. Enable with the hard_reset module option. - big endian rptr/wrptr update fixes - lots of debugfs improvements - some driver cleanup patches from Rashika Kheria - bug fixes * 'drm-next-3.14-wip' of git://people.freedesktop.org/~agd5f/linux: (50 commits) drm/radeon: implement pci config reset for CIK (v3) drm/radeon: implement pci config reset for SI (v2) drm/radeon: implement pci config reset for evergreen/cayman (v2) drm/radeon: implement pci config reset for r6xx/7xx (v3) drm/radeon: add pci config hard reset drm/radeon: add hard_reset module parameter drm/radeon: skip colorbuffer checking if COLOR_INFO.FORMAT is set to INVALID radeon/pm: Guard access to rdev->pm.power_state array drivers: gpu: Move prototype declarations to header file radeon_mode.h from radeon_atombios.c and radeon_combios.c drivers: gpu: Move prototype declaration to header file radeon_mode.h drm/radeon: move com/atombios scratch reg functions to radeon_mode.h drm/radeon/dpm: make some functions static for TN drm/radeon/dpm: make some functions static for sumo drm/radeon/dpm: make some functions static for CI drivers: gpu: Include appropriate header file in ci_smc.c drivers: gpu: Move prototype declaration to header file radeon_mode.h from atombios_i2c.c drivers: gpu: Include appropriate header file in si_smc.c and remove prototype declaration from header file sislands_smc.h drivers: gpu: Add static keyword to the definition of KMS_INVALID_IOCTL in radeon_kms.c drivers: gpu: Mark function as static in r600_hdmi.c drivers: gpu: Mark function as static in radeon_gem.c ...
-
git://people.freedesktop.org/~robclark/linuxDave Airlie authored
MSM tree from Rob. * 'msm-next' of git://people.freedesktop.org/~robclark/linux: drm/msm: add a330/apq8x74 drm/msm: add mdp5/apq8x74 drm/msm: add hdmi support for apq8x74/mdp5 drm/msm: move irq utils to mdp_kms drm/msm: split out msm_kms.h drm/msm: mdp4_format -> mdp_format drm/msm: resync generated headers drm/msm: move mdp4 -> mdp/mdp4 drm/msm: add support for msm8060ab/bstem drm/msm: add support for non-IOMMU systems drm/msm: fix bus scaling drm/msm: add missing MODULE_FIRMWARE()s drm/msm: COMPILE_TEST support
-
- 09 Jan, 2014 13 commits
-
-
Rob Clark authored
Add support for adreno 330. Not too much different, just a few differences in initial configuration plus setting OCMEM base. Userspace support is already in upstream mesa. Note that the existing DT code is simply using the bindings from downstream android kernel, to simplify porting of this driver to existing devices. These do not constitute any committed/stable DT ABI. The addition of proper DT bindings will be a subsequent patch, at which point (as best as possible) I will try to support either upstream bindings or what is found in downstream android kernel, so that existing device DT files can be used. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
Add support for the new MDP5 display controller block. The mapping between parts of the display controller and KMS is: plane -> PIPE{RGBn,VIGn} \ crtc -> LM (layer mixer) |-> MDP "device" encoder -> INTF / connector -> HDMI/DSI/eDP/etc --> other device(s) Unlike MDP4, it appears we can get by with a single encoder, rather than needing a different implementation for DTV, DSI, etc. (Ie. the register interface is same, just different bases.) Also unlike MDP4, all the IRQs for other blocks (HDMI, DSI, etc) are routed through MDP. And finally, MDP5 has this "Shared Memory Pool" (called "SMP"), from which blocks need to be allocated to the active pipes based on fetch stride. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
The HDMI block is basically the same between older SoC's with mdp4 display controller, and newer ones with mdp5. So mostly this consists of better abstracting out the different sets of regulators, clks, etc. In particular, for regulators and clks we can split it up by what is needed for hot plug detect to work, and what is needed to light up the display. Also, 8x74 has a new phy.. a very simple one, but split out into a different mmio space. And with mdp5, the irq is shared with mdp, so we don't directly register our own irq handler. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
We'll want basically the same thing for mdp5, so refactor it out so it can be shared. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
This can be shared between mdp4 and mdp5. Both use the same set of parameters to describe the format to the hw. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
resync to latest envytools db, add mdp5 registers Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
There are some little bits and pieces that mdp4 and mdp5 can share, so move things around so that we can have both in a common parent directory. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
This adds the necessary configuration for the APQ8060A SoC (dual-core krait + a320 gpu) as found on the bstem board. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
Add a VRAM carveout that is used for systems which do not have an IOMMU. The VRAM carveout uses CMA. The arch code must setup a CMA pool for the device (preferrably in highmem.. a 256m-512m VRAM pool in lowmem is not cool). The user can configure the VRAM pool size using msm.vram module param. Technically, the abstraction of IOMMU behind msm_mmu is not strictly needed, but it simplifies the GEM code a bit, and will be useful later when I add support for a2xx devices with GPUMMU, so I decided to keep this part. It appears to be possible to configure the GPU to restrict access to addresses within the VRAM pool, but this is not done yet. So for now the GPU will refuse to load if there is no sort of mmu. Once address based limits are supported and tested to confirm that we aren't giving the GPU access to arbitrary memory, this restriction can be lifted Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
This got a bit broken with original patches when re-arranging things to move dependencies on mach-msm inside #ifndef OF. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
Rob Clark authored
With a simple stub, we can get COMPILE_TEST support. Signed-off-by:
Rob Clark <robdclark@gmail.com>
-
- 08 Jan, 2014 12 commits
-
-
Alex Deucher authored
pci config reset is a low level reset that resets the entire chip from the bus interface. It can be more reliable if soft reset fails. v2: fix rebase v3: hide behind module parameter Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Alex Deucher authored
pci config reset is a low level reset that resets the entire chip from the bus interface. It can be more reliable if soft reset fails. v2: hide behind module parameter Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Alex Deucher authored
pci config reset is a low level reset that resets the entire chip from the bus interface. It can be more reliable if soft reset fails. v2: put behind module parameter Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Alex Deucher authored
pci config reset is a low level reset that resets the entire chip from the bus interface. It can be more reliable if soft reset fails. There's not much information still available on r6xx, so r6xx is based on guess-work. v2: put behind module parameter v3: add IGP check Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Alex Deucher authored
This is used to hard reset the asic. If a soft reset is not able to reset things, a hard reset can be used. Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Alex Deucher authored
Enabling this parameter enables pci config reset, aka hard reset, which is a bus level chip reset. In some cases this works more reliably than a soft reset. Disabled by default. Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Marek Olšák authored
This fixes a bug which was causing rejections of valid GPU commands from userspace. Signed-off-by:
Marek Olšák <marek.olsak@amd.com> Cc: stable@vger.kernel.org Signed-off-by:
Alex Deucher <alexander.deucher@amd.com>
-
Michel Dänzer authored
It's never allocated on systems without an ATOMBIOS or COMBIOS ROM. Should fix an oops I encountered while resetting the GPU after a lockup on my PowerBook with an RV350. Signed-off-by:
Michel Dänzer <michel.daenzer@amd.com> Signed-off-by:
Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
-
Rashika Kheria authored
Mark functions as static because they are not used outside the file drm/vmwgfx/vmwgfx_fence.c. This eliminates the following warnings in drm/vmwgfx/vmwgfx_fence.c: drivers/gpu/drm/vmwgfx/vmwgfx_fence.c:274:6: warning: no previous prototype for ‘vmw_fences_perform_actions’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_fence.c:900:6: warning: no previous prototype for ‘vmw_fence_obj_add_action’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_fence.c:996:5: warning: no previous prototype for ‘vmw_event_fence_action_create’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Reviewed-by:
Jakob Bornecrantz <jakob@vmware.com>
-
Rashika Kheria authored
Mark functions as static because they are not used outside the file drm/vmwgfx/vmwgfx_buffer.c. This eliminates the following warnings in drm/vmwgfx/vmwgfx_buffer.c: drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c:520:16: warning: no previous prototype for ‘vmw_ttm_tt_create’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c:549:5: warning: no previous prototype for ‘vmw_invalidate_caches’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c:554:5: warning: no previous prototype for ‘vmw_init_mem_type’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c:592:6: warning: no previous prototype for ‘vmw_evict_flags’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Reviewed-by:
Jakob Bornecrantz <jakob@vmware.com>
-
Rashika Kheria authored
Mark functions as static because they are not used outside the file drm/vmwgfx/vmwgfx_kms.c. This eliminates the following warnings in drm/vmwgfx/vmwgfx_kms.c: drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:43:6: warning: no previous prototype for ‘vmw_clip_cliprects’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:426:6: warning: no previous prototype for ‘vmw_framebuffer_surface_destroy’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:592:5: warning: no previous prototype for ‘vmw_framebuffer_surface_dirty’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:757:6: warning: no previous prototype for ‘vmw_framebuffer_dmabuf_destroy’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:943:5: warning: no previous prototype for ‘vmw_framebuffer_dmabuf_dirty’ [-Wmissing-prototypes] drivers/gpu/drm/vmwgfx/vmwgfx_kms.c:1666:5: warning: no previous prototype for ‘vmw_du_update_layout’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Reviewed-by:
Jakob Bornecrantz <jakob@vmware.com>
-
Rashika Kheria authored
Remove unused function ttm_write_lock_downgrade() from drm/ttm/ttm_lock.c. This eliminates the following warning in drm/ttm/ttm_lock.c: drivers/gpu/drm/ttm/ttm_lock.c:189:6: warning: no previous prototype for ‘ttm_write_lock_downgrade’ [-Wmissing-prototypes] Signed-off-by:
Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by:
Josh Triplett <josh@joshtriplett.org> Reviewed-by:
Thomas Hellstrom <thellstrom@vmware.com>
-