diff options
author | Dave Airlie <airlied@redhat.com> | 2016-01-13 21:58:06 (GMT) |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2016-01-13 21:58:06 (GMT) |
commit | 06249e69324209b41ba017f476764eba347b1127 (patch) | |
tree | 3268b99700246c2e5ed3f832a70057dda8c110b5 /drivers/gpu | |
parent | c7753e905b510ed07efa2a2ade5a2cec0c394d66 (diff) | |
parent | c33246d793b5bb9d8be7c67918136c310185c23d (diff) | |
download | linux-06249e69324209b41ba017f476764eba347b1127.tar.xz |
Merge branch 'drm-etnaviv-fixes' of git://git.pengutronix.de/git/lst/linux into drm-next
etnaviv fixes.
* 'drm-etnaviv-fixes' of git://git.pengutronix.de/git/lst/linux:
drm/etnaviv: fix workaround for GC500
drm/etnaviv: unlock on error in etnaviv_gem_get_iova()
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/etnaviv/etnaviv_gem.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/etnaviv/etnaviv_gpu.c | 7 |
2 files changed, 9 insertions, 4 deletions
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index 8d6f859..9f77c3b 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -305,8 +305,10 @@ int etnaviv_gem_get_iova(struct etnaviv_gpu *gpu, mapping = etnaviv_gem_get_vram_mapping(etnaviv_obj, NULL); if (!mapping) { mapping = kzalloc(sizeof(*mapping), GFP_KERNEL); - if (!mapping) - return -ENOMEM; + if (!mapping) { + ret = -ENOMEM; + goto out; + } INIT_LIST_HEAD(&mapping->scan_node); mapping->object = etnaviv_obj; diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c index d39093d..056a72e 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gpu.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gpu.c @@ -251,9 +251,12 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu) chipIdentity = gpu_read(gpu, VIVS_HI_CHIP_IDENTITY); /* Special case for older graphic cores. */ - if (VIVS_HI_CHIP_IDENTITY_FAMILY(chipIdentity) == 0x01) { + if (((chipIdentity & VIVS_HI_CHIP_IDENTITY_FAMILY__MASK) + >> VIVS_HI_CHIP_IDENTITY_FAMILY__SHIFT) == 0x01) { gpu->identity.model = 0x500; /* gc500 */ - gpu->identity.revision = VIVS_HI_CHIP_IDENTITY_REVISION(chipIdentity); + gpu->identity.revision = + (chipIdentity & VIVS_HI_CHIP_IDENTITY_REVISION__MASK) + >> VIVS_HI_CHIP_IDENTITY_REVISION__SHIFT; } else { gpu->identity.model = gpu_read(gpu, VIVS_HI_CHIP_MODEL); |