forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'drm/for-3.13-rc1' of git://anongit.freedesktop.org/tegra/l…
…inux into drm-next drm/tegra: Changes for v3.13-rc1 The biggest part of the changes is the decoupling of the host1x and DRM drivers followed by the move of Tegra DRM back to drivers/gpu/drm/tegra from whence it came. There is a lot of cleanup as well, and the drivers can now be properly unloaded and reloaded. HDMI support for the Tegra114 SoC was contributed by Mikko Perttunen. gr2d support was extended to Tegra114 and the gr3d driver that has been in the works for quite some time finally made it in. All pieces to run an OpenGL driver on top of an upstream kernel are now available. Support for syncpoint bases was added by Arto Merilainen. This is useful for synchronizing between command streams from different engines such as gr2d and gr3d. Erik Faye-Lund and Wei Yongjun contributed various small fixes. Thanks! * tag 'drm/for-3.13-rc1' of git://anongit.freedesktop.org/tegra/linux: (45 commits) drm/tegra: Reserve syncpoint base for gr3d drm/tegra: Reserve base for gr2d drm/tegra: Deliver syncpoint base to user space gpu: host1x: Add syncpoint base support gpu: host1x: Add 'flags' field to syncpt request drm/tegra: Disable clock on probe failure gpu: host1x: Disable clock on probe failure drm/tegra: Support bottom-up buffer objects drm/tegra: Add support for tiled buffer objects drm/tegra: Add 3D support drm/tegra: Introduce tegra_drm_submit() drm/tegra: Use symbolic names for gr2d registers drm/tegra: Start connectors with correct DPMS mode drm/tegra: hdmi: Enable VDD earlier for hotplug/DDC drm/tegra: hdmi: Fix build warnings drm/tegra: hdmi: Detect DVI-only displays drm/tegra: Add Tegra114 HDMI support drm/tegra: hdmi: Parameterize based on compatible property drm/tegra: hdmi: Rename tegra{2,3} to tegra{20,30} gpu: host1x: Add support for Tegra114 ...
- Loading branch information
Showing
55 changed files
with
3,362 additions
and
1,259 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2816,7 +2816,9 @@ L: [email protected] | |
L: [email protected] | ||
T: git git://anongit.freedesktop.org/tegra/linux.git | ||
S: Maintained | ||
F: drivers/gpu/drm/tegra/ | ||
F: drivers/gpu/host1x/ | ||
F: include/linux/host1x.h | ||
F: include/uapi/drm/tegra_drm.h | ||
F: Documentation/devicetree/bindings/gpu/nvidia,tegra20-host1x.txt | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
ccflags-$(CONFIG_DRM_TEGRA_DEBUG) += -DDEBUG | ||
|
||
tegra-drm-y := \ | ||
bus.o \ | ||
drm.o \ | ||
gem.o \ | ||
fb.o \ | ||
dc.o \ | ||
output.o \ | ||
rgb.o \ | ||
hdmi.o \ | ||
gr2d.o \ | ||
gr3d.o | ||
|
||
obj-$(CONFIG_DRM_TEGRA) += tegra-drm.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
/* | ||
* Copyright (C) 2013 NVIDIA Corporation | ||
* | ||
* This program is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License version 2 as | ||
* published by the Free Software Foundation. | ||
*/ | ||
|
||
#include "drm.h" | ||
|
||
static int drm_host1x_set_busid(struct drm_device *dev, | ||
struct drm_master *master) | ||
{ | ||
const char *device = dev_name(dev->dev); | ||
const char *driver = dev->driver->name; | ||
const char *bus = dev->dev->bus->name; | ||
int length; | ||
|
||
master->unique_len = strlen(bus) + 1 + strlen(device); | ||
master->unique_size = master->unique_len; | ||
|
||
master->unique = kmalloc(master->unique_len + 1, GFP_KERNEL); | ||
if (!master->unique) | ||
return -ENOMEM; | ||
|
||
snprintf(master->unique, master->unique_len + 1, "%s:%s", bus, device); | ||
|
||
length = strlen(driver) + 1 + master->unique_len; | ||
|
||
dev->devname = kmalloc(length + 1, GFP_KERNEL); | ||
if (!dev->devname) | ||
return -ENOMEM; | ||
|
||
snprintf(dev->devname, length + 1, "%s@%s", driver, master->unique); | ||
|
||
return 0; | ||
} | ||
|
||
static struct drm_bus drm_host1x_bus = { | ||
.bus_type = DRIVER_BUS_HOST1X, | ||
.set_busid = drm_host1x_set_busid, | ||
}; | ||
|
||
int drm_host1x_init(struct drm_driver *driver, struct host1x_device *device) | ||
{ | ||
struct drm_device *drm; | ||
int ret; | ||
|
||
INIT_LIST_HEAD(&driver->device_list); | ||
driver->bus = &drm_host1x_bus; | ||
|
||
drm = drm_dev_alloc(driver, &device->dev); | ||
if (!drm) | ||
return -ENOMEM; | ||
|
||
ret = drm_dev_register(drm, 0); | ||
if (ret) | ||
goto err_free; | ||
|
||
DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", driver->name, | ||
driver->major, driver->minor, driver->patchlevel, | ||
driver->date, drm->primary->index); | ||
|
||
return 0; | ||
|
||
err_free: | ||
drm_dev_free(drm); | ||
return ret; | ||
} | ||
|
||
void drm_host1x_exit(struct drm_driver *driver, struct host1x_device *device) | ||
{ | ||
struct tegra_drm *tegra = dev_get_drvdata(&device->dev); | ||
|
||
drm_put_dev(tegra->drm); | ||
} |
Oops, something went wrong.