diff options
| -rw-r--r-- | drivers/gpu/drm/ati_pcigart.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_bufs.c | 4 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_edid.c | 14 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_fb_helper.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/drm_pci.c | 8 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_dma.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 2 | ||||
| -rw-r--r-- | include/drm/drmP.h | 2 |
8 files changed, 24 insertions, 20 deletions
diff --git a/drivers/gpu/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c index 628eae3e9b83..a1fce68e3bbe 100644 --- a/drivers/gpu/drm/ati_pcigart.c +++ b/drivers/gpu/drm/ati_pcigart.c | |||
| @@ -39,8 +39,7 @@ static int drm_ati_alloc_pcigart_table(struct drm_device *dev, | |||
| 39 | struct drm_ati_pcigart_info *gart_info) | 39 | struct drm_ati_pcigart_info *gart_info) |
| 40 | { | 40 | { |
| 41 | gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size, | 41 | gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size, |
| 42 | PAGE_SIZE, | 42 | PAGE_SIZE); |
| 43 | gart_info->table_mask); | ||
| 44 | if (gart_info->table_handle == NULL) | 43 | if (gart_info->table_handle == NULL) |
| 45 | return -ENOMEM; | 44 | return -ENOMEM; |
| 46 | 45 | ||
| @@ -112,6 +111,13 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga | |||
| 112 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { | 111 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { |
| 113 | DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); | 112 | DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); |
| 114 | 113 | ||
| 114 | if (pci_set_dma_mask(dev->pdev, gart_info->table_mask)) { | ||
| 115 | DRM_ERROR("fail to set dma mask to 0x%Lx\n", | ||
| 116 | gart_info->table_mask); | ||
| 117 | ret = 1; | ||
| 118 | goto done; | ||
| 119 | } | ||
| 120 | |||
| 115 | ret = drm_ati_alloc_pcigart_table(dev, gart_info); | 121 | ret = drm_ati_alloc_pcigart_table(dev, gart_info); |
| 116 | if (ret) { | 122 | if (ret) { |
| 117 | DRM_ERROR("cannot allocate PCI GART page!\n"); | 123 | DRM_ERROR("cannot allocate PCI GART page!\n"); |
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c index 3d09e304f6f4..8417cc4c43f1 100644 --- a/drivers/gpu/drm/drm_bufs.c +++ b/drivers/gpu/drm/drm_bufs.c | |||
| @@ -326,7 +326,7 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset, | |||
| 326 | * As we're limiting the address to 2^32-1 (or less), | 326 | * As we're limiting the address to 2^32-1 (or less), |
| 327 | * casting it down to 32 bits is no problem, but we | 327 | * casting it down to 32 bits is no problem, but we |
| 328 | * need to point to a 64bit variable first. */ | 328 | * need to point to a 64bit variable first. */ |
| 329 | dmah = drm_pci_alloc(dev, map->size, map->size, 0xffffffffUL); | 329 | dmah = drm_pci_alloc(dev, map->size, map->size); |
| 330 | if (!dmah) { | 330 | if (!dmah) { |
| 331 | kfree(map); | 331 | kfree(map); |
| 332 | return -ENOMEM; | 332 | return -ENOMEM; |
| @@ -885,7 +885,7 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request) | |||
| 885 | 885 | ||
| 886 | while (entry->buf_count < count) { | 886 | while (entry->buf_count < count) { |
| 887 | 887 | ||
| 888 | dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000, 0xfffffffful); | 888 | dmah = drm_pci_alloc(dev, PAGE_SIZE << page_order, 0x1000); |
| 889 | 889 | ||
| 890 | if (!dmah) { | 890 | if (!dmah) { |
| 891 | /* Set count correctly so we free the proper amount. */ | 891 | /* Set count correctly so we free the proper amount. */ |
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 5c9f79877cbf..defcaf108460 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
| @@ -911,23 +911,27 @@ static int drm_cvt_modes(struct drm_connector *connector, | |||
| 911 | struct drm_device *dev = connector->dev; | 911 | struct drm_device *dev = connector->dev; |
| 912 | struct cvt_timing *cvt; | 912 | struct cvt_timing *cvt; |
| 913 | const int rates[] = { 60, 85, 75, 60, 50 }; | 913 | const int rates[] = { 60, 85, 75, 60, 50 }; |
| 914 | const u8 empty[3] = { 0, 0, 0 }; | ||
| 914 | 915 | ||
| 915 | for (i = 0; i < 4; i++) { | 916 | for (i = 0; i < 4; i++) { |
| 916 | int uninitialized_var(width), height; | 917 | int uninitialized_var(width), height; |
| 917 | cvt = &(timing->data.other_data.data.cvt[i]); | 918 | cvt = &(timing->data.other_data.data.cvt[i]); |
| 918 | 919 | ||
| 919 | height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 8) + 1) * 2; | 920 | if (!memcmp(cvt->code, empty, 3)) |
| 920 | switch (cvt->code[1] & 0xc0) { | 921 | continue; |
| 922 | |||
| 923 | height = (cvt->code[0] + ((cvt->code[1] & 0xf0) << 4) + 1) * 2; | ||
| 924 | switch (cvt->code[1] & 0x0c) { | ||
| 921 | case 0x00: | 925 | case 0x00: |
| 922 | width = height * 4 / 3; | 926 | width = height * 4 / 3; |
| 923 | break; | 927 | break; |
| 924 | case 0x40: | 928 | case 0x04: |
| 925 | width = height * 16 / 9; | 929 | width = height * 16 / 9; |
| 926 | break; | 930 | break; |
| 927 | case 0x80: | 931 | case 0x08: |
| 928 | width = height * 16 / 10; | 932 | width = height * 16 / 10; |
| 929 | break; | 933 | break; |
| 930 | case 0xc0: | 934 | case 0x0c: |
| 931 | width = height * 15 / 9; | 935 | width = height * 15 / 9; |
| 932 | break; | 936 | break; |
| 933 | } | 937 | } |
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 1b49fa055f4f..100ee48760b7 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c | |||
| @@ -156,7 +156,7 @@ static bool drm_fb_helper_connector_parse_command_line(struct drm_connector *con | |||
| 156 | force = DRM_FORCE_ON; | 156 | force = DRM_FORCE_ON; |
| 157 | break; | 157 | break; |
| 158 | case 'D': | 158 | case 'D': |
| 159 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DVII) || | 159 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DVII) && |
| 160 | (connector->connector_type != DRM_MODE_CONNECTOR_HDMIB)) | 160 | (connector->connector_type != DRM_MODE_CONNECTOR_HDMIB)) |
| 161 | force = DRM_FORCE_ON; | 161 | force = DRM_FORCE_ON; |
| 162 | else | 162 | else |
diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c index 577094fb1995..e68ebf92fa2a 100644 --- a/drivers/gpu/drm/drm_pci.c +++ b/drivers/gpu/drm/drm_pci.c | |||
| @@ -47,8 +47,7 @@ | |||
| 47 | /** | 47 | /** |
| 48 | * \brief Allocate a PCI consistent memory block, for DMA. | 48 | * \brief Allocate a PCI consistent memory block, for DMA. |
| 49 | */ | 49 | */ |
| 50 | drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align, | 50 | drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align) |
| 51 | dma_addr_t maxaddr) | ||
| 52 | { | 51 | { |
| 53 | drm_dma_handle_t *dmah; | 52 | drm_dma_handle_t *dmah; |
| 54 | #if 1 | 53 | #if 1 |
| @@ -63,11 +62,6 @@ drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t ali | |||
| 63 | if (align > size) | 62 | if (align > size) |
| 64 | return NULL; | 63 | return NULL; |
| 65 | 64 | ||
| 66 | if (pci_set_dma_mask(dev->pdev, maxaddr) != 0) { | ||
| 67 | DRM_ERROR("Setting pci dma mask failed\n"); | ||
| 68 | return NULL; | ||
| 69 | } | ||
| 70 | |||
| 71 | dmah = kmalloc(sizeof(drm_dma_handle_t), GFP_KERNEL); | 65 | dmah = kmalloc(sizeof(drm_dma_handle_t), GFP_KERNEL); |
| 72 | if (!dmah) | 66 | if (!dmah) |
| 73 | return NULL; | 67 | return NULL; |
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 701bfeac7f57..02607ed61399 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
| @@ -123,7 +123,7 @@ static int i915_init_phys_hws(struct drm_device *dev) | |||
| 123 | drm_i915_private_t *dev_priv = dev->dev_private; | 123 | drm_i915_private_t *dev_priv = dev->dev_private; |
| 124 | /* Program Hardware Status Page */ | 124 | /* Program Hardware Status Page */ |
| 125 | dev_priv->status_page_dmah = | 125 | dev_priv->status_page_dmah = |
| 126 | drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE, 0xffffffff); | 126 | drm_pci_alloc(dev, PAGE_SIZE, PAGE_SIZE); |
| 127 | 127 | ||
| 128 | if (!dev_priv->status_page_dmah) { | 128 | if (!dev_priv->status_page_dmah) { |
| 129 | DRM_ERROR("Can not allocate hardware status page\n"); | 129 | DRM_ERROR("Can not allocate hardware status page\n"); |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 917b8377ae28..c7f0cbec4e84 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
| @@ -4708,7 +4708,7 @@ int i915_gem_init_phys_object(struct drm_device *dev, | |||
| 4708 | 4708 | ||
| 4709 | phys_obj->id = id; | 4709 | phys_obj->id = id; |
| 4710 | 4710 | ||
| 4711 | phys_obj->handle = drm_pci_alloc(dev, size, 0, 0xffffffff); | 4711 | phys_obj->handle = drm_pci_alloc(dev, size, 0); |
| 4712 | if (!phys_obj->handle) { | 4712 | if (!phys_obj->handle) { |
| 4713 | ret = -ENOMEM; | 4713 | ret = -ENOMEM; |
| 4714 | goto kfree_obj; | 4714 | goto kfree_obj; |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 71dafb69cfeb..ffac157fb5b2 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
| @@ -1408,7 +1408,7 @@ extern int drm_ati_pcigart_cleanup(struct drm_device *dev, | |||
| 1408 | struct drm_ati_pcigart_info * gart_info); | 1408 | struct drm_ati_pcigart_info * gart_info); |
| 1409 | 1409 | ||
| 1410 | extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size, | 1410 | extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size, |
| 1411 | size_t align, dma_addr_t maxaddr); | 1411 | size_t align); |
| 1412 | extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); | 1412 | extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); |
| 1413 | extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); | 1413 | extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); |
| 1414 | 1414 | ||
