devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
To: "jonsmirl-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
	<jonsmirl-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
	Thomas Petazzoni
	<thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: CPU revision IDs
Date: Wed, 18 Jun 2014 10:07:48 +0200	[thread overview]
Message-ID: <20140618080748.GF19730@lukather> (raw)
In-Reply-To: <CAKON4Oz44X7G+yM2R-XX_D_6FV4ekWiOKY2t_p0Y3+gUXJ17iw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 1814 bytes --]

On Fri, Jun 13, 2014 at 10:37:37AM -0400, jonsmirl-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:
> >> Then I end up with code in the machine file like this...
> >>
> >> find SOC revision
> >> if revision == A
> >>     fix up codec and i2s driver compatible
> >> if revision == B
> >>     fix up HDMI compatible
> >> if revision == C
> >>     fix up whatever
> >> I've seen chips with revision levels of J
> >>
> >> Why do you want this knowledge in the machine file? Why not just add
> >> the test for SOC revision inside the device driver?
> >
> > Because it's going to be a mess anyway. No matter if it's in the
> > driver or the machine code. So at least, that way, we're having it
> > centralized and isolated from the driver's code.
> 
> The mess is always going to be in the driver code. You are just
> changing the the string the driver code selects on...
> 
> if (of_machine_is_compatible("allwinner,sun7i-codec-rev-a")) {
>       fix bug
> }
> 
> if (of_machine_is_compatible("allwinner,sun7i-a20a")) {
>       fix bug
> }

What? Hmmm, nope. Look at how we're doing this for the i2c driver
(drivers/i2c/busses/i2c-mv64xxx.c).

> The mess is not required in the machine file.  Init time code can
> always modify the machine compatible string like this with no side
> effects. It would add 'a'-'j' as appropriate for the CPU.
> 
> Code changes this:
>  compatible = "cubietech,cubietruck", "allwinner,sun7i-a20"
> to:
>  compatible = "cubietech,cubietruck",  "allwinner,sun7i-a20-a",
> "allwinner,sun7i-a20"

Again, this is the machine compatible, and this is orthogonal to the
issue. You should have a different compatible string for the *codec*.

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

      parent reply	other threads:[~2014-06-18  8:07 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-13 12:29 CPU revision IDs jonsmirl-Re5JQEeQqe8AvxtiuMwx3w
     [not found] ` <CAKON4OwNULPeQFHwRhRfri86yexMvvKfrw_dthim4_oPWvMD3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-13 12:43   ` Thomas Petazzoni
     [not found]     ` <20140613144355.20412fa6-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
2014-06-13 12:56       ` Arnd Bergmann
2014-06-13 13:05         ` jonsmirl-Re5JQEeQqe8AvxtiuMwx3w
     [not found]           ` <CAKON4OxzJ7UoKnMgf+sckksjG-rx8NG1tUvPj2qaHNsda0j3jQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-13 13:08             ` Arnd Bergmann
2014-06-13 13:14               ` jonsmirl-Re5JQEeQqe8AvxtiuMwx3w
     [not found]                 ` <CAKON4Ox+tCgiu6N988ds7ED2KbECw=60Y6BRqV_2UcM+vshw4Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-13 13:20                   ` Maxime Ripard
2014-06-13 13:34                     ` jonsmirl-Re5JQEeQqe8AvxtiuMwx3w
     [not found]                       ` <CAKON4OxZLaL9sJFPjnUhec_LMZKGvGXrKyUjW-whHzY6byVUxw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-13 13:58                         ` Maxime Ripard
2014-06-13 14:37                           ` jonsmirl-Re5JQEeQqe8AvxtiuMwx3w
     [not found]                             ` <CAKON4Oz44X7G+yM2R-XX_D_6FV4ekWiOKY2t_p0Y3+gUXJ17iw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-06-18  8:07                               ` Maxime Ripard [this message]

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=20140618080748.GF19730@lukather \
    --to=maxime.ripard-wi1+55scjutkeb57/3fjtnbpr1lh4cv8@public.gmane.org \
    --cc=arnd-r2nGTMty4D4@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=jonsmirl-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=thomas.petazzoni-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@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;
as well as URLs for NNTP newsgroup(s).