On Tue, Dec 27, 2011 at 06:16:34PM +0800, Ying-Chun Liu (PaulLiu) wrote:
- initdata = pdev->dev.platform_data;
- sreg = initdata->driver_data;
- spin_lock_init(&sreg->lock);
You don't actually appear to use this, though it looks like you need to do something to protect against simultaneous access to the registers.
+struct anatop_regulator {
struct regulator_desc regulator;
struct anatop_regulator *parent;
struct anatop_regulator_data *rdata;
struct completion done;
spinlock_t lock;
struct notifier_block nb;
You aren't using half the things in this structure.