RE: [PATCH 1/1] [tegra] Make syncpt routines accessible by drivers

From: Andrew Chew
Date: Mon Feb 14 2011 - 19:47:55 EST


> Yeah, including the relative path was a bit of a hack since the nvhost
> drivers needs some serious work before it's upstreamable. A "right"
> way to do this is to have the syncpt functions take an nvhost_device
> pointer (or create helper functions that do that,) then expose those
> functions in mach/nvhost.h. This obviates the need for a global
> nvhost_sycpt pointer.
>
> -Erik

You're right about that global nvhost_syncpt pointer. That drives me nuts as well. Nevertheless, I'm not sure I'm knowledgeable enough to do the required work to do this the "right" way. As far as I know, nvhost is a guaranteed singleton in practice (not in implementation), so while this is ugly, it will work fine for existing projects.

Can we use nvmap as precedent and do it this way for now? I'd like to get the V4L2 camera host driver up to the Tegra community as soon as possible. When the problem is solved for the dc driver, I can adapt that to the V4L2 camera host driver.

> On Mon, Feb 14, 2011 at 4:08 PM, Andrew Chew <AChew@xxxxxxxxxx> wrote:
> >> If you want to use syncpts you should be an nvhost_driver
> link the dc.
> >
> > Looking at drivers/video/tegra/dc, I notice that it gets
> access to the syncpt functions by using a relative path
> (../host/dev.h) to include dev.h, which in turn includes
> nvhost_syncpt.h (in drivers/video/tegra/host).  Is this proper form?
> >
> > This syncpt access is for a Tegra V4L2 driver, which will
> live in drivers/media/video.  I was trying to avoid using
> relative paths for #includes.  I assumed that the header
> files in drivers/video/tegra/host were not meant to be
> publicly available to other drivers, which is why I looked
> for some precedent in how nvhost functions were made
> available to other kernel drivers, hence I modeled this after nvmap.
> --
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/