Commit 9edd313d authored by Michael Hunold's avatar Michael Hunold Committed by Linus Torvalds

[PATCH] dvb: saa7146 changes

- [DVB] saa7146_core.c, saa7146_video.c: MODULE_PARM -> module_param, added
  non-busy waiting option for saa7146_wait_for_debi_done(), make needlessly
  global code static and remove unused code (thanks to Adrian Bunk
  <bunk@stusta.de)

- [DVB] saa7146_core.c: dev is kmalloc'ed twice, add missing
  pci_disable_device(), rename goto labels, propagate the error code from the
  underlying layers when possible, pci_request_region replaces
  request_mem_region, other minor cleanups (thanks to Francois Romieu)

- [DVB] saa7146_fops.c, saa7146_i2c.c, saa7146_hlp.c, saa7146_vbi.c: make
  needlessly global code static, remove unused code (thanks to Adrian Bunk
  <bunk@stusta.de>)
Signed-off-by: default avatarMichael Hunold <hunold@linuxtv.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 780a9fc0
...@@ -25,11 +25,11 @@ struct list_head saa7146_devices; ...@@ -25,11 +25,11 @@ struct list_head saa7146_devices;
struct semaphore saa7146_devices_lock; struct semaphore saa7146_devices_lock;
static int initialized = 0; static int initialized = 0;
int saa7146_num = 0; static int saa7146_num = 0;
unsigned int saa7146_debug = 0; unsigned int saa7146_debug = 0;
MODULE_PARM(saa7146_debug,"i"); module_param(saa7146_debug, int, 0644);
MODULE_PARM_DESC(saa7146_debug, "debug level (default: 0)"); MODULE_PARM_DESC(saa7146_debug, "debug level (default: 0)");
#if 0 #if 0
...@@ -48,7 +48,7 @@ static void dump_registers(struct saa7146_dev* dev) ...@@ -48,7 +48,7 @@ static void dump_registers(struct saa7146_dev* dev)
* gpio and debi helper functions * gpio and debi helper functions
****************************************************************************/ ****************************************************************************/
/* write "data" to the gpio-pin "pin" */ /* write "data" to the gpio-pin "pin" -- unused */
void saa7146_set_gpio(struct saa7146_dev *dev, u8 pin, u8 data) void saa7146_set_gpio(struct saa7146_dev *dev, u8 pin, u8 data)
{ {
u32 value = 0; u32 value = 0;
...@@ -67,7 +67,7 @@ void saa7146_set_gpio(struct saa7146_dev *dev, u8 pin, u8 data) ...@@ -67,7 +67,7 @@ void saa7146_set_gpio(struct saa7146_dev *dev, u8 pin, u8 data)
} }
/* This DEBI code is based on the saa7146 Stradis driver by Nathan Laredo */ /* This DEBI code is based on the saa7146 Stradis driver by Nathan Laredo */
int saa7146_wait_for_debi_done(struct saa7146_dev *dev) int saa7146_wait_for_debi_done(struct saa7146_dev *dev, int nobusyloop)
{ {
unsigned long start; unsigned long start;
...@@ -80,6 +80,8 @@ int saa7146_wait_for_debi_done(struct saa7146_dev *dev) ...@@ -80,6 +80,8 @@ int saa7146_wait_for_debi_done(struct saa7146_dev *dev)
DEB_S(("timed out while waiting for registers getting programmed\n")); DEB_S(("timed out while waiting for registers getting programmed\n"));
return -ETIMEDOUT; return -ETIMEDOUT;
} }
if (nobusyloop)
msleep(1);
} }
/* wait for transfer to complete */ /* wait for transfer to complete */
...@@ -92,6 +94,8 @@ int saa7146_wait_for_debi_done(struct saa7146_dev *dev) ...@@ -92,6 +94,8 @@ int saa7146_wait_for_debi_done(struct saa7146_dev *dev)
DEB_S(("timed out while waiting for transfer completion\n")); DEB_S(("timed out while waiting for transfer completion\n"));
return -ETIMEDOUT; return -ETIMEDOUT;
} }
if (nobusyloop)
msleep(1);
} }
return 0; return 0;
...@@ -248,10 +252,9 @@ void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data) ...@@ -248,10 +252,9 @@ void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data)
/********************************************************************************/ /********************************************************************************/
/* interrupt handler */ /* interrupt handler */
static irqreturn_t interrupt_hw(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t interrupt_hw(int irq, void *dev_id, struct pt_regs *regs)
{ {
struct saa7146_dev *dev = (struct saa7146_dev*)dev_id; struct saa7146_dev *dev = dev_id;
u32 isr = 0; u32 isr = 0;
/* read out the interrupt status register */ /* read out the interrupt status register */
...@@ -318,16 +321,15 @@ static irqreturn_t interrupt_hw(int irq, void *dev_id, struct pt_regs *regs) ...@@ -318,16 +321,15 @@ static irqreturn_t interrupt_hw(int irq, void *dev_id, struct pt_regs *regs)
static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent) static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent)
{ {
unsigned long adr = 0, len = 0;
struct saa7146_dev* dev = kmalloc (sizeof(struct saa7146_dev),GFP_KERNEL);
struct saa7146_pci_extension_data *pci_ext = (struct saa7146_pci_extension_data *)ent->driver_data; struct saa7146_pci_extension_data *pci_ext = (struct saa7146_pci_extension_data *)ent->driver_data;
struct saa7146_extension* ext = pci_ext->ext; struct saa7146_extension* ext = pci_ext->ext;
int err = 0; struct saa7146_dev *dev;
int err = -ENOMEM;
if (!(dev = kmalloc (sizeof(struct saa7146_dev),GFP_KERNEL))) { dev = kmalloc(sizeof(struct saa7146_dev), GFP_KERNEL);
if (!dev) {
ERR(("out of memory.\n")); ERR(("out of memory.\n"));
return -ENOMEM; goto out;
} }
/* clear out mem for sure */ /* clear out mem for sure */
...@@ -335,38 +337,37 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent ...@@ -335,38 +337,37 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
DEB_EE(("pci:%p\n",pci)); DEB_EE(("pci:%p\n",pci));
if (pci_enable_device(pci)) { err = pci_enable_device(pci);
if (err < 0) {
ERR(("pci_enable_device() failed.\n")); ERR(("pci_enable_device() failed.\n"));
err = -EIO; goto err_free;
goto pci_error;
} }
/* enable bus-mastering */ /* enable bus-mastering */
pci_set_master(pci); pci_set_master(pci);
dev->pci = pci; dev->pci = pci;
/* get chip-revision; this is needed to enable bug-fixes */ /* get chip-revision; this is needed to enable bug-fixes */
if( 0 > pci_read_config_dword(dev->pci, PCI_CLASS_REVISION, &dev->revision)) { err = pci_read_config_dword(pci, PCI_CLASS_REVISION, &dev->revision);
if (err < 0) {
ERR(("pci_read_config_dword() failed.\n")); ERR(("pci_read_config_dword() failed.\n"));
err = -ENODEV; goto err_disable;
goto pci_error;
} }
dev->revision &= 0xf; dev->revision &= 0xf;
/* remap the memory from virtual to physical adress */ /* remap the memory from virtual to physical adress */
adr = pci_resource_start(pci,0);
len = pci_resource_len(pci,0);
if (!request_mem_region(pci_resource_start(pci,0), pci_resource_len(pci,0), "saa7146")) { err = pci_request_region(pci, 0, "saa7146");
ERR(("request_mem_region() failed.\n")); if (err < 0)
err = -ENODEV; goto err_disable;
goto pci_error;
}
if (!(dev->mem = ioremap(adr,len))) { dev->mem = ioremap(pci_resource_start(pci, 0),
pci_resource_len(pci, 0));
if (!dev->mem) {
ERR(("ioremap() failed.\n")); ERR(("ioremap() failed.\n"));
err = -ENODEV; err = -ENODEV;
goto ioremap_error; goto err_release;
} }
/* we don't do a master reset here anymore, it screws up /* we don't do a master reset here anymore, it screws up
...@@ -386,42 +387,40 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent ...@@ -386,42 +387,40 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
saa7146_write(dev, MC2, 0xf8000000); saa7146_write(dev, MC2, 0xf8000000);
/* request an interrupt for the saa7146 */ /* request an interrupt for the saa7146 */
if (request_irq(dev->pci->irq, interrupt_hw, SA_SHIRQ | SA_INTERRUPT, err = request_irq(pci->irq, interrupt_hw, SA_SHIRQ | SA_INTERRUPT,
dev->name, dev)) dev->name, dev);
{ if (err < 0) {
ERR(("request_irq() failed.\n")); ERR(("request_irq() failed.\n"));
err = -ENODEV; goto err_unmap;
goto irq_error;
} }
/* get memory for various stuff */
dev->d_rps0.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_RPS_MEM, &dev->d_rps0.dma_handle);
if( NULL == dev->d_rps0.cpu_addr ) {
err = -ENOMEM; err = -ENOMEM;
goto kmalloc_error_1;
} /* get memory for various stuff */
dev->d_rps0.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
&dev->d_rps0.dma_handle);
if (!dev->d_rps0.cpu_addr)
goto err_free_irq;
memset(dev->d_rps0.cpu_addr, 0x0, SAA7146_RPS_MEM); memset(dev->d_rps0.cpu_addr, 0x0, SAA7146_RPS_MEM);
dev->d_rps1.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_RPS_MEM, &dev->d_rps1.dma_handle); dev->d_rps1.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
if( NULL == dev->d_rps1.cpu_addr ) { &dev->d_rps1.dma_handle);
err = -ENOMEM; if (!dev->d_rps1.cpu_addr)
goto kmalloc_error_2; goto err_free_rps0;
}
memset(dev->d_rps1.cpu_addr, 0x0, SAA7146_RPS_MEM); memset(dev->d_rps1.cpu_addr, 0x0, SAA7146_RPS_MEM);
dev->d_i2c.cpu_addr = pci_alloc_consistent(dev->pci, SAA7146_RPS_MEM, &dev->d_i2c.dma_handle); dev->d_i2c.cpu_addr = pci_alloc_consistent(pci, SAA7146_RPS_MEM,
if( NULL == dev->d_i2c.cpu_addr ) { &dev->d_i2c.dma_handle);
err = -ENOMEM; if (!dev->d_i2c.cpu_addr)
goto kmalloc_error_3; goto err_free_rps1;
}
memset(dev->d_i2c.cpu_addr, 0x0, SAA7146_RPS_MEM); memset(dev->d_i2c.cpu_addr, 0x0, SAA7146_RPS_MEM);
/* the rest + print status message */ /* the rest + print status message */
/* create a nice device name */ /* create a nice device name */
sprintf(&dev->name[0], "saa7146 (%d)",saa7146_num); sprintf(dev->name, "saa7146 (%d)", saa7146_num);
INFO(("found saa7146 @ mem %p (revision %d, irq %d) (0x%04x,0x%04x).\n", dev->mem, dev->revision,dev->pci->irq,dev->pci->subsystem_vendor,dev->pci->subsystem_device)); INFO(("found saa7146 @ mem %p (revision %d, irq %d) (0x%04x,0x%04x).\n", dev->mem, dev->revision, pci->irq, pci->subsystem_vendor, pci->subsystem_device));
dev->ext = ext; dev->ext = ext;
pci_set_drvdata(pci,dev); pci_set_drvdata(pci,dev);
...@@ -438,18 +437,18 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent ...@@ -438,18 +437,18 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
/* set some sane pci arbitrition values */ /* set some sane pci arbitrition values */
saa7146_write(dev, PCI_BT_V1, 0x1c00101f); saa7146_write(dev, PCI_BT_V1, 0x1c00101f);
if( 0 != ext->probe) { /* TODO: use the status code of the callback */
if( 0 != ext->probe(dev) ) {
DEB_D(("ext->probe() failed for %p. skipping device.\n",dev));
err = -ENODEV; err = -ENODEV;
goto probe_error;
} if (ext->probe && ext->probe(dev)) {
DEB_D(("ext->probe() failed for %p. skipping device.\n",dev));
goto err_free_i2c;
} }
if( 0 != ext->attach(dev,pci_ext) ) { if (ext->attach(dev, pci_ext)) {
DEB_D(("ext->attach() failed for %p. skipping device.\n",dev)); DEB_D(("ext->attach() failed for %p. skipping device.\n",dev));
err = -ENODEV; goto err_unprobe;
goto attach_error;
} }
INIT_LIST_HEAD(&dev->item); INIT_LIST_HEAD(&dev->item);
...@@ -457,30 +456,46 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent ...@@ -457,30 +456,46 @@ static int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent
saa7146_num++; saa7146_num++;
err = 0; err = 0;
goto out; out:
attach_error: return err;
probe_error:
err_unprobe:
pci_set_drvdata(pci,NULL); pci_set_drvdata(pci,NULL);
pci_free_consistent(dev->pci, SAA7146_RPS_MEM, dev->d_i2c.cpu_addr, dev->d_i2c.dma_handle); err_free_i2c:
kmalloc_error_3: pci_free_consistent(pci, SAA7146_RPS_MEM, dev->d_i2c.cpu_addr,
pci_free_consistent(dev->pci, SAA7146_RPS_MEM, dev->d_rps1.cpu_addr, dev->d_rps1.dma_handle); dev->d_i2c.dma_handle);
kmalloc_error_2: err_free_rps1:
pci_free_consistent(dev->pci, SAA7146_RPS_MEM, dev->d_rps0.cpu_addr, dev->d_rps0.dma_handle); pci_free_consistent(pci, SAA7146_RPS_MEM, dev->d_rps1.cpu_addr,
kmalloc_error_1: dev->d_rps1.dma_handle);
free_irq(dev->pci->irq, (void *)dev); err_free_rps0:
irq_error: pci_free_consistent(pci, SAA7146_RPS_MEM, dev->d_rps0.cpu_addr,
dev->d_rps0.dma_handle);
err_free_irq:
free_irq(pci->irq, (void *)dev);
err_unmap:
iounmap(dev->mem); iounmap(dev->mem);
ioremap_error: err_release:
release_mem_region(adr,len); pci_release_region(pci, 0);
pci_error: err_disable:
pci_disable_device(pci);
err_free:
kfree(dev); kfree(dev);
out: goto out;
return err;
} }
static void saa7146_remove_one(struct pci_dev *pdev) static void saa7146_remove_one(struct pci_dev *pdev)
{ {
struct saa7146_dev* dev = (struct saa7146_dev*) pci_get_drvdata(pdev); struct saa7146_dev* dev = pci_get_drvdata(pdev);
struct {
void *addr;
dma_addr_t dma;
} dev_map[] = {
{ dev->d_i2c.cpu_addr, dev->d_i2c.dma_handle },
{ dev->d_rps1.cpu_addr, dev->d_rps1.dma_handle },
{ dev->d_rps0.cpu_addr, dev->d_rps0.dma_handle },
{ NULL, 0 }
}, *p;
DEB_EE(("dev:%p\n",dev)); DEB_EE(("dev:%p\n",dev));
dev->ext->detach(dev); dev->ext->detach(dev);
...@@ -491,17 +506,15 @@ static void saa7146_remove_one(struct pci_dev *pdev) ...@@ -491,17 +506,15 @@ static void saa7146_remove_one(struct pci_dev *pdev)
/* disable all irqs, release irq-routine */ /* disable all irqs, release irq-routine */
saa7146_write(dev, IER, 0); saa7146_write(dev, IER, 0);
free_irq(dev->pci->irq, (void *)dev); free_irq(pdev->irq, dev);
/* free kernel memory */ for (p = dev_map; p->addr; p++)
pci_free_consistent(dev->pci, SAA7146_RPS_MEM, dev->d_i2c.cpu_addr, dev->d_i2c.dma_handle); pci_free_consistent(pdev, SAA7146_RPS_MEM, p->addr, p->dma);
pci_free_consistent(dev->pci, SAA7146_RPS_MEM, dev->d_rps1.cpu_addr, dev->d_rps1.dma_handle);
pci_free_consistent(dev->pci, SAA7146_RPS_MEM, dev->d_rps0.cpu_addr, dev->d_rps0.dma_handle);
iounmap(dev->mem); iounmap(dev->mem);
release_mem_region(pci_resource_start(dev->pci,0), pci_resource_len(dev->pci,0)); pci_release_region(pdev, 0);
list_del(&dev->item); list_del(&dev->item);
pci_disable_device(pdev);
kfree(dev); kfree(dev);
saa7146_num--; saa7146_num--;
......
#include <media/saa7146_vv.h> #include <media/saa7146_vv.h>
#include <linux/version.h>
#define BOARD_CAN_DO_VBI(dev) (dev->revision != 0 && dev->vv_data->vbi_minor != -1) #define BOARD_CAN_DO_VBI(dev) (dev->revision != 0 && dev->vv_data->vbi_minor != -1)
...@@ -32,17 +33,6 @@ int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit) ...@@ -32,17 +33,6 @@ int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit)
return 1; return 1;
} }
int saa7146_res_check(struct saa7146_fh *fh, unsigned int bit)
{
return (fh->resources & bit);
}
int saa7146_res_locked(struct saa7146_dev *dev, unsigned int bit)
{
struct saa7146_vv *vv = dev->vv_data;
return (vv->resources & bit);
}
void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits) void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits)
{ {
struct saa7146_dev *dev = fh->dev; struct saa7146_dev *dev = fh->dev;
......
...@@ -9,11 +9,6 @@ static void calculate_output_format_register(struct saa7146_dev* saa, u32 palett ...@@ -9,11 +9,6 @@ static void calculate_output_format_register(struct saa7146_dev* saa, u32 palett
*clip_format |= (( ((palette&0xf00)>>8) << 30) | ((palette&0x00f) << 24) | (((palette&0x0f0)>>4) << 16)); *clip_format |= (( ((palette&0xf00)>>8) << 30) | ((palette&0x00f) << 24) | (((palette&0x0f0)>>4) << 16));
} }
static void calculate_bcs_ctrl_register(struct saa7146_dev *dev, int brightness, int contrast, int colour, u32 *bcs_ctrl)
{
*bcs_ctrl = ((brightness << 24) | (contrast << 16) | (colour << 0));
}
static void calculate_hps_source_and_sync(struct saa7146_dev *dev, int source, int sync, u32* hps_ctrl) static void calculate_hps_source_and_sync(struct saa7146_dev *dev, int source, int sync, u32* hps_ctrl)
{ {
*hps_ctrl &= ~(MASK_30 | MASK_31 | MASK_28); *hps_ctrl &= ~(MASK_30 | MASK_31 | MASK_28);
...@@ -62,7 +57,7 @@ static struct { ...@@ -62,7 +57,7 @@ static struct {
}; };
/* table of attenuation values for horizontal scaling */ /* table of attenuation values for horizontal scaling */
u8 h_attenuation[] = { 1, 2, 4, 8, 2, 4, 8, 16, 0}; static u8 h_attenuation[] = { 1, 2, 4, 8, 2, 4, 8, 16, 0};
/* calculate horizontal scale registers */ /* calculate horizontal scale registers */
static int calculate_h_scale_registers(struct saa7146_dev *dev, static int calculate_h_scale_registers(struct saa7146_dev *dev,
...@@ -208,7 +203,7 @@ static struct { ...@@ -208,7 +203,7 @@ static struct {
}; };
/* table of attenuation values for vertical scaling */ /* table of attenuation values for vertical scaling */
u16 v_attenuation[] = { 2, 4, 8, 16, 32, 64, 128, 256, 0}; static u16 v_attenuation[] = { 2, 4, 8, 16, 32, 64, 128, 256, 0};
/* calculate vertical scale registers */ /* calculate vertical scale registers */
static int calculate_v_scale_registers(struct saa7146_dev *dev, enum v4l2_field field, static int calculate_v_scale_registers(struct saa7146_dev *dev, enum v4l2_field field,
...@@ -620,18 +615,6 @@ static void saa7146_set_output_format(struct saa7146_dev *dev, unsigned long pal ...@@ -620,18 +615,6 @@ static void saa7146_set_output_format(struct saa7146_dev *dev, unsigned long pal
saa7146_write(dev, MC2, (MASK_05 | MASK_21)); saa7146_write(dev, MC2, (MASK_05 | MASK_21));
} }
void saa7146_set_picture_prop(struct saa7146_dev *dev, int brightness, int contrast, int colour)
{
u32 bcs_ctrl = 0;
calculate_bcs_ctrl_register(dev, brightness, contrast, colour, &bcs_ctrl);
saa7146_write(dev, BCS_CTRL, bcs_ctrl);
/* update the bcs register */
saa7146_write(dev, MC2, (MASK_06 | MASK_22));
}
/* select input-source */ /* select input-source */
void saa7146_set_hps_source_and_sync(struct saa7146_dev *dev, int source, int sync) void saa7146_set_hps_source_and_sync(struct saa7146_dev *dev, int source, int sync)
{ {
......
#include <linux/version.h> #include <linux/version.h>
#include <media/saa7146_vv.h> #include <media/saa7146_vv.h>
u32 saa7146_i2c_func(struct i2c_adapter *adapter) static u32 saa7146_i2c_func(struct i2c_adapter *adapter)
{ {
//fm DEB_I2C(("'%s'.\n", adapter->name)); //fm DEB_I2C(("'%s'.\n", adapter->name));
......
...@@ -130,7 +130,7 @@ static int vbi_workaround(struct saa7146_dev *dev) ...@@ -130,7 +130,7 @@ static int vbi_workaround(struct saa7146_dev *dev)
return 0; return 0;
} }
void saa7146_set_vbi_capture(struct saa7146_dev *dev, struct saa7146_buf *buf, struct saa7146_buf *next) static void saa7146_set_vbi_capture(struct saa7146_dev *dev, struct saa7146_buf *buf, struct saa7146_buf *next)
{ {
struct saa7146_vv *vv = dev->vv_data; struct saa7146_vv *vv = dev->vv_data;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
static int max_memory = 32; static int max_memory = 32;
MODULE_PARM(max_memory,"i"); module_param(max_memory, int, 0644);
MODULE_PARM_DESC(max_memory, "maximum memory usage for capture buffers (default: 32Mb)"); MODULE_PARM_DESC(max_memory, "maximum memory usage for capture buffers (default: 32Mb)");
#define IS_CAPTURE_ACTIVE(fh) \ #define IS_CAPTURE_ACTIVE(fh) \
......
...@@ -168,7 +168,7 @@ void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt); ...@@ -168,7 +168,7 @@ void saa7146_pgtable_free(struct pci_dev *pci, struct saa7146_pgtable *pt);
int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt, struct scatterlist *list, int length ); int saa7146_pgtable_build_single(struct pci_dev *pci, struct saa7146_pgtable *pt, struct scatterlist *list, int length );
char *saa7146_vmalloc_build_pgtable(struct pci_dev *pci, long length, struct saa7146_pgtable *pt); char *saa7146_vmalloc_build_pgtable(struct pci_dev *pci, long length, struct saa7146_pgtable *pt);
void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data); void saa7146_setgpio(struct saa7146_dev *dev, int port, u32 data);
int saa7146_wait_for_debi_done(struct saa7146_dev *dev); int saa7146_wait_for_debi_done(struct saa7146_dev *dev, int nobusyloop);
/* some memory sizes */ /* some memory sizes */
#define SAA7146_I2C_MEM ( 1*PAGE_SIZE) #define SAA7146_I2C_MEM ( 1*PAGE_SIZE)
......
...@@ -219,8 +219,6 @@ extern struct saa7146_use_ops saa7146_vbi_uops; ...@@ -219,8 +219,6 @@ extern struct saa7146_use_ops saa7146_vbi_uops;
/* resource management functions */ /* resource management functions */
int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit); int saa7146_res_get(struct saa7146_fh *fh, unsigned int bit);
int saa7146_res_check(struct saa7146_fh *fh, unsigned int bit);
int saa7146_res_locked(struct saa7146_dev *dev, unsigned int bit);
void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits); void saa7146_res_free(struct saa7146_fh *fh, unsigned int bits);
#define RESOURCE_DMA1_HPS 0x1 #define RESOURCE_DMA1_HPS 0x1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment