diff options
| author | Dave Airlie <airlied@redhat.com> | 2013-09-01 19:31:40 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2013-09-01 19:31:40 -0400 |
| commit | 9c725e5bcdae59d5383d4aec33a34c822582dda5 (patch) | |
| tree | 3d55827f5f44f16cb0aada2713029f7490f557d4 /drivers/video | |
| parent | efa27f9cec09518c9b574e3ab4a0a41717237429 (diff) | |
| parent | 679fe80fbe964ea7f9f71781c2ca65b630949da3 (diff) | |
Merge branch 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux into drm-next
Alex writes:
This is the radeon drm-next request. Big changes include:
- support for dpm on CIK parts
- support for ASPM on CIK parts
- support for berlin GPUs
- major ring handling cleanup
- remove the old 3D blit code for bo moves in favor of CP DMA or sDMA
- lots of bug fixes
[airlied: fix up a bunch of conflicts from drm_order removal]
* 'drm-next-3.12' of git://people.freedesktop.org/~agd5f/linux: (898 commits)
drm/radeon/dpm: make sure dc performance level limits are valid (CI)
drm/radeon/dpm: make sure dc performance level limits are valid (BTC-SI) (v2)
drm/radeon: gcc fixes for extended dpm tables
drm/radeon: gcc fixes for kb/kv dpm
drm/radeon: gcc fixes for ci dpm
drm/radeon: gcc fixes for si dpm
drm/radeon: gcc fixes for ni dpm
drm/radeon: gcc fixes for trinity dpm
drm/radeon: gcc fixes for sumo dpm
drm/radeonn: gcc fixes for rv7xx/eg/btc dpm
drm/radeon: gcc fixes for rv6xx dpm
drm/radeon: gcc fixes for radeon_atombios.c
drm/radeon: enable UVD interrupts on CIK
drm/radeon: fix init ordering for r600+
drm/radeon/dpm: only need to reprogram uvd if uvd pg is enabled
drm/radeon: check the return value of uvd_v1_0_start in uvd_v1_0_init
drm/radeon: split out radeon_uvd_resume from uvd_v4_2_resume
radeon kms: fix uninitialised hotplug work usage in r100_irq_process()
drm/radeon/audio: set up the sads on DCE3.2 asics
drm/radeon: fix handling of variable sized arrays for router objects
...
Conflicts:
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/i915/i915_gem_dmabuf.c
drivers/gpu/drm/i915/intel_pm.c
drivers/gpu/drm/radeon/cik.c
drivers/gpu/drm/radeon/ni.c
drivers/gpu/drm/radeon/r600.c
Diffstat (limited to 'drivers/video')
| -rw-r--r-- | drivers/video/aty/atyfb_base.c | 4 | ||||
| -rw-r--r-- | drivers/video/mxsfb.c | 26 | ||||
| -rw-r--r-- | drivers/video/nuc900fb.c | 3 | ||||
| -rw-r--r-- | drivers/video/omap2/displays-new/connector-analog-tv.c | 18 | ||||
| -rw-r--r-- | drivers/video/sgivwfb.c | 2 | ||||
| -rw-r--r-- | drivers/video/sh7760fb.c | 2 | ||||
| -rw-r--r-- | drivers/video/vga16fb.c | 1 | ||||
| -rw-r--r-- | drivers/video/xilinxfb.c | 4 |
8 files changed, 23 insertions, 37 deletions
diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index a89c15de9f45..9b0f12c5c284 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c | |||
| @@ -435,8 +435,8 @@ static int correct_chipset(struct atyfb_par *par) | |||
| 435 | const char *name; | 435 | const char *name; |
| 436 | int i; | 436 | int i; |
| 437 | 437 | ||
| 438 | for (i = ARRAY_SIZE(aty_chips); i > 0; i--) | 438 | for (i = (int)ARRAY_SIZE(aty_chips) - 1; i >= 0; i--) |
| 439 | if (par->pci_id == aty_chips[i - 1].pci_id) | 439 | if (par->pci_id == aty_chips[i].pci_id) |
| 440 | break; | 440 | break; |
| 441 | 441 | ||
| 442 | if (i < 0) | 442 | if (i < 0) |
diff --git a/drivers/video/mxsfb.c b/drivers/video/mxsfb.c index 3ba37713b1f9..dc09ebe4aba5 100644 --- a/drivers/video/mxsfb.c +++ b/drivers/video/mxsfb.c | |||
| @@ -239,24 +239,6 @@ static const struct fb_bitfield def_rgb565[] = { | |||
| 239 | } | 239 | } |
| 240 | }; | 240 | }; |
| 241 | 241 | ||
| 242 | static const struct fb_bitfield def_rgb666[] = { | ||
| 243 | [RED] = { | ||
| 244 | .offset = 16, | ||
| 245 | .length = 6, | ||
| 246 | }, | ||
| 247 | [GREEN] = { | ||
| 248 | .offset = 8, | ||
| 249 | .length = 6, | ||
| 250 | }, | ||
| 251 | [BLUE] = { | ||
| 252 | .offset = 0, | ||
| 253 | .length = 6, | ||
| 254 | }, | ||
| 255 | [TRANSP] = { /* no support for transparency */ | ||
| 256 | .length = 0, | ||
| 257 | } | ||
| 258 | }; | ||
| 259 | |||
| 260 | static const struct fb_bitfield def_rgb888[] = { | 242 | static const struct fb_bitfield def_rgb888[] = { |
| 261 | [RED] = { | 243 | [RED] = { |
| 262 | .offset = 16, | 244 | .offset = 16, |
| @@ -309,9 +291,6 @@ static int mxsfb_check_var(struct fb_var_screeninfo *var, | |||
| 309 | break; | 291 | break; |
| 310 | case STMLCDIF_16BIT: | 292 | case STMLCDIF_16BIT: |
| 311 | case STMLCDIF_18BIT: | 293 | case STMLCDIF_18BIT: |
| 312 | /* 24 bit to 18 bit mapping */ | ||
| 313 | rgb = def_rgb666; | ||
| 314 | break; | ||
| 315 | case STMLCDIF_24BIT: | 294 | case STMLCDIF_24BIT: |
| 316 | /* real 24 bit */ | 295 | /* real 24 bit */ |
| 317 | rgb = def_rgb888; | 296 | rgb = def_rgb888; |
| @@ -453,11 +432,6 @@ static int mxsfb_set_par(struct fb_info *fb_info) | |||
| 453 | return -EINVAL; | 432 | return -EINVAL; |
| 454 | case STMLCDIF_16BIT: | 433 | case STMLCDIF_16BIT: |
| 455 | case STMLCDIF_18BIT: | 434 | case STMLCDIF_18BIT: |
| 456 | /* 24 bit to 18 bit mapping */ | ||
| 457 | ctrl |= CTRL_DF24; /* ignore the upper 2 bits in | ||
| 458 | * each colour component | ||
| 459 | */ | ||
| 460 | break; | ||
| 461 | case STMLCDIF_24BIT: | 435 | case STMLCDIF_24BIT: |
| 462 | /* real 24 bit */ | 436 | /* real 24 bit */ |
| 463 | break; | 437 | break; |
diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c index 8c527e5b293c..796e5112ceee 100644 --- a/drivers/video/nuc900fb.c +++ b/drivers/video/nuc900fb.c | |||
| @@ -587,8 +587,7 @@ static int nuc900fb_probe(struct platform_device *pdev) | |||
| 587 | fbinfo->flags = FBINFO_FLAG_DEFAULT; | 587 | fbinfo->flags = FBINFO_FLAG_DEFAULT; |
| 588 | fbinfo->pseudo_palette = &fbi->pseudo_pal; | 588 | fbinfo->pseudo_palette = &fbi->pseudo_pal; |
| 589 | 589 | ||
| 590 | ret = request_irq(irq, nuc900fb_irqhandler, 0, | 590 | ret = request_irq(irq, nuc900fb_irqhandler, 0, pdev->name, fbi); |
| 591 | pdev->name, fbinfo); | ||
| 592 | if (ret) { | 591 | if (ret) { |
| 593 | dev_err(&pdev->dev, "cannot register irq handler %d -err %d\n", | 592 | dev_err(&pdev->dev, "cannot register irq handler %d -err %d\n", |
| 594 | irq, ret); | 593 | irq, ret); |
diff --git a/drivers/video/omap2/displays-new/connector-analog-tv.c b/drivers/video/omap2/displays-new/connector-analog-tv.c index 5338f362293b..1b60698f141e 100644 --- a/drivers/video/omap2/displays-new/connector-analog-tv.c +++ b/drivers/video/omap2/displays-new/connector-analog-tv.c | |||
| @@ -28,6 +28,20 @@ struct panel_drv_data { | |||
| 28 | bool invert_polarity; | 28 | bool invert_polarity; |
| 29 | }; | 29 | }; |
| 30 | 30 | ||
| 31 | static const struct omap_video_timings tvc_pal_timings = { | ||
| 32 | .x_res = 720, | ||
| 33 | .y_res = 574, | ||
| 34 | .pixel_clock = 13500, | ||
| 35 | .hsw = 64, | ||
| 36 | .hfp = 12, | ||
| 37 | .hbp = 68, | ||
| 38 | .vsw = 5, | ||
| 39 | .vfp = 5, | ||
| 40 | .vbp = 41, | ||
| 41 | |||
| 42 | .interlace = true, | ||
| 43 | }; | ||
| 44 | |||
| 31 | #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev) | 45 | #define to_panel_data(x) container_of(x, struct panel_drv_data, dssdev) |
| 32 | 46 | ||
| 33 | static int tvc_connect(struct omap_dss_device *dssdev) | 47 | static int tvc_connect(struct omap_dss_device *dssdev) |
| @@ -212,14 +226,14 @@ static int tvc_probe(struct platform_device *pdev) | |||
| 212 | return -ENODEV; | 226 | return -ENODEV; |
| 213 | } | 227 | } |
| 214 | 228 | ||
| 215 | ddata->timings = omap_dss_pal_timings; | 229 | ddata->timings = tvc_pal_timings; |
| 216 | 230 | ||
| 217 | dssdev = &ddata->dssdev; | 231 | dssdev = &ddata->dssdev; |
| 218 | dssdev->driver = &tvc_driver; | 232 | dssdev->driver = &tvc_driver; |
| 219 | dssdev->dev = &pdev->dev; | 233 | dssdev->dev = &pdev->dev; |
| 220 | dssdev->type = OMAP_DISPLAY_TYPE_VENC; | 234 | dssdev->type = OMAP_DISPLAY_TYPE_VENC; |
| 221 | dssdev->owner = THIS_MODULE; | 235 | dssdev->owner = THIS_MODULE; |
| 222 | dssdev->panel.timings = omap_dss_pal_timings; | 236 | dssdev->panel.timings = tvc_pal_timings; |
| 223 | 237 | ||
| 224 | r = omapdss_register_display(dssdev); | 238 | r = omapdss_register_display(dssdev); |
| 225 | if (r) { | 239 | if (r) { |
diff --git a/drivers/video/sgivwfb.c b/drivers/video/sgivwfb.c index b2a8912f6435..a9ac3ce2d0e9 100644 --- a/drivers/video/sgivwfb.c +++ b/drivers/video/sgivwfb.c | |||
| @@ -713,7 +713,7 @@ static int sgivwfb_mmap(struct fb_info *info, | |||
| 713 | r = vm_iomap_memory(vma, sgivwfb_mem_phys, sgivwfb_mem_size); | 713 | r = vm_iomap_memory(vma, sgivwfb_mem_phys, sgivwfb_mem_size); |
| 714 | 714 | ||
| 715 | printk(KERN_DEBUG "sgivwfb: mmap framebuffer P(%lx)->V(%lx)\n", | 715 | printk(KERN_DEBUG "sgivwfb: mmap framebuffer P(%lx)->V(%lx)\n", |
| 716 | offset, vma->vm_start); | 716 | sgivwfb_mem_phys + (vma->vm_pgoff << PAGE_SHIFT), vma->vm_start); |
| 717 | 717 | ||
| 718 | return r; | 718 | return r; |
| 719 | } | 719 | } |
diff --git a/drivers/video/sh7760fb.c b/drivers/video/sh7760fb.c index a8c6c43a4658..1265b25f9f99 100644 --- a/drivers/video/sh7760fb.c +++ b/drivers/video/sh7760fb.c | |||
| @@ -567,7 +567,7 @@ static int sh7760fb_remove(struct platform_device *dev) | |||
| 567 | fb_dealloc_cmap(&info->cmap); | 567 | fb_dealloc_cmap(&info->cmap); |
| 568 | sh7760fb_free_mem(info); | 568 | sh7760fb_free_mem(info); |
| 569 | if (par->irq >= 0) | 569 | if (par->irq >= 0) |
| 570 | free_irq(par->irq, par); | 570 | free_irq(par->irq, &par->vsync); |
| 571 | iounmap(par->base); | 571 | iounmap(par->base); |
| 572 | release_mem_region(par->ioarea->start, resource_size(par->ioarea)); | 572 | release_mem_region(par->ioarea->start, resource_size(par->ioarea)); |
| 573 | framebuffer_release(info); | 573 | framebuffer_release(info); |
diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c index 830ded45fd47..2827333703d9 100644 --- a/drivers/video/vga16fb.c +++ b/drivers/video/vga16fb.c | |||
| @@ -1265,7 +1265,6 @@ static void vga16fb_imageblit(struct fb_info *info, const struct fb_image *image | |||
| 1265 | 1265 | ||
| 1266 | static void vga16fb_destroy(struct fb_info *info) | 1266 | static void vga16fb_destroy(struct fb_info *info) |
| 1267 | { | 1267 | { |
| 1268 | struct platform_device *dev = container_of(info->device, struct platform_device, dev); | ||
| 1269 | iounmap(info->screen_base); | 1268 | iounmap(info->screen_base); |
| 1270 | fb_dealloc_cmap(&info->cmap); | 1269 | fb_dealloc_cmap(&info->cmap); |
| 1271 | /* XXX unshare VGA regions */ | 1270 | /* XXX unshare VGA regions */ |
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c index f3d4a69e1e4e..6629b29a8202 100644 --- a/drivers/video/xilinxfb.c +++ b/drivers/video/xilinxfb.c | |||
| @@ -341,8 +341,8 @@ static int xilinxfb_assign(struct platform_device *pdev, | |||
| 341 | 341 | ||
| 342 | if (drvdata->flags & BUS_ACCESS_FLAG) { | 342 | if (drvdata->flags & BUS_ACCESS_FLAG) { |
| 343 | /* Put a banner in the log (for DEBUG) */ | 343 | /* Put a banner in the log (for DEBUG) */ |
| 344 | dev_dbg(dev, "regs: phys=%x, virt=%p\n", drvdata->regs_phys, | 344 | dev_dbg(dev, "regs: phys=%pa, virt=%p\n", |
| 345 | drvdata->regs); | 345 | &drvdata->regs_phys, drvdata->regs); |
| 346 | } | 346 | } |
| 347 | /* Put a banner in the log (for DEBUG) */ | 347 | /* Put a banner in the log (for DEBUG) */ |
| 348 | dev_dbg(dev, "fb: phys=%llx, virt=%p, size=%x\n", | 348 | dev_dbg(dev, "fb: phys=%llx, virt=%p, size=%x\n", |
