[PATCH 4/4] drm/panel/ili9341: Support DPI panels

Noralf Trønnes noralf at tronnes.org
Mon Aug 12 12:18:08 UTC 2019



Den 11.08.2019 19.02, skrev Sam Ravnborg:
> Hi Noralf.
> 
> On Thu, Aug 01, 2019 at 03:52:49PM +0200, Noralf Trønnes wrote:
>> Add support for panels that use the DPI interface.
>> ILI9341 has onboard RAM so the assumption made here is that all such
>> panels support pixel upload over DBI.
>>
>> The presence/absense of the Device Tree 'port' node decides which
>> interface is used for pixel transfer.
>>
>> Signed-off-by: Noralf Trønnes <noralf at tronnes.org>
>> ---
>>  drivers/gpu/drm/panel/panel-ilitek-ili9341.c | 56 ++++++++++++++++----
>>  1 file changed, 45 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c

<snip>

>>  static int ili9341_remove(struct spi_device *spi)
>>  {
>>  	struct ili9341 *ili = spi_get_drvdata(spi);
>>  
>> -	drm_dev_unplug(&ili->dbidev.drm);
>> -	drm_atomic_helper_shutdown(&ili->dbidev.drm);
>> +	if (ili->use_dpi) {
>> +		drm_panel_remove(&ili->panel);
>> +		drm_panel_disable(&ili->panel);
>> +		drm_panel_unprepare(&ili->panel);
>> +		kfree(ili);
> At first I thought - order is wrong.
> But drm_panel_remove() prevents display drivers from using the driver.
> And this will not invalidate the other calls.
> Maybe add a short comment?
> 

I just copied this code from Josef's driver, didn't actually look that
close at it. Isn't there a common pattern for this in the panel drivers?
I would assume that everyone would have to do more or less the same on
driver unbind.

Noralf.

> 	Sam
> 
> 
>> +	} else {
>> +		drm_dev_unplug(&ili->dbidev.drm);
>> +		drm_atomic_helper_shutdown(&ili->dbidev.drm);
>> +	}
>>  
>>  	return 0;
>>  }


More information about the dri-devel mailing list