diff options
author | Zhenyu Wang <zhenyuw@linux.intel.com> | 2010-08-18 21:46:13 -0400 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-08-22 02:24:50 -0400 |
commit | 877fdacf8291d7627f339885b5ae52c2f6061734 (patch) | |
tree | 2bfa23d723deeeb95298f69a83ab44f70dcac96c | |
parent | 156dadc180a1bd3a25d644ee6c361afc465ccd0e (diff) |
agp/intel: set 40-bit dma mask on Sandybridge
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
-rw-r--r-- | drivers/char/agp/intel-agp.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index ddf5def1b0da..ab1903955ac0 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -825,7 +825,8 @@ static const struct intel_driver_description { | |||
825 | static int __devinit intel_gmch_probe(struct pci_dev *pdev, | 825 | static int __devinit intel_gmch_probe(struct pci_dev *pdev, |
826 | struct agp_bridge_data *bridge) | 826 | struct agp_bridge_data *bridge) |
827 | { | 827 | { |
828 | int i; | 828 | int i, mask; |
829 | |||
829 | bridge->driver = NULL; | 830 | bridge->driver = NULL; |
830 | 831 | ||
831 | for (i = 0; intel_agp_chipsets[i].name != NULL; i++) { | 832 | for (i = 0; intel_agp_chipsets[i].name != NULL; i++) { |
@@ -845,14 +846,19 @@ static int __devinit intel_gmch_probe(struct pci_dev *pdev, | |||
845 | 846 | ||
846 | dev_info(&pdev->dev, "Intel %s Chipset\n", intel_agp_chipsets[i].name); | 847 | dev_info(&pdev->dev, "Intel %s Chipset\n", intel_agp_chipsets[i].name); |
847 | 848 | ||
848 | if (bridge->driver->mask_memory == intel_i965_mask_memory) { | 849 | if (bridge->driver->mask_memory == intel_gen6_mask_memory) |
849 | if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(36))) | 850 | mask = 40; |
850 | dev_err(&intel_private.pcidev->dev, | 851 | else if (bridge->driver->mask_memory == intel_i965_mask_memory) |
851 | "set gfx device dma mask 36bit failed!\n"); | 852 | mask = 36; |
852 | else | 853 | else |
853 | pci_set_consistent_dma_mask(intel_private.pcidev, | 854 | mask = 32; |
854 | DMA_BIT_MASK(36)); | 855 | |
855 | } | 856 | if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(mask))) |
857 | dev_err(&intel_private.pcidev->dev, | ||
858 | "set gfx device dma mask %d-bit failed!\n", mask); | ||
859 | else | ||
860 | pci_set_consistent_dma_mask(intel_private.pcidev, | ||
861 | DMA_BIT_MASK(mask)); | ||
856 | 862 | ||
857 | return 1; | 863 | return 1; |
858 | } | 864 | } |