From 4f7abc1c7a9e564f2730041899f88567f63aada3 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Thu, 6 Jan 2011 01:32:17 +0000 Subject: Add 2.6.37 support SVN-Revision: 24914 --- .../xburst/patches-2.6.37/300-battery-fixes.patch | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 target/linux/xburst/patches-2.6.37/300-battery-fixes.patch (limited to 'target/linux/xburst/patches-2.6.37/300-battery-fixes.patch') diff --git a/target/linux/xburst/patches-2.6.37/300-battery-fixes.patch b/target/linux/xburst/patches-2.6.37/300-battery-fixes.patch new file mode 100644 index 0000000000..947c6711c3 --- /dev/null +++ b/target/linux/xburst/patches-2.6.37/300-battery-fixes.patch @@ -0,0 +1,49 @@ +--- a/drivers/power/jz4740-battery.c ++++ b/drivers/power/jz4740-battery.c +@@ -47,6 +47,8 @@ struct jz_battery { + + struct power_supply battery; + struct delayed_work work; ++ ++ struct mutex lock; + }; + + static inline struct jz_battery *psy_to_jz_battery(struct power_supply *psy) +@@ -68,6 +70,8 @@ static long jz_battery_read_voltage(stru + unsigned long val; + long voltage; + ++ mutex_lock(&battery->lock); ++ + INIT_COMPLETION(battery->read_completion); + + enable_irq(battery->irq); +@@ -91,6 +95,8 @@ static long jz_battery_read_voltage(stru + battery->cell->disable(battery->pdev); + disable_irq(battery->irq); + ++ mutex_unlock(&battery->lock); ++ + return voltage; + } + +@@ -240,6 +246,11 @@ static int __devinit jz_battery_probe(st + struct jz_battery *jz_battery; + struct power_supply *battery; + ++ if (!pdata) { ++ dev_err(&pdev->dev, "No platform_data supplied\n"); ++ return -ENXIO; ++ } ++ + jz_battery = kzalloc(sizeof(*jz_battery), GFP_KERNEL); + if (!jz_battery) { + dev_err(&pdev->dev, "Failed to allocate driver structure\n"); +@@ -291,6 +302,7 @@ static int __devinit jz_battery_probe(st + jz_battery->pdev = pdev; + + init_completion(&jz_battery->read_completion); ++ mutex_init(&jz_battery->lock); + + INIT_DELAYED_WORK(&jz_battery->work, jz_battery_work); + -- cgit v1.2.3