]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more .30 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Wed, 5 Aug 2009 21:15:27 +0000 (14:15 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 5 Aug 2009 21:15:27 +0000 (14:15 -0700)
queue-2.6.30/atl1c-add-missing-parentheses.patch [new file with mode: 0644]
queue-2.6.30/atl1c-misplaced-parenthesis.patch [new file with mode: 0644]
queue-2.6.30/atl1c-wake_mcast-tested-twice-not-wake_ucast.patch [new file with mode: 0644]
queue-2.6.30/firewire-sbp2-add-support-for-disks-2-tb.patch [new file with mode: 0644]
queue-2.6.30/hwmon-differentiate-between-lpc47m233-and-lpc47m292.patch [new file with mode: 0644]
queue-2.6.30/hwmon-fix-upper-limit-readings.patch [new file with mode: 0644]
queue-2.6.30/i2c-tsl2550-fix-lux-value-in-dark-environment.patch [new file with mode: 0644]
queue-2.6.30/ieee1394-sbp2-add-support-for-disks-2-tb.patch [new file with mode: 0644]
queue-2.6.30/series

diff --git a/queue-2.6.30/atl1c-add-missing-parentheses.patch b/queue-2.6.30/atl1c-add-missing-parentheses.patch
new file mode 100644 (file)
index 0000000..b31f57f
--- /dev/null
@@ -0,0 +1,48 @@
+From c5ad4f592e27d782faea0a787d9181f192a69ef0 Mon Sep 17 00:00:00 2001
+From: roel kluin <roel.kluin@gmail.com>
+Date: Sun, 12 Jul 2009 11:40:34 +0000
+Subject: atl1c: add missing parentheses
+
+From: roel kluin <roel.kluin@gmail.com>
+
+commit c5ad4f592e27d782faea0a787d9181f192a69ef0 upstream.
+
+Parentheses are required or the comparison occurs before the bitand.
+
+Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/atl1c/atl1c.h |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/atl1c/atl1c.h
++++ b/drivers/net/atl1c/atl1c.h
+@@ -188,14 +188,14 @@ struct atl1c_tpd_ext_desc {
+ #define RRS_HDS_TYPE_DATA     2
+ #define RRS_IS_NO_HDS_TYPE(flag) \
+-      (((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == 0)
++      ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == 0)
+ #define RRS_IS_HDS_HEAD(flag) \
+-      (((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == \
++      ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \
+                       RRS_HDS_TYPE_HEAD)
+ #define RRS_IS_HDS_DATA(flag) \
+-      (((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK == \
++      ((((flag) >> (RRS_HDS_TYPE_SHIFT)) & RRS_HDS_TYPE_MASK) == \
+                       RRS_HDS_TYPE_DATA)
+ /* rrs word 3 bit 0:31 */
+@@ -245,7 +245,7 @@ struct atl1c_tpd_ext_desc {
+ #define RRS_PACKET_TYPE_802_3         1
+ #define RRS_PACKET_TYPE_ETH   0
+ #define RRS_PACKET_IS_ETH(word) \
+-      (((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK == \
++      ((((word) >> RRS_PACKET_TYPE_SHIFT) & RRS_PACKET_TYPE_MASK) == \
+                       RRS_PACKET_TYPE_ETH)
+ #define RRS_RXD_IS_VALID(word) \
+       ((((word) >> RRS_RXD_UPDATED_SHIFT) & RRS_RXD_UPDATED_MASK) == 1)
diff --git a/queue-2.6.30/atl1c-misplaced-parenthesis.patch b/queue-2.6.30/atl1c-misplaced-parenthesis.patch
new file mode 100644 (file)
index 0000000..fb7504d
--- /dev/null
@@ -0,0 +1,30 @@
+From 37b76c697f4ac082e9923dfa8e8aecc8bc54a8e1 Mon Sep 17 00:00:00 2001
+From: roel kluin <roel.kluin@gmail.com>
+Date: Sun, 12 Jul 2009 12:57:38 +0000
+Subject: atl1c: misplaced parenthesis
+
+From: roel kluin <roel.kluin@gmail.com>
+
+commit 37b76c697f4ac082e9923dfa8e8aecc8bc54a8e1 upstream.
+
+Fix misplaced parenthesis
+
+Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/atl1c/atl1c_main.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/atl1c/atl1c_main.c
++++ b/drivers/net/atl1c/atl1c_main.c
+@@ -1701,7 +1701,7 @@ static void atl1c_clean_rx_irq(struct at
+               if (likely(RRS_RXD_IS_VALID(rrs->word3))) {
+                       rfd_num = (rrs->word0 >> RRS_RX_RFD_CNT_SHIFT) &
+                               RRS_RX_RFD_CNT_MASK;
+-                      if (unlikely(rfd_num) != 1)
++                      if (unlikely(rfd_num != 1))
+                               /* TODO support mul rfd*/
+                               if (netif_msg_rx_err(adapter))
+                                       dev_warn(&pdev->dev,
diff --git a/queue-2.6.30/atl1c-wake_mcast-tested-twice-not-wake_ucast.patch b/queue-2.6.30/atl1c-wake_mcast-tested-twice-not-wake_ucast.patch
new file mode 100644 (file)
index 0000000..4f6d56e
--- /dev/null
@@ -0,0 +1,34 @@
+From 0ed586d075ef65c0268982e5b7f36d0ffaa95547 Mon Sep 17 00:00:00 2001
+From: Roel Kluin <roel.kluin@gmail.com>
+Date: Wed, 10 Jun 2009 09:55:03 +0000
+Subject: atl1c: WAKE_MCAST tested twice, not WAKE_UCAST
+
+From: Roel Kluin <roel.kluin@gmail.com>
+
+commit 0ed586d075ef65c0268982e5b7f36d0ffaa95547 upstream.
+
+The WAKE_MCAST bit is tested twice, the first should be WAKE_UCAST.
+
+Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
+Cc: Jie Yang <jie.yang@atheros.com>
+Cc: Jay Cliburn <jcliburn@gmail.com>
+Cc: Chris Snook <csnook@redhat.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/atl1c/atl1c_ethtool.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/net/atl1c/atl1c_ethtool.c
++++ b/drivers/net/atl1c/atl1c_ethtool.c
+@@ -271,7 +271,7 @@ static int atl1c_set_wol(struct net_devi
+       struct atl1c_adapter *adapter = netdev_priv(netdev);
+       if (wol->wolopts & (WAKE_ARP | WAKE_MAGICSECURE |
+-                          WAKE_MCAST | WAKE_BCAST | WAKE_MCAST))
++                          WAKE_UCAST | WAKE_BCAST | WAKE_MCAST))
+               return -EOPNOTSUPP;
+       /* these settings will always override what we currently have */
+       adapter->wol = 0;
diff --git a/queue-2.6.30/firewire-sbp2-add-support-for-disks-2-tb.patch b/queue-2.6.30/firewire-sbp2-add-support-for-disks-2-tb.patch
new file mode 100644 (file)
index 0000000..554f63a
--- /dev/null
@@ -0,0 +1,56 @@
+From stefanr@s5r6.in-berlin.de  Wed Aug  5 14:12:28 2009
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Date: Wed, 29 Jul 2009 21:25:14 +0200 (CEST)
+Subject: firewire: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
+To: stable@kernel.org
+Message-ID: <tkrat.79e096e282ffb3fc@s5r6.in-berlin.de>
+
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+
+Commit af2719415a5ceae06f2a6d33e78b555e64697fc8 upstream.
+
+Increase the command ORB data structure to transport up to 16 bytes long
+CDBs (instead of 12 bytes), and tell the SCSI mid layer about it.  This
+is notably necessary for READ CAPACITY(16) and friends, i.e. support of
+large disks.
+
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/firewire/fw-sbp2.c |   10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+--- a/drivers/firewire/fw-sbp2.c
++++ b/drivers/firewire/fw-sbp2.c
+@@ -190,6 +190,12 @@ struct sbp2_target {
+ #define SBP2_CYCLE_LIMIT              (0xc8 << 12)    /* 200 125us cycles */
+ /*
++ * There is no transport protocol limit to the CDB length,  but we implement
++ * a fixed length only.  16 bytes is enough for disks larger than 2 TB.
++ */
++#define SBP2_MAX_CDB_SIZE             16
++
++/*
+  * The default maximum s/g segment size of a FireWire controller is
+  * usually 0x10000, but SBP-2 only allows 0xffff. Since buffers have to
+  * be quadlet-aligned, we set the length limit to 0xffff & ~3.
+@@ -301,7 +307,7 @@ struct sbp2_command_orb {
+               struct sbp2_pointer next;
+               struct sbp2_pointer data_descriptor;
+               __be32 misc;
+-              u8 command_block[12];
++              u8 command_block[SBP2_MAX_CDB_SIZE];
+       } request;
+       struct scsi_cmnd *cmd;
+       scsi_done_fn_t done;
+@@ -1135,6 +1141,8 @@ static int sbp2_probe(struct device *dev
+       if (fw_device_enable_phys_dma(device) < 0)
+               goto fail_shost_put;
++      shost->max_cmd_len = SBP2_MAX_CDB_SIZE;
++
+       if (scsi_add_host(shost, &unit->device) < 0)
+               goto fail_shost_put;
diff --git a/queue-2.6.30/hwmon-differentiate-between-lpc47m233-and-lpc47m292.patch b/queue-2.6.30/hwmon-differentiate-between-lpc47m233-and-lpc47m292.patch
new file mode 100644 (file)
index 0000000..08f6e05
--- /dev/null
@@ -0,0 +1,55 @@
+From 1b54ab450b180eaeeb0eee6f0f64349246a22c14 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <khali@linux-fr.org>
+Date: Tue, 28 Jul 2009 16:31:39 +0200
+Subject: hwmon: (smsc47m1) Differentiate between LPC47M233 and LPC47M292
+
+From: Jean Delvare <khali@linux-fr.org>
+
+commit 1b54ab450b180eaeeb0eee6f0f64349246a22c14 upstream.
+
+The SMSC LPC47M233 and LPC47M292 chips have the same device ID but
+are not compatible.
+
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Cc: Juerg Haefliger <juergh@gmail.com>
+Acked-by: Hans de Goede <hdegoede@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hwmon/smsc47m1.c |   11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/drivers/hwmon/smsc47m1.c
++++ b/drivers/hwmon/smsc47m1.c
+@@ -86,6 +86,7 @@ superio_exit(void)
+ #define SUPERIO_REG_ACT               0x30
+ #define SUPERIO_REG_BASE      0x60
+ #define SUPERIO_REG_DEVID     0x20
++#define SUPERIO_REG_DEVREV    0x21
+ /* Logical device registers */
+@@ -429,6 +430,9 @@ static int __init smsc47m1_find(unsigned
+        * The LPC47M292 (device id 0x6B) is somewhat compatible, but it
+        * supports a 3rd fan, and the pin configuration registers are
+        * unfortunately different.
++       * The LPC47M233 has the same device id (0x6B) but is not compatible.
++       * We check the high bit of the device revision register to
++       * differentiate them.
+        */
+       switch (val) {
+       case 0x51:
+@@ -448,6 +452,13 @@ static int __init smsc47m1_find(unsigned
+               sio_data->type = smsc47m1;
+               break;
+       case 0x6B:
++              if (superio_inb(SUPERIO_REG_DEVREV) & 0x80) {
++                      pr_debug(DRVNAME ": "
++                               "Found SMSC LPC47M233, unsupported\n");
++                      superio_exit();
++                      return -ENODEV;
++              }
++
+               pr_info(DRVNAME ": Found SMSC LPC47M292\n");
+               sio_data->type = smsc47m2;
+               break;
diff --git a/queue-2.6.30/hwmon-fix-upper-limit-readings.patch b/queue-2.6.30/hwmon-fix-upper-limit-readings.patch
new file mode 100644 (file)
index 0000000..0654bf5
--- /dev/null
@@ -0,0 +1,37 @@
+From 8d282497cbf8124d6814d51a74fb13d69531c669 Mon Sep 17 00:00:00 2001
+From: Luca Tettamanti <kronos.it@gmail.com>
+Date: Tue, 28 Jul 2009 16:31:39 +0200
+Subject: hwmon: (asus_atk0110) Fix upper limit readings
+
+From: Luca Tettamanti <kronos.it@gmail.com>
+
+commit 8d282497cbf8124d6814d51a74fb13d69531c669 upstream.
+
+On newer Asus boards the "upper" limit of a sensor is encoded as
+delta from the "lower" limit. Fix the driver to correctly handle
+this case.
+
+Signed-off-by: Luca Tettamanti <kronos.it@gmail.com>
+Tested-by: Alex Macfarlane Smith <nospam@archifishal.co.uk>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/hwmon/asus_atk0110.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/hwmon/asus_atk0110.c
++++ b/drivers/hwmon/asus_atk0110.c
+@@ -593,7 +593,11 @@ static int atk_add_sensor(struct atk_dat
+       sensor->data = data;
+       sensor->id = flags->integer.value;
+       sensor->limit1 = limit1->integer.value;
+-      sensor->limit2 = limit2->integer.value;
++      if (data->old_interface)
++              sensor->limit2 = limit2->integer.value;
++      else
++              /* The upper limit is expressed as delta from lower limit */
++              sensor->limit2 = sensor->limit1 + limit2->integer.value;
+       snprintf(sensor->input_attr_name, ATTR_NAME_SIZE,
+                       "%s%d_input", base_name, start + *num);
diff --git a/queue-2.6.30/i2c-tsl2550-fix-lux-value-in-dark-environment.patch b/queue-2.6.30/i2c-tsl2550-fix-lux-value-in-dark-environment.patch
new file mode 100644 (file)
index 0000000..e5ab312
--- /dev/null
@@ -0,0 +1,55 @@
+From 96f699ad09c8b3c55cd229506a9add0047838e3e Mon Sep 17 00:00:00 2001
+From: Michele Jr De Candia <michele.decandia@valueteam.com>
+Date: Tue, 28 Jul 2009 16:33:03 +0200
+Subject: i2c/tsl2550: Fix lux value in dark environment
+
+From: Michele Jr De Candia <michele.decandia@valueteam.com>
+
+commit 96f699ad09c8b3c55cd229506a9add0047838e3e upstream.
+
+I've tested TSL2550 driver and I've found a bug: when light is off,
+returned value from tsl2550_calculate_lux function is -1 when it should
+be 0 (sensor correctly read that light was off).
+
+I think the bug is that a zero c0 value (approximated value of ch0) is
+misinterpreted as an error.
+
+Signed-off-by: Michele Jr De Candia <michele.decandia@valueteam.com>
+Acked-by: Rodolfo Giometti <giometti@linux.it>
+Signed-off-by: Jean Delvare <khali@linux-fr.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+--- a/drivers/i2c/chips/tsl2550.c
++++ b/drivers/i2c/chips/tsl2550.c
+@@ -27,7 +27,7 @@
+ #include <linux/delay.h>
+ #define TSL2550_DRV_NAME      "tsl2550"
+-#define DRIVER_VERSION                "1.1.1"
++#define DRIVER_VERSION                "1.1.2"
+ /*
+  * Defines
+@@ -189,13 +189,16 @@ static int tsl2550_calculate_lux(u8 ch0, u8 ch1)
+       u8 r = 128;
+       /* Avoid division by 0 and count 1 cannot be greater than count 0 */
+-      if (c0 && (c1 <= c0))
+-              r = c1 * 128 / c0;
++      if (c1 <= c0)
++              if (c0) {
++                      r = c1 * 128 / c0;
++
++                      /* Calculate LUX */
++                      lux = ((c0 - c1) * ratio_lut[r]) / 256;
++              } else
++                      lux = 0;
+       else
+-              return -1;
+-
+-      /* Calculate LUX */
+-      lux = ((c0 - c1) * ratio_lut[r]) / 256;
++              return -EAGAIN;
+       /* LUX range check */
+       return lux > TSL2550_MAX_LUX ? TSL2550_MAX_LUX : lux;
diff --git a/queue-2.6.30/ieee1394-sbp2-add-support-for-disks-2-tb.patch b/queue-2.6.30/ieee1394-sbp2-add-support-for-disks-2-tb.patch
new file mode 100644 (file)
index 0000000..5ebb447
--- /dev/null
@@ -0,0 +1,58 @@
+From stefanr@s5r6.in-berlin.de  Wed Aug  5 14:12:51 2009
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Date: Wed, 29 Jul 2009 21:26:25 +0200 (CEST)
+Subject: ieee1394: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
+To: stable@kernel.org
+Message-ID: <tkrat.5c059853a0558744@s5r6.in-berlin.de>
+Content-Disposition: INLINE
+
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+
+Commit ebbb16bffa646f853899ef3fdc0ac7abab888703 upstream.
+
+Increase the command ORB data structure to transport up to 16 bytes long
+CDBs (instead of 12 bytes), and tell the SCSI mid layer about it.  This
+is notably necessary for READ CAPACITY(16) and friends, i.e. support of
+large disks.
+
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+ drivers/ieee1394/sbp2.c |    1 +
+ drivers/ieee1394/sbp2.h |    8 +++++++-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/ieee1394/sbp2.c
++++ b/drivers/ieee1394/sbp2.c
+@@ -880,6 +880,7 @@ static struct sbp2_lu *sbp2_alloc_device
+       }
+       shost->hostdata[0] = (unsigned long)lu;
++      shost->max_cmd_len = SBP2_MAX_CDB_SIZE;
+       if (!scsi_add_host(shost, &ud->device)) {
+               lu->shost = shost;
+--- a/drivers/ieee1394/sbp2.h
++++ b/drivers/ieee1394/sbp2.h
+@@ -25,6 +25,12 @@
+ #define SBP2_DEVICE_NAME              "sbp2"
+ /*
++ * There is no transport protocol limit to the CDB length,  but we implement
++ * a fixed length only.  16 bytes is enough for disks larger than 2 TB.
++ */
++#define SBP2_MAX_CDB_SIZE             16
++
++/*
+  * SBP-2 specific definitions
+  */
+@@ -51,7 +57,7 @@ struct sbp2_command_orb {
+       u32 data_descriptor_hi;
+       u32 data_descriptor_lo;
+       u32 misc;
+-      u8 cdb[12];
++      u8 cdb[SBP2_MAX_CDB_SIZE];
+ } __attribute__((packed));
+ #define SBP2_LOGIN_REQUEST            0x0
index d94ed39c346a0f2f6f5af43d5bb7af9e335a5ee7..f9ce22197386980933e64c3f5215ef9727393678 100644 (file)
@@ -43,3 +43,11 @@ md-raid6-release-spare-page-at-stop.patch
 md-when-a-level-change-reduces-the-number-of-devices-remove-the-excess.patch
 ide-fix-handling-of-unexpected-irqs-vs-request_irq.patch
 ide-relax-dma-info-validity-checking.patch
+hwmon-fix-upper-limit-readings.patch
+hwmon-differentiate-between-lpc47m233-and-lpc47m292.patch
+i2c-tsl2550-fix-lux-value-in-dark-environment.patch
+firewire-sbp2-add-support-for-disks-2-tb.patch
+ieee1394-sbp2-add-support-for-disks-2-tb.patch
+atl1c-wake_mcast-tested-twice-not-wake_ucast.patch
+atl1c-add-missing-parentheses.patch
+atl1c-misplaced-parenthesis.patch