From: Steve d. <st...@co...> - 2010-07-30 23:05:18
|
Thomas, My code is built against/for an OLPC XO-1.5 from a heavily patched (with OLPC stuff) pull of the wireless-testing tree, pulled sometime around April. You can do a git clone and check the log and see exactly when that was if you care. This was a 2.6.34-rc5-wl version. I intend to get it into the kernel (by way of wireless-testing) shortly, but I want to get a bit more testing from OLPC. So until I get to that point, no, there is no more recent version to go against. I welcome your patches. I'm curious as to what conflicts you had. I know of one very minor change to libertas_tf in wireless-testing (it gets rid of the noise member actually). I monitor the list fairly carefully but haven't noticed that anyone is actively doing anything with libertas_tf other than me. As to the SDIO constants you patched... take a look at the latest changes to libertas. That part of the code was pretty much copied from there, so if there was a change to the underlying SDIO stuff, then libertas should have been updated. These are issues I'll have to address as I try to get this upstreamed, but I'm still a few weeks away from that effort. I appreciate your comments and help, but between being on vacation at the moment and having a few other hot projects I can't do much till then. Thanks, - Steve On Fri, Jul 30, 2010 at 9:10 AM, Thomas Klute <tho...@un...> wrote: > Hi Steve! > > When I try to apply your patches to the latest linux-omap tree > (git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git, 2.6.35-rc4) > I get a bunch of conflicts. I could solve some minor ones, but some went > deeper into the driver code. I can provide you with additional details > if you like. > > If I copy your drivers/net/wireless/libertas_tf/ into the omap tree, the > build fails with the following errors: > > CC [M] drivers/net/wireless/libertas_tf/main.o > drivers/net/wireless/libertas_tf/main.c:480: warning: ‘struct > dev_addr_list’ declared inside parameter list > drivers/net/wireless/libertas_tf/main.c:480: warning: its scope is only > this definition or declaration, which is probably not what you want > drivers/net/wireless/libertas_tf/main.c: In function > ‘lbtf_op_prepare_multicast’: > drivers/net/wireless/libertas_tf/main.c:492: error: dereferencing > pointer to incomplete type > drivers/net/wireless/libertas_tf/main.c:494: error: dereferencing > pointer to incomplete type > drivers/net/wireless/libertas_tf/main.c: At top level: > drivers/net/wireless/libertas_tf/main.c:617: warning: initialization > from incompatible pointer type > drivers/net/wireless/libertas_tf/main.c: In function ‘lbtf_rx’: > drivers/net/wireless/libertas_tf/main.c:641: error: ‘struct > ieee80211_rx_status’ has no member named ‘noise’ > make[6]: *** [drivers/net/wireless/libertas_tf/main.o] Fehler 1 > > At first glance this looks like incompatible changes between your tree > and mainline wireless. Do you have any hints how to fix that? Is there a > newer tree I could try? > > I also tried adding your libertas_tf tree to the v2.6.34 tag. The result: > > CC [M] drivers/net/wireless/libertas_tf/if_sdio.o > drivers/net/wireless/libertas_tf/if_sdio.c: In function ‘if_sdio_probe’: > drivers/net/wireless/libertas_tf/if_sdio.c:1248: error: ‘SDIO_BUS_ECSI’ > undeclared (first use in this function) > drivers/net/wireless/libertas_tf/if_sdio.c:1248: error: (Each undeclared > identifier is reported only once > drivers/net/wireless/libertas_tf/if_sdio.c:1248: error: for each > function it appears in.) > make[6]: *** [drivers/net/wireless/libertas_tf/if_sdio.o] Fehler 1 > > I could fix the compile by the following patch: > > diff --git a/include/linux/mmc/sdio.h b/include/linux/mmc/sdio.h > index 0ebaef5..329a8fa 100644 > --- a/include/linux/mmc/sdio.h > +++ b/include/linux/mmc/sdio.h > @@ -94,6 +94,8 @@ > > #define SDIO_BUS_WIDTH_1BIT 0x00 > #define SDIO_BUS_WIDTH_4BIT 0x02 > +#define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI > interrupt */ > +#define SDIO_BUS_SCSI 0x40 /* Support continuous SPI > interrupt */ > > #define SDIO_BUS_ASYNC_INT 0x20 > > I wasn't able to test the result yet, though. > > Regards, > Thomas Klute > > Am 14.07.2010 19:12, schrieb Steve deRosier: >> OK, >> >> I'm guessing you're probably on the master branch, not workspace. >> >> Basic instructions (you'll need to modify for your environment): >> 1. git clone git://dev.laptop.org/users/javier/wireless-testing workspace >> 2. git checkout workspace >> 3. For sanity, do a git log. If you don't see tons of commits with my >> name at the top, somethings wrong. Also an `ls >> drivers/net/wireless/libertas_tf/` should show the files if_sdio.c and >> if_sdio.h. >> 4. If you don't already have patch >> e9bd5bcde7af27ebb92bb866afde5ef5e4f3dc6c " libertastf: add >> configurable debug messages" in your kernel, grab that one and apply >> it first: >> git format-patch >> e9bd5bcde7af27ebb92bb866afde5ef5e4f3dc6c^..e9bd5bcde7af27ebb92bb866afde5ef5e4f3dc6c >> 5. Get all related patches: >> git format-patch >> 6c38ca087cad41d7cc156d65e6a5706783d81563^..e0d2f7cdeaf70709793fc77ae2445bd7067d261d >> >> Apply each one to your tree. If your tree is a git tree, you can use >> `git am` to apply them. If it's just a kernel tar-ball, you can use >> `patch -p1`. >> >> If you don't want to go to the trouble to patch, you should be able to do this: >> 1. checkout my tree as above. >> 2. grab the entire libertas_tf from drivers/net/wireless/libertas_tf >> and copy them to your tree. >> 3. Add the following patches to your drivers/net/wireless/Kconfig: >> diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig >> index 77500cb..2fbe9b4 100644 >> --- a/drivers/net/wireless/Kconfig >> +++ b/drivers/net/wireless/Kconfig >> @@ -38,6 +38,12 @@ config LIBERTAS_THINFIRM >> ---help--- >> A library for Marvell Libertas 8xxx devices using thinfirm. >> >> +config LIBERTAS_THINFIRM_DEBUG >> + bool "Enable full debugging output in the Libertas thin >> firmware module." >> + depends on LIBERTAS_THINFIRM >> + ---help--- >> + Debugging support. >> + >> config LIBERTAS_THINFIRM_USB >> tristate "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware" >> depends on LIBERTAS_THINFIRM && USB >> >> >> diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig >> index 2fbe9b4..32ed41a 100644 >> --- a/drivers/net/wireless/Kconfig >> +++ b/drivers/net/wireless/Kconfig >> @@ -44,6 +44,12 @@ config LIBERTAS_THINFIRM_DEBUG >> ---help--- >> Debugging support. >> >> +config LIBERTAS_THINFIRM_SDIO >> + tristate "Marvell Libertas 8686 SDIO 802.11b/g cards" >> + depends on LIBERTAS_THINFIRM && MMC >> + ---help--- >> + A driver for Marvell Libertas 8686 SDIO devices. >> + >> config LIBERTAS_THINFIRM_USB >> tristate "Marvell Libertas 8388 USB 802.11b/g cards with thin firmware" >> depends on LIBERTAS_THINFIRM && USB >> >> >> Note that you'll need a fairly current version of mac80211 for this >> all to work. I don't know how far back you can go and my driver will >> still build and function. I branched off wireless-testing about 2.5 >> months ago. >> >> - Steve >> >> >> On Tue, Jul 13, 2010 at 9:05 AM, Victor Andres <vi...@cy...> wrote: >>> Hello Steve, >>> I'm trying to find the patch you say from your kernel, but I have downloaded >>> it (from git://dev.laptop.org/users/javier/wireless-testing workspace) and I >>> don't find it. I'm looking for "_SDIO", "THINFIRM_" ... (using grep) but I >>> don't localize it. >>> >>> Excuse me for beeing so lame >>> >>> Regards, >>> Víctor Andrés >>> >>> >>> >>> ----- Original Message ----- From: "Steve deRosier" <st...@co...> >>> To: "Victor Andres" <vi...@cy...> >>> Cc: <gum...@li...> >>> Sent: Monday, July 12, 2010 7:18 PM >>> Subject: Re: [Gumstix-users] Marvell 88W8686 thin firmware released for SDIO >>> mode >>> >>> >>> If you're only grabbing the specific parts from my kernel, you'll >>> probably want to export patches and apply them. Reason: you'll need >>> the patch to the Kconfig file in the wireless directory >>> (drivers/net/wireless/Kconfig IIRC). This is what specifically adds >>> CONFIG_LIBERTAS_THINFIRM_SDIO and makes the kernel config aware of the >>> new driver. >>> >>> Good luck, >>> >>> - Steve >>> >>> On Mon, Jul 12, 2010 at 10:13 AM, Victor Andres <vi...@cy...> >>> wrote: >>>> >>>> Ok, I'm in a error, the libertas for the Overo is SDIO (not USB). In the >>>> default kernel configuration, in the .config file there is the posibility >>>> to >>>> enable the CONFIG_LIBERTAS_THINFIRM_USB, but not _SDIO .... >>>> As I can understand, I have to add the sources driver to the >>>> drivers/net/wireless/libertas_tf/, then select the correct options in the >>>> .config (I have to see how to do these steps, it's newer for me), and then >>>> recompile it. >>>> >>>> Thanks Steve by your aclarations >>>> >>>> >>>> >>>> ----- Original Message ----- From: "Steve deRosier" <st...@co...> >>>> To: "J. L." <vwy...@gm...> >>>> Cc: "Victor Andres" <vi...@cy...>; "General mailing list for >>>> gumstix users." <gum...@li...> >>>> Sent: Monday, July 12, 2010 6:44 PM >>>> Subject: Re: [Gumstix-users] Marvell 88W8686 thin firmware released for >>>> SDIO >>>> mode >>>> >>>> >>>>> Hi, >>>>> >>>>> I can't speak for Gumstix platforms, and note that this has only been >>>>> tested on OLPC's XO 1.5, but in general the procedure is: >>>>> 1. Grab the kernel. Note that it's in branch workspace. Assuming >>>>> that your mac80211 is new enough in whatever kernel version you're >>>>> using, you might be able to just grab my patches and apply them. But >>>>> do whatever seems to make sense. Note that the driver in question is >>>>> in >>>>> drivers/net/wireless/libertas_tf/ >>>>> 2. Enable the following parts in your .config: >>>>> CONFIG_WLAN=y >>>>> CONFIG_LIBERTAS_THINFIRM=m >>>>> CONFIG_LIBERTAS_THINFIRM_DEBUG=y >>>>> CONFIG_LIBERTAS_THINFIRM_SDIO=m >>>>> obviously also include mac80211 and whatever else you feel you need >>>>> 3. Build the kernel, or at least the driver, depending on what you >>>>> need to do. Install it on your device. >>>>> 4. Grab the firmware and place in your path where your firmware goes. >>>>> On the XOs it's /lib/firmware, but your platform may vary. Name it >>>>> sd8686tf.bin. >>>>> 5. Reboot your platform >>>>> >>>>> Important note: you'll need the helper firmware also. If you were >>>>> using the libertas driver before, you should already have it. The one >>>>> for the XO 1.5 (which I don't see why it wouldn't work on your >>>>> platform) is at: >>>>> http://dev.laptop.org/pub/firmware/libertas/sd8686_helper.bin >>>>> >>>>> If you have trouble, I recommend doing simplified test cases. For >>>>> example, connect to an open AP before trying a WPA AP. You can also >>>>> get a ton of information of where the problem is by looking at the >>>>> dmesg debug output. To enable: >>>>> `echo 0xffffffff > /sys/module/libertas_tf/parameters/libertas_tf_debug` >>>>> >>>>> Not having your platform, there's limited help I can give, but I'll >>>>> answer questions where I can. >>>>> >>>>> - Steve >>> >>> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> gumstix-users mailing list >> gum...@li... >> https://lists.sourceforge.net/lists/listinfo/gumstix-users > > |