From patchwork Mon Jun 17 16:19:03 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Cooper X-Patchwork-Id: 2734841 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id A5CCFC0AB1 for ; Mon, 17 Jun 2013 16:19:18 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 4A58320451 for ; Mon, 17 Jun 2013 16:19:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4E82420450 for ; Mon, 17 Jun 2013 16:19:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752090Ab3FQQTJ (ORCPT ); Mon, 17 Jun 2013 12:19:09 -0400 Received: from mho-02-ewr.mailhop.org ([204.13.248.72]:23203 "EHLO mho-02-ewr.mailhop.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751290Ab3FQQTF (ORCPT ); Mon, 17 Jun 2013 12:19:05 -0400 Received: from pool-72-84-113-162.nrflva.fios.verizon.net ([72.84.113.162] helo=titan) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1Uoc92-0008KR-RI; Mon, 17 Jun 2013 16:19:05 +0000 Received: from titan.lakedaemon.net (localhost [127.0.0.1]) by titan (Postfix) with ESMTP id 21E5D44D095; Mon, 17 Jun 2013 12:19:03 -0400 (EDT) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 72.84.113.162 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19vya87RklXhDzl4Xe2UEPYhlSm/NEAFTY= Date: Mon, 17 Jun 2013 12:19:03 -0400 From: Jason Cooper To: rvossen@broadcom.com, arend@broadcom.com, frankyl@broadcom.com Cc: linux-wireless@vger.kernel.org Subject: [RFC PATCH] net: brcmfmac: add sdio chip id 0x4319 Message-ID: <20130617161903.GN31667@titan.lakedaemon.net> References: <20130612222123.GB31667@titan.lakedaemon.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20130612222123.GB31667@titan.lakedaemon.net> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Added Franky... On Wed, Jun 12, 2013 at 06:21:23PM -0400, Jason Cooper wrote: > All, > > I have a Seagate Wireless Plus I am trying to put a vanilla kernel on > (currently v3.10-rc5 for various omap DT bits). > > I have the board booting and running a debian rootfs on the HD. I just > got mmc to come up and I've discovered that the wireless card is vendor > 0x02d0, device 0x4319. > > My hope, once I got to this point, was that I would be able to use > the mainline, open source driver. Unfortunately, it looks like brcmfmac > lost support for the 0x4319 while it was in staging. > > The commit in question is: > > 4dad253 staging: brcm80211: remove code for unsupported chip > > Is adding it back in a bridge too far? It looks like only two things are needed, adding the chip id and then setting the addresses. Here's a preliminary patch to do just that. Note, the addresses I have used are a straight copy from the 4329. It causes this: [ 12.346466] mmcblk mmc0:0001: no of_node; not parsing pinctrl DT [ 12.353149] brcmfmac_sdio mmc0:0001:1: no of_node; not parsing pinctrl DT [ 12.360717] brcmfmac_sdio mmc0:0001:2: no of_node; not parsing pinctrl DT [ 12.368804] brcmfmac: brcmf_sdio_chip_drivestrengthinit: No SDIO Drive strength init done for chip 4319 rev 1 pmurev 7 [ 12.380462] brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00408=03, Err: -22 [ 12.391906] brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00408=03, Err: -22 [ 12.403289] brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00408=03, Err: -22 [ 12.412261] brcmfmac: brcmf_sdio_regrw_helper: failed with -22 [ 12.418457] brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00408=01, Err: -22 [ 12.429718] brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00408=01, Err: -22 [ 12.441101] brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00408=01, Err: -22 [ 12.450073] brcmfmac: brcmf_sdio_regrw_helper: failed with -22 I've taken a quick look at aosp, the provided GPL broadcom code, and I haven't seen anything for the 4319 wrt to addresses. How hard would it be to get those addresses from you guys? thx, Jason. ----8<------ commit 8fa440e8d6da21c95cdbc9c1ced76d5962cd9e3d Author: Jason Cooper Date: Mon Jun 17 15:30:43 2013 +0000 net: brcmfmac: add sdio chip id 0x4319 Signed-off-by: Jason Cooper --- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c index 44fa0cd..75ddc2b 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c @@ -43,6 +43,7 @@ #define SDIO_DEVICE_ID_BROADCOM_43143 43143 #define SDIO_DEVICE_ID_BROADCOM_43241 0x4324 +#define SDIO_DEVICE_ID_BROADCOM_4319 0x4319 #define SDIO_DEVICE_ID_BROADCOM_4329 0x4329 #define SDIO_DEVICE_ID_BROADCOM_4330 0x4330 #define SDIO_DEVICE_ID_BROADCOM_4334 0x4334 @@ -55,6 +56,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = { {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43143)}, {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_43241)}, + {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4319)}, {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4329)}, {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4330)}, {SDIO_DEVICE(SDIO_VENDOR_ID_BROADCOM, SDIO_DEVICE_ID_BROADCOM_4334)}, diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c index d248751..68816ec 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c @@ -3551,6 +3551,8 @@ static bool brcmf_sdbrcm_chipmatch(u16 chipid) return true; if (chipid == BCM43241_CHIP_ID) return true; + if (chipid == BCM4319_CHIP_ID) + return true; if (chipid == BCM4329_CHIP_ID) return true; if (chipid == BCM4330_CHIP_ID) diff --git a/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c b/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c index ca72177..4336dbb 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/sdio_chip.c @@ -31,6 +31,15 @@ #include "sdio_chip.h" /* chip core base & ramsize */ +/* bcm4319 */ +/* SDIO device core, ID 0x829 */ +#define BCM4319_CORE_BUS_BASE 0x18011000 +/* internal memory core, ID 0x80e */ +#define BCM4319_CORE_SOCRAM_BASE 0x18003000 +/* ARM Cortex M3 core, ID 0x82a */ +#define BCM4319_CORE_ARM_BASE 0x18002000 +#define BCM4319_RAMSIZE 0x48000 + /* bcm4329 */ /* SDIO device core, ID 0x829 */ #define BCM4329_CORE_BUS_BASE 0x18011000 @@ -484,6 +493,15 @@ static int brcmf_sdio_chip_recognition(struct brcmf_sdio_dev *sdiodev, ci->c_inf[3].cib = 0x07004211; ci->ramsize = 0x90000; break; + case BCM4319_CHIP_ID: + ci->c_inf[1].id = BCMA_CORE_SDIO_DEV; + ci->c_inf[1].base = BCM4319_CORE_BUS_BASE; + ci->c_inf[2].id = BCMA_CORE_INTERNAL_MEM; + ci->c_inf[2].base = BCM4319_CORE_SOCRAM_BASE; + ci->c_inf[3].id = BCMA_CORE_ARM_CM3; + ci->c_inf[3].base = BCM4319_CORE_ARM_BASE; + ci->ramsize = BCM4319_RAMSIZE; + break; case BCM4329_CHIP_ID: ci->c_inf[1].id = BCMA_CORE_SDIO_DEV; ci->c_inf[1].base = BCM4329_CORE_BUS_BASE; diff --git a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h index c1fe245..c2434db 100644 --- a/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h +++ b/drivers/net/wireless/brcm80211/include/brcm_hw_ids.h @@ -36,6 +36,7 @@ #define BCM43236_CHIP_ID 43236 #define BCM43238_CHIP_ID 43238 #define BCM43241_CHIP_ID 0x4324 +#define BCM4319_CHIP_ID 0x4319 #define BCM4329_CHIP_ID 0x4329 #define BCM4330_CHIP_ID 0x4330 #define BCM4331_CHIP_ID 0x4331