From 5d635f58213e4842af4b7c430de3b19b208c761f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Radek=20Pup=C3=A1k?= Date: Mon, 16 Jun 2008 03:23:32 +0200 Subject: [PATCH 1/1] uprvene komentare, printk --- mx1_ts-driver.c | 101 +++++++++++++++++++----------------------------- 1 file changed, 39 insertions(+), 62 deletions(-) diff --git a/mx1_ts-driver.c b/mx1_ts-driver.c index 50da897..4b37984 100644 --- a/mx1_ts-driver.c +++ b/mx1_ts-driver.c @@ -198,7 +198,7 @@ static inline void mx1ts_reg_clear_mask(struct mx1ts *mts , unsigned int reg, u3 static inline void mx1ts_reg_write(struct mx1ts *mts, unsigned int reg, unsigned int val) { __raw_writel(val, mts->mx1ts_mem+reg); - printk("mx1_touchscreen: zapisuji do : %p hodnotu %x\n",mts->mx1ts_mem+reg, val); + printk(KERN_ERR "mx1_touchscreen: zapisuji do : %p hodnotu %x\n",mts->mx1ts_mem+reg, val); } @@ -207,7 +207,7 @@ static inline unsigned int mx1ts_reg_read(struct mx1ts *mts, unsigned int reg) unsigned int out; out = __raw_readl( mts->mx1ts_mem + reg ); - /*printk("mx1_touchscreen: ctu z %p : %d \n",mts->mx1ts_mem + reg, out);*/ + /*printk(KERN_ERR "mx1_touchscreen: ctu z %p : %d \n",mts->mx1ts_mem + reg, out);*/ return out; } @@ -282,7 +282,7 @@ static void mx1ts_enable_pen_touch_interrupt(struct mx1ts *mts) value = mx1ts_reg_read(mts, ASP_ICNTLR); value |= /*ASP_POL detekuje zvednuti |*/ ASP_EDGE | ASP_PIRQE; mx1ts_reg_write(mts, ASP_ICNTLR, value); - printk("mx1_touchscreen: aktivuji pen down interrupt \n"); + printk(KERN_ERR "mx1_touchscreen: aktivuji pen down interrupt \n"); } static void mx1ts_disable_pen_touch_interrupt(struct mx1ts *mts) @@ -293,18 +293,17 @@ static void mx1ts_disable_pen_touch_interrupt(struct mx1ts *mts) value = mx1ts_reg_read(mts, ASP_ICNTLR); value &= ~ASP_PIRQE; mx1ts_reg_write(mts, ASP_ICNTLR, value); - printk("mx1_touchscreen: deaktivuji pen down interrupt \n"); + printk(KERN_ERR "mx1_touchscreen: deaktivuji pen down interrupt \n"); } static void mx1ts_enable_pen_up_interrupt(struct mx1ts *mts) { unsigned int value; - /* Enable pen up interrupt. XXX: This feature is undocumented. */ value = mx1ts_reg_read(mts, ASP_ICNTLR); value |= ASP_PUIE; mx1ts_reg_write(mts, ASP_ICNTLR, value); - printk("mx1_touchscreen: aktivuji penup interrupt \n"); + printk(KERN_ERR "mx1_touchscreen: aktivuji pen up interrupt \n"); } static void mx1ts_disable_pen_up_interrupt(struct mx1ts *mts) @@ -315,7 +314,7 @@ static void mx1ts_disable_pen_up_interrupt(struct mx1ts *mts) value = mx1ts_reg_read(mts, ASP_ICNTLR); value &= ~ASP_PUIE; mx1ts_reg_write(mts, ASP_ICNTLR, value); - printk("mx1_touchscreen: deaktivuji penup interrupt \n"); + printk(KERN_ERR "mx1_touchscreen: deaktivuji penup interrupt \n"); } @@ -413,18 +412,18 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id) mx1_cal_range_x = 1; mx1_cal_range_y = 1; -/* printk("<1> mx1_touchscreen: mx1_pendata_irq interrupt recived from struct %p\n", mts);*/ +/* printk(KERN_ERR "mx1_touchscreen: mx1_pendata_irq interrupt recived from struct %p\n", mts);*/ - if (mx1ts_reg_read(mts, ASP_ISTATR) & ASP_PUIS) { - mx1ts_reg_set_mask(mts, ASP_ISTATR, ASP_PUIS); + if (mx1ts_reg_read(mts, ASP_ISTATR) & ASP_PUIS) { /*pen up interupt pending*/ + mx1ts_reg_set_mask(mts, ASP_ISTATR, ASP_PUIS); /*clearing pen up interupt*/ - mx1ts_disable_auto_sample(mts); + mx1ts_disable_auto_sample(mts); mx1ts_disable_pen_up_interrupt(mts); mx1ts_enable_pen_touch_interrupt(mts); - if(mts->is_open) + if(mts->is_open) /*report last known touch*/ mx1ts_evt_add(mts->ts_idev, 0, 0, 0); - printk(KERN_ERR "Zaplnena fifo.\n"); + printk(KERN_ERR "Pen up interrupt.\n"); mx1ts_flush_fifo(mts); return IRQ_HANDLED; @@ -445,7 +444,7 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id) (mts->cal_auto_zero >= mts->cal_range_y)) { // Invalid data. printk(KERN_ERR "Invalid data.\n"); - mx1ts_flush_fifo(mts); + mx1ts_flush_fifo(mts); /*if there are some older data*/ mx1ts_start_auto_calibration(mts); return IRQ_NONE; /* return IRQ_HANDLED; */ } @@ -456,8 +455,8 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id) - value = mx1ts_reg_read(mts, ASP_ACNTLCR); - value &= ~0x04000000; // Undocumented. + value = mx1ts_reg_read(mts, ASP_ACNTLCR); /*switching S0..S7 by internal logic*/ + value &= ~0x04000000; mx1ts_reg_write(mts, ASP_ACNTLCR, value); mts->auto_calibration = 0; @@ -492,24 +491,6 @@ static irqreturn_t mx1ts_pendata_irq(int irq, void *dev_id) return IRQ_HANDLED; } -/* static void mx1ts_pokus_zapnout(struct mx1ts *mts) { - mx1ts_reg_write(mts, ASP_CLKDIV, 0x1F); //clok divide register - mx1ts_reg_write(mts, ASP_ICNTLR , ASP_PUIE | ASP_PDRE | ASP_PFFE | ASP_EDGE | ASP_PIRQE); //interupt control register //0X00000833 - mx1ts_reg_write(mts, ASP_PSMPLRG, 0x0000487F); //pen a/d sample rate control register - mx1ts_reg_write(mts,ASP_ACNTLCR, ASP_CLKEN | ASP_AZE | ASP_AUTO | (10<<12) | 3); //control register - -} */ - -static void mx1ts_enable_pen_up_irq(struct mx1ts *mts) -{ - unsigned int value; - printk(KERN_ERR "enabling pen up irq.\n"); - - value = mx1ts_reg_read(mts, ASP_ICNTLR); - value |= ASP_PUIE; - mx1ts_reg_write(mts, ASP_ICNTLR, value); -} - /* * Handle the touch interrupt, generated when the pen is pressed/ * released. @@ -568,22 +549,22 @@ static int mx1ts_on(struct mx1ts *mts) return -1; } - printk("<1>mx1ts: request_mem_region \tOK\n"); + printk(KERN_ERR "mx1ts: request_mem_region \tOK\n"); mts->mx1ts_mem = ioremap ( ASP_BASE_ADDR, 0x38); - printk("<1>mx1ts: memory remaped on %p \n", mts->mx1ts_mem); + printk(KERN_ERR "mx1ts: memory remaped on %p \n", mts->mx1ts_mem); - printk("<1>mx1ts: enabling irqs\n"); + printk(KERN_ERR "mx1ts: enabling irqs\n"); if ((ret = mx1ts_enable_irqs(mts))) return ret; - printk("<1>mx1ts: irqs enabled \tOK\n"); + printk(KERN_ERR "mx1ts: irqs enabled \tOK\n"); mx1ts_reset_asp(mts); - printk("<1>mx1ts: reset\tOK\n"); + printk(KERN_ERR "mx1ts: reset\tOK\n"); return 0; } @@ -593,7 +574,7 @@ static void mx1ts_close(struct input_dev *idev) struct mx1ts *mts = dev_get_drvdata(idev->dev.parent); mts->is_open = 0; mx1ts_reset_asp(mts); - printk("<1>mx1ts: reset\tOK\n"); + printk(KERN_ERR "mx1ts: reset\tOK\n"); mx1ts_disable_pen_touch_interrupt(mts); mx1ts_disable_pen_up_interrupt(mts); @@ -605,7 +586,7 @@ static int mx1ts_open(struct input_dev *idev) mts->is_open = 1; mx1ts_enable_pen_touch_interrupt(mts); - printk("<1>mx1ts: zapnuti touch interrupt\n"); + printk(KERN_ERR "mx1ts: zapnuti touch interrupt\n"); return 0; } @@ -613,21 +594,20 @@ static int mx1ts_probe(struct platform_device *dev) { struct mx1ts *mts; struct input_dev *idev; - int error, id, x_res, y_res; + int error, x_res, y_res; -// mx1ts_disable_pen_touch_interrupt(); -// mx1ts_start_auto_calibration(); -// mx1ts_enable_pen_up_interrupt(); + /* TODO jak poznat ze zarizeni je pritomne ? */ - mts = kzalloc(sizeof(struct mx1ts), GFP_KERNEL); //alokuje pamet + mts = kzalloc(sizeof(struct mx1ts), GFP_KERNEL); /* alokuje pamet */ idev = input_allocate_device(); if (!mts || !idev) { error = -ENOMEM; + printk(KERN_ERR "mx1ts: failed allocate memory for struct mx1ts or idev\n"); goto err_free_devs; - return error; //XXX + return error; } - mx1ts_on(mts); + mx1ts_on(mts); /* remaping registers, reseting device */ mts->ts_idev = idev; //ucb->adcsync = adcsync; @@ -655,21 +635,19 @@ static int mx1ts_probe(struct platform_device *dev) } printk(KERN_DEBUG "UCB1400: found IRQ %d\n", ucb->irq);*/ - //input_set_drvdata(idev, mts); + //input_set_drvdata(idev, mts); /*moznost ulozit ukazatel na trukturu do input_driver*/ platform_set_drvdata(dev, mts); idev->dev.parent = &dev->dev; idev->name = "MX1 touchscreen interface"; - idev->id.vendor = (unsigned int) 345;//mx1ts_reg_read(mx1_ts, AC97_VENDOR_ID1); - idev->id.product = id; + idev->id.vendor = (unsigned int) 345; /*mx1ts_reg_read(mx1_ts, AC97_VENDOR_ID1);*/ + idev->id.product = (unsigned int) 354; /*id;*/ idev->open = mx1ts_open; idev->close = mx1ts_close; idev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); idev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); - //idev->bustype = BUS_HOST; - - printk("<1> mx1ts: setting idev struct \tOK\n"); + printk(KERN_ERR "mx1ts: setting idev struct \tOK\n"); x_res = 35000; y_res = 35000; @@ -681,17 +659,16 @@ static int mx1ts_probe(struct platform_device *dev) error = input_register_device(idev); if (error) - goto err_free_irq; + printk(KERN_ERR "mx1ts: error while register input device\n"); + goto err_free_devs; - printk("<1> mx1ts: input device registered \tOK\n"); + printk(KERN_ERR "mx1ts: input device registered \tOK\n"); return 0; - err_free_irq: -// free_irq(ucb->irq, ucb); - err_free_devs: - printk("<1> mx1ts: chyba pri nastavovani irq \n"); - input_free_device(idev); + err_free_devs: + printk(KERN_ERR "mx1ts: error in device probe \n"); + /*input_free_device(idev);*/ kfree(mts); return error; @@ -715,7 +692,7 @@ static int mx1ts_remove(struct platform_device *dev) kfree(mts); - printk("<1> Removing driver \tOK\n"); + printk(KERN_ERR "Removing driver \tOK\n"); return 0; } -- 2.39.2