2011/8/4 Tomi Valkeinen <[email protected]>:
> 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 <[email protected]>
>> ---
>>  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to