mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 19:31:53 +00:00
drm/tegra: Fixes for v4.5-rc7
Two small fixes that restore PRIME support. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJW2anuAAoJEN0jrNd/PrOh13MQALkg+XDrpvSoE+EKezEx1p6W MDFjNF8jMuxX+5VNudKjghKr7MRXEmiAY+8BvF7t1+jpQB5eK/t7VKF0PS1Zu1ZW /hwtbeFP+DexIM3vz0y1KA0ixCQWt4v1aGMaj6R2n2BNoC0jVlGPHxFBGfRZj2hs R/MgjRmh1Em0h8me+Bbao3K79DlH1rtieXtHgIDZ1tPG1N/aKfhR9R+xw0IB9cRe FCuClsaUuY8Cj70bialoXyxkS/rlb4nNmHNdY1QA4EUSVpij/8iJ2jZNOlfLr7Fr 4AKcXGRz95OED8v3IS/RwyabYZ8cy5ZHQsfpRJbs771vMSbG+KDsQYtgpcQ6ytKY TQ82ibbkR6YmHblJ62GRxmQFGUut5ZztZ3c3mn/l2LUR74S2vGpbXn22Sa+dC1IG 2Hx1sNCs7zk9BgKhaUDTpwGSiMtV0CgDuUS8joCXG2oHmQoDUChyi7kX5ipkQVhl 0OvK8A3D5roBCbgeBT2yK1m7ckwLrwihxrkMArq/397h9AyUwYztPupxoHKP9x1p HwnqvsHANCjA+32k4JlUx2MyatOmiR2Fd6d5dvyxbJ6PzoD39IjZWW8g6TzYSjES 4ejNJGIg3JL2kshRbr/O13YPuG/fbhNfKTV/QJCJZMkZ1lhye5jvJnCtc11/JN1A INS5gV8PKid90GuQA4Bq =u/CF -----END PGP SIGNATURE----- Merge tag 'drm/tegra/for-4.5-rc7' of git://anongit.freedesktop.org/tegra/linux into drm-fixes drm/tegra: Fixes for v4.5-rc7 Two small fixes that restore PRIME support. * tag 'drm/tegra/for-4.5-rc7' of git://anongit.freedesktop.org/tegra/linux: gpu: host1x: Set DMA ops on device creation gpu: host1x: Set DMA mask
This commit is contained in:
commit
26bae5e04c
@ -18,6 +18,7 @@
|
|||||||
#include <linux/host1x.h>
|
#include <linux/host1x.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/slab.h>
|
#include <linux/slab.h>
|
||||||
|
#include <linux/of_device.h>
|
||||||
|
|
||||||
#include "bus.h"
|
#include "bus.h"
|
||||||
#include "dev.h"
|
#include "dev.h"
|
||||||
@ -394,6 +395,7 @@ static int host1x_device_add(struct host1x *host1x,
|
|||||||
device->dev.coherent_dma_mask = host1x->dev->coherent_dma_mask;
|
device->dev.coherent_dma_mask = host1x->dev->coherent_dma_mask;
|
||||||
device->dev.dma_mask = &device->dev.coherent_dma_mask;
|
device->dev.dma_mask = &device->dev.coherent_dma_mask;
|
||||||
dev_set_name(&device->dev, "%s", driver->driver.name);
|
dev_set_name(&device->dev, "%s", driver->driver.name);
|
||||||
|
of_dma_configure(&device->dev, host1x->dev->of_node);
|
||||||
device->dev.release = host1x_device_release;
|
device->dev.release = host1x_device_release;
|
||||||
device->dev.bus = &host1x_bus_type;
|
device->dev.bus = &host1x_bus_type;
|
||||||
device->dev.parent = host1x->dev;
|
device->dev.parent = host1x->dev;
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <linux/of_device.h>
|
#include <linux/of_device.h>
|
||||||
#include <linux/clk.h>
|
#include <linux/clk.h>
|
||||||
#include <linux/io.h>
|
#include <linux/io.h>
|
||||||
|
#include <linux/dma-mapping.h>
|
||||||
|
|
||||||
#define CREATE_TRACE_POINTS
|
#define CREATE_TRACE_POINTS
|
||||||
#include <trace/events/host1x.h>
|
#include <trace/events/host1x.h>
|
||||||
@ -68,6 +69,7 @@ static const struct host1x_info host1x01_info = {
|
|||||||
.nb_bases = 8,
|
.nb_bases = 8,
|
||||||
.init = host1x01_init,
|
.init = host1x01_init,
|
||||||
.sync_offset = 0x3000,
|
.sync_offset = 0x3000,
|
||||||
|
.dma_mask = DMA_BIT_MASK(32),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct host1x_info host1x02_info = {
|
static const struct host1x_info host1x02_info = {
|
||||||
@ -77,6 +79,7 @@ static const struct host1x_info host1x02_info = {
|
|||||||
.nb_bases = 12,
|
.nb_bases = 12,
|
||||||
.init = host1x02_init,
|
.init = host1x02_init,
|
||||||
.sync_offset = 0x3000,
|
.sync_offset = 0x3000,
|
||||||
|
.dma_mask = DMA_BIT_MASK(32),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct host1x_info host1x04_info = {
|
static const struct host1x_info host1x04_info = {
|
||||||
@ -86,6 +89,7 @@ static const struct host1x_info host1x04_info = {
|
|||||||
.nb_bases = 64,
|
.nb_bases = 64,
|
||||||
.init = host1x04_init,
|
.init = host1x04_init,
|
||||||
.sync_offset = 0x2100,
|
.sync_offset = 0x2100,
|
||||||
|
.dma_mask = DMA_BIT_MASK(34),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct host1x_info host1x05_info = {
|
static const struct host1x_info host1x05_info = {
|
||||||
@ -95,6 +99,7 @@ static const struct host1x_info host1x05_info = {
|
|||||||
.nb_bases = 64,
|
.nb_bases = 64,
|
||||||
.init = host1x05_init,
|
.init = host1x05_init,
|
||||||
.sync_offset = 0x2100,
|
.sync_offset = 0x2100,
|
||||||
|
.dma_mask = DMA_BIT_MASK(34),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct of_device_id host1x_of_match[] = {
|
static struct of_device_id host1x_of_match[] = {
|
||||||
@ -148,6 +153,8 @@ static int host1x_probe(struct platform_device *pdev)
|
|||||||
if (IS_ERR(host->regs))
|
if (IS_ERR(host->regs))
|
||||||
return PTR_ERR(host->regs);
|
return PTR_ERR(host->regs);
|
||||||
|
|
||||||
|
dma_set_mask_and_coherent(host->dev, host->info->dma_mask);
|
||||||
|
|
||||||
if (host->info->init) {
|
if (host->info->init) {
|
||||||
err = host->info->init(host);
|
err = host->info->init(host);
|
||||||
if (err)
|
if (err)
|
||||||
|
@ -96,6 +96,7 @@ struct host1x_info {
|
|||||||
int nb_mlocks; /* host1x: number of mlocks */
|
int nb_mlocks; /* host1x: number of mlocks */
|
||||||
int (*init)(struct host1x *); /* initialize per SoC ops */
|
int (*init)(struct host1x *); /* initialize per SoC ops */
|
||||||
int sync_offset;
|
int sync_offset;
|
||||||
|
u64 dma_mask; /* mask of addressable memory */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct host1x {
|
struct host1x {
|
||||||
|
Loading…
Reference in New Issue
Block a user