rendered paste bodyIndex: drivers/input/touchscreen/ts-adc-debounce.c===================================================================RCS file: /cvs/linux/kernel26/drivers/input/touchscreen/ts-adc-debounce.c,vretrieving revision 1.30diff -u -r1.30 ts-adc-debounce.c--- drivers/input/touchscreen/ts-adc-debounce.c 17 Feb 2007 19:39:56 -0000 1.30+++ drivers/input/touchscreen/ts-adc-debounce.c 17 Feb 2007 22:59:13 -0000@@ -154,7 +154,9 @@ } if (!pen_up) {- params->sense(params->adc_dev, &ts->req);+ adc_methods *methods = dev_get_drvdata(params->adc_dev);+ if (methods)+ methods->sense(params->adc_dev, &ts->req); debounce_samples(ts->req.sense, &ts_pos); } Index: drivers/misc/adc/ads7846_adc_ssp.c===================================================================RCS file: /cvs/linux/kernel26/drivers/misc/adc/ads7846_adc_ssp.c,vretrieving revision 1.15diff -u -r1.15 ads7846_adc_ssp.c--- drivers/misc/adc/ads7846_adc_ssp.c 17 Feb 2007 16:57:20 -0000 1.15+++ drivers/misc/adc/ads7846_adc_ssp.c 17 Feb 2007 22:59:13 -0000@@ -91,7 +91,7 @@ CTRL_AUX_N, }; -int ads7846_sense(struct device *dev, struct adc_request *req)+static int ads7846_sense(struct device *dev, struct adc_request *req) { struct ads7846_ssp_platform_data *params = dev->platform_data; int i;@@ -114,7 +114,10 @@ ads7846_ssp_putget(CTRL_START); return 0; }-EXPORT_SYMBOL(ads7846_sense);++struct adc_methods ads7846_methods = {+ .sense = ads7846_sense,+}; static void ads7846_ssp_init(int freq) {@@ -150,6 +153,7 @@ printk(KERN_ERR "ads7846_ssp: Invalid port\n"); return -EINVAL; }+ platform_set_drvdata(dev, &ads7846_methods); pxa_set_cken(CKEN_SSP(port), 1); /* ~1.8Mhz - max frequency for PXA25x */@@ -162,6 +166,8 @@ { SSCR0_P(port) &= ~SSCR0_SSE; pxa_set_cken(CKEN_SSP(port), 0);++ platform_set_drvdata(dev, NULL); return 0; } Index: include/linux/adc.h===================================================================RCS file: /cvs/linux/kernel26/include/linux/adc.h,vretrieving revision 1.1diff -u -r1.1 adc.h--- include/linux/adc.h 28 Jan 2007 18:28:57 -0000 1.1+++ include/linux/adc.h 17 Feb 2007 22:59:13 -0000@@ -26,4 +26,8 @@ #define adc_request_entry(ptr) container_of(ptr, struct adc_request, requests) +struct adc_methods {+ int (*sense)(struct device *this, struct adc_request *req);+};+ #endif // adc.h