On Sun, 2018-05-20 at 07:54 +0530, Alim Akhtar wrote:
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index a355d98..9a1374e 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -7781,6 +7781,9 @@ EXPORT_SYMBOL_GPL(ufshcd_dealloc_host);
>   */
>  static int ufshcd_set_dma_mask(struct ufs_hba *hba)
>  {
> +     if (hba->vops && hba->vops->set_dma_mask)
> +             return hba->vops->set_dma_mask(hba);
> +
>       if (hba->capabilities & MASK_64_ADDRESSING_SUPPORT) {
>               if (!dma_set_mask_and_coherent(hba->dev, DMA_BIT_MASK(64)))
>                       return 0;
> diff --git a/drivers/scsi/ufs/ufshcd.h b/drivers/scsi/ufs/ufshcd.h
> index 1332e54..89c6dae 100644
> --- a/drivers/scsi/ufs/ufshcd.h
> +++ b/drivers/scsi/ufs/ufshcd.h
> @@ -297,6 +297,7 @@ struct ufs_pwr_mode_info {
>   * @resume: called during host controller PM callback
>   * @dbg_register_dump: used to dump controller debug information
>   * @phy_initialization: used to initialize phys
> + * @set_dma_mask: used to set variant specific DMA mask
>   */
>  struct ufs_hba_variant_ops {
>       const char *name;
> @@ -325,6 +326,7 @@ struct ufs_hba_variant_ops {
>       int     (*resume)(struct ufs_hba *, enum ufs_pm_op);
>       void    (*dbg_register_dump)(struct ufs_hba *hba);
>       int     (*phy_initialization)(struct ufs_hba *);
> +     int     (*set_dma_mask)(struct ufs_hba *hba);
>  };

I want to see the code that sets the .set_dma_mask callback function. Where
is it? If it is outside the upstream kernel, please consider to send it
upstream before making changes like this. Adding support for out-of-tree
kernel code is frowned upon big time in the kernel community.

Bart.



Reply via email to