diff options
author | Corentin Labbe <clabbe@baylibre.com> | 2020-09-25 21:30:39 +0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2020-10-01 10:55:31 +0300 |
commit | 4bae5db2f28d6402f41aa845fe061c19eee9da4b (patch) | |
tree | 249e1e72a3b01d939c7ffaa612d31345af86c1b0 /drivers | |
parent | af71064bc47b762b9bc78f8d2cc4cdacd863ee0f (diff) | |
download | linux-4bae5db2f28d6402f41aa845fe061c19eee9da4b.tar.xz |
media: zoran: use devm for videocodec_master alloc
Let's use devm allocations for videocodec, this simplify code.
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/media/zoran/zoran_card.c | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/drivers/staging/media/zoran/zoran_card.c b/drivers/staging/media/zoran/zoran_card.c index fe0c5a7c967c..a3e7b0027d69 100644 --- a/drivers/staging/media/zoran/zoran_card.c +++ b/drivers/staging/media/zoran/zoran_card.c @@ -996,18 +996,10 @@ static void zoran_remove(struct pci_dev *pdev) goto exit_free; /* unregister videocodec bus */ - if (zr->codec) { - struct videocodec_master *master = zr->codec->master_data; - + if (zr->codec) videocodec_detach(zr->codec); - kfree(master); - } - if (zr->vfe) { - struct videocodec_master *master = zr->vfe->master_data; - + if (zr->vfe) videocodec_detach(zr->vfe); - kfree(master); - } /* unregister i2c bus */ zoran_unregister_i2c(zr); @@ -1036,7 +1028,7 @@ static struct videocodec_master *zoran_setup_videocodec(struct zoran *zr, { struct videocodec_master *m = NULL; - m = kmalloc(sizeof(*m), GFP_KERNEL); + m = devm_kmalloc(&zr->pci_dev->dev, sizeof(*m), GFP_KERNEL); if (!m) return m; @@ -1245,7 +1237,7 @@ static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent) zr->codec = videocodec_attach(master_codec); if (!zr->codec) { pci_err(pdev, "%s - no codec found\n", __func__); - goto zr_free_codec; + goto zr_unreg_i2c; } if (zr->codec->type != zr->card.video_codec) { pci_err(pdev, "%s - wrong codec\n", __func__); @@ -1259,7 +1251,7 @@ static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent) zr->vfe = videocodec_attach(master_vfe); if (!zr->vfe) { pci_err(pdev, "%s - no VFE found\n", __func__); - goto zr_free_vfe; + goto zr_detach_codec; } if (zr->vfe->type != zr->card.video_vfe) { pci_err(pdev, "%s = wrong VFE\n", __func__); @@ -1280,12 +1272,8 @@ static int zoran_probe(struct pci_dev *pdev, const struct pci_device_id *ent) zr_detach_vfe: videocodec_detach(zr->vfe); -zr_free_vfe: - kfree(master_vfe); zr_detach_codec: videocodec_detach(zr->codec); -zr_free_codec: - kfree(master_codec); zr_unreg_i2c: zoran_unregister_i2c(zr); zr_free_irq: |