Re: [PATCH v2 1/2] Input: Add device_enable handler to DaVinci Keyscan platform data
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2009-11-19 16:55:10
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2009-11-19 16:55:10
On Thu, Nov 19, 2009 at 10:32:21AM -0600, Miguel Aguilar wrote:
Hi Dmitry,quoted
quoted
+ if (pdata->device_enable) { + error = pdata->device_enable(dev); + if (error < 0) { + dev_dbg(dev, "device enable function failed\n"); + return error; + } + } +Hi Miguel, Does this need to live in the driver? Why can't platform code do this for us? Thanks.The reason to invoke the device_enable function in the driver is because in the testing process of the key scan driver a issue was found when the key scan is built as a module. There is a specific PINMUX configuration that only should be set if the key scan driver is loaded in the kernel to avoid pin conflicts. So when the key scan is built as a module the board file (or platform code) doesn't know if the key scan is loaded or not, so that's why the driver is the one who must invoke the device_enable function in the probe function.
I see... What happens if PINMUX is set but there isn't a driver? Also, what happens when you unload the module? Don't you need a similar call to disable PINMUX configuration? -- Dmitry