linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Terje Bergström" <tbergstrom@nvidia.com>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: Arto Merilainen <amerilainen@nvidia.com>,
	Thierry Reding <thierry.reding@avionic-design.de>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC v2 6/8] gpu: drm: tegra: Remove redundant host1x
Date: Mon, 7 Jan 2013 10:20:03 +0200	[thread overview]
Message-ID: <50EA8533.3020109@nvidia.com> (raw)
In-Reply-To: <50E73AA2.7090500@wwwdotorg.org>

On 04.01.2013 22:25, Stephen Warren wrote:
> On 01/04/2013 03:09 AM, Terje Bergström wrote:
> ...
>> I think we have now two ways to go forward with cons and pros:
>>  1) Keep host1x and tegra-drm as separate driver
>>    + Code almost done
>>    - we need dummy device and dummy driver
>>    - extra code and API when host1x creates dummy device and its passed
>> to tegra-drm
> 
> Just to play devil's advocate:
> 
> I suspect that's only a few lines of code.

Yes, that's true. There's some overhead, but there's not too many actual
code lines.

>>    - tegra-drm device would need to be a child of host1x device. Having
>> virtual and real devices as host1x children sounds weird.
> 
> And I doubt that would cause problems.

True. It could become a problem if the driver just assumed that all
host1x children are actual hardware, but we could avoid that.

>>  2) Merge host1x and tegra-drm into one module. drm is a subcomponent,
>> and whatever other personalities we wish would also be subcomponents of
>> host1x. host1x calls tegra-drm directly to handle preparation for drm
>> initialization. As they're in the same module, circular dependency is ok.
>>    + Simpler conceptually (no dummy device/driver)
>>    + Less code
>>    - Proposal doesn't yet exist
> 
> But that said, I agree this approach would be very reasonable; it seems
> to me that host1x really is the main HW behind a DRM driver or a V4L2
> driver or ... As such, it seems quite reasonable for a single struct
> device to exist that represents host1x, and for the driver for that
> device to register both a DRM and a V4L2 driver etc. The code could
> physically be organized into separate modules, and under different
> Kconfig options for configurability etc.
> 
> But either way, I'll let you (Thierry and Terje) work out which way to go.

If we want separate modules, we'd need the dummy device & dummy driver
binding between them. We could also just put them in the same module.
It'd make DRM a requirement to host1x driver, but given the current
structure, I think that'd be reasonable. We could later make it more
configurable if needed. Does this now make tegra-drm and host1x too
dependent on each other? I'm not sure.

I also like the fact that we don't have to export APIs to include, but
we can (if we so choose) keep all tegra-drm-host1x-APIs in local header
files. As we have noted, the two drivers are tightly interconnected,
changing the APIs is easier if we can just work on the same directory
hierarchy.

Terje

  reply	other threads:[~2013-01-07  8:15 UTC|newest]

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-26 13:19 [RFC v2 0/8] Support for Tegra 2D hardware Terje Bergstrom
2012-11-26 13:19 ` [RFC v2 1/8] video: tegra: Add nvhost driver Terje Bergstrom
2012-11-27 10:52   ` Sivaram Nair
2012-11-28 21:23   ` Thierry Reding
2012-11-29 10:21     ` Terje Bergström
2012-11-29 11:47       ` Thierry Reding
2012-11-29 18:38         ` Stephen Warren
2012-11-30  6:52           ` Thierry Reding
2012-11-30  8:50           ` Lucas Stach
2012-12-01 11:44             ` Terje Bergström
2012-12-01 15:10               ` Thierry Reding
2012-12-01 16:55                 ` Terje Bergström
2012-12-01 17:34                   ` Lucas Stach
2012-12-01 19:29                     ` Terje Bergström
2012-12-01 21:42                       ` Dave Airlie
2012-12-01 22:39                         ` Thierry Reding
2012-12-02 11:24                         ` Terje Bergström
2012-12-02 20:55                           ` Thierry Reding
2012-12-03  6:26                             ` Terje Bergström
2012-11-30  8:56         ` Terje Bergström
2012-11-30 10:38           ` Thierry Reding
2012-12-01 11:31             ` Terje Bergström
2012-12-01 13:42               ` Daniel Vetter
2012-12-01 16:22                 ` Terje Bergström
2012-12-01 14:58               ` Thierry Reding
2012-12-01 17:13                 ` Terje Bergström
2012-12-03 19:23                 ` Stephen Warren
2012-12-04 21:31                   ` Thierry Reding
2012-12-03 19:20             ` Stephen Warren
2012-12-03 21:03               ` Thierry Reding
2012-12-04  2:08                 ` Mark Zhang
2012-12-04  2:11                 ` Mark Zhang
2012-12-04  6:17                 ` Terje Bergström
2012-11-29 18:34       ` Stephen Warren
2012-11-30  6:54         ` Terje Bergström
2012-11-30  6:53           ` Thierry Reding
2012-11-29  9:10   ` [RFC,v2,1/8] " Mark Zhang
2012-12-10 10:28     ` Terje Bergström
2012-11-26 13:19 ` [RFC v2 2/8] video: tegra: Add syncpoint wait and interrupts Terje Bergstrom
2012-11-27 11:02   ` Sivaram Nair
2012-11-29  8:44   ` Thierry Reding
2012-11-29 10:39     ` Terje Bergström
2012-11-30  7:22       ` Thierry Reding
2012-11-30  7:41         ` Terje Bergström
2012-11-29 18:41     ` Stephen Warren
2012-11-30  7:23       ` Thierry Reding
2012-11-26 13:19 ` [RFC v2 3/8] video: tegra: host: Add channel and client support Terje Bergstrom
2012-11-29 10:01   ` [RFC,v2,3/8] " Mark Zhang
2012-11-29 10:46     ` Terje Bergström
2012-11-30  6:13       ` Mark Zhang
2012-11-29 10:04   ` [RFC v2 3/8] " Thierry Reding
2012-11-29 11:00     ` Terje Bergström
2012-11-30  7:46       ` Thierry Reding
2012-11-26 13:19 ` [RFC v2 4/8] video: tegra: Add debug support Terje Bergstrom
2012-11-26 13:19 ` [RFC v2 5/8] ARM: tegra: Add auxiliary data for nvhost Terje Bergstrom
2012-11-26 23:39   ` Stephen Warren
2012-11-27  6:33     ` Terje Bergström
2012-11-27 17:17       ` Stephen Warren
2012-11-26 13:19 ` [RFC v2 6/8] gpu: drm: tegra: Remove redundant host1x Terje Bergstrom
2012-12-05  8:33   ` Thierry Reding
2012-12-05 10:10     ` Terje Bergström
2012-12-05 11:13       ` Thierry Reding
2012-12-05 11:47         ` Terje Bergström
2012-12-05 12:02           ` Lucas Stach
2012-12-05 12:03           ` Daniel Vetter
2012-12-05 12:08             ` Daniel Vetter
2012-12-05 12:22             ` Thierry Reding
2012-12-05 12:31               ` Daniel Vetter
2012-12-05 13:28                 ` Thierry Reding
2012-12-05 16:34                   ` Daniel Vetter
2012-12-05 20:44                     ` Thierry Reding
2012-12-05 12:04           ` Thierry Reding
2012-12-05 15:43             ` Terje Bergström
2012-12-10 11:42             ` Terje Bergström
2012-12-12 16:08               ` Thierry Reding
2012-12-12 16:56                 ` Terje Bergström
2012-12-13  8:48                 ` Terje Bergström
2012-12-13  8:57                   ` Thierry Reding
2012-12-13 17:58                     ` Stephen Warren
2012-12-13 20:32                       ` Thierry Reding
2012-12-14  6:09                       ` Terje Bergström
2012-12-14 16:21                         ` Stephen Warren
2012-12-14 19:59                           ` Terje Bergström
2012-12-16 12:16                             ` Thierry Reding
2012-12-16 16:37                               ` Terje Bergström
2012-12-17 20:55                                 ` Stephen Warren
2012-12-18  6:37                                   ` Terje Bergström
2012-12-20  9:17                               ` Terje Bergström
2012-12-20 17:14                                 ` Stephen Warren
2012-12-20 17:46                                   ` Terje Bergström
2012-12-20 17:55                                     ` Stephen Warren
2012-12-20 18:01                                       ` Terje Bergström
2012-12-20 20:30                                         ` Thierry Reding
2012-12-20 21:34                                           ` Terje Bergström
2012-12-20 21:50                                             ` Thierry Reding
2012-12-20 22:29                                               ` Stephen Warren
2012-12-20 22:28                                             ` Stephen Warren
2012-12-21  6:31                                               ` Terje Bergström
2012-12-21  8:57                                   ` Arto Merilainen
2012-12-21 21:19                                     ` Stephen Warren
2013-01-02  5:41                                       ` Terje Bergström
2013-01-04 10:09                                       ` Terje Bergström
2013-01-04 20:25                                         ` Stephen Warren
2013-01-07  8:20                                           ` Terje Bergström [this message]
2013-01-07 17:07                                             ` Stephen Warren
2013-01-15 11:30                                           ` Thierry Reding
2013-01-15 11:41                                             ` Terje Bergström
2012-11-26 13:19 ` [RFC v2 7/8] gpu: drm: tegra: Prime support Terje Bergstrom
2012-11-26 13:19 ` [RFC v2 8/8] drm: tegra: Add gr2d device Terje Bergstrom
2012-11-26 21:59   ` Rob Clark
2012-11-26 22:15   ` Dave Airlie
2012-11-27  6:52     ` Terje Bergström
2012-11-27  7:33       ` Dave Airlie
2012-11-27  8:16         ` Terje Bergström
2012-11-27  8:32           ` Dave Airlie
2012-11-27  8:45             ` Terje Bergström
2012-11-27 10:22               ` Lucas Stach
2012-11-27 10:37                 ` Thierry Reding
2012-11-27 11:31                   ` Terje Bergström
2012-11-27 11:47                     ` Lucas Stach
2012-11-27 12:59                       ` Terje Bergström
2012-11-27 23:00                     ` Dave Airlie
2012-11-28 13:17                       ` Terje Bergström
2012-11-28 13:33                         ` Lucas Stach
2012-11-28 13:57                           ` Terje Bergström
2012-11-28 14:06                             ` Lucas Stach
2012-11-28 14:45                               ` Terje Bergström
2012-11-28 15:13                                 ` Lucas Stach
2012-11-28 16:23                                   ` Terje Bergström
2012-11-28 18:46                                     ` Lucas Stach
2012-11-29  8:17                                       ` Terje Bergström
2012-11-29  9:09                                         ` Lucas Stach
2012-11-29 12:14                                           ` Thierry Reding
2012-11-30  7:44                                             ` Terje Bergström
2012-11-30  7:53                                               ` Lucas Stach
2012-11-29 13:36                                           ` Terje Bergström
2012-11-28 16:24                                 ` Stephen Warren
2012-11-28 20:53                           ` Thomas Hellstrom
2012-12-03  9:30     ` Mark Zhang
2012-12-03  9:40       ` Daniel Vetter
2012-12-04  1:49         ` Mark Zhang
2012-11-29  7:37   ` [RFC,v2,8/8] " Mark Zhang
2012-12-01 14:45 ` [RFC v2 0/8] Support for Tegra 2D hardware Thierry Reding
2012-12-01 17:08   ` Terje Bergström
2012-12-01 19:29     ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50EA8533.3020109@nvidia.com \
    --to=tbergstrom@nvidia.com \
    --cc=amerilainen@nvidia.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=swarren@wwwdotorg.org \
    --cc=thierry.reding@avionic-design.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).