From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 3/5] Documentation: Add documentation for the APM X-Gene SoC EDAC DTS binding
Date: Thu, 30 Apr 2015 12:42:48 +0200 [thread overview]
Message-ID: <10227049.9i19zDi2y3@wuerfel> (raw)
In-Reply-To: <20150430094134.GD3488@pd.tnic>
On Thursday 30 April 2015 11:41:34 Borislav Petkov wrote:
> But if those three vendors went and created an EDAC module each for
> their system, it would be a lot of repeated copy'pasting and bloat.
>
> Now, the other dimension doesn't look better either:
>
> xgene_edac_mc
> xgene_edac_mc-v2
> xgene_edac_l3
> xgene_edac-l2
> ...
>
> Also, in both cases, if any of those drivers need to talk to each other
> or know of one another in any way, the situation becomes really funny as
> they need to create something ad-hoc each time.
>
I've looked at the driver in a little more detail now, and found that
it is a weird conglomerate at the moment. Basically you have four
drivers in one file here, appended to one another, but not sharing
any common functions except the module_init() that registers the four
drivers. This is what Rob was referring to when he suggested splitting
it up into four files, and these would in total be smaller than the
common file (by being able to use module_platform_driver()).
However, there is another dimension to this, which supports your point
about making it one driver for the platform: The split into four drivers
is completely artificial, because all four use the same IRQs and
implement four separate interrupt handlers for it (using IRQF_SHARED),
each handling only the events they are interested in. Similarly, they
all access the same register set ("pcperror"), aside from having their
own separate registers, and they use the "syscon" framework to get to
the registers. This seems to be an inferior design, as the pcperror
stuff apparently is the real EDAC block on the system and that should
have a device driver for itself, with proper interfaces. syscon in
contrast is designed for the case where you have a badly designed
IP block that has lots of registers for functions all over the place
for which no clear abstraction is possible.
There is also the "efuse" that is listed as "syscon" here, but should
really use a separate framework that has been under discussion for a
while.
Arnd
next prev parent reply other threads:[~2015-04-30 10:42 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-28 22:10 [PATCH v7 0/4] edac: Add APM X-Gene SoC EDAC driver Loc Ho
2015-04-28 22:10 ` [PATCH v7 1/5] arm64: Enable EDAC on ARM64 Loc Ho
2015-04-28 22:10 ` [PATCH v7 2/5] MAINTAINERS: Add entry for APM X-Gene SoC EDAC driver Loc Ho
2015-04-28 22:10 ` [PATCH v7 3/5] Documentation: Add documentation for the APM X-Gene SoC EDAC DTS binding Loc Ho
2015-04-28 22:10 ` [PATCH v7 4/5] edac: Add APM X-Gene SoC EDAC driver Loc Ho
2015-04-28 22:10 ` [PATCH 5/5] arm64: Add APM X-Gene SoC EDAC DTS entries Loc Ho
2015-04-29 8:49 ` [PATCH v7 4/5] edac: Add APM X-Gene SoC EDAC driver Arnd Bergmann
2015-04-29 16:57 ` Rob Herring
2015-04-29 18:23 ` Arnd Bergmann
2015-04-29 17:00 ` Rob Herring
2015-04-29 16:47 ` [PATCH v7 3/5] Documentation: Add documentation for the APM X-Gene SoC EDAC DTS binding Rob Herring
2015-04-29 21:33 ` Loc Ho
2015-04-29 21:49 ` Borislav Petkov
2015-04-29 21:56 ` Loc Ho
2015-04-29 22:08 ` Borislav Petkov
2015-04-29 22:20 ` Loc Ho
2015-04-29 23:02 ` Rob Herring
2015-04-30 8:20 ` Borislav Petkov
2015-04-30 8:31 ` Arnd Bergmann
2015-04-30 8:45 ` Borislav Petkov
2015-04-30 9:01 ` Arnd Bergmann
2015-04-30 9:41 ` Borislav Petkov
2015-04-30 10:21 ` Arnd Bergmann
2015-04-30 12:33 ` Borislav Petkov
2015-04-30 12:52 ` Arnd Bergmann
2015-04-30 10:42 ` Arnd Bergmann [this message]
2015-04-30 13:00 ` Borislav Petkov
2015-04-30 16:57 ` Loc Ho
2015-04-30 17:18 ` Borislav Petkov
2015-04-30 21:19 ` Loc Ho
2015-04-30 21:30 ` Borislav Petkov
2015-04-30 21:39 ` Loc Ho
2015-04-30 22:36 ` Rob Herring
2015-04-30 22:47 ` Arnd Bergmann
2015-05-01 6:44 ` Loc Ho
2015-04-30 22:59 ` Loc Ho
2015-05-01 19:59 ` Loc Ho
2015-05-04 22:36 ` Rob Herring
2015-05-04 23:39 ` Loc Ho
2015-04-29 22:43 ` Rob Herring
2015-04-30 0:47 ` Loc Ho
2015-04-29 14:40 ` [PATCH v7 1/5] arm64: Enable EDAC on ARM64 Catalin Marinas
2015-04-29 14:46 ` Jon Masters
2015-04-29 21:39 ` Loc Ho
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=10227049.9i19zDi2y3@wuerfel \
--to=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.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