Subject: [PATCH 2/6] [media] s5p-mfc: improve v4l2_capability driver and card fields

From: [email-masked] (Shuah Khan)
Date: Wed, 29 Jun 2016 13:45:49 -0600

On 06/16/2016 03:40 PM, Javier Martinez Canillas wrote:
> According to the V4L2 documentation the driver and card fields should be
> used to identify the driver and the device but the s5p-mfc driver fills
> those field using the platform device name, which in turn is the name of
> the device DT node.
> 
> So not only the filled information isn't correct but also the same values
> are used in all the fields for both the encoder and decoder video devices.
> 
> Before this patch:
> 
> Driver Info (not using libv4l2):
>         Driver name   : 11000000.codec
>         Card type     : 11000000.codec
>         Bus info      : platform:11000000.codec
>         Driver version: 4.7.0
> 
> Driver Info (not using libv4l2):
>         Driver name   : 11000000.codec
>         Card type     : 11000000.codec
>         Bus info      : platform:11000000.codec
>         Driver version: 4.7.0
> 
> After this patch:
> 
> Driver Info (not using libv4l2):
>         Driver name   : s5p-mfc
>         Card type     : s5p-mfc-dec
>         Bus info      : platform:11000000.codec
>         Driver version: 4.7.0
> 
> Driver Info (not using libv4l2):
>         Driver name   : s5p-mfc
>         Card type     : s5p-mfc-enc
>         Bus info      : platform:11000000.codec
>         Driver version: 4.7.0
> 
> Signed-off-by: Javier Martinez Canillas <[email-masked]>

Looks good.

Reviewed-by: Shuah Khan <[email-masked]>

-- Shuah

> ---
> 
>  drivers/media/platform/s5p-mfc/s5p_mfc.c        | 1 -
>  drivers/media/platform/s5p-mfc/s5p_mfc_common.h | 2 ++
>  drivers/media/platform/s5p-mfc/s5p_mfc_dec.c    | 4 ++--
>  drivers/media/platform/s5p-mfc/s5p_mfc_enc.c    | 4 ++--
>  4 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc.c b/drivers/media/platform/s5p-mfc/s5p_mfc.c
> index 6ee620ee8cd5..a936f89fa54a 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc.c
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc.c
> @@ -35,7 +35,6 @@
>  #include "s5p_mfc_cmd.h"
>  #include "s5p_mfc_pm.h"
>  
> -#define S5P_MFC_NAME		"s5p-mfc"
>  #define S5P_MFC_DEC_NAME	"s5p-mfc-dec"
>  #define S5P_MFC_ENC_NAME	"s5p-mfc-enc"
>  
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> index 9eb2481ec292..a10dcd244ff0 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_common.h
> @@ -25,6 +25,8 @@
>  #include "regs-mfc.h"
>  #include "regs-mfc-v8.h"
>  
> +#define S5P_MFC_NAME		"s5p-mfc"
> +
>  /* Definitions related to MFC memory */
>  
>  /* Offset base used to differentiate between CAPTURE and OUTPUT
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> index 4a40df22fd63..5793b0d8ee0c 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_dec.c
> @@ -265,8 +265,8 @@ static int vidioc_querycap(struct file *file, void *priv,
>  {
>  	struct s5p_mfc_dev *dev = video_drvdata(file);
>  
> -	strncpy(cap->driver, dev->plat_dev->name, sizeof(cap->driver) - 1);
> -	strncpy(cap->card, dev->plat_dev->name, sizeof(cap->card) - 1);
> +	strncpy(cap->driver, S5P_MFC_NAME, sizeof(cap->driver) - 1);
> +	strncpy(cap->card, dev->vfd_dec->name, sizeof(cap->card) - 1);
>  	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
>  		 dev_name(&dev->plat_dev->dev));
>  	/*
> diff --git a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> index dd466ea6429e..1220559d4874 100644
> --- a/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> +++ b/drivers/media/platform/s5p-mfc/s5p_mfc_enc.c
> @@ -943,8 +943,8 @@ static int vidioc_querycap(struct file *file, void *priv,
>  {
>  	struct s5p_mfc_dev *dev = video_drvdata(file);
>  
> -	strncpy(cap->driver, dev->plat_dev->name, sizeof(cap->driver) - 1);
> -	strncpy(cap->card, dev->plat_dev->name, sizeof(cap->card) - 1);
> +	strncpy(cap->driver, S5P_MFC_NAME, sizeof(cap->driver) - 1);
> +	strncpy(cap->card, dev->vfd_enc->name, sizeof(cap->card) - 1);
>  	snprintf(cap->bus_info, sizeof(cap->bus_info), "platform:%s",
>  		 dev_name(&dev->plat_dev->dev));
>  	/*
>