[PATCH 02/10] drm/radeon: UVD bringup v7

Alex Deucher alexdeucher at gmail.com
Thu Apr 4 09:57:28 PDT 2013


On Tue, Apr 2, 2013 at 7:18 PM, Christian König <deathsimple at vodafone.de> wrote:
> Just everything needed to decode videos using UVD.
>
> v6: just all the bugfixes and support for R7xx-SI merged in one patch
> v7: UVD_CGC_GATE is a write only register, lockup detection fix
>
> Signed-off-by: Christian König <deathsimple at vodafone.de>
> ---

<snip>

> diff --git a/drivers/gpu/drm/radeon/radeon_uvd.c b/drivers/gpu/drm/radeon/radeon_uvd.c
> new file mode 100644
> index 0000000..8ab7bb9
> --- /dev/null
> +++ b/drivers/gpu/drm/radeon/radeon_uvd.c
> @@ -0,0 +1,521 @@
> +/*
> + * Copyright 2011 Advanced Micro Devices, Inc.
> + * All Rights Reserved.
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the
> + * "Software"), to deal in the Software without restriction, including
> + * without limitation the rights to use, copy, modify, merge, publish,
> + * distribute, sub license, and/or sell copies of the Software, and to
> + * permit persons to whom the Software is furnished to do so, subject to
> + * the following conditions:
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDERS, AUTHORS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM,
> + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
> + * USE OR OTHER DEALINGS IN THE SOFTWARE.
> + *
> + * The above copyright notice and this permission notice (including the
> + * next paragraph) shall be included in all copies or substantial portions
> + * of the Software.
> + *
> + */
> +/*
> + * Authors:
> + *    Christian König <deathsimple at vodafone.de>
> + */
> +
> +#include <linux/firmware.h>
> +#include <linux/module.h>
> +#include <drm/drmP.h>
> +#include <drm/drm.h>
> +
> +#include "radeon.h"
> +#include "r600d.h"
> +
> +/* Firmware Names */
> +#define FIRMWARE_RV770         "radeon/RV770_uvd.bin"
> +#define FIRMWARE_RV710         "radeon/RV710_uvd.bin"
> +#define FIRMWARE_CYPRESS       "radeon/CYPRESS_uvd.bin"
> +#define FIRMWARE_SUMO          "radeon/SUMO_uvd.bin"
> +#define FIRMWARE_TAHITI                "radeon/TAHITI_uvd.bin"
> +
> +MODULE_FIRMWARE(FIRMWARE_RV770);
> +MODULE_FIRMWARE(FIRMWARE_RV710);
> +MODULE_FIRMWARE(FIRMWARE_CYPRESS);
> +MODULE_FIRMWARE(FIRMWARE_SUMO);
> +MODULE_FIRMWARE(FIRMWARE_TAHITI);
> +
> +int radeon_uvd_init(struct radeon_device *rdev)
> +{
> +       struct platform_device *pdev;
> +       unsigned long bo_size;
> +       const char *fw_name;
> +       int i, r;
> +
> +       pdev = platform_device_register_simple("radeon_uvd", 0, NULL, 0);
> +       r = IS_ERR(pdev);
> +       if (r) {
> +               dev_err(rdev->dev, "radeon_uvd: Failed to register firmware\n");
> +               return -EINVAL;
> +       }
> +
> +       switch (rdev->family) {
> +       case CHIP_RV770:
> +               fw_name = FIRMWARE_RV770;
> +               break;
> +
> +       case CHIP_RV710:
> +       case CHIP_RV730:
> +       case CHIP_RV740:
> +               fw_name = FIRMWARE_RV710;
> +               break;
> +
> +       case CHIP_CYPRESS:

We are missing CHIP_HEMLOCK here.

Alex

> +       case CHIP_JUNIPER:
> +       case CHIP_REDWOOD:
> +       case CHIP_CEDAR:
> +               fw_name = FIRMWARE_CYPRESS;
> +               break;
> +
> +       case CHIP_SUMO:
> +       case CHIP_SUMO2:
> +       case CHIP_PALM:
> +       case CHIP_CAYMAN:
> +       case CHIP_BARTS:
> +       case CHIP_TURKS:
> +       case CHIP_CAICOS:
> +               fw_name = FIRMWARE_SUMO;
> +               break;
> +
> +       case CHIP_TAHITI:
> +       case CHIP_VERDE:
> +       case CHIP_PITCAIRN:
> +       case CHIP_ARUBA:
> +               fw_name = FIRMWARE_TAHITI;
> +               break;
> +
> +       default:
> +               return -EINVAL;
> +       }


More information about the dri-devel mailing list