diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
commit | e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7 (patch) | |
tree | ea51b391f7d74ca695dcb9f5e46eb02688a92ed9 /drivers/staging/cx25821 | |
parent | 81280572ca6f54009edfa4deee563e8678784218 (diff) | |
parent | a4ac0d847af9dd34d5953a5e264400326144b6b2 (diff) | |
download | talos-op-linux-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.tar.gz talos-op-linux-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.zip |
Merge 'staging-next' to Linus's tree
This merges the staging-next tree to Linus's tree and resolves
some conflicts that were present due to changes in other trees that were
affected by files here.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/cx25821')
-rw-r--r-- | drivers/staging/cx25821/Makefile | 10 | ||||
-rw-r--r-- | drivers/staging/cx25821/cx25821-audio-upstream.c | 15 | ||||
-rw-r--r-- | drivers/staging/cx25821/cx25821-audio.h | 16 | ||||
-rw-r--r-- | drivers/staging/cx25821/cx25821-core.c | 13 |
4 files changed, 31 insertions, 23 deletions
diff --git a/drivers/staging/cx25821/Makefile b/drivers/staging/cx25821/Makefile index d0eb16eac092..aedde18c68f9 100644 --- a/drivers/staging/cx25821/Makefile +++ b/drivers/staging/cx25821/Makefile @@ -1,4 +1,4 @@ -cx25821-objs := cx25821-core.o cx25821-cards.o cx25821-i2c.o \ +cx25821-y := cx25821-core.o cx25821-cards.o cx25821-i2c.o \ cx25821-gpio.o cx25821-medusa-video.o \ cx25821-video.o cx25821-video-upstream.o \ cx25821-video-upstream-ch2.o \ @@ -7,7 +7,7 @@ cx25821-objs := cx25821-core.o cx25821-cards.o cx25821-i2c.o \ obj-$(CONFIG_VIDEO_CX25821) += cx25821.o obj-$(CONFIG_VIDEO_CX25821_ALSA) += cx25821-alsa.o -EXTRA_CFLAGS += -Idrivers/media/video -EXTRA_CFLAGS += -Idrivers/media/common/tuners -EXTRA_CFLAGS += -Idrivers/media/dvb/dvb-core -EXTRA_CFLAGS += -Idrivers/media/dvb/frontends +ccflags-y := -Idrivers/media/video +ccflags-y += -Idrivers/media/common/tuners +ccflags-y += -Idrivers/media/dvb/dvb-core +ccflags-y += -Idrivers/media/dvb/frontends diff --git a/drivers/staging/cx25821/cx25821-audio-upstream.c b/drivers/staging/cx25821/cx25821-audio-upstream.c index cdff49f409f2..27087dbe5b7d 100644 --- a/drivers/staging/cx25821/cx25821-audio-upstream.c +++ b/drivers/staging/cx25821/cx25821-audio-upstream.c @@ -40,8 +40,7 @@ MODULE_AUTHOR("Hiep Huynh <hiep.huynh@conexant.com>"); MODULE_LICENSE("GPL"); static int _intr_msk = - FLD_AUD_SRC_RISCI1 | FLD_AUD_SRC_OF | FLD_AUD_SRC_SYNC | - FLD_AUD_SRC_OPC_ERR; +FLD_AUD_SRC_RISCI1 | FLD_AUD_SRC_OF | FLD_AUD_SRC_SYNC | FLD_AUD_SRC_OPC_ERR; int cx25821_sram_channel_setup_upstream_audio(struct cx25821_dev *dev, struct sram_channel *ch, @@ -506,7 +505,7 @@ int cx25821_audio_upstream_irq(struct cx25821_dev *dev, int chan_num, { int i = 0; u32 int_msk_tmp; - struct sram_channel *channel = dev->channels[chan_num].sram_channels; + struct sram_channel *channel = dev->channels[chan_num].sram_channels; dma_addr_t risc_phys_jump_addr; __le32 *rp; @@ -608,8 +607,8 @@ static irqreturn_t cx25821_upstream_irq_audio(int irq, void *dev_id) if (!dev) return -1; - sram_ch = dev->channels[dev->_audio_upstream_channel_select]. - sram_channels; + sram_ch = dev->channels[dev->_audio_upstream_channel_select]. + sram_channels; msk_stat = cx_read(sram_ch->int_mstat); audio_status = cx_read(sram_ch->int_stat); @@ -733,7 +732,7 @@ int cx25821_audio_upstream_init(struct cx25821_dev *dev, int channel_select) } dev->_audio_upstream_channel_select = channel_select; - sram_ch = dev->channels[channel_select].sram_channels; + sram_ch = dev->channels[channel_select].sram_channels; /* Work queue */ INIT_WORK(&dev->_audio_work_entry, cx25821_audioups_handler); @@ -764,9 +763,9 @@ int cx25821_audio_upstream_init(struct cx25821_dev *dev, int channel_select) str_length + 1); /* Default if filename is empty string */ - if (strcmp(dev->input_audiofilename, "") == 0) { + if (strcmp(dev->input_audiofilename, "") == 0) dev->_audiofilename = "/root/audioGOOD.wav"; - } + } else { str_length = strlen(_defaultAudioName); dev->_audiofilename = kmalloc(str_length + 1, GFP_KERNEL); diff --git a/drivers/staging/cx25821/cx25821-audio.h b/drivers/staging/cx25821/cx25821-audio.h index 434b2a312a80..aa5725b09328 100644 --- a/drivers/staging/cx25821/cx25821-audio.h +++ b/drivers/staging/cx25821/cx25821-audio.h @@ -31,18 +31,21 @@ #define NUMBER_OF_PROGRAMS 8 /* - Max size of the RISC program for a buffer. - worst case is 2 writes per line - Space is also added for the 4 no-op instructions added on the end. +* Max size of the RISC program for a buffer. - worst case is 2 writes per line +* Space is also added for the 4 no-op instructions added on the end. */ #ifndef USE_RISC_NOOP -#define MAX_BUFFER_PROGRAM_SIZE \ - (2*LINES_PER_BUFFER*RISC_WRITE_INSTRUCTION_SIZE + RISC_WRITECR_INSTRUCTION_SIZE*4) +#define MAX_BUFFER_PROGRAM_SIZE \ +(2*LINES_PER_BUFFER*RISC_WRITE_INSTRUCTION_SIZE + \ + RISC_WRITECR_INSTRUCTION_SIZE*4) + #endif /* MAE 12 July 2005 Try to use NOOP RISC instruction instead */ #ifdef USE_RISC_NOOP #define MAX_BUFFER_PROGRAM_SIZE \ - (2*LINES_PER_BUFFER*RISC_WRITE_INSTRUCTION_SIZE + RISC_NOOP_INSTRUCTION_SIZE*4) +(2*LINES_PER_BUFFER*RISC_WRITE_INSTRUCTION_SIZE + RISC_NOOP_INSTRUCTION_SIZE*4l) + #endif /* Sizes of various instructions in bytes. Used when adding instructions. */ @@ -53,6 +56,7 @@ #define RISC_WRITECR_INSTRUCTION_SIZE 16 #define RISC_NOOP_INSTRUCTION_SIZE 4 -#define MAX_AUDIO_DMA_BUFFER_SIZE (MAX_BUFFER_PROGRAM_SIZE * NUMBER_OF_PROGRAMS + RISC_SYNC_INSTRUCTION_SIZE) +#define MAX_AUDIO_DMA_BUFFER_SIZE \ +(MAX_BUFFER_PROGRAM_SIZE * NUMBER_OF_PROGRAMS + RISC_SYNC_INSTRUCTION_SIZE) #endif diff --git a/drivers/staging/cx25821/cx25821-core.c b/drivers/staging/cx25821/cx25821-core.c index c487c19256b9..ad7ce013ba50 100644 --- a/drivers/staging/cx25821/cx25821-core.c +++ b/drivers/staging/cx25821/cx25821-core.c @@ -962,7 +962,7 @@ static int cx25821_dev_setup(struct cx25821_dev *dev) dev->pci->subsystem_device); cx25821_devcount--; - return -ENODEV; + return -EBUSY; } /* PCIe stuff */ @@ -1412,9 +1412,12 @@ static int __devinit cx25821_initdev(struct pci_dev *pci_dev, printk(KERN_INFO "cx25821 Athena pci enable !\n"); - if (cx25821_dev_setup(dev) < 0) { - err = -EINVAL; - goto fail_unregister_device; + err = cx25821_dev_setup(dev); + if (err) { + if (err == -EBUSY) + goto fail_unregister_device; + else + goto fail_unregister_pci; } /* print pci info */ @@ -1448,6 +1451,8 @@ fail_irq: printk(KERN_INFO "cx25821 cx25821_initdev() can't get IRQ !\n"); cx25821_dev_unregister(dev); +fail_unregister_pci: + pci_disable_device(pci_dev); fail_unregister_device: v4l2_device_unregister(&dev->v4l2_dev); |