aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-3.10/0052-Add-retry-on-error-and-tidy-of-temperature-driver.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/brcm2708/patches-3.10/0052-Add-retry-on-error-and-tidy-of-temperature-driver.patch')
-rw-r--r--target/linux/brcm2708/patches-3.10/0052-Add-retry-on-error-and-tidy-of-temperature-driver.patch129
1 files changed, 0 insertions, 129 deletions
diff --git a/target/linux/brcm2708/patches-3.10/0052-Add-retry-on-error-and-tidy-of-temperature-driver.patch b/target/linux/brcm2708/patches-3.10/0052-Add-retry-on-error-and-tidy-of-temperature-driver.patch
deleted file mode 100644
index 18d61012f7..0000000000
--- a/target/linux/brcm2708/patches-3.10/0052-Add-retry-on-error-and-tidy-of-temperature-driver.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 1234701636ab3dca340a336aa9ddfadd64914e58 Mon Sep 17 00:00:00 2001
-From: popcornmix <popcornmix@gmail.com>
-Date: Sun, 24 Feb 2013 16:30:57 +0000
-Subject: [PATCH 052/196] Add retry on error and tidy of temperature driver
-
----
- drivers/thermal/bcm2835-thermal.c | 78 ++++++++++++++-------------------------
- 1 file changed, 27 insertions(+), 51 deletions(-)
-
-diff --git a/drivers/thermal/bcm2835-thermal.c b/drivers/thermal/bcm2835-thermal.c
-index 3f9a733..85fceb5 100644
---- a/drivers/thermal/bcm2835-thermal.c
-+++ b/drivers/thermal/bcm2835-thermal.c
-@@ -33,7 +33,6 @@
- #define print_debug(fmt,...)
- #endif
- #define print_err(fmt,...) printk(KERN_ERR "%s:%s:%d: "fmt"\n", MODULE_NAME, __func__,__LINE__, ##__VA_ARGS__)
--#define print_info(fmt,...) printk(KERN_INFO "%s: "fmt"\n", MODULE_NAME, ##__VA_ARGS__)
-
- #define VC_TAG_GET_TEMP 0x00030006
- #define VC_TAG_GET_MAX_TEMP 0x0003000A
-@@ -66,12 +65,6 @@ struct bcm2835_thermal_data {
- struct vc_msg msg;
- };
-
--/* --- PROTOTYPES --- */
--static int bcm2835_get_temp(struct thermal_zone_device *thermal_dev, unsigned long *);
--static int bcm2835_get_max_temp(struct thermal_zone_device *thermal_dev, int, unsigned long *);
--static int bcm2835_get_trip_type(struct thermal_zone_device *thermal_dev, int trip_num, enum thermal_trip_type *trip_type);
--static int bcm2835_get_mode(struct thermal_zone_device *thermal_dev, enum thermal_device_mode *dev_mode);
--
- /* --- GLOBALS --- */
- static struct bcm2835_thermal_data bcm2835_data;
-
-@@ -79,64 +72,47 @@ static struct bcm2835_thermal_data bcm2835_data;
- static struct thermal_zone_device_ops ops;
-
- /* --- FUNCTIONS --- */
--static int bcm2835_get_max_temp(struct thermal_zone_device *thermal_dev, int trip_num, unsigned long *temp)
--{
-- int result;
-
-+static int bcm2835_get_temp_or_max(struct thermal_zone_device *thermal_dev, unsigned long *temp, unsigned tag_id)
-+{
-+ int result = -1, retry = 3;
- print_debug("IN");
-
-- /* wipe all previous message data */
-- memset(&bcm2835_data.msg, 0, sizeof bcm2835_data.msg);
--
-- /* prepare message */
-- bcm2835_data.msg.msg_size = sizeof bcm2835_data.msg;
-- bcm2835_data.msg.tag.buffer_size = 8;
-- bcm2835_data.msg.tag.tag_id = VC_TAG_GET_MAX_TEMP;
--
-- /* send the message */
-- result = bcm_mailbox_property(&bcm2835_data.msg, sizeof bcm2835_data.msg);
-+ *temp = 0;
-+ while (result != 0 && retry-- > 0) {
-+ /* wipe all previous message data */
-+ memset(&bcm2835_data.msg, 0, sizeof bcm2835_data.msg);
-+
-+ /* prepare message */
-+ bcm2835_data.msg.msg_size = sizeof bcm2835_data.msg;
-+ bcm2835_data.msg.tag.buffer_size = 8;
-+ bcm2835_data.msg.tag.tag_id = tag_id;
-+
-+ /* send the message */
-+ result = bcm_mailbox_property(&bcm2835_data.msg, sizeof bcm2835_data.msg);
-+ print_debug("Got %stemperature as %u (%d,%x)\n", tag_id==VC_TAG_GET_MAX_TEMP ? "max ":"", (uint)bcm2835_data.msg.tag.val, result, bcm2835_data.msg.request_code);
-+ if (!(bcm2835_data.msg.request_code & 0x80000000))
-+ result = -1;
-+ }
-
- /* check if it was all ok and return the rate in milli degrees C */
-- if (result == 0 && (bcm2835_data.msg.request_code & 0x80000000))
-+ if (result == 0)
- *temp = (uint)bcm2835_data.msg.tag.val;
-- #ifdef THERMAL_DEBUG_ENABLE
- else
-- print_debug("Failed to get temperature!");
-- #endif
-- print_debug("Got temperature as %u",(uint)*temp);
-+ print_err("Failed to get temperature! (%x:%d)\n", tag_id, result);
- print_debug("OUT");
-- return 0;
-+ return result;
- }
-
- static int bcm2835_get_temp(struct thermal_zone_device *thermal_dev, unsigned long *temp)
- {
-- int result;
--
-- print_debug("IN");
--
-- /* wipe all previous message data */
-- memset(&bcm2835_data.msg, 0, sizeof bcm2835_data.msg);
--
-- /* prepare message */
-- bcm2835_data.msg.msg_size = sizeof bcm2835_data.msg;
-- bcm2835_data.msg.tag.buffer_size = 8;
-- bcm2835_data.msg.tag.tag_id = VC_TAG_GET_TEMP;
--
-- /* send the message */
-- result = bcm_mailbox_property(&bcm2835_data.msg, sizeof bcm2835_data.msg);
--
-- /* check if it was all ok and return the rate in milli degrees C */
-- if (result == 0 && (bcm2835_data.msg.request_code & 0x80000000))
-- *temp = (uint)bcm2835_data.msg.tag.val;
-- #ifdef THERMAL_DEBUG_ENABLE
-- else
-- print_debug("Failed to get temperature!");
-- #endif
-- print_debug("Got temperature as %u",(uint)*temp);
-- print_debug("OUT");
-- return 0;
-+ return bcm2835_get_temp_or_max(thermal_dev, temp, VC_TAG_GET_TEMP);
- }
-
-+static int bcm2835_get_max_temp(struct thermal_zone_device *thermal_dev, int trip_num, unsigned long *temp)
-+{
-+ return bcm2835_get_temp_or_max(thermal_dev, temp, VC_TAG_GET_MAX_TEMP);
-+}
-
- static int bcm2835_get_trip_type(struct thermal_zone_device * thermal_dev, int trip_num, enum thermal_trip_type *trip_type)
- {
---
-1.9.1
-