diff options
| author | Miquel Raynal <miquel.raynal@bootlin.com> | 2022-05-20 13:58:54 +0200 | 
|---|---|---|
| committer | Miquel Raynal <miquel.raynal@bootlin.com> | 2022-05-20 13:58:54 +0200 | 
| commit | e6828be5edcfea25cd70a2d1de41085c67ef9fa5 (patch) | |
| tree | 489ae4cdb47a4d83940e2472f49a3c601806b70e /drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | |
| parent | 1fefc8ecb834c88edfc27e712d683872d0c541dd (diff) | |
| parent | c47452194641b5d27c20e557c84a46c85fd7ce37 (diff) | |
Merge tag 'spi-nor/for-5.19' into mtd/next
SPI NOR core changes:
- Read back written SR value to make sure the write was done correctly.
- Introduce a common function for Read ID that manufacturer drivers can
  use to verify the Octal DTR switch worked correctly.
- Add helpers for read/write any register commands so manufacturer
  drivers don't open code it every time.
- Clarify rdsr dummy cycles documentation.
- Add debugfs entry to expose internal flash parameters and state.
SPI NOR manufacturer drivers changes:
- Add support for Winbond W25Q512NW-IM, and Eon EN25QH256A.
- Move spi_nor_write_ear() to Winbond module since only Winbond flashes
  use it.
- Rework Micron and Cypress Octal DTR enable methods to improve
  readability.
- Use the common Read ID function to verify switch to Octal DTR mode for
  Micron and Cypress flashes.
- Skip polling status on volatile register writes for Micron and Cypress
  flashes since the operation is instant.
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 20 | 
1 files changed, 13 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c index bb1c025d9001..29e9419a914b 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -680,7 +680,7 @@ MODULE_PARM_DESC(sched_policy,   * Maximum number of processes that HWS can schedule concurrently. The maximum is the   * number of VMIDs assigned to the HWS, which is also the default.   */ -int hws_max_conc_proc = 8; +int hws_max_conc_proc = -1;  module_param(hws_max_conc_proc, int, 0444);  MODULE_PARM_DESC(hws_max_conc_proc,  	"Max # processes HWS can execute concurrently when sched_policy=0 (0 = no concurrency, #VMIDs for KFD = Maximum(default))"); @@ -2323,18 +2323,23 @@ static int amdgpu_pmops_suspend(struct device *dev)  {  	struct drm_device *drm_dev = dev_get_drvdata(dev);  	struct amdgpu_device *adev = drm_to_adev(drm_dev); -	int r;  	if (amdgpu_acpi_is_s0ix_active(adev))  		adev->in_s0ix = true;  	else  		adev->in_s3 = true; -	r = amdgpu_device_suspend(drm_dev, true); -	if (r) -		return r; +	return amdgpu_device_suspend(drm_dev, true); +} + +static int amdgpu_pmops_suspend_noirq(struct device *dev) +{ +	struct drm_device *drm_dev = dev_get_drvdata(dev); +	struct amdgpu_device *adev = drm_to_adev(drm_dev); +  	if (!adev->in_s0ix) -		r = amdgpu_asic_reset(adev); -	return r; +		return amdgpu_asic_reset(adev); + +	return 0;  }  static int amdgpu_pmops_resume(struct device *dev) @@ -2575,6 +2580,7 @@ static const struct dev_pm_ops amdgpu_pm_ops = {  	.prepare = amdgpu_pmops_prepare,  	.complete = amdgpu_pmops_complete,  	.suspend = amdgpu_pmops_suspend, +	.suspend_noirq = amdgpu_pmops_suspend_noirq,  	.resume = amdgpu_pmops_resume,  	.freeze = amdgpu_pmops_freeze,  	.thaw = amdgpu_pmops_thaw,  | 
