From patchwork Mon Jan 29 04:38:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 10189213 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 9F23B60388 for ; Mon, 29 Jan 2018 05:01:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F6A4286AB for ; Mon, 29 Jan 2018 05:01:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 83D5E28788; Mon, 29 Jan 2018 05:01:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B71AF286AD for ; Mon, 29 Jan 2018 05:01:06 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 2781E2682E6; Mon, 29 Jan 2018 05:56:13 +0100 (CET) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 9CAFC2682EA; Mon, 29 Jan 2018 05:56:11 +0100 (CET) Received: from relmlie1.idc.renesas.com (relmlor2.renesas.com [210.160.252.172]) by alsa0.perex.cz (Postfix) with ESMTP id C24DB2677A6 for ; Mon, 29 Jan 2018 05:38:22 +0100 (CET) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie1.idc.renesas.com with ESMTP; 29 Jan 2018 13:38:21 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 3A64876856; Mon, 29 Jan 2018 13:38:21 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.46,429,1511794800"; d="scan'208";a="269597412" Received: from mail-sg2apc01lp0246.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.246]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 29 Jan 2018 13:38:20 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=jsmFd+U3BO/EG7s+32qRwQTi30ISKFQ30DT2dIoCNEo=; b=d14YBLDobzgA5qTpfC+Kl3A3/QDzWaAYCqjGpwNKOmUjM7Qn+q0FpC76dKAXPE2TMiszlgL+0rTUZw1uQsVYixKmMdSqb0m+NYdovaDCyfB668wvZkgrUuuCGp6lhe5IHIas00lT0tjmLSO/VTAPsTlOi7LVUonTSeVcIvuQKnI= Received: from morimoto-PC.renesas.com (211.11.155.138) by PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.444.14; Mon, 29 Jan 2018 04:38:18 +0000 Message-ID: <87vafluvq5.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown In-Reply-To: <87inbl5q6q.wl%kuninori.morimoto.gx@renesas.com> References: <87607l8k9i.wl%kuninori.morimoto.gx@renesas.com> <87inbl5q6q.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Mon, 29 Jan 2018 04:38:18 +0000 X-Originating-IP: [211.11.155.138] X-ClientProxiedBy: OSBPR01CA0037.jpnprd01.prod.outlook.com (2603:1096:603:1e::25) To PS1PR0601MB1881.apcprd06.prod.outlook.com (2603:1096:803:8::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 70e94b71-0e34-4ffd-0605-08d566d21e7a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(4534165)(4627221)(201703031133081)(201702281549075)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:PS1PR0601MB1881; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 3:DXmLlCsMcYIO0e4hlIE3lrf98uHgXIeI/d1wlqlIT78sTlNSOrxbl3urQfVHBNXHFOJ3zFdl/1g+c4jMeAAr8q8SrWkeyq+k7PVwUd4uFM6ebITK1MTOYQYI11B+htCLudioOTfg9oe0Z/uNXNWTKHxDpbiCdTCceMogqOxIkrm1bHb2UYfYYtY3Pxnh/SsQNZTYx1egZ1A+M+uRPD7smgW1LX7LgqhmBFysNbP4blSPUonTsH7/QQGwbV1znufL; 25:TP7PuHsL0mheNAjGmlnglFdp+Fe/d86qTgBLeV/dQ8F1t27bVoDeCkVutff3QiCvMi9hYdhTVepyAR9GfbayQHjxS23nTzNgTbjFsFwg7TPzux9sKkC8HlzCdE/8I791QF/CwwsIhM2XZjgsA63PkYJYsvAASF5e6lKy/SsRui9vWXmLIJWHYwV+ONBg4Djr9b1aoJCLIMRI+3jBnSHydx5N5Myu0GOIKMzipxwneJ274yMDsvKG7bAT9ogf5ylNTD3VCPq1y/ub5Ekd+WS8vgCpOFNsU1v3EsqtY4v7sLGShskTg8vq99mtvve5NqxG3CTGTnuUgkB6udaGr8JgGw==; 31:2phGDatjgeDraDuXJMvMsCOeg6uf210ADjlizzVuqedGTpNbMEYLwRQiMIcBZADBG8PKUez824py/oxXsc8UgMzGLf21RFI7gcsblnofCsbaZKFCvF2OBFaGJGEEbyuz2dtTTRaL18zNbe/AE8MiTnVVtEyO3x3ZrBNobyCZarM35QPUpYIoqDa2+tDsg8pmpbhATv0oTGXEeS6miBbwQ7BejwplGdvsjtxZ7JcGfns= X-MS-TrafficTypeDiagnostic: PS1PR0601MB1881: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=kuninori.morimoto.gx@renesas.com; X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:9xZsMUBm2RfzbP0M08lUklTkriHUL8xDi9t+rutkkahvp0DVDgxNb1l20G5agYV5hNDFy/M38w8xEXygOOp1objz7+5w3j04a0tLvBLokX4ZKy9ZWW3lPeLk/cQGI3SLk0bXGG8oz1u16MoJ+RyWDE7ld1R+sGsTUXBzIsbpxhAFs93fEOqwCDV+v5AIuqVVq3k+/1bzO8Oy/fn+1dTkDd76aPVGGAT/+8vjMC+MyUwiiH5MrWNYTCQ4+akm2SgJK0LMeBeNqq1JX2tfNE8wnV3TLj3JV9QQGI/qUvSxc5jAcdBDlrOm7YM6ktyIFIcgW8b95RWDHtVLl1Y5ezVbHOFLk9jhyCJtTevtnLVTTHr3BDoWplHLBpKZSa0JBbLWdjEnAgDI7j+JKB//heLbo37kjkcHx6bjFqR3dqy8k2i2IabIOo0UBmMfmyLO7iRv/8vXGLw9suOS6J9La2M1QCPKQNniWmm2wykTBmvyJeve8MhbjqK5qE2VOY8u4wek; 4:CvDontZ4mAqc8tnk1EvFMI6M0aUEGI6LQFxyjyb9DArw1X1V0C7vGFNMhetH+Bkin/+Ja1avbHNQFsNqSGljsdOlEq+otv1bMp8LhIVnJLS6GNcMf63ScJYpNhleBnKDQ3IOxJYEzSaVYWL98ZrZyCfV1NV7Hxp3mbLlfs9lzWWQbsdItKP1Jl0JS15s/1XNWPy21n2S7M3KPRoC2BykFCbyAuOgRoqsmOlBHEd3kC0bdf/gyC9I1fIXbOPWdQGvYiwjSIB6vx9tqa046ga8mHJywPM3q8Py/RTGVu0Y9UKyhZibAZHl4/6/qo/KpRu9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231101)(944501161)(10201501046)(3002001)(6055026)(6041288)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:PS1PR0601MB1881; BCL:0; PCL:0; RULEID:; SRVR:PS1PR0601MB1881; X-Forefront-PRVS: 0567A15835 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(346002)(366004)(396003)(39860400002)(376002)(39380400002)(189003)(199004)(6116002)(50466002)(6916009)(6486002)(53416004)(47776003)(25786009)(305945005)(2950100002)(7736002)(386003)(52116002)(2906002)(7696005)(59450400001)(86362001)(3846002)(16526019)(68736007)(4326008)(23726003)(186003)(26005)(83506002)(106356001)(8676002)(81166006)(81156014)(16586007)(8936002)(58126008)(105586002)(69596002)(66066001)(36756003)(53936002)(76176011)(316002)(478600001)(5660300001)(97736004)(21314002)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:PS1PR0601MB1881; H:morimoto-PC.renesas.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: renesas.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; PS1PR0601MB1881; 23:HXe/fOaSk3hpStDBuD/aE80dSP0mGWUkm+Nidm5?= =?us-ascii?Q?jNymdnYUG0eLHFDdJNTHNX6uBps/XI4Y9iMpRDnkcFYjs5NV9ojWvfTAbhog?= =?us-ascii?Q?vdIHB3BGYuIWHuR2YLGo0zFz3/AxLu4Sz495KjyQQR2Y9b/adLo1AlI+UaqI?= =?us-ascii?Q?hRwMJ/n5JEw+HpE3duM96XOZbNJbs8kDCl/EmMxZ5zioS9MSeZLNx9YDuD1d?= =?us-ascii?Q?YBcV8ujZ+POuUnvqTviLXTVlil9FU7doVvW9ZfjnKRQznTJhxRUu8QfrRCVC?= =?us-ascii?Q?/ccOhp0kZZODFjIbllZ/Z66ghslP4cJpH1HdHcH0J17T2e2FWdGvcO3nNqAd?= =?us-ascii?Q?u0leszLd7lZgljR1dpVpeGVDkQtmFdiDMP13qhCtmpwVmc+EeW0fThIGfwvd?= =?us-ascii?Q?qCbfb5jjD/rN6AqklfN4gD4rF70uGSN+AplFfA2bZQRSw04yw2PYZ0FtNkP6?= =?us-ascii?Q?LAMpFSOdCJgUbi5K6oQ2WZJkW1Sm5cXLm4DLDoN/PlGu1amlFYXczDG8hZAk?= =?us-ascii?Q?LwvTq+d6OC2pOSdZH5DtL9BZ9rXjIU2puZjKLwQSil36Q0EsKneNG3uzVX9v?= =?us-ascii?Q?msiD/TR7Nj91db3qwE9D9MD8hA90GmVNR0XrUJQWxkd28qIKeOcg5hByfoWP?= =?us-ascii?Q?z1yCBevNsg0Vryv+Est1Vil/N8YSjxk3sC6hf0H7q2XPeA6H37qd6kzuzvV9?= =?us-ascii?Q?L9QMPAsHe2uAm3MNo9rsffGiyafG4RNIp0ZzMTpkNDKyEt8OwaxbVmD89QcP?= =?us-ascii?Q?dqPv98q9BSRLK87uIbOg/Mxnmt577XjJ0sGheYX3d1qiO3LTNSPf1nDK2yxD?= =?us-ascii?Q?hbdgP6I7Cl5NBWjWnU1LHizCz/fC++OLOqUWOQkqHkPpcVdBcnqlAY/zppIa?= =?us-ascii?Q?/VTd3gj6aBfCLUlZ0/W4PnSROt7j44UV6LuwoeC8QfJWh4hlY3E9tc6K4gRe?= =?us-ascii?Q?LrpJYvQY3IeZJoBpDpzpvh0bdsZeJ22Of2EzdlN+d1XqTA6PMjEOGTScGHYb?= =?us-ascii?Q?516uYyb5pzlVvx9huC5E2Va+ryjJr2A4XHtCF3/jWBhDAkWTLw3tqPD4P3pq?= =?us-ascii?Q?QU/IEN4OcB1ECkFBB34l97KjfR0U9MOuVEGxaCoQ8R4+MNLIg/u0GeiWZwc0?= =?us-ascii?Q?eFpVt/egFusHcC0HDYnyn6x5XqyZ3CD8lhEKF3o4fM/zcttikleIa6e8T7Mp?= =?us-ascii?Q?qaYwsmS/QT0lexq8=3D?= X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 6:5AkdTwQjrjP8EPimnm4JTyWRX4gtjc/U87/Ii14I42YPRfL3fzAv7E1/R2udAjBVEhCNFfqyLc0xJ55idcnSnuodtEu37Pw4wmWAfs36j6OVS/nM6+JWiN3pUwYI61c6pBfZQIQX5nkNzji4glEpQXywLeY1osfnpCKrjtqMqINQzq/3MYAyFpTiNtRo7T2CnFbfQwuSORPhoGMO0RHrwCUH/33TO+OMCE1EX7Hgm5MtvqcjrWyXVpI13g/WBNUz8JgpDlBQ46ugrijNgFBEN7ltK0Tu3y2IdaxM797QOlT56VuGO6KUi+4tTz1XOzE5rzDG2g8b008HhnJKIkmn04bBA33dNZu0vdkfxR16l24=; 5:p6xdvOxIKhYaUfqd2DEBNCXYAb3C1kd7k7SqebDJkyes/Q37gQaXj4TfuFUIQeMbQ0YR8jE8DS2HNchSlHxZzo9GSvPOLh9uOJHEftTO0N7dQ4o+Zq/mRhRI+pWf7hz0zVJnxGZU3z7UcSFOaqMy1bReWSlKOoiA/colTv0dd5E=; 24:vVsmzPKGO+EorpbEqy+37qkiI6vO4jyfT4UB1KyYUzvrZlGiB4Z7sqjZ/X+oN3OR/KLkRCKYNVl3MWR1y3h9L0mVeubeflVbaolhZEjrG20=; 7:QF8LGxw+NgSSC2JIyz+cVHdHzECfuFheVY9BL9Ki5gCS8k4PcZELr7Iv+2FAB238c1C6lJY1rExpwET/xidqn3aECJQM4tRTE/M54ERx+8akbMqOJhyO8pgpviFLxic01x6dgyApu2715rMuzGSzjPt7GaxTK3aWtXJx8O3PrZLSqpZ0Jf7lyNhzFy4/9HNWey1VafmLP4G7LVV/wWD2Q3lVcmgEgiKM2yV0KpgEZS3HdfqCsiEGzcUe5Tfloskk SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; PS1PR0601MB1881; 20:2eV3P5pt4FomKkW+JqZEgrUZN/WAbt0QIx3JLWVPq4LrkJvrKxnULWxycsRAoCru6UxMQErnlJuEEaz1d07pCaarZfQ2BSYQo+noN7BKqGDkR8rs4dWv1M3K4GPfPS0XuqlFQzearJoVCvNg0CQ7+4aJXCeSpiO9Ej8u8NNxaa4= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2018 04:38:18.0459 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 70e94b71-0e34-4ffd-0605-08d566d21e7a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 53d82571-da19-47e4-9cb4-625a166a4a2a X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PR0601MB1881 Cc: Linux-ALSA Subject: [alsa-devel] [PATCH v2 165/186] ASoC: stac9766: replace codec to component X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Now we can replace Codec to Component. Let's do it. Note: xxx_codec_xxx() -> xxx_component_xxx() .idle_bias_off = 0 -> .idle_bias_on = 1 .ignore_pmdown_time = 0 -> .use_pmdown_time = 1 - -> .endianness = 1 - -> .non_legacy_dai_naming = 1 Signed-off-by: Kuninori Morimoto --- sound/soc/codecs/stac9766.c | 77 +++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 41 deletions(-) diff --git a/sound/soc/codecs/stac9766.c b/sound/soc/codecs/stac9766.c index c66363a..f62101a 100644 --- a/sound/soc/codecs/stac9766.c +++ b/sound/soc/codecs/stac9766.c @@ -168,58 +168,58 @@ static SOC_ENUM_SINGLE_DECL(stac9766_stereo_mic_enum, static int ac97_analog_prepare(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { - struct snd_soc_codec *codec = dai->codec; + struct snd_soc_component *component = dai->component; struct snd_pcm_runtime *runtime = substream->runtime; unsigned short reg; /* enable variable rate audio, disable SPDIF output */ - snd_soc_update_bits(codec, AC97_EXTENDED_STATUS, 0x5, 0x1); + snd_soc_component_update_bits(component, AC97_EXTENDED_STATUS, 0x5, 0x1); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) reg = AC97_PCM_FRONT_DAC_RATE; else reg = AC97_PCM_LR_ADC_RATE; - return snd_soc_write(codec, reg, runtime->rate); + return snd_soc_component_write(component, reg, runtime->rate); } static int ac97_digital_prepare(struct snd_pcm_substream *substream, struct snd_soc_dai *dai) { - struct snd_soc_codec *codec = dai->codec; + struct snd_soc_component *component = dai->component; struct snd_pcm_runtime *runtime = substream->runtime; unsigned short reg; - snd_soc_write(codec, AC97_SPDIF, 0x2002); + snd_soc_component_write(component, AC97_SPDIF, 0x2002); /* Enable VRA and SPDIF out */ - snd_soc_update_bits(codec, AC97_EXTENDED_STATUS, 0x5, 0x5); + snd_soc_component_update_bits(component, AC97_EXTENDED_STATUS, 0x5, 0x5); reg = AC97_PCM_FRONT_DAC_RATE; - return snd_soc_write(codec, reg, runtime->rate); + return snd_soc_component_write(component, reg, runtime->rate); } -static int stac9766_set_bias_level(struct snd_soc_codec *codec, +static int stac9766_set_bias_level(struct snd_soc_component *component, enum snd_soc_bias_level level) { switch (level) { case SND_SOC_BIAS_ON: /* full On */ case SND_SOC_BIAS_PREPARE: /* partial On */ case SND_SOC_BIAS_STANDBY: /* Off, with power */ - snd_soc_write(codec, AC97_POWERDOWN, 0x0000); + snd_soc_component_write(component, AC97_POWERDOWN, 0x0000); break; case SND_SOC_BIAS_OFF: /* Off, without power */ /* disable everything including AC link */ - snd_soc_write(codec, AC97_POWERDOWN, 0xffff); + snd_soc_component_write(component, AC97_POWERDOWN, 0xffff); break; } return 0; } -static int stac9766_codec_resume(struct snd_soc_codec *codec) +static int stac9766_component_resume(struct snd_soc_component *component) { - struct snd_ac97 *ac97 = snd_soc_codec_get_drvdata(codec); + struct snd_ac97 *ac97 = snd_soc_component_get_drvdata(component); return snd_ac97_reset(ac97, true, STAC9766_VENDOR_ID, STAC9766_VENDOR_ID_MASK); @@ -272,13 +272,13 @@ static int stac9766_codec_resume(struct snd_soc_codec *codec) } }; -static int stac9766_codec_probe(struct snd_soc_codec *codec) +static int stac9766_component_probe(struct snd_soc_component *component) { struct snd_ac97 *ac97; struct regmap *regmap; int ret; - ac97 = snd_soc_new_ac97_codec(codec, STAC9766_VENDOR_ID, + ac97 = snd_soc_new_ac97_component(component, STAC9766_VENDOR_ID, STAC9766_VENDOR_ID_MASK); if (IS_ERR(ac97)) return PTR_ERR(ac97); @@ -289,46 +289,42 @@ static int stac9766_codec_probe(struct snd_soc_codec *codec) goto err_free_ac97; } - snd_soc_codec_init_regmap(codec, regmap); - snd_soc_codec_set_drvdata(codec, ac97); + snd_soc_component_init_regmap(component, regmap); + snd_soc_component_set_drvdata(component, ac97); return 0; err_free_ac97: - snd_soc_free_ac97_codec(ac97); + snd_soc_free_ac97_component(ac97); return ret; } -static int stac9766_codec_remove(struct snd_soc_codec *codec) +static void stac9766_component_remove(struct snd_soc_component *component) { - struct snd_ac97 *ac97 = snd_soc_codec_get_drvdata(codec); + struct snd_ac97 *ac97 = snd_soc_component_get_drvdata(component); - snd_soc_codec_exit_regmap(codec); - snd_soc_free_ac97_codec(ac97); - return 0; + snd_soc_component_exit_regmap(component); + snd_soc_free_ac97_component(ac97); } -static const struct snd_soc_codec_driver soc_codec_dev_stac9766 = { - .component_driver = { - .controls = stac9766_snd_ac97_controls, - .num_controls = ARRAY_SIZE(stac9766_snd_ac97_controls), - }, - .set_bias_level = stac9766_set_bias_level, - .suspend_bias_off = true, - .probe = stac9766_codec_probe, - .remove = stac9766_codec_remove, - .resume = stac9766_codec_resume, +static const struct snd_soc_component_driver soc_component_dev_stac9766 = { + .controls = stac9766_snd_ac97_controls, + .num_controls = ARRAY_SIZE(stac9766_snd_ac97_controls), + .set_bias_level = stac9766_set_bias_level, + .probe = stac9766_component_probe, + .remove = stac9766_component_remove, + .resume = stac9766_component_resume, + .suspend_bias_off = 1, + .idle_bias_on = 1, + .use_pmdown_time = 1, + .endianness = 1, + .non_legacy_dai_naming = 1, + }; static int stac9766_probe(struct platform_device *pdev) { - return snd_soc_register_codec(&pdev->dev, - &soc_codec_dev_stac9766, stac9766_dai, ARRAY_SIZE(stac9766_dai)); -} - -static int stac9766_remove(struct platform_device *pdev) -{ - snd_soc_unregister_codec(&pdev->dev); - return 0; + return devm_snd_soc_register_component(&pdev->dev, + &soc_component_dev_stac9766, stac9766_dai, ARRAY_SIZE(stac9766_dai)); } static struct platform_driver stac9766_codec_driver = { @@ -337,7 +333,6 @@ static int stac9766_remove(struct platform_device *pdev) }, .probe = stac9766_probe, - .remove = stac9766_remove, }; module_platform_driver(stac9766_codec_driver);