On Wed, Mar 10, 2010 at 7:49 PM, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Wed, Mar 10, 2010 at 04:48:53PM +0900, Jassi Brar wrote:
The code in s3c-i2s-v2.c is compiled via Makefile and not implicitly by include'ing. Also, the driver developer anyways has to refer to the manual to see if the code can be reused for the SoC under consideration. That makes the S3C_IIS_V2_SUPPORTED retrospective rather than a check.
Signed-off-by: Jassi Brar jassi.brar@samsung.com
This code is in there for pure defensiveness - since at least the S3C64xx and S3C24xx have slightly different register maps for the block (the ones that are currently handled are the IISMOD master settings, there may be more) the code needs to have explicit support for the processors. The goal of this block is to print a #error saying exactly what's going on rather than just have the build fail with missing defines in order to help make it more immediately clear to users what is going on if they try to select a processor combination they don't know how to handle.
The way I see it, if we keep it we will have to add every supported SoC to the list which is kinda redundant since that information could already be extracted from Makefile. The list of supported SoC could be useful if we somehow knew the future SoCs' characteristics to tell if they wud work or not, but the developer has to first check the Manual and see if the s3c-i2s-v2.c could be made use of or not. Besides, I assume 'user' to be the MACHINE driver writer and 'developer' to be the CPU driver writer.
Users often have a strong expectation that the driver will just work and so relying on them consulting the processor manual isn't always realistic.
well, I am not sure if we should sympathize with such a developer :)
It may be that these differences are due to some being IISv2 and some being IISv3 or something and could easily be handled via mandatory platform data but since none of the documentation refers to any of this stuff and it has to be reverse engineered we've got this system based on build time processor selection.
Yes, maybe some more documentation is what is needed.