Message ID | 20250225094532.40678-1-sakari.ailus@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | [1/1] media: ipu6: Drop unused ipu6_dma_get_sgtable() | expand |
On Tue, Feb 25, 2025 at 11:45:32AM +0200, Sakari Ailus wrote: > ipu6_dma_get_sgtable() is now unused. Drop it. > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Reviewed-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com> Regards Stanislaw > --- > drivers/media/pci/intel/ipu6/ipu6-dma.c | 33 ------------------------- > drivers/media/pci/intel/ipu6/ipu6-dma.h | 3 --- > 2 files changed, 36 deletions(-) > > diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.c b/drivers/media/pci/intel/ipu6/ipu6-dma.c > index 44e24da33907..052e396a28af 100644 > --- a/drivers/media/pci/intel/ipu6/ipu6-dma.c > +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.c > @@ -455,36 +455,3 @@ void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > ipu6_dma_unmap_sg(sys, sgt->sgl, sgt->nents, dir, attrs); > } > EXPORT_SYMBOL_NS_GPL(ipu6_dma_unmap_sgtable, "INTEL_IPU6"); > - > -/* > - * Create scatter-list for the already allocated DMA buffer > - */ > -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > - void *cpu_addr, dma_addr_t handle, size_t size, > - unsigned long attrs) > -{ > - struct device *dev = &sys->auxdev.dev; > - struct ipu6_mmu *mmu = sys->mmu; > - struct vm_info *info; > - int n_pages; > - int ret = 0; > - > - info = get_vm_info(mmu, handle); > - if (!info) > - return -EFAULT; > - > - if (!info->vaddr) > - return -EFAULT; > - > - if (WARN_ON(!info->pages)) > - return -ENOMEM; > - > - n_pages = PFN_UP(size); > - > - ret = sg_alloc_table_from_pages(sgt, info->pages, n_pages, 0, size, > - GFP_KERNEL); > - if (ret) > - dev_warn(dev, "get sgt table failed\n"); > - > - return ret; > -} > diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h > index b51244add9e6..2882850d9366 100644 > --- a/drivers/media/pci/intel/ipu6/ipu6-dma.h > +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h > @@ -43,7 +43,4 @@ int ipu6_dma_map_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > enum dma_data_direction dir, unsigned long attrs); > void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > enum dma_data_direction dir, unsigned long attrs); > -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > - void *cpu_addr, dma_addr_t handle, size_t size, > - unsigned long attrs); > #endif /* IPU6_DMA_H */ > -- > 2.39.5 >
Hi Bingbu, On Wed, Feb 26, 2025 at 10:38:25AM +0800, Bingbu Cao wrote: > Sakari, > > On 2/25/25 5:45 PM, Sakari Ailus wrote: > > ipu6_dma_get_sgtable() is now unused. Drop it. > > > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > > --- > > drivers/media/pci/intel/ipu6/ipu6-dma.c | 33 ------------------------- > > drivers/media/pci/intel/ipu6/ipu6-dma.h | 3 --- > > 2 files changed, 36 deletions(-) > > > > diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.c b/drivers/media/pci/intel/ipu6/ipu6-dma.c > > index 44e24da33907..052e396a28af 100644 > > --- a/drivers/media/pci/intel/ipu6/ipu6-dma.c > > +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.c > > @@ -455,36 +455,3 @@ void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > > ipu6_dma_unmap_sg(sys, sgt->sgl, sgt->nents, dir, attrs); > > } > > EXPORT_SYMBOL_NS_GPL(ipu6_dma_unmap_sgtable, "INTEL_IPU6"); > > - > > -/* > > - * Create scatter-list for the already allocated DMA buffer > > - */ > > -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > > - void *cpu_addr, dma_addr_t handle, size_t size, > > - unsigned long attrs) > > -{ > > - struct device *dev = &sys->auxdev.dev; > > - struct ipu6_mmu *mmu = sys->mmu; > > - struct vm_info *info; > > - int n_pages; > > - int ret = 0; > > - > > - info = get_vm_info(mmu, handle); > > - if (!info) > > - return -EFAULT; > > - > > - if (!info->vaddr) > > - return -EFAULT; > > - > > - if (WARN_ON(!info->pages)) > > - return -ENOMEM; > > - > > - n_pages = PFN_UP(size); > > - > > - ret = sg_alloc_table_from_pages(sgt, info->pages, n_pages, 0, size, > > - GFP_KERNEL); > > - if (ret) > > - dev_warn(dev, "get sgt table failed\n"); > > - > > - return ret; > > -} > > diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h > > index b51244add9e6..2882850d9366 100644 > > --- a/drivers/media/pci/intel/ipu6/ipu6-dma.h > > +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h > > @@ -43,7 +43,4 @@ int ipu6_dma_map_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > > enum dma_data_direction dir, unsigned long attrs); > > void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > > enum dma_data_direction dir, unsigned long attrs); > > -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > > - void *cpu_addr, dma_addr_t handle, size_t size, > > - unsigned long attrs); > > ipu6_dma_get_sgtable() is used in downstream PS driver, I don't think it > is necessary to remove it as it will be hard to integrate with downstream PS > driver. When will there be an upstream PSYS driver? I suppose you can just as well apply a revert of this patch to your downstream tree?
Sakari, On 2/26/25 4:39 PM, Sakari Ailus wrote: > Hi Bingbu, > > On Wed, Feb 26, 2025 at 04:01:16PM +0800, Bingbu Cao wrote: >> >> On 2/26/25 3:58 PM, Sakari Ailus wrote: >>> Hi Bingbu, >>> >>> On Wed, Feb 26, 2025 at 10:38:25AM +0800, Bingbu Cao wrote: >>>> Sakari, >>>> >>>> On 2/25/25 5:45 PM, Sakari Ailus wrote: >>>>> ipu6_dma_get_sgtable() is now unused. Drop it. >>>>> >>>>> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> >>>>> --- >>>>> drivers/media/pci/intel/ipu6/ipu6-dma.c | 33 ------------------------- >>>>> drivers/media/pci/intel/ipu6/ipu6-dma.h | 3 --- >>>>> 2 files changed, 36 deletions(-) >>>>> >>>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.c b/drivers/media/pci/intel/ipu6/ipu6-dma.c >>>>> index 44e24da33907..052e396a28af 100644 >>>>> --- a/drivers/media/pci/intel/ipu6/ipu6-dma.c >>>>> +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.c >>>>> @@ -455,36 +455,3 @@ void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, >>>>> ipu6_dma_unmap_sg(sys, sgt->sgl, sgt->nents, dir, attrs); >>>>> } >>>>> EXPORT_SYMBOL_NS_GPL(ipu6_dma_unmap_sgtable, "INTEL_IPU6"); >>>>> - >>>>> -/* >>>>> - * Create scatter-list for the already allocated DMA buffer >>>>> - */ >>>>> -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, >>>>> - void *cpu_addr, dma_addr_t handle, size_t size, >>>>> - unsigned long attrs) >>>>> -{ >>>>> - struct device *dev = &sys->auxdev.dev; >>>>> - struct ipu6_mmu *mmu = sys->mmu; >>>>> - struct vm_info *info; >>>>> - int n_pages; >>>>> - int ret = 0; >>>>> - >>>>> - info = get_vm_info(mmu, handle); >>>>> - if (!info) >>>>> - return -EFAULT; >>>>> - >>>>> - if (!info->vaddr) >>>>> - return -EFAULT; >>>>> - >>>>> - if (WARN_ON(!info->pages)) >>>>> - return -ENOMEM; >>>>> - >>>>> - n_pages = PFN_UP(size); >>>>> - >>>>> - ret = sg_alloc_table_from_pages(sgt, info->pages, n_pages, 0, size, >>>>> - GFP_KERNEL); >>>>> - if (ret) >>>>> - dev_warn(dev, "get sgt table failed\n"); >>>>> - >>>>> - return ret; >>>>> -} >>>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h >>>>> index b51244add9e6..2882850d9366 100644 >>>>> --- a/drivers/media/pci/intel/ipu6/ipu6-dma.h >>>>> +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h >>>>> @@ -43,7 +43,4 @@ int ipu6_dma_map_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, >>>>> enum dma_data_direction dir, unsigned long attrs); >>>>> void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, >>>>> enum dma_data_direction dir, unsigned long attrs); >>>>> -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, >>>>> - void *cpu_addr, dma_addr_t handle, size_t size, >>>>> - unsigned long attrs); >>>> >>>> ipu6_dma_get_sgtable() is used in downstream PS driver, I don't think it >>>> is necessary to remove it as it will be hard to integrate with downstream PS >>>> driver. >>> >>> When will there be an upstream PSYS driver? >>> >>> I suppose you can just as well apply a revert of this patch to your >>> downstream tree? >>> >> >> Sakari, >> >> I don't think all the OS vendors like this way, it make the downstream >> development harder. It's a trade-off, I cannot see removing offer any >> benefits that its side-effect. > > I don't think the Linux distro maintainers like downstream drivers at all, > independently of how many patches they consist of. > > You could as well move the function to the PSYS driver and use > find_vm_area(cpu_addr) instead to find the area. My fault, I forgot I already removed the ipu6_dma_get_sgtable() from downstream driver months ago, so, Reviewed-by: Bingbu Cao <bingbu.cao@intel.com> ;) >
On Wed, Feb 26, 2025 at 05:25:06PM +0800, Bingbu Cao wrote: > >>>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h > >>>>> index b51244add9e6..2882850d9366 100644 > >>>>> --- a/drivers/media/pci/intel/ipu6/ipu6-dma.h > >>>>> +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h > >>>>> @@ -43,7 +43,4 @@ int ipu6_dma_map_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > >>>>> enum dma_data_direction dir, unsigned long attrs); > >>>>> void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > >>>>> enum dma_data_direction dir, unsigned long attrs); > >>>>> -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, > >>>>> - void *cpu_addr, dma_addr_t handle, size_t size, > >>>>> - unsigned long attrs); > >>>> > >>>> ipu6_dma_get_sgtable() is used in downstream PS driver, I don't think it > >>>> is necessary to remove it as it will be hard to integrate with downstream PS > >>>> driver. > >>> > >>> When will there be an upstream PSYS driver? > >>> > >>> I suppose you can just as well apply a revert of this patch to your > >>> downstream tree? > >>> > >> > >> Sakari, > >> > >> I don't think all the OS vendors like this way, it make the downstream > >> development harder. It's a trade-off, I cannot see removing offer any > >> benefits that its side-effect. > > > > I don't think the Linux distro maintainers like downstream drivers at all, > > independently of how many patches they consist of. > > > > You could as well move the function to the PSYS driver and use > > find_vm_area(cpu_addr) instead to find the area. > > My fault, I forgot I already removed the ipu6_dma_get_sgtable() from > downstream driver months ago, so, > > Reviewed-by: Bingbu Cao <bingbu.cao@intel.com> Thanks, Bingbu!
diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.c b/drivers/media/pci/intel/ipu6/ipu6-dma.c index 44e24da33907..052e396a28af 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-dma.c +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.c @@ -455,36 +455,3 @@ void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, ipu6_dma_unmap_sg(sys, sgt->sgl, sgt->nents, dir, attrs); } EXPORT_SYMBOL_NS_GPL(ipu6_dma_unmap_sgtable, "INTEL_IPU6"); - -/* - * Create scatter-list for the already allocated DMA buffer - */ -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, - void *cpu_addr, dma_addr_t handle, size_t size, - unsigned long attrs) -{ - struct device *dev = &sys->auxdev.dev; - struct ipu6_mmu *mmu = sys->mmu; - struct vm_info *info; - int n_pages; - int ret = 0; - - info = get_vm_info(mmu, handle); - if (!info) - return -EFAULT; - - if (!info->vaddr) - return -EFAULT; - - if (WARN_ON(!info->pages)) - return -ENOMEM; - - n_pages = PFN_UP(size); - - ret = sg_alloc_table_from_pages(sgt, info->pages, n_pages, 0, size, - GFP_KERNEL); - if (ret) - dev_warn(dev, "get sgt table failed\n"); - - return ret; -} diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h index b51244add9e6..2882850d9366 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-dma.h +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h @@ -43,7 +43,4 @@ int ipu6_dma_map_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, enum dma_data_direction dir, unsigned long attrs); void ipu6_dma_unmap_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, enum dma_data_direction dir, unsigned long attrs); -int ipu6_dma_get_sgtable(struct ipu6_bus_device *sys, struct sg_table *sgt, - void *cpu_addr, dma_addr_t handle, size_t size, - unsigned long attrs); #endif /* IPU6_DMA_H */
ipu6_dma_get_sgtable() is now unused. Drop it. Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> --- drivers/media/pci/intel/ipu6/ipu6-dma.c | 33 ------------------------- drivers/media/pci/intel/ipu6/ipu6-dma.h | 3 --- 2 files changed, 36 deletions(-)