Re: [PATCH] OMAP: DSS2: DSI: Support non-dcs long read

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2011/8/4 Tomi Valkeinen <tomi.valkeinen@xxxxxx>:
> Hi,
>
> On Wed, 2011-06-29 at 20:44 -0700, Arve Hjønnevåg wrote:
>> Change-Id: I18168c887e1384c07dc033a1ffc57abdacb26073
>> Signed-off-by: Arve Hjønnevåg <arve@xxxxxxxxxxx>
>> ---
>>  drivers/video/omap2/dss/dsi.c |    7 ++++++-
>>  1 files changed, 6 insertions(+), 1 deletions(-)
>
> This feels somehow partial... Why do you want to read generic packets if
> there are no functions to send generic packets?
>

The chip responds with a generic packet when reading from some
registers. This is a simple fix while adding support for sending
generic packets would probably require an api change.

> And always write a patch description.
>
>  Tomi
>
>>
>> diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c
>> index c16b933..6975645 100644
>> --- a/drivers/video/omap2/dss/dsi.c
>> +++ b/drivers/video/omap2/dss/dsi.c
>> @@ -206,6 +206,7 @@ struct dsi_reg { u16 idx; };
>>  #define DSI_DT_DCS_LONG_WRITE                0x39
>>
>>  #define DSI_DT_RX_ACK_WITH_ERR               0x02
>> +#define DSI_DT_RX_LONG_READ          0x1a
>>  #define DSI_DT_RX_DCS_LONG_READ              0x1c
>>  #define DSI_DT_RX_SHORT_READ_1               0x21
>>  #define DSI_DT_RX_SHORT_READ_2               0x22
>> @@ -2943,6 +2944,10 @@ static u16 dsi_vc_flush_receive_data(struct platform_device *dsidev,
>>               } else if (dt == DSI_DT_RX_SHORT_READ_2) {
>>                       DSSERR("\tDCS short response, 2 byte: %#x\n",
>>                                       FLD_GET(val, 23, 8));
>> +             } else if (dt == DSI_DT_RX_LONG_READ) {
>> +                     DSSERR("\tlong response, len %d\n",
>> +                                     FLD_GET(val, 23, 8));
>> +                     dsi_vc_flush_long_data(dsidev, channel);
>>               } else if (dt == DSI_DT_RX_DCS_LONG_READ) {
>>                       DSSERR("\tDCS long response, len %d\n",
>>                                       FLD_GET(val, 23, 8));
>> @@ -3287,7 +3292,7 @@ int dsi_vc_dcs_read(struct omap_dss_device *dssdev, int channel, u8 dcs_cmd,
>>               buf[1] = (data >> 8) & 0xff;
>>
>>               return 2;
>> -     } else if (dt == DSI_DT_RX_DCS_LONG_READ) {
>> +     } else if (dt == DSI_DT_RX_DCS_LONG_READ || dt == DSI_DT_RX_LONG_READ) {
>>               int w;
>>               int len = FLD_GET(val, 23, 8);
>>               if (dsi->debug_read)
>
>
>



-- 
Arve Hjønnevåg
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux