From: Lucas Stach <dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
To: Mark Zhang <nvmarkzhang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Thierry Reding
<thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>,
Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Subject: Re: [PATCH 1/3] ARM: tegra: add EMC clock scaling API
Date: Tue, 18 Dec 2012 10:11:52 +0100 [thread overview]
Message-ID: <1355821912.1490.48.camel@tellur> (raw)
In-Reply-To: <50D024B7.400-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Am Dienstag, den 18.12.2012, 16:09 +0800 schrieb Mark Zhang:
[...]
> >> Why don't you put this file into the directory which "tegra_emc.h"
> >> resides? I think that'll be easy to find and understand.
> >>
> > Because my understanding is that mach-tegra is not the right place for
> > include files that are used by normal drivers and not just the platform
> > code.
> >
>
> Tegra emc driver is not "normal" driver, it's highly tegra related.
> "tegra_emc_performance.h" is also tegra related so I think it's not good
> to put it into a generic directory, just like "include/memory" here.
>
In fact it is a normal device driver. There is nothing specific to the
platform in there. Citing from [1]: "Device drivers for things, even if
they are only found on the ARM architecture, or even only on your
machine, do not go in these directories, but in the relevant parts of
the main tree; usually linux/drivers/, but sometimes linux/fs
or /linux/net if there are filesystems, partition types or network
protocols specific to your device."
So honestly I don't even know why the EMC driver is located in
mach-tegra. This may have been historically the right place, as EMC was
intertwined with CPUfreq, which is in fact platform specific. But that
point is moot now.
[...]
> >>
> >> Get confused here. Why we add all bandwidth up? We should loop all the
> >> bandwidth requests in "constraints" array, find out the largest one,
> >> compare with emc table then finally write the registers and set the emc
> >> clock, isn't it?
> >>
> > No, bandwidth constraints add up. Imagine two display clients scanning
> > out at the same time. Both on their own may be satisfied with 83MHz DRAM
> > clock, but if they are running at the same time you have to account for
> > that and maybe bump DRAM freq to 133MHz.
>
> Ah, yes, this is correct for dc. I skimmed the downstream kernel codes
> and found that there are different logics for different clients. For DC,
> their bandwidth request should be added up. For other clients, e.g: USB,
> set to max bandwidth request is OK.
>
> So we may do more works on this part later, to write a more accurate
> algorithms to get the final emc rate. For now, it's OK.
>
I don't see how there could be any difference at the EMC level. You
always want the EMC to deliver enough bandwidth for all registered
clients. You certainly don't want to risk display corruptions just
because USB also demands it's share. This might be a bad example as the
high priority of the DC transaction may kick out USB, but still.
There might be different ways on how clients compute their needed
bandwidth, maybe USB only request bandwidth for one high speed port even
if three ports are connected. But that's the clients decision, not the
EMCs.
Regards,
Lucas
[1] http://www.linux-arm.org/pub/LinuxKernel/WebHome/aleph-porting.pdf
next prev parent reply other threads:[~2012-12-18 9:11 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-14 20:14 [PATCH 0/3] Tegra EMC clock scaling API Lucas Stach
[not found] ` <1355516086-11116-1-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2012-12-14 20:14 ` [PATCH 1/3] ARM: tegra: add " Lucas Stach
[not found] ` <1355516086-11116-2-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2012-12-17 11:08 ` Mark Zhang
[not found] ` <50CEFD28.7080601-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-12-17 11:18 ` Mark Zhang
[not found] ` <50CEFF8B.5030901-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-12-17 11:23 ` Lucas Stach
2012-12-17 11:22 ` Lucas Stach
2012-12-18 8:09 ` Mark Zhang
[not found] ` <50D024B7.400-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-12-18 9:11 ` Lucas Stach [this message]
2012-12-18 11:50 ` Mark Zhang
[not found] ` <50D05891.3070006-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-12-18 12:02 ` Lucas Stach
2012-12-19 3:21 ` Mark Zhang
2012-12-17 21:23 ` Stephen Warren
[not found] ` <50CF8D51.6020208-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-12-17 21:43 ` Lucas Stach
2012-12-17 21:57 ` Stephen Warren
2012-12-14 20:14 ` [PATCH 2/3] ARM: tegra: use new EMC clock scaling API in CPUfreq driver Lucas Stach
2012-12-14 20:14 ` [PATCH 3/3] ARM: tegra: drm: use new EMC clock scaling API to reserve DC bandwidth Lucas Stach
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=1355821912.1490.48.camel@tellur \
--to=dev-8ppwabl0hbeelga04laivw@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nvmarkzhang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org \
/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