RE: [PATCH v5 3/7] OMAP: DSS2: Introduce omap_channel as a omap_dss_device parameter

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

 



Hi,

[snip]

>> I am assuming that you are referring to 'DISPC_IRQ_MASK_ERROR' and the
>> registering/unregistering of irq masks in manager.c
> 
> Not only the irqs, but also, for example, code like this:
> 
> 
>         if (channel == OMAP_DSS_CHANNEL_LCD ||
>                         channel == OMAP_DSS_CHANNEL_LCD2)
>                 bit = 5; /* GOLCD */
>         else
>                 bit = 6; /* GODIGIT */
> 
>         if (channel == OMAP_DSS_CHANNEL_LCD2)
>                 return REG_GET(DISPC_CONTROL2, bit, bit) == 1;         else
>                 return REG_GET(DISPC_CONTROL, bit, bit) == 1;
> 

Things would be bad only for DISPC_CONTROL and DISPC_CONFIG since
we couldn't parametrize them based on channel. Others look scalable,
I don't know if there will be more such registers on OMAP5, but we
can ask HW Team to keep them specific to the channel.

> So lots of the functions contain ifs based on the channel. I
> don't know right now what would be the best way to make the
> code cleaner (probably some kinds of look-up tables, but they
> incur some overhead), and as I said, it's cosmetical and can
> be cleaned up later (presuming we come up with a good way).
> 
>> I guess we could have a dss_features function which could return the
>> mask based on what omap it is. But this way the mask values/contents
>> would be totally invisble in manager.c and dispc.c, one
> would need to check it in dss_features.c, which also isn't readable.
> 
> Right. I agree that that solution isn't perhaps the best one either.
> 
>> One thing which I would like to add is that this series
> doesn't need to touch any board file for now.
>> The present dss_recheck_connections() doesn't try to differentiate
>> between LCD and DIGIT channels, it just uses 'omap_display_type' to
>> differentiate between them. Only a panel which needs to connect to
>> LCD2 has to do this, This method wouldn't have worked if we didn't
>> switch to uniform use of dssdev->manager->id instead of
>> dssdev->channel. We will need to change
> dss_recheck_connections() in the future to make it more uniform.
> 
> Ok.
> 
> If you can split this patch into the two parts I suggested
> (if that's ok for you, you didn't comment on that one), and
> check if there's anything to add to the commit descriptions,
> I think we can go and apply this patch set.

If I split this into 2 parts, the first patch will be just a line
addition in display.h, I was beaten up by the community because of
this in the previous version. One line patches in a series aren't
taken very kindly :|. What I can do is clearly mention the 2 sets
of things which this commit does, if you think that is good enough.

> 
> Btw, on what platforms have you tested this (or generally any
> patches you send?). I only have 3430SDP currently that I can
> easily use to test, so my testing is a bit limited.
> 

This one I had tested throughly on 3430SDP, bootup on zoom2 and zoom3.
I couldn't test on omap2, we have a n800 board but we don't know what panel
driver we need to use, board-n8x0.c doesn't tell anything about. If you can
tell me what panel driver to use etc I can try out.

Archit--
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