linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: Greg KH <gregkh@suse.de>
Cc: "Henry Ptasinski" <henryp@broadcom.com>,
	"Rafał Miłecki" <zajec5@gmail.com>,
	"Dan Carpenter" <error27@gmail.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"linville@tuxdriver.com" <linville@tuxdriver.com>,
	"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>
Subject: Re: [PATCH v2] Move brcm80211 to mainline
Date: Tue, 30 Aug 2011 08:22:29 +0200	[thread overview]
Message-ID: <1314685349.4011.17.camel@jlt3.sipsolutions.net> (raw)
In-Reply-To: <20110830042802.GA15320@suse.de> (sfid-20110830_063540_059569_2C362D1D)

On Mon, 2011-08-29 at 21:28 -0700, Greg KH wrote:

> > We understand the level of effort that it's taken for b43 to get as far as it
> > has, and was implemented without access to proprietary information, and it has
> > been impossible to support advanced chip features. We appreciate the difficulty
> > of your task and respect your accomplishments tremendously! 
> 
> Then why not try to help out here?
> 
> All other wireless companies have realized that this is the best way
> forward over time.  Remember, b43 was here first, you need to play nice
> with those developers.

Well, truth be told, b43 was there first for older chipsets, and I
played a major role in it existing back then. For the latest generation
chips that are supported by the staging driver, that driver was there
earlier and reverse engineering was ongoing even though code existed and
could have been used. That code may not have been as clean, but the
algorithms etc. are probably more tweaked & tuned to the chips.

> You really need to work with the b43 developers here.

I definitely agree with this. However, given the architectural
differences in the device/ucode combination, I don't think support can
be added to b43 easily.

> Why can't you just do the small changes needed to the b43 driver to add
> the missing functionality based on the fact that you know how the
> hardware works?

I don't think it would be small changes. Let me explain.

What we can hope for is sharing of PHY/Radio code between b43 and
brcmsmac. I'm sure this can be done in some way -- the PHY/Radio code
should be taken from Broadcom's driver most likely, the code in b43
isn't maintained by anyone with access to Si documentation & testing.
Some form of abstraction layer exists in both drivers, but they're
obviously not compatible at this point -- I believe this could be
solved.

However, on a higher level (MAC level) I believe that the drivers are
quite different. There are a bunch of MAC features like multi-MAC
support and probably soon P2P that b43 cannot support across the board
due to the version of the uCode it is tied to, especially on older
devices where such uCode never existed. New features, like P2P, will
likely only be supported by new uCode on new devices -- I don't see
Broadcom backporting & testing their new uCode, in most cases it
probably won't even be possible due to device restrictions (*).

As a result, I believe that attempting to share the MAC level code
between b43 and brcmsmac will lead to a maintenance disaster, b43 would
essentially be fragmented into lots of little code paths that depend on
the uCode API in use. I don't think that's worth it -- we split
b43/b43legacy for precisely that reason before.

I'm not saying we should merge brcmsmac as is, but I do think attempting
to push everything into b43 is bound to lead to lots of issues that we
all don't want to see. Code sharing should be possible on some level,
but at other levels it is fairly likely that code sharing would just
lead to bigger problems down the road.

johannes

