Received: by 10.192.165.148 with SMTP id m20csp556418imm; Fri, 4 May 2018 02:28:34 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqiFPmFkIPAiHCYNp7KI1R24BaEcHTXaMl1m68OjRp26FUZxxQCeGhcQBHrzSXHs86GPYvO X-Received: by 2002:a65:6027:: with SMTP id p7-v6mr8310960pgu.210.1525426114614; Fri, 04 May 2018 02:28:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525426114; cv=none; d=google.com; s=arc-20160816; b=OVDTq2QloeQKm2K+Wr7fz8Tsw/LLzmDFUuz88H67A7s5fRIZ/j794p4Dbwu0U9/1a5 cl3+XZLhXNKrwPhs2/IM1LWYIdgHDZYWqk1O+nB5RAYoR96MVl/zDQCee2R4owasBA+I ub9CBlBwvKEn857vKNn74zaTIWIpspHccC1yNApuPaGmshR0H7zmhvPTGF0pKjn+nvQL 40JG/x9x6eOeL9N4xuCAevwj0usbLtsoByk2fRH4UlbwyO7ox962LV1VSMoxxH8kBL/f mCiBQLdlhgCGh+//UJnEObzgCtWCBhrkYzqFR/Uey033C5E1yfbhn8m3h4eL0xWnIYRf hmkQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:subject:cc:to:from:message-id:date :arc-authentication-results; bh=t0UnEQQAHWSGOBOaS91utQdEbsHHFEAwxc3S2TeMG98=; b=VlExjd1SlOOfDKQluBGrCQkcKQuhSo7cF+G+3jfKaiTV95wbvvZc2z1MK6J+4sY5xw mA2c9aenHmAj4w9H+6c03vfkIWDDOds+ORZJTgRv4fOB2FX3tp5/u2AYIIS9Fe+O70kp d27vPhaM30r00WuSTQm2RYKIQBQmYfwidQikcTtvN7c98e3FU4Of5AZNJeH2p2AJKhVv H6pobywlKvBZ++c/2msyzphriFBOvck3Dfc2QJHZVYtIZjP9ReWM5/hwjQO4lSKsD8bf R6Dj0i3dGCeHvds7NMr/xM9DPknx3fUu4NBTQ9sgMMXBvhuORgKg2G3C9YXsZXIKQiE7 HWMg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b79si15525465pfm.104.2018.05.04.02.28.20; Fri, 04 May 2018 02:28:34 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751404AbeEDJ1A (ORCPT + 99 others); Fri, 4 May 2018 05:27:00 -0400 Received: from mx2.suse.de ([195.135.220.15]:38797 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750733AbeEDJ07 (ORCPT ); Fri, 4 May 2018 05:26:59 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id C17F6ACC0; Fri, 4 May 2018 09:26:57 +0000 (UTC) Date: Fri, 04 May 2018 11:26:56 +0200 Message-ID: From: Takashi Iwai To: "Connor McAdams" Cc: , =?UTF-8?B?IkrDqXLDqW15IExlZmF1cmUi?= , "Jaroslav Kysela" , , Subject: Re: [PATCH 3/9] Add PCI region2 iomap for SBZ In-Reply-To: <1525383771-11105-3-git-send-email-conmanx360@gmail.com> References: <1525383771-11105-1-git-send-email-conmanx360@gmail.com> <1525383771-11105-3-git-send-email-conmanx360@gmail.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/25.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 03 May 2018 23:42:44 +0200, Connor McAdams wrote: > > @@ -4691,8 +4699,17 @@ static void ca0132_free(struct hda_codec *codec) > > cancel_delayed_work_sync(&spec->unsol_hp_work); > snd_hda_power_up(codec); > - snd_hda_sequence_write(codec, spec->base_exit_verbs); > - ca0132_exit_chip(codec); > + switch (spec->quirk) { > + case QUIRK_SBZ: > + iounmap(spec->mem_base); > + snd_hda_sequence_write(codec, spec->base_exit_verbs); > + ca0132_exit_chip(codec); > + break; Do you need to unmap before the rest procedure? Usually the unmapping happens at the last, after all commands finished. > + default: > + snd_hda_sequence_write(codec, spec->base_exit_verbs); > + ca0132_exit_chip(codec); > + break; > + } > snd_hda_power_down(codec); > kfree(spec->spec_init_verbs); > kfree(codec->spec); So in this case, a cleaner way would be to add the conditional iounmap like: snd_hda_power_down(codec); if (spec->mem_base) iounmap(spec->mem_base); kfree(spec->spec_init_verbs); kfree(codec->spec); > @@ -4909,6 +4926,15 @@ static int patch_ca0132(struct hda_codec *codec) > else > spec->quirk = QUIRK_NONE; > > + /* Setup BAR Region 2 for Sound Blaster Z */ > + if (spec->quirk == QUIRK_SBZ) { > + spec->mem_base = pci_iomap(codec->bus->pci, 2, 0xC20); > + if (spec->mem_base == NULL) { > + codec_dbg(codec, "pci_iomap failed!"); > + codec_dbg(codec, "perhaps this is not an SBZ?"); This should be shown more explicitly, so better to be codec_warn() or codec_info(). thanks, Takashi