This is a note to let you know that I've just added the patch titled drm/mga: remove device_is_agp callback to the 4.10-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: drm-mga-remove-device_is_agp-callback.patch and it can be found in the queue-4.10 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From foo@baz Mon Apr 10 18:08:16 CEST 2017 From: alexander.levin@xxxxxxxxxxx Date: Tue, 4 Apr 2017 19:32:25 +0000 Subject: drm/mga: remove device_is_agp callback To: "gregkh@xxxxxxxxxxxxxxxxxxx" <gregkh@xxxxxxxxxxxxxxxxxxx> Cc: "stable@xxxxxxxxxxxxxxx" <stable@xxxxxxxxxxxxxxx> Message-ID: <20170404193158.19041-63-alexander.levin@xxxxxxxxxxx> From: Daniel Vetter <daniel.vetter@xxxxxxxx> [ Upstream commit 858b2c1bf820ebfba89c5e2867ab882bdb5b2f5a ] It's only for a device quirk, and we might as well do that in the load callback. Acked-by: Alex Deucher <alexander.deucher@xxxxxxx> Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> Link: http://patchwork.freedesktop.org/patch/msgid/20170125062657.19270-10-daniel.vetter@xxxxxxxx Signed-off-by: Sasha Levin <alexander.levin@xxxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/gpu/drm/mga/mga_dma.c | 20 +++++++++++++++++++- drivers/gpu/drm/mga/mga_drv.c | 37 ------------------------------------- 2 files changed, 19 insertions(+), 38 deletions(-) --- a/drivers/gpu/drm/mga/mga_dma.c +++ b/drivers/gpu/drm/mga/mga_dma.c @@ -392,6 +392,24 @@ int mga_driver_load(struct drm_device *d drm_mga_private_t *dev_priv; int ret; + /* There are PCI versions of the G450. These cards have the + * same PCI ID as the AGP G450, but have an additional PCI-to-PCI + * bridge chip. We detect these cards, which are not currently + * supported by this driver, by looking at the device ID of the + * bus the "card" is on. If vendor is 0x3388 (Hint Corp) and the + * device is 0x0021 (HB6 Universal PCI-PCI bridge), we reject the + * device. + */ + if ((dev->pdev->device == 0x0525) && dev->pdev->bus->self + && (dev->pdev->bus->self->vendor == 0x3388) + && (dev->pdev->bus->self->device == 0x0021) + && dev->agp) { + /* FIXME: This should be quirked in the pci core, but oh well + * the hw probably stopped existing. */ + arch_phys_wc_del(dev->agp->agp_mtrr); + kfree(dev->agp); + dev->agp = NULL; + } dev_priv = kzalloc(sizeof(drm_mga_private_t), GFP_KERNEL); if (!dev_priv) return -ENOMEM; @@ -698,7 +716,7 @@ static int mga_do_pci_dma_bootstrap(stru static int mga_do_dma_bootstrap(struct drm_device *dev, drm_mga_dma_bootstrap_t *dma_bs) { - const int is_agp = (dma_bs->agp_mode != 0) && drm_pci_device_is_agp(dev); + const int is_agp = (dma_bs->agp_mode != 0) && dev->agp; int err; drm_mga_private_t *const dev_priv = (drm_mga_private_t *) dev->dev_private; --- a/drivers/gpu/drm/mga/mga_drv.c +++ b/drivers/gpu/drm/mga/mga_drv.c @@ -37,8 +37,6 @@ #include <drm/drm_pciids.h> -static int mga_driver_device_is_agp(struct drm_device *dev); - static struct pci_device_id pciidlist[] = { mga_PCI_IDS }; @@ -66,7 +64,6 @@ static struct drm_driver driver = { .lastclose = mga_driver_lastclose, .set_busid = drm_pci_set_busid, .dma_quiescent = mga_driver_dma_quiescent, - .device_is_agp = mga_driver_device_is_agp, .get_vblank_counter = mga_get_vblank_counter, .enable_vblank = mga_enable_vblank, .disable_vblank = mga_disable_vblank, @@ -107,37 +104,3 @@ module_exit(mga_exit); MODULE_AUTHOR(DRIVER_AUTHOR); MODULE_DESCRIPTION(DRIVER_DESC); MODULE_LICENSE("GPL and additional rights"); - -/** - * Determine if the device really is AGP or not. - * - * In addition to the usual tests performed by \c drm_device_is_agp, this - * function detects PCI G450 cards that appear to the system exactly like - * AGP G450 cards. - * - * \param dev The device to be tested. - * - * \returns - * If the device is a PCI G450, zero is returned. Otherwise 2 is returned. - */ -static int mga_driver_device_is_agp(struct drm_device *dev) -{ - const struct pci_dev *const pdev = dev->pdev; - - /* There are PCI versions of the G450. These cards have the - * same PCI ID as the AGP G450, but have an additional PCI-to-PCI - * bridge chip. We detect these cards, which are not currently - * supported by this driver, by looking at the device ID of the - * bus the "card" is on. If vendor is 0x3388 (Hint Corp) and the - * device is 0x0021 (HB6 Universal PCI-PCI bridge), we reject the - * device. - */ - - if ((pdev->device == 0x0525) && pdev->bus->self - && (pdev->bus->self->vendor == 0x3388) - && (pdev->bus->self->device == 0x0021)) { - return 0; - } - - return 2; -} Patches currently in stable-queue which might be from gregkh@xxxxxxxxxxxxxxxxxxx are queue-4.10/staging-android-ashmem-lseek-failed-due-to-no-fmode_lseek.patch queue-4.10/acpi-button-change-default-behavior-to-lid_init_state-open.patch queue-4.10/usb-musb-da8xx-fix-host-mode-suspend.patch queue-4.10/drm-i915-fix-intel_bdw_ids-definition.patch queue-4.10/drm-i915-gvt-fix-gvt-scheduler-interval-time.patch queue-4.10/sysfs-be-careful-of-error-returns-from-ops-show.patch queue-4.10/pci-thunder-pem-add-legacy-firmware-support-for-cavium-thunderx-host-controller.patch queue-4.10/pci-thunder-pem-fix-legacy-firmware-pem-specific-resources.patch queue-4.10/mips-flush-wrong-invalid-ftlb-entry-for-huge-page.patch queue-4.10/mips-end-spinlocks-with-.insn.patch queue-4.10/dax-fix-radix-tree-insertion-race.patch queue-4.10/mmc-sdhci-of-esdhc-remove-default-broken-cd-for-arm.patch queue-4.10/jump-label-fix-passing-kbuild_cflags-when-checking-for-asm-goto-support.patch queue-4.10/kvm-arm-arm64-fix-locking-for-kvm_free_stage2_pgd.patch queue-4.10/iio-st_pressure-initialize-lps22hb-bootime.patch queue-4.10/powerpc-disable-hfscr-if-tm-is-not-supported.patch queue-4.10/metag-usercopy-add-missing-fixups.patch queue-4.10/nios2-reserve-boot-memory-for-device-tree.patch queue-4.10/platform-x86-asus-wmi-detect-quirk_no_rfkill-from-the-dsdt.patch queue-4.10/ring-buffer-fix-return-value-check-in-test_ringbuffer.patch queue-4.10/firmware-qcom-scm-fix-interrupted-scm-calls.patch queue-4.10/pci-add-broadcom-northstar2-paxc-quirk-for-device-class-and-mpss.patch queue-4.10/drm-msm-adreno-fix-build-error-without-debugfs.patch queue-4.10/powerpc-64-fix-flush_-d-i-cache_range-called-from-modules.patch queue-4.10/acpi-gpio-do-not-fall-back-to-parsing-_crs-when-we-get-a-deferral.patch queue-4.10/metag-usercopy-add-early-abort-to-copy_to_user.patch queue-4.10/powerpc-crypto-crc32c-vpmsum-fix-missing-preempt_disable.patch queue-4.10/arm-arm64-kvm-take-mmap_sem-in-kvm_arch_prepare_memory_region.patch queue-4.10/rx51-broken-build.patch queue-4.10/mips-ralink-fix-typos-in-rt3883-pinctrl.patch queue-4.10/cfg80211-check-rdev-resume-callback-only-for-registered-wiphy.patch queue-4.10/metag-usercopy-set-flags-before-addz.patch queue-4.10/metag-usercopy-fix-src-fixup-in-from-user-rapf-loops.patch queue-4.10/xtensa-make-__pa-work-with-uncached-kseg-addresses.patch queue-4.10/asoc-codecs-rt5670-add-quirk-for-lenovo-thinkpad-10.patch queue-4.10/powerpc-mm-add-missing-global-tlb-invalidate-if-cxl-is-active.patch queue-4.10/tools-power-turbostat-dump-atom-p-states-correctly.patch queue-4.10/asoc-intel-cht_bsw_rt5645-add-baytrail-mclk-support.patch queue-4.10/watchdog-s3c2410-fix-infinite-interrupt-in-soft-mode.patch queue-4.10/drm-i915-actually-drive-the-bdw-reserved-ids.patch queue-4.10/serial-8250_omap-add-omap_dma_tx_kick-quirk-for-am437x.patch queue-4.10/brcmfmac-use-local-iftype-avoiding-use-after-free-of-virtual-interface.patch queue-4.10/drm-vmwgfx-remove-getparam-error-message.patch queue-4.10/mac80211-unconditionally-start-new-netdev-queues-with-itxq-support.patch queue-4.10/dm-verity-fec-fix-bufio-leaks.patch queue-4.10/hid-wacom-don-t-apply-generic-settings-to-old-devices.patch queue-4.10/x86-mce-don-t-print-mces-when-mcelog-is-active.patch queue-4.10/arm-kernel-add-smc-structure-parameter.patch queue-4.10/usb-storage-add-ignore-residue-quirk-for-initio-inic-3619.patch queue-4.10/drm-vmwgfx-type-check-lookups-of-fence-objects.patch queue-4.10/dm-verity-fec-limit-error-correction-recursion.patch queue-4.10/drm-edid-constify-edid-quirk-list.patch queue-4.10/s390-uaccess-get_user-should-zero-on-failure-again.patch queue-4.10/dm-raid-fix-null-pointer-dereference-for-raid1-without-bitmap.patch queue-4.10/random-use-chacha20-for-get_random_int-long.patch queue-4.10/ptrace-fix-ptrace_listen-race-corrupting-task-state.patch queue-4.10/drm-vmwgfx-fix-integer-overflow-in-vmw_surface_define_ioctl.patch queue-4.10/pci-sort-the-list-of-devices-with-d3-delay-quirk-by-id.patch queue-4.10/s390-decompressor-fix-initrd-corruption-caused-by-bss-clear.patch queue-4.10/pci-disable-msi-for-hisilicon-hip06-hip07-root-ports.patch queue-4.10/mips-check-tlb-before-handle_ri_rdhwr-for-loongson-3.patch queue-4.10/pci-add-acs-quirk-for-intel-union-point.patch queue-4.10/asoc-intel-baytrail-add-quirk-for-lenovo-thinkpad-10.patch queue-4.10/can-flexcan-add-quirk-flexcan_quirk_enable_eacen_rrs.patch queue-4.10/metag-usercopy-drop-unused-macros.patch queue-4.10/drm-i915-more-.is_mobile-cleanups-for-bdw.patch queue-4.10/hid-multitouch-enable-the-surface-4-type-cover-pro-jp-to-report-multitouch-data.patch queue-4.10/iio-bmg160-reset-chip-when-probing.patch queue-4.10/orangefs-move-features-validation-to-fix-filesystem-hang.patch queue-4.10/arm64-mm-unaligned-access-by-user-land-should-be-received-as-sigbus.patch queue-4.10/powerpc-don-t-try-to-fix-up-misaligned-load-with-reservation-instructions.patch queue-4.10/usb-chipidea-msm-rely-on-core-to-override-ahbburst.patch queue-4.10/asoc-intel-bytcr_rt5640-quirks-for-insyde-devices.patch queue-4.10/mips-lantiq-fix-missing-xbar-kernel-panic.patch queue-4.10/metag-usercopy-zero-rest-of-buffer-from-copy_from_user.patch queue-4.10/xfs-honor-falloc_fl_keep_size-when-punching-ends-of-files.patch queue-4.10/metag-usercopy-fix-alignment-error-checking.patch queue-4.10/x86-reboot-quirks-add-asus-eeebook-x205ta-reboot-quirk.patch queue-4.10/iio-core-fix-iio_val_fractional_log2-for-negative-values.patch queue-4.10/pci-xgene-fix-double-free-on-init-error.patch queue-4.10/acpi-save-nvs-memory-for-lenovo-g50-45.patch queue-4.10/asoc-intel-cht_bsw_rt5645-harden-acpi-device-detection.patch queue-4.10/sata-ahci-da850-implement-a-workaround-for-the-softreset-quirk.patch queue-4.10/reset-treeid-to-zero-on-smb2-tree_connect.patch queue-4.10/pci-add-acs-quirk-for-qualcomm-qdf2400-and-qdf2432.patch queue-4.10/tools-power-turbostat-decode-baytrail-cc6-and-mc6-demotion-configuration.patch queue-4.10/documentation-stable-kernel-rules-fix-stable-tag-format.patch queue-4.10/drm-mga-remove-device_is_agp-callback.patch queue-4.10/usb-host-xhci-plat-enable-broken_ped-quirk-if-platform-requested.patch queue-4.10/mm-mempolicy.c-fix-error-handling-in-set_mempolicy-and-mbind.patch queue-4.10/arm-arm64-kvm-take-mmap_sem-in-stage2_unmap_vm.patch queue-4.10/mm-page_alloc.c-fix-print-order-in-show_free_areas.patch queue-4.10/usb-dwc3-host-pass-quirk-broken-port-ped-property-for-known-broken-revisions.patch queue-4.10/kvm-fix-page-struct-leak-in-handle_vmon.patch queue-4.10/arm-smccc-update-hvc-comment-to-describe-new-quirk-parameter.patch queue-4.10/mips-c-r4k-fix-loongson-3-s-vcache-scache-waysize-calculation.patch queue-4.10/drm-vmwgfx-avoid-calling-vzalloc-with-a-0-size-in-vmw_get_cap_3d_ioctl.patch queue-4.10/usb-xhci-add-quirk-flag-for-broken-ped-bits.patch queue-4.10/mips-force-o32-fp64-support-on-32bit-mips64r6-kernels.patch queue-4.10/arm-davinci-add-skeleton-for-pdata-quirks.patch queue-4.10/usb-dwc3-gadget-delay-unmap-of-bounced-requests.patch queue-4.10/x86-reboot-quirks-fix-typo-in-asus-eeebook-x205ta-reboot-quirk.patch queue-4.10/mips-add-mips_cpu_ftlb-for-loongson-3a-r2.patch queue-4.10/kbuild-use-cc-disable-warning-consistently-for-maybe-uninitialized.patch queue-4.10/arm-omap2-fix-init-for-multiple-quirks-for-the-same-soc.patch queue-4.10/x86-reboot-quirks-add-asus-eeebook-x205ta-w-reboot-quirk.patch queue-4.10/drm-i915-kvmgt-fix-suspicious-rcu-dereference-usage.patch queue-4.10/acpi-scan-prefer-devices-without-_hid-for-_adr-matching.patch queue-4.10/drm-ttm-drm-vmwgfx-relax-permission-checking-when-opening-surfaces.patch queue-4.10/drm-vmwgfx-null-pointer-dereference-in-vmw_surface_define_ioctl.patch queue-4.10/asoc-sun4i-i2s-add-quirks-to-handle-a31-compatible.patch