(*) keep in mind that older devices only support 4k ucode instructions
and very little memory!


  reply	other threads:[~2011-08-30  6:22 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-07  0:20 [RFC] Move brcm80211 to mainline Henry Ptasinski
2011-07-07  0:40 ` Rafał Miłecki
2011-07-07  0:58   ` Pavel Roskin
2011-07-07  1:45     ` Greg KH
2011-07-07 14:46       ` Henry Ptasinski
2011-07-07 14:58         ` Greg KH
2011-07-07 21:55           ` Henry Ptasinski
2011-07-07 22:04             ` Greg KH
2011-07-07 22:25             ` Pavel Roskin
2011-07-07 15:17         ` Jonas Gorski
2011-07-07 21:21   ` Henry Ptasinski
2011-07-07  0:45 ` Pavel Roskin
2011-07-07 15:01   ` Henry Ptasinski
2011-08-24 22:28 ` [PATCH v2] " Henry Ptasinski
2011-08-24 22:53   ` Greg KH
2011-08-24 23:17     ` Henry Ptasinski
2011-08-24 23:47       ` Greg KH
2011-08-24 23:54       ` Joe Perches
2011-08-25  0:42         ` Henry Ptasinski
2011-08-25  0:52           ` Joe Perches
2011-08-25  1:11             ` Henry Ptasinski
2011-08-25  2:23           ` Greg KH
2011-08-25  2:45             ` Joe Perches
2011-08-25  5:02       ` Johannes Berg
2011-09-30 21:54         ` Arend Van Spriel
2011-09-30 22:11           ` Luis R. Rodriguez
2011-08-24 23:05   ` Dan Carpenter
2011-08-25  0:49     ` Henry Ptasinski
2011-08-24 23:10   ` Aaro Koskinen
2011-08-24 23:18     ` Henry Ptasinski
2011-08-24 23:54       ` Aaro Koskinen
2011-08-24 23:41   ` Jonas Gorski
2011-08-25  0:20     ` Henry Ptasinski
2011-08-25  8:53       ` Michael Büsch
2011-08-25 10:34       ` Jonas Gorski
2011-08-25 17:59         ` Henry Ptasinski
2011-08-25 21:07         ` Rafał Miłecki
2011-08-25 21:09           ` Rafał Miłecki
2011-08-26 17:58             ` Henry Ptasinski
2011-08-25 20:55   ` Rafał Miłecki
2011-08-25 21:11     ` Rafał Miłecki
2011-08-25 21:23     ` Larry Finger
2011-08-26 17:55     ` Henry Ptasinski
2011-08-26 19:37       ` Rafał Miłecki
2011-08-26 19:45       ` Rafał Miłecki
2011-08-27 12:05       ` Rafał Miłecki
2011-08-27 13:18         ` Michael Büsch
2011-08-27 13:58           ` Rafał Miłecki
2011-08-30 13:02           ` David Woodhouse
2011-08-27 14:35     ` Dan Carpenter
2011-08-27 14:50       ` Greg KH
2011-08-27 15:08         ` Rafał Miłecki
2011-08-27 15:12           ` Rafał Miłecki
2011-08-27 16:45             ` Hauke Mehrtens
2011-08-27 15:21           ` Greg KH
2011-08-27 15:27             ` Rafał Miłecki
2011-08-30  1:42             ` Henry Ptasinski
2011-08-30  4:28               ` Greg KH
2011-08-30  6:22                 ` Johannes Berg [this message]
2011-08-30  8:31                   ` Rafał Miłecki
2011-08-30  9:28                     ` Michael Büsch
2011-08-31 12:31                       ` Rafał Miłecki
2011-08-30  6:17               ` Rafał Miłecki
2011-09-10 16:48                 ` Rafał Miłecki
2011-08-30 18:14               ` Greg KH
2011-08-31 17:55                 ` Luis R. Rodriguez
2011-08-31 18:33                   ` Greg KH
2011-08-31 18:58                     ` Luis R. Rodriguez
2011-08-31 11:55               ` Hauke Mehrtens
2011-08-31 14:18                 ` John W. Linville
2011-08-31 17:46                   ` Luis R. Rodriguez
2011-08-31 17:47                     ` Luis R. Rodriguez
2011-08-27 14:59       ` Rafał Miłecki
  -- strict thread matches above, loose matches on Subject: below --
2011-08-27 16:41 Xose Vazquez Perez

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=1314685349.4011.17.camel@jlt3.sipsolutions.net \
    --to=johannes@sipsolutions.net \
    --cc=devel@linuxdriverproject.org \
    --cc=error27@gmail.com \
    --cc=gregkh@suse.de \
    --cc=henryp@broadcom.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linville@tuxdriver.com \
    --cc=zajec5@gmail.com \
    /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).