From: Greg Kroah-Hartman Date: Wed, 5 Aug 2009 21:15:27 +0000 (-0700) Subject: more .30 patches X-Git-Tag: v2.6.30.5~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2dc5653cac9fe55048e6da1e6ab858898afaf647;p=thirdparty%2Fkernel%2Fstable-queue.git more .30 patches --- 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 index 00000000000..b31f57f8f6d --- /dev/null +++ b/queue-2.6.30/atl1c-add-missing-parentheses.patch @@ -0,0 +1,48 @@ +From c5ad4f592e27d782faea0a787d9181f192a69ef0 Mon Sep 17 00:00:00 2001 +From: roel kluin +Date: Sun, 12 Jul 2009 11:40:34 +0000 +Subject: atl1c: add missing parentheses + +From: roel kluin + +commit c5ad4f592e27d782faea0a787d9181f192a69ef0 upstream. + +Parentheses are required or the comparison occurs before the bitand. + +Signed-off-by: Roel Kluin +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..fb7504dcf85 --- /dev/null +++ b/queue-2.6.30/atl1c-misplaced-parenthesis.patch @@ -0,0 +1,30 @@ +From 37b76c697f4ac082e9923dfa8e8aecc8bc54a8e1 Mon Sep 17 00:00:00 2001 +From: roel kluin +Date: Sun, 12 Jul 2009 12:57:38 +0000 +Subject: atl1c: misplaced parenthesis + +From: roel kluin + +commit 37b76c697f4ac082e9923dfa8e8aecc8bc54a8e1 upstream. + +Fix misplaced parenthesis + +Signed-off-by: Roel Kluin +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..4f6d56eb179 --- /dev/null +++ b/queue-2.6.30/atl1c-wake_mcast-tested-twice-not-wake_ucast.patch @@ -0,0 +1,34 @@ +From 0ed586d075ef65c0268982e5b7f36d0ffaa95547 Mon Sep 17 00:00:00 2001 +From: Roel Kluin +Date: Wed, 10 Jun 2009 09:55:03 +0000 +Subject: atl1c: WAKE_MCAST tested twice, not WAKE_UCAST + +From: Roel Kluin + +commit 0ed586d075ef65c0268982e5b7f36d0ffaa95547 upstream. + +The WAKE_MCAST bit is tested twice, the first should be WAKE_UCAST. + +Signed-off-by: Roel Kluin +Cc: Jie Yang +Cc: Jay Cliburn +Cc: Chris Snook +Signed-off-by: Andrew Morton +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..554f63a9063 --- /dev/null +++ b/queue-2.6.30/firewire-sbp2-add-support-for-disks-2-tb.patch @@ -0,0 +1,56 @@ +From stefanr@s5r6.in-berlin.de Wed Aug 5 14:12:28 2009 +From: Stefan Richter +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: + +From: Stefan Richter + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..08f6e05f8ed --- /dev/null +++ b/queue-2.6.30/hwmon-differentiate-between-lpc47m233-and-lpc47m292.patch @@ -0,0 +1,55 @@ +From 1b54ab450b180eaeeb0eee6f0f64349246a22c14 Mon Sep 17 00:00:00 2001 +From: Jean Delvare +Date: Tue, 28 Jul 2009 16:31:39 +0200 +Subject: hwmon: (smsc47m1) Differentiate between LPC47M233 and LPC47M292 + +From: Jean Delvare + +commit 1b54ab450b180eaeeb0eee6f0f64349246a22c14 upstream. + +The SMSC LPC47M233 and LPC47M292 chips have the same device ID but +are not compatible. + +Signed-off-by: Jean Delvare +Cc: Juerg Haefliger +Acked-by: Hans de Goede +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..0654bf5eaeb --- /dev/null +++ b/queue-2.6.30/hwmon-fix-upper-limit-readings.patch @@ -0,0 +1,37 @@ +From 8d282497cbf8124d6814d51a74fb13d69531c669 Mon Sep 17 00:00:00 2001 +From: Luca Tettamanti +Date: Tue, 28 Jul 2009 16:31:39 +0200 +Subject: hwmon: (asus_atk0110) Fix upper limit readings + +From: Luca Tettamanti + +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 +Tested-by: Alex Macfarlane Smith +Signed-off-by: Jean Delvare +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..e5ab3123b5a --- /dev/null +++ b/queue-2.6.30/i2c-tsl2550-fix-lux-value-in-dark-environment.patch @@ -0,0 +1,55 @@ +From 96f699ad09c8b3c55cd229506a9add0047838e3e Mon Sep 17 00:00:00 2001 +From: Michele Jr De Candia +Date: Tue, 28 Jul 2009 16:33:03 +0200 +Subject: i2c/tsl2550: Fix lux value in dark environment + +From: Michele Jr De Candia + +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 +Acked-by: Rodolfo Giometti +Signed-off-by: Jean Delvare +Signed-off-by: Greg Kroah-Hartman + +--- a/drivers/i2c/chips/tsl2550.c ++++ b/drivers/i2c/chips/tsl2550.c +@@ -27,7 +27,7 @@ + #include + + #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 index 00000000000..5ebb44726bb --- /dev/null +++ b/queue-2.6.30/ieee1394-sbp2-add-support-for-disks-2-tb.patch @@ -0,0 +1,58 @@ +From stefanr@s5r6.in-berlin.de Wed Aug 5 14:12:51 2009 +From: Stefan Richter +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: +Content-Disposition: INLINE + +From: Stefan Richter + +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 +Signed-off-by: Greg Kroah-Hartman +--- + 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 diff --git a/queue-2.6.30/series b/queue-2.6.30/series index d94ed39c346..f9ce2219738 100644 --- a/queue-2.6.30/series +++ b/queue-2.6.30/series @@ -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