public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [linux-sunxi] Re: [PATCH 1/4] brcmfmac: Add brcm, nvram_file_name dt property
Date: Mon, 04 Jul 2016 16:54:25 +0200	[thread overview]
Message-ID: <8717879.O1RMZcQt4V@wuerfel> (raw)
In-Reply-To: <6cc6dabf-e6da-d70d-3cce-a7f1804f233e@broadcom.com>

On Monday, July 4, 2016 11:08:38 AM CEST Arend Van Spriel wrote:
> On 4-7-2016 10:55, Arnd Bergmann wrote:
> > On Monday, July 4, 2016 10:41:20 AM CEST Arend Van Spriel wrote:
> >> On 2-7-2016 23:30, Arnd Bergmann wrote:
> >>> On Saturday, July 2, 2016 8:20:35 PM CEST Arend Van Spriel wrote:
> >>>>> If you want a separate property, then I repeat my very first
> >>>>> suggestion, the well defined model property.
> >>>>> e.g.
> >>>>>
> >>>>> brcmf at 0 {
> >>>>>         model = "ampak,ap6210";
> >>>>>         compatible = "brcm,bcm4329-fmac";
> >>>>>         ...
> >>>>> };
> >>>>>
> >>>>> All device nodes may have a model property, not just the top "machine" one.
> >>>>
> >>>> I heard you the first time  I just was not sure what the implications
> >>>> would be to use it. Hence I suggested a vendor specific property.
> >>>> However, looking up and reading the definition in ePAPRv1.1 I suppose it
> >>>> is fine to use the model property:
> >>>>
> >>>> Property: model
> >>>> Value type: <string>
> >>>> Description:
> >>>> The model property value is a <string> that specifies the manufacturer?s
> >>>> model number of the device.
> >>>>
> >>>> The recommended format is: ?manufacturer,model?, where manufacturer is a
> >>>> string describing the name of the manufacturer (such as a stock ticker
> >>>> symbol), and model specifies the model number.
> >>>
> >>> The model property is very similar to compatible, except that there is
> >>> only one entry rather than a list of entries from most specific to
> >>> most generic.
> >>
> >> They seem very similar, but I think there is a conceptual difference.
> >> The compatible property is mainly used to select the appropriate driver
> >> and as such the property is typically ignored by device drivers.
> >> Probably there are exceptions to be found.
> >>
> >>> I think by writing the above example as
> >>>
> >>>       compatible = "ampak,ap6210", "brcm,bcm4329-fmac";
> >>>
> >>> we can provide the same functionality in a slightly simpler way, the driver
> >>> then just goes on to look for the nvram file for each entry in sequence until
> >>> it finds one.
> >>
> >> Not sure why this would be simpler. Why would traversing the compatible
> >> string be simpler than handling the model property if present and
> >> otherwise fallback to the default nvram naming.
> > 
> > Because you have to walk the list anyway to find the other firmware files:
> > when you have a specialization of a device that requires listing both values
> > as compatible, the driver has no idea which of the entries to use, unless
> > you add a lookup table that adds more complexity.
> 
> Currently, the brcmfmac bindings describe a single compatible string,
> ie. "brcm,bcm4329-fmac", which selects the driver/programming model. If
> that programming model supports "use model property if present,
> otherwise use default" there is nothing to traverse. The default way in
> the driver to determine firmware and nvram filename already has a lookup
> table which uses the chip id and chip revision as key, which are read
> from the device.

In drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c I already see
over a dozen different chips being supported, bcm4329 is only one of
them. In particular, there seem to be some that have various modules:

        BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43241_CHIP_ID, 0x0000001F, 43241B0),
        BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43241_CHIP_ID, 0x00000020, 43241B4),
        BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43241_CHIP_ID, 0xFFFFFFC0, 43241B5),

So if you have a bcm43241, that compatible string probably should
include both brcm,bcm43241-b4-fmac and brcm,bcm43241-fmac, possibly also
brcm,bcm4329-fmac, to show that it is a superset of the programming
interface of that one.

	Arnd

  reply	other threads:[~2016-07-04 14:54 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-29 14:04 [PATCH 1/4] brcmfmac: Add brcm,nvram_file_name dt property Hans de Goede
2016-06-29 14:04 ` [PATCH 2/4] ARM: dts: sun7i-a20-cubietruck: Set brcm,nvram_file_name Hans de Goede
2016-06-29 17:01   ` [PATCH 2/4] ARM: dts: sun7i-a20-cubietruck: Set brcm, nvram_file_name Kalle Valo
2016-06-29 18:01     ` [linux-sunxi] Re: [PATCH 2/4] ARM: dts: sun7i-a20-cubietruck: Set brcm,nvram_file_name Hans de Goede
2016-06-29 14:04 ` [PATCH 3/4] ARM: dts: sun7i-a20-wits-pro-a20-dkt: Set brcm, nvram_file_name Hans de Goede
2016-06-29 14:04 ` [PATCH 4/4] ARM: dts: sun5i-a10s-auxtek-t004: " Hans de Goede
2016-06-29 14:42 ` [PATCH 1/4] brcmfmac: Add brcm,nvram_file_name dt property Jonas Gorski
2016-06-29 15:16   ` Hans de Goede
2016-06-29 17:00     ` Kalle Valo
2016-06-29 18:01       ` [linux-sunxi] Re: [PATCH 1/4] brcmfmac: Add brcm, nvram_file_name " Hans de Goede
2016-06-29 18:51         ` Arend Van Spriel
2016-06-29 18:57           ` Arend Van Spriel
2016-06-30  8:50             ` Kalle Valo
2016-06-29 19:33           ` Arnd Bergmann
2016-06-29 19:54             ` [linux-sunxi] Re: [PATCH 1/4] brcmfmac: Add brcm,nvram_file_name " Priit Laes
2016-06-29 20:07               ` [linux-sunxi] Re: [PATCH 1/4] brcmfmac: Add brcm, nvram_file_name " Arnd Bergmann
2016-06-30  9:02               ` Kalle Valo
2016-06-30  9:50                 ` Hans de Goede
2016-06-30  9:58                   ` Kalle Valo
2016-06-30 10:04                     ` Hans de Goede
2016-06-30 10:18                       ` Jonas Gorski
2016-06-30 10:25                         ` Hans de Goede
2016-06-30 11:31                           ` Arnd Bergmann
2016-06-30 19:23                             ` Arend Van Spriel
2016-07-01  8:51                               ` Arnd Bergmann
2016-07-01  8:58                               ` Jonas Gorski
2016-07-02  6:59                                 ` Kalle Valo
2016-07-02 18:20                                 ` Arend Van Spriel
2016-07-02 21:30                                   ` Arnd Bergmann
2016-07-04  8:41                                     ` Arend Van Spriel
2016-07-04  8:55                                       ` Arnd Bergmann
2016-07-04  9:08                                         ` Arend Van Spriel
2016-07-04 14:54                                           ` Arnd Bergmann [this message]
2016-07-04 18:36                                             ` Arend van Spriel
2016-07-05 13:43                                               ` Arnd Bergmann
2016-07-06  8:08                                                 ` Arend Van Spriel
2016-07-06 13:42                                                   ` Arnd Bergmann
2016-07-06 19:19                                                     ` Arend Van Spriel
2016-07-07  8:46                                                       ` Arnd Bergmann
2016-07-07  9:16                                                         ` Arend Van Spriel
2016-07-07  9:24                                                           ` Arnd Bergmann
2016-07-17 21:45                                                         ` Rob Herring
2016-07-18  7:51                                                           ` Arend Van Spriel
2016-06-30  8:46           ` Kalle Valo
2016-06-30  9:49             ` Hans de Goede
2016-06-30  9:53           ` Hans de Goede
2016-07-01  2:08 ` [PATCH 1/4] brcmfmac: Add brcm,nvram_file_name " Rob Herring
2016-07-01  8:17   ` Arend Van Spriel
2016-07-01  9:20     ` Arnd Bergmann
2016-07-04 16:12     ` Rob Herring

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=8717879.O1RMZcQt4V@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