drm/mgag200: Add module parameter to pin all buffers at offset 0
For hardware that does not interpret the startadd field correctly, add the module parameter 'hw_bug_no_startadd', which enables the workaround. v3: * style and typo fixes v2: * ask user for feedback if the option is active Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: John Donnelly <john.p.donnelly@oracle.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191126101950.11989-1-tzimmermann@suse.de
This commit is contained in:
parent
0fb5f69e19
commit
3cacb2086e
|
@ -27,6 +27,10 @@ int mgag200_modeset = -1;
|
|||
MODULE_PARM_DESC(modeset, "Disable/Enable modesetting");
|
||||
module_param_named(modeset, mgag200_modeset, int, 0400);
|
||||
|
||||
int mgag200_hw_bug_no_startadd = -1;
|
||||
MODULE_PARM_DESC(modeset, "HW does not interpret scanout-buffer start address correctly");
|
||||
module_param_named(hw_bug_no_startadd, mgag200_hw_bug_no_startadd, int, 0400);
|
||||
|
||||
static struct drm_driver driver;
|
||||
|
||||
static const struct pci_device_id pciidlist[] = {
|
||||
|
@ -97,6 +101,16 @@ DEFINE_DRM_GEM_FOPS(mgag200_driver_fops);
|
|||
|
||||
static bool mgag200_pin_bo_at_0(const struct mga_device *mdev)
|
||||
{
|
||||
if (mgag200_hw_bug_no_startadd > 0) {
|
||||
DRM_WARN_ONCE("Option hw_bug_no_startradd is enabled. Please "
|
||||
"report the output of 'lspci -vvnn' to "
|
||||
"<dri-devel@lists.freedesktop.org> if this "
|
||||
"option is required to make mgag200 work "
|
||||
"correctly on your system.\n");
|
||||
return true;
|
||||
} else if (!mgag200_hw_bug_no_startadd) {
|
||||
return false;
|
||||
}
|
||||
return mdev->flags & MGAG200_FLAG_HW_BUG_NO_STARTADD;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue