{
struct vdpram_dev *dev = filp->private_data;
unsigned int mask = 0;
- int index = dev->index ;
-// printk("%s:%d:index:%d\n", __FUNCTION__,current->pid,index);
+// printk("%s:%d:index:%d\n", __FUNCTION__,current->pid,dev->index);
/*
* The buffer is circular; it is considered full
* if "wp" is right behind "rp" and empty if the
return 0;
}
-static ssize_t accel_write(struct file *file, char __user *buf, size_t count, loff_t *fops)
+static ssize_t accel_write(struct file *file, const char __user *buf, size_t count, loff_t *fops)
{
void __iomem *ioaddr;
struct accel_param accel_param;
- struct accel_param *test;
unsigned long *args, *args_size;
char *args_temp = NULL;
int loop;
ioaddr = base_addr;
- copy_from_user((void *)&accel_param, (void *)buf, sizeof(struct accel_param));
+ if(copy_from_user((void *)&accel_param, (void *)buf, sizeof(struct accel_param)))
+ {
+ // error
+ }
args = (unsigned long *)accel_param.args;
args_size = (unsigned long *)accel_param.args_size;
writew(accel_param.function_number, ioaddr);
writew(accel_param.pid, ioaddr);
- writel((uint32_t)v2p(accel_param.ret_string), ioaddr);
- writel((uint32_t)v2p(args), ioaddr);
- writel((uint32_t)v2p(accel_param.args_size), ioaddr);
+ writel((uint32_t)v2p((unsigned long)(accel_param.ret_string)), ioaddr);
+ writel((uint32_t)v2p((unsigned long)args), ioaddr);
+ writel((uint32_t)v2p((unsigned long)(accel_param.args_size)), ioaddr);
return 0;
}
// DECLARE_WAIT_QUEUE_HEAD(waitqueue_read);
// DECLARE_WORK(work_queue, call_workqueue);
-static irqreturn_t svcodec_interrupt (int irq, void *dev_id);
-
static int svcodec_open (struct inode *inode, struct file *file)
{
SVCODEC_LOG("\n");
return 0;
}
-static tempCnt = 0;
+static long tempCnt = 0;
static ssize_t svcodec_write (struct file *file, const char __user *buf,
size_t count, loff_t *fops)
printk(KERN_ERR "[%s] : Fail to get codec device info\n", __func__);
}
- copy_from_user(¶mInfo, buf, sizeof(struct _param));
+ if(copy_from_user(¶mInfo, buf, sizeof(struct _param)))
+ {
+ // error handling !!!
+ }
for (i = 0; i < paramInfo.in_args_num; i++) {
writel(paramInfo.in_args[i], svcodec->ioaddr + CODEC_IN_PARAM);
size += sizeof(AVFrame);
SVCODEC_LOG("AVCODEC_ENCODE_VIDEO 1\n");
memcpy_toio((uint8_t*)svcodec->memaddr + size, pict_buf, pict_buf_size);
- SVCODEC_LOG("ENCODE Count :%d\n", ++tempCnt);
+ SVCODEC_LOG("ENCODE Count :%ld\n", ++tempCnt);
} else {
int pict_temp = 0;
memcpy_toio((uint8_t*)svcodec->memaddr + size, &pict_temp, sizeof(int));
ret = (int*)paramInfo.ret;
if (buf_size > 0) {
memcpy_fromio(ptr, svcodec->memaddr, buf_size);
- copy_to_user(paramInfo.in_args[1], ptr, buf_size);
+ if(copy_to_user((void *)(paramInfo.in_args[1]), ptr, buf_size))
+ {
+ // error handling !!!
+ }
memcpy_fromio(ret, (uint8_t*)svcodec->memaddr + buf_size , sizeof(int));
} else {
memcpy_fromio(ret, svcodec->memaddr , sizeof(int));
size = width * height;
size2 = size / 4;
memcpy_fromio(ptr, svcodec->memaddr, (size * 3 / 2));
- copy_to_user(paramInfo.in_args[4], ptr, size + size2 * 2);
+ if(copy_to_user((void *)(paramInfo.in_args[4]), ptr, size + size2 * 2))
+ {
+ // error handling !!!
+ }
kfree(ptr);
}
/*
* Interrupt handler
*/
+#if 0
+static irqreturn_t svcodec_interrupt (int irq, void *dev_id);
+
static irqreturn_t svcodec_interrupt (int irq, void *dev_id)
{
// SVCODEC_LOG("\n");
// return IRQ_HANDLED;
return IRQ_NONE;
}
+#endif
struct file_operations codec_fops = {
.owner = THIS_MODULE,
printk(KERN_ERR "[%s] : ioremap failed\n", __func__);
goto err_mem_unmap;
}
- SVCODEC_LOG("MEM_ADDR:0x%x, IO_ADDR:0x%x\n", svcodec->memaddr, svcodec->ioaddr);
+ SVCODEC_LOG("MEM_ADDR:0x%lx, IO_ADDR:0x%lx\n", (unsigned long)svcodec->memaddr, (unsigned long)svcodec->ioaddr);
// pci_set_drvdata(pci_dev, svcodec);
if (register_chrdev(CODEC_MAJOR, DRIVER_NAME, &codec_fops)) {
return PTR_ERR(emul_lcd_class);
}
- emul_lcd_dev = device_create(emul_lcd_class, NULL, NULL, NULL, "emulator");
+ emul_lcd_dev = device_create(emul_lcd_class, NULL, 0, NULL, "emulator");
for (i=0; i < ARRAY_SIZE(emul_lcd_device_attrib); i++) {
ret = device_create_file(emul_lcd_dev, emul_lcd_device_attrib[i]);
return sprintf(buf, "%d\n", max_brightness);
}
+#if 0
static ssize_t bl_max_brightness_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
return 0;
}
+#endif
static DEVICE_ATTR(brightness, 0664, bl_brightness_show, bl_brightness_store);
static DEVICE_ATTR(max_brightness, 0664, bl_max_brightness_show, NULL);
return PTR_ERR(emul_backlight_class);
}
- emul_backlight_dev = device_create(emul_backlight_class, NULL, NULL, NULL, "emulator");
+ emul_backlight_dev = device_create(emul_backlight_class, NULL, 0, NULL, "emulator");
for (i=0; i < ARRAY_SIZE(emul_bl_device_attrib); i++) {
ret = device_create_file(emul_backlight_dev, emul_bl_device_attrib[i]);