[media] cx88: remove dependency on btcx-risc
authorHans Verkuil <hans.verkuil@cisco.com>
Fri, 29 Aug 2014 07:11:54 +0000 (04:11 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Mon, 3 Nov 2014 10:29:51 +0000 (08:29 -0200)
btcx-risc is for the bt8xx driver and other drivers shouldn't depend
on it. There is no benefit to use that module just to do a
pci_zalloc_consistent.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/cx88/Kconfig
drivers/media/pci/cx88/Makefile
drivers/media/pci/cx88/cx88-alsa.c
drivers/media/pci/cx88/cx88-blackbird.c
drivers/media/pci/cx88/cx88-core.c
drivers/media/pci/cx88/cx88-dvb.c
drivers/media/pci/cx88/cx88-mpeg.c
drivers/media/pci/cx88/cx88-vbi.c
drivers/media/pci/cx88/cx88-video.c
drivers/media/pci/cx88/cx88.h

index d5b125e4ab0296ebef74ea30d0d33948bab64381..14b813d634a89859b7b754d7478746a842d07066 100644 (file)
@@ -2,7 +2,6 @@ config VIDEO_CX88
        tristate "Conexant 2388x (bt878 successor) support"
        depends on VIDEO_DEV && PCI && I2C && RC_CORE
        select I2C_ALGOBIT
-       select VIDEO_BTCX
        select VIDEOBUF2_DMA_SG
        select VIDEO_TUNER
        select VIDEO_TVEEPROM
index 8619c1becee240311282200dcded6e7b20a9de8b..d3679c3ee248bf5bf5e14d1d0de2ea166bb2f1aa 100644 (file)
@@ -11,7 +11,6 @@ obj-$(CONFIG_VIDEO_CX88_DVB) += cx88-dvb.o
 obj-$(CONFIG_VIDEO_CX88_VP3054) += cx88-vp3054-i2c.o
 
 ccflags-y += -Idrivers/media/i2c
-ccflags-y += -Idrivers/media/common
 ccflags-y += -Idrivers/media/tuners
 ccflags-y += -Idrivers/media/dvb-core
 ccflags-y += -Idrivers/media/dvb-frontends
index 73021a22de1b16ba4372d03750f1e9d063d0fe88..7f8dc60028d510eb80511f147f99ebcee3a433e6 100644 (file)
@@ -61,7 +61,7 @@
 
 struct cx88_audio_buffer {
        unsigned int               bpl;
-       struct btcx_riscmem        risc;
+       struct cx88_riscmem        risc;
        void                    *vaddr;
        struct scatterlist      *sglist;
        int                     sglen;
@@ -370,12 +370,15 @@ static int cx88_alsa_dma_free(struct cx88_audio_buffer *buf)
 
 static int dsp_buffer_free(snd_cx88_card_t *chip)
 {
+       struct cx88_riscmem *risc = &chip->buf->risc;
+
        BUG_ON(!chip->dma_size);
 
        dprintk(2,"Freeing buffer\n");
        cx88_alsa_dma_unmap(chip);
        cx88_alsa_dma_free(chip->buf);
-       btcx_riscmem_free(chip->pci, &chip->buf->risc);
+       if (risc->cpu)
+               pci_free_consistent(chip->pci, risc->size, risc->cpu, risc->dma);
        kfree(chip->buf);
 
        chip->buf = NULL;
index b24266ec2b5d18e3d17fa2877249966dafe6bfa3..f27a3f134025fc5edca7847605ac27ff64802d5f 100644 (file)
@@ -666,8 +666,11 @@ static void buffer_finish(struct vb2_buffer *vb)
        struct cx8802_dev *dev = vb->vb2_queue->drv_priv;
        struct cx88_buffer *buf = container_of(vb, struct cx88_buffer, vb);
        struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
+       struct cx88_riscmem *risc = &buf->risc;
 
-       btcx_riscmem_free(dev->pci, &buf->risc);
+       if (risc->cpu)
+               pci_free_consistent(dev->pci, risc->size, risc->cpu, risc->dma);
+       memset(risc, 0, sizeof(*risc));
 
        dma_unmap_sg(&dev->pci->dev, sgt->sgl, sgt->nents, DMA_FROM_DEVICE);
 }
index 902b662be2ff9028e0e82aea3c2933b61252c552..bbdbb58576ef6b72c9ccf5ac6313460581a26c60 100644 (file)
@@ -132,14 +132,13 @@ static __le32* cx88_risc_field(__le32 *rp, struct scatterlist *sglist,
        return rp;
 }
 
-int cx88_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
+int cx88_risc_buffer(struct pci_dev *pci, struct cx88_riscmem *risc,
                     struct scatterlist *sglist,
                     unsigned int top_offset, unsigned int bottom_offset,
                     unsigned int bpl, unsigned int padding, unsigned int lines)
 {
        u32 instructions,fields;
        __le32 *rp;
-       int rc;
 
        fields = 0;
        if (UNSET != top_offset)
@@ -153,8 +152,11 @@ int cx88_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
           region may be smaller than PAGE_SIZE */
        instructions  = fields * (1 + ((bpl + padding) * lines) / PAGE_SIZE + lines);
        instructions += 4;
-       if ((rc = btcx_riscmem_alloc(pci,risc,instructions*8)) < 0)
-               return rc;
+       risc->size = instructions * 8;
+       risc->dma = 0;
+       risc->cpu = pci_zalloc_consistent(pci, risc->size, &risc->dma);
+       if (NULL == risc->cpu)
+               return -ENOMEM;
 
        /* write risc instructions */
        rp = risc->cpu;
@@ -171,13 +173,12 @@ int cx88_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
        return 0;
 }
 
-int cx88_risc_databuffer(struct pci_dev *pci, struct btcx_riscmem *risc,
+int cx88_risc_databuffer(struct pci_dev *pci, struct cx88_riscmem *risc,
                         struct scatterlist *sglist, unsigned int bpl,
                         unsigned int lines, unsigned int lpi)
 {
        u32 instructions;
        __le32 *rp;
-       int rc;
 
        /* estimate risc mem: worst case is one write per page border +
           one write per scan line + syncs + jump (all 2 dwords).  Here
@@ -185,8 +186,11 @@ int cx88_risc_databuffer(struct pci_dev *pci, struct btcx_riscmem *risc,
           than PAGE_SIZE */
        instructions  = 1 + (bpl * lines) / PAGE_SIZE + lines;
        instructions += 3;
-       if ((rc = btcx_riscmem_alloc(pci,risc,instructions*8)) < 0)
-               return rc;
+       risc->size = instructions * 8;
+       risc->dma = 0;
+       risc->cpu = pci_zalloc_consistent(pci, risc->size, &risc->dma);
+       if (NULL == risc->cpu)
+               return -ENOMEM;
 
        /* write risc instructions */
        rp = risc->cpu;
index b5b88a64ad7f67cdd4a78645070bf38df0a70a98..dd0deb1c87ce21fb5c89f60474c726e162b96e16 100644 (file)
@@ -109,8 +109,11 @@ static void buffer_finish(struct vb2_buffer *vb)
        struct cx8802_dev *dev = vb->vb2_queue->drv_priv;
        struct cx88_buffer *buf = container_of(vb, struct cx88_buffer, vb);
        struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
+       struct cx88_riscmem *risc = &buf->risc;
 
-       btcx_riscmem_free(dev->pci, &buf->risc);
+       if (risc->cpu)
+               pci_free_consistent(dev->pci, risc->size, risc->cpu, risc->dma);
+       memset(risc, 0, sizeof(*risc));
 
        dma_unmap_sg(&dev->pci->dev, sgt->sgl, sgt->nents, DMA_FROM_DEVICE);
 }
index 0589dccae3bdeaa49905f1d9f5b14a731d4eec78..746c0ea13035bdb9179804e41aed283ea3f7a82f 100644 (file)
@@ -228,6 +228,7 @@ int cx8802_buf_prepare(struct vb2_queue *q, struct cx8802_dev *dev,
 {
        int size = dev->ts_packet_size * dev->ts_packet_count;
        struct sg_table *sgt = vb2_dma_sg_plane_desc(&buf->vb, 0);
+       struct cx88_riscmem *risc = &buf->risc;
        int rc;
 
        if (vb2_plane_size(&buf->vb, 0) < size)
@@ -238,10 +239,12 @@ int cx8802_buf_prepare(struct vb2_queue *q, struct cx8802_dev *dev,
        if (!rc)
                return -EIO;
 
-       rc = cx88_risc_databuffer(dev->pci, &buf->risc, sgt->sgl,
+       rc = cx88_risc_databuffer(dev->pci, risc, sgt->sgl,
                             dev->ts_packet_size, dev->ts_packet_count, 0);
        if (rc) {
-               btcx_riscmem_free(dev->pci, &buf->risc);
+               if (risc->cpu)
+                       pci_free_consistent(dev->pci, risc->size, risc->cpu, risc->dma);
+               memset(risc, 0, sizeof(*risc));
                return rc;
        }
        return 0;
index 8f20612c5853df2df47737e7bca21fbb16141279..4e0747a6a9c2f41f44aa14cdb97dc3b68cf622e6 100644 (file)
@@ -146,8 +146,11 @@ static void buffer_finish(struct vb2_buffer *vb)
        struct cx8800_dev *dev = vb->vb2_queue->drv_priv;
        struct cx88_buffer *buf = container_of(vb, struct cx88_buffer, vb);
        struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
+       struct cx88_riscmem *risc = &buf->risc;
 
-       btcx_riscmem_free(dev->pci, &buf->risc);
+       if (risc->cpu)
+               pci_free_consistent(dev->pci, risc->size, risc->cpu, risc->dma);
+       memset(risc, 0, sizeof(*risc));
 
        dma_unmap_sg(&dev->pci->dev, sgt->sgl, sgt->nents, DMA_FROM_DEVICE);
 }
index c64f8f48850ff1920daab62961cf8286bafaf955..a74e21dd4aad9d59787b73b638bbc6f02d7556dd 100644 (file)
@@ -505,8 +505,11 @@ static void buffer_finish(struct vb2_buffer *vb)
        struct cx8800_dev *dev = vb->vb2_queue->drv_priv;
        struct cx88_buffer *buf = container_of(vb, struct cx88_buffer, vb);
        struct sg_table *sgt = vb2_dma_sg_plane_desc(vb, 0);
+       struct cx88_riscmem *risc = &buf->risc;
 
-       btcx_riscmem_free(dev->pci, &buf->risc);
+       if (risc->cpu)
+               pci_free_consistent(dev->pci, risc->size, risc->cpu, risc->dma);
+       memset(risc, 0, sizeof(*risc));
 
        dma_unmap_sg(&dev->pci->dev, sgt->sgl, sgt->nents, DMA_FROM_DEVICE);
 }
index 16965c84090bafd62a24bd9d4da1e55b0e9359ea..dd50177cea1e3f2786ad8c1186c0d7c156cd5634 100644 (file)
@@ -35,7 +35,6 @@
 #include <media/ir-kbd-i2c.h>
 #include <media/wm8775.h>
 
-#include "btcx-risc.h"
 #include "cx88-reg.h"
 #include "tuner-xc2028.h"
 
@@ -311,6 +310,13 @@ enum cx88_tvaudio {
 
 #define BUFFER_TIMEOUT     msecs_to_jiffies(2000)
 
+struct cx88_riscmem {
+       unsigned int   size;
+       __le32         *cpu;
+       __le32         *jmp;
+       dma_addr_t     dma;
+};
+
 /* buffer for one video frame */
 struct cx88_buffer {
        /* common v4l buffer stuff -- must be first */
@@ -319,7 +325,7 @@ struct cx88_buffer {
 
        /* cx88 specific */
        unsigned int           bpl;
-       struct btcx_riscmem    risc;
+       struct cx88_riscmem    risc;
        u32                    count;
 };
 
@@ -616,17 +622,17 @@ extern void cx88_shutdown(struct cx88_core *core);
 extern int cx88_reset(struct cx88_core *core);
 
 extern int
-cx88_risc_buffer(struct pci_dev *pci, struct btcx_riscmem *risc,
+cx88_risc_buffer(struct pci_dev *pci, struct cx88_riscmem *risc,
                 struct scatterlist *sglist,
                 unsigned int top_offset, unsigned int bottom_offset,
                 unsigned int bpl, unsigned int padding, unsigned int lines);
 extern int
-cx88_risc_databuffer(struct pci_dev *pci, struct btcx_riscmem *risc,
+cx88_risc_databuffer(struct pci_dev *pci, struct cx88_riscmem *risc,
                     struct scatterlist *sglist, unsigned int bpl,
                     unsigned int lines, unsigned int lpi);
 
 extern void cx88_risc_disasm(struct cx88_core *core,
-                            struct btcx_riscmem *risc);
+                            struct cx88_riscmem *risc);
 extern int cx88_sram_channel_setup(struct cx88_core *core,
                                   const struct sram_channel *ch,
                                   unsigned int bpl, u32 risc);