mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	drm/panfrost: Select devfreq
Currently, there is some logic for the driver to work without devfreq. However, the driver actually fails to probe if !CONFIG_PM_DEVFREQ. Fix this by selecting devfreq, and drop the additional checks for devfreq. Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190517150042.776-1-ezequiel@collabora.com
This commit is contained in:
		
							parent
							
								
									7c42063686
								
							
						
					
					
						commit
						f3617b449d
					
				
					 2 changed files with 3 additions and 11 deletions
				
			
		| 
						 | 
					@ -9,6 +9,7 @@ config DRM_PANFROST
 | 
				
			||||||
	select IOMMU_SUPPORT
 | 
						select IOMMU_SUPPORT
 | 
				
			||||||
	select IOMMU_IO_PGTABLE_LPAE
 | 
						select IOMMU_IO_PGTABLE_LPAE
 | 
				
			||||||
	select DRM_GEM_SHMEM_HELPER
 | 
						select DRM_GEM_SHMEM_HELPER
 | 
				
			||||||
 | 
						select PM_DEVFREQ
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  DRM driver for ARM Mali Midgard (T6xx, T7xx, T8xx) and
 | 
						  DRM driver for ARM Mali Midgard (T6xx, T7xx, T8xx) and
 | 
				
			||||||
	  Bifrost (G3x, G5x, G7x) GPUs.
 | 
						  Bifrost (G3x, G5x, G7x) GPUs.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -140,8 +140,8 @@ int panfrost_devfreq_init(struct panfrost_device *pfdev)
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ret = dev_pm_opp_of_add_table(&pfdev->pdev->dev);
 | 
						ret = dev_pm_opp_of_add_table(&pfdev->pdev->dev);
 | 
				
			||||||
	if (ret == -ENODEV) /* Optional, continue without devfreq */
 | 
						if (ret)
 | 
				
			||||||
		return 0;
 | 
							return ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	panfrost_devfreq_reset(pfdev);
 | 
						panfrost_devfreq_reset(pfdev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -170,9 +170,6 @@ void panfrost_devfreq_resume(struct panfrost_device *pfdev)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!pfdev->devfreq.devfreq)
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	panfrost_devfreq_reset(pfdev);
 | 
						panfrost_devfreq_reset(pfdev);
 | 
				
			||||||
	for (i = 0; i < NUM_JOB_SLOTS; i++)
 | 
						for (i = 0; i < NUM_JOB_SLOTS; i++)
 | 
				
			||||||
		pfdev->devfreq.slot[i].busy = false;
 | 
							pfdev->devfreq.slot[i].busy = false;
 | 
				
			||||||
| 
						 | 
					@ -182,9 +179,6 @@ void panfrost_devfreq_resume(struct panfrost_device *pfdev)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void panfrost_devfreq_suspend(struct panfrost_device *pfdev)
 | 
					void panfrost_devfreq_suspend(struct panfrost_device *pfdev)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (!pfdev->devfreq.devfreq)
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	devfreq_suspend_device(pfdev->devfreq.devfreq);
 | 
						devfreq_suspend_device(pfdev->devfreq.devfreq);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -194,9 +188,6 @@ static void panfrost_devfreq_update_utilization(struct panfrost_device *pfdev, i
 | 
				
			||||||
	ktime_t now;
 | 
						ktime_t now;
 | 
				
			||||||
	ktime_t last;
 | 
						ktime_t last;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!pfdev->devfreq.devfreq)
 | 
					 | 
				
			||||||
		return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	now = ktime_get();
 | 
						now = ktime_get();
 | 
				
			||||||
	last = pfdev->devfreq.slot[slot].time_last_update;
 | 
						last = pfdev->devfreq.slot[slot].time_last_update;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue