RE: [PATCH] mmc: disable UHS on broadcom sdhci

2013-11-18 Thread Stephen Hurd
> SDHCI_QUIRK2_BCM57785_CR:
> Bit twiddles some Broadcom-specific registers and supresses an error
> about the 64k bar0.

> I think this can be done without spending a global SDHCI quirk bit. This
> is just a one-time setup that needs to be done, isn't it? It's hard
> to tell since there's no official errata described, but if it is, then
> overriding the probe function is the way to go instead, flipping these
> bits there and then call the regular probe.

Yeah, I have confirmed that these bits need  to be twiddled during every clock 
setting (ie: for each card enumeration) not one time when the chip is enabled.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] mmc: disable UHS on broadcom sdhci

2013-11-18 Thread Stephen Hurd
> > SDHCI_QUIRK2_BCM57785_CR:
> > Bit twiddles some Broadcom-specific registers and supresses an error
> > about the 64k bar0.

> I think this can be done without spending a global SDHCI quirk bit. This
> is just a one-time setup that needs to be done, isn't it? It's hard
> to tell since there's no official errata described, but if it is, then
> overriding the probe function is the way to go instead, flipping these
> bits there and then call the regular probe.

My initial recollection is that this bit twiddling needs to be done any time 
the clock is touched, so it's not just one-time setup.  I'll ask the guys about 
it and get back to you.

The 64k bar0 suppression is just cosmetic, but I don't see anything in the 
public specs suggesting that there is a max limit on the size of the bar... not 
sure that it's appropriate to give a warning on it for *any* device, but it's 
absolutely incorrect for this device.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] mmc: disable UHS on broadcom sdhci

2013-11-18 Thread Stephen Hurd
  SDHCI_QUIRK2_BCM57785_CR:
  Bit twiddles some Broadcom-specific registers and supresses an error
  about the 64k bar0.

 I think this can be done without spending a global SDHCI quirk bit. This
 is just a one-time setup that needs to be done, isn't it? It's hard
 to tell since there's no official errata described, but if it is, then
 overriding the probe function is the way to go instead, flipping these
 bits there and then call the regular probe.

My initial recollection is that this bit twiddling needs to be done any time 
the clock is touched, so it's not just one-time setup.  I'll ask the guys about 
it and get back to you.

The 64k bar0 suppression is just cosmetic, but I don't see anything in the 
public specs suggesting that there is a max limit on the size of the bar... not 
sure that it's appropriate to give a warning on it for *any* device, but it's 
absolutely incorrect for this device.


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] mmc: disable UHS on broadcom sdhci

2013-11-18 Thread Stephen Hurd
 SDHCI_QUIRK2_BCM57785_CR:
 Bit twiddles some Broadcom-specific registers and supresses an error
 about the 64k bar0.

 I think this can be done without spending a global SDHCI quirk bit. This
 is just a one-time setup that needs to be done, isn't it? It's hard
 to tell since there's no official errata described, but if it is, then
 overriding the probe function is the way to go instead, flipping these
 bits there and then call the regular probe.

Yeah, I have confirmed that these bits need  to be twiddled during every clock 
setting (ie: for each card enumeration) not one time when the chip is enabled.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2013-01-16 Thread Stephen Hurd
The patch was against 3.7, not 2.7, 2.7 was a typo.

I'll just pass it off to a Linux developer if I meet one.  Sorry for wasting 
your time.


-- Stephen Hurd

-Original Message-
From: gre...@linuxfoundation.org [mailto:gre...@linuxfoundation.org] 
Sent: Tuesday, January 15, 2013 10:59 PM
To: Stephen Hurd
Cc: linux-ser...@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected 
serial port

On Wed, Dec 12, 2012 at 05:28:35AM +, Stephen Hurd wrote:
> From: Stephen Hurd 
> 
> Add support for the UART device present in Broadcom TruManage capable 
> NetXtreme chips (ie: 5761m 5762, and 5725).
> 
> This implementation has a hidden transmit FIFO, so running in single-byte 
> interrupt mode results in too many interrupts.  The UART_CAP_HFIFO capability 
> was added to track this.  It continues to reload the THR as long as the THRE 
> and TSRE bits are set in the LSR up to a specified limit (1024 is used here).
> 
> Signed-off-by: Stephen Hurd 
> 
> ---
> 
> Patch against linux-2.7 from ftp.kernel.org downloaded Dec-11-2012.

2.7?

I need this against the linux-next release, can you please redo it, and
not send it as an attachment, but put it all inline in the email
properly like Documentation/email_clients.txt says?

thanks,

greg k-h


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2013-01-16 Thread Stephen Hurd
The patch was against 3.7, not 2.7, 2.7 was a typo.

I'll just pass it off to a Linux developer if I meet one.  Sorry for wasting 
your time.


-- Stephen Hurd

-Original Message-
From: gre...@linuxfoundation.org [mailto:gre...@linuxfoundation.org] 
Sent: Tuesday, January 15, 2013 10:59 PM
To: Stephen Hurd
Cc: linux-ser...@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected 
serial port

On Wed, Dec 12, 2012 at 05:28:35AM +, Stephen Hurd wrote:
 From: Stephen Hurd sh...@broadcom.com
 
 Add support for the UART device present in Broadcom TruManage capable 
 NetXtreme chips (ie: 5761m 5762, and 5725).
 
 This implementation has a hidden transmit FIFO, so running in single-byte 
 interrupt mode results in too many interrupts.  The UART_CAP_HFIFO capability 
 was added to track this.  It continues to reload the THR as long as the THRE 
 and TSRE bits are set in the LSR up to a specified limit (1024 is used here).
 
 Signed-off-by: Stephen Hurd sh...@broadcom.com
 
 ---
 
 Patch against linux-2.7 from ftp.kernel.org downloaded Dec-11-2012.

2.7?

I need this against the linux-next release, can you please redo it, and
not send it as an attachment, but put it all inline in the email
properly like Documentation/email_clients.txt says?

thanks,

greg k-h


--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2012-12-11 Thread Stephen Hurd
From: Stephen Hurd 

Add support for the UART device present in Broadcom TruManage capable NetXtreme 
chips (ie: 5761m 5762, and 5725).

This implementation has a hidden transmit FIFO, so running in single-byte 
interrupt mode results in too many interrupts.  The UART_CAP_HFIFO capability 
was added to track this.  It continues to reload the THR as long as the THRE 
and TSRE bits are set in the LSR up to a specified limit (1024 is used here).

Signed-off-by: Stephen Hurd 

---

Patch against linux-2.7 from ftp.kernel.org downloaded Dec-11-2012.

I don't know anybody here off hand who does Linux work nor am I in a position 
to configure the Exchange server.  If this still isn't acceptable, I guess I 
could try emailing this patch around internally and hope it lands with someone 
has the appropriate magic available.


-- Stephen Hurd

diff -uprN linux-3.7.orig/drivers/tty/serial/8250/8250.c 
linux-3.7/drivers/tty/serial/8250/8250.c
--- linux-3.7.orig/drivers/tty/serial/8250/8250.c   2012-12-10 
19:30:57.0 -0800
+++ linux-3.7/drivers/tty/serial/8250/8250.c2012-12-11 15:56:40.686343959 
-0800
@@ -290,6 +290,12 @@ static const struct serial8250_config ua
  UART_FCR_R_TRIG_00 | UART_FCR_T_TRIG_00,
.flags  = UART_CAP_FIFO,
},
+   [PORT_BRCM_TRUMANAGE] = {
+   .name   = "TruManage",
+   .fifo_size  = 1,
+   .tx_loadsz  = 1024,
+   .flags  = UART_CAP_HFIFO,
+   },
[PORT_8250_CIR] = {
.name   = "CIR port"
}
@@ -1441,6 +1447,11 @@ void serial8250_tx_chars(struct uart_825
port->icount.tx++;
if (uart_circ_empty(xmit))
break;
+   if (up->capabilities & UART_CAP_HFIFO) {
+   if ((serial_port_in(port, UART_LSR) & BOTH_EMPTY)
+   != BOTH_EMPTY)
+   break;
+   }
} while (--count > 0);
 
if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
diff -uprN linux-3.7.orig/drivers/tty/serial/8250/8250.h 
linux-3.7/drivers/tty/serial/8250/8250.h
--- linux-3.7.orig/drivers/tty/serial/8250/8250.h   2012-12-10 
19:30:57.0 -0800
+++ linux-3.7/drivers/tty/serial/8250/8250.h2012-12-11 14:57:48.641613676 
-0800
@@ -40,6 +40,7 @@ struct serial8250_config {
 #define UART_CAP_AFE   (1 << 11)   /* MCR-based hw flow control */
 #define UART_CAP_UUE   (1 << 12)   /* UART needs IER bit 6 set (Xscale) */
 #define UART_CAP_RTOIE (1 << 13)   /* UART needs IER bit 4 set (Xscale, 
Tegra) */
+#define UART_CAP_HFIFO (1 << 14)   /* UART has a "hidden" FIFO */
 
 #define UART_BUG_QUOT  (1 << 0)/* UART has buggy quot LSB */
 #define UART_BUG_TXEN  (1 << 1)/* UART has buggy TX IIR status */
diff -uprN linux-3.7.orig/drivers/tty/serial/8250/8250_pci.c 
linux-3.7/drivers/tty/serial/8250/8250_pci.c
--- linux-3.7.orig/drivers/tty/serial/8250/8250_pci.c   2012-12-10 
19:30:57.0 -0800
+++ linux-3.7/drivers/tty/serial/8250/8250_pci.c2012-12-11 
15:58:10.958340077 -0800
@@ -1085,6 +1085,17 @@ pci_omegapci_setup(struct serial_private
return setup_port(priv, port, 2, idx * 8, 0);
 }
 
+static int
+pci_brcm_trumanage_setup(struct serial_private *priv,
+ const struct pciserial_board *board,
+ struct uart_port *port, int idx)
+{
+   int ret = pci_default_setup(priv, board, port, idx);
+   port->type = PORT_BRCM_TRUMANAGE;
+   port->flags = (port->flags | UPF_FIXED_PORT | UPF_FIXED_TYPE);
+   return ret;
+}
+
 static int skip_tx_en_setup(struct serial_private *priv,
const struct pciserial_board *board,
struct uart_8250_port *port, int idx)
@@ -1213,6 +1224,7 @@ pci_wch_ch353_setup(struct serial_privat
 #define PCI_VENDOR_ID_AGESTAR  0x5372
 #define PCI_DEVICE_ID_AGESTAR_9375 0x6872
 #define PCI_VENDOR_ID_ASIX 0x9710
+#define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a
 
 /* Unknown vendors/cards - this should not be in linux/pci_ids.h */
 #define PCI_SUBDEVICE_ID_UNKNOWN_0x15840x1584
@@ -1788,6 +1800,17 @@ static struct pci_serial_quirk pci_seria
.setup  = pci_asix_setup,
},
/*
+* Broadcom TruManage (NetXtreme)
+*/
+   {
+   .vendor = PCI_VENDOR_ID_BROADCOM,
+   .device = PCI_DEVICE_ID_BROADCOM_TRUMANAGE,
+   .subvendor  = PCI_ANY_ID,
+   .subdevice  = PCI_ANY_ID,
+   .setup  = pci_brcm_trumanage_setup,
+   },
+
+   /*
 * Default "match everything" terminator entry
 */
{
@@ -1975,6 +1998,7 @@ e

RE: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2012-12-11 Thread Stephen Hurd
It appears that the modification to include/uapi/linux/serial_core.h is 
excluded by the dontdiff filters.  I've attached an updated patch including it.


Stephen Hurd
Senior Staff Engineer - Software Development
Broadcom Corporation
949-926-8039
sh...@broadcom.com  



brcm-trumanage-uart.patch
Description: brcm-trumanage-uart.patch


[PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2012-12-11 Thread Stephen Hurd
From: Stephen Hurd 

Add support for the UART device present in Broadcom TruManage capable NetXtreme 
chips (ie: 5761m 5762, and 5725).

This implementation has a hidden transmit FIFO, so running in single-byte 
interrupt mode results in too many interrupts.  The UART_CAP_HFIFO capability 
was added to track this.  It continues to reload the THR as long as the THRE 
and TSRE bits are set in the LSR up to a specified limit (1024 is used here).

Signed-off-by: Stephen Hurd 

---

Patch against linux-2.7 from ftp.kernel.org downloaded Dec-11-2012.

Sorry about the attachment, I'm required to use Outlook.


Stephen Hurd
Senior Staff Engineer - Software Development
Broadcom Corporation
949-926-8039
sh...@broadcom.com  



brcm-trumanage-uart.patch
Description: brcm-trumanage-uart.patch


[PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2012-12-11 Thread Stephen Hurd
From: Stephen Hurd sh...@broadcom.com

Add support for the UART device present in Broadcom TruManage capable NetXtreme 
chips (ie: 5761m 5762, and 5725).

This implementation has a hidden transmit FIFO, so running in single-byte 
interrupt mode results in too many interrupts.  The UART_CAP_HFIFO capability 
was added to track this.  It continues to reload the THR as long as the THRE 
and TSRE bits are set in the LSR up to a specified limit (1024 is used here).

Signed-off-by: Stephen Hurd sh...@broadcom.com

---

Patch against linux-2.7 from ftp.kernel.org downloaded Dec-11-2012.

Sorry about the attachment, I'm required to use Outlook.


Stephen Hurd
Senior Staff Engineer - Software Development
Broadcom Corporation
949-926-8039
sh...@broadcom.com  



brcm-trumanage-uart.patch
Description: brcm-trumanage-uart.patch


RE: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2012-12-11 Thread Stephen Hurd
It appears that the modification to include/uapi/linux/serial_core.h is 
excluded by the dontdiff filters.  I've attached an updated patch including it.


Stephen Hurd
Senior Staff Engineer - Software Development
Broadcom Corporation
949-926-8039
sh...@broadcom.com  



brcm-trumanage-uart.patch
Description: brcm-trumanage-uart.patch


RE: [PATCH] 8250/16?50: Add support for Broadcom TruManage redirected serial port

2012-12-11 Thread Stephen Hurd
From: Stephen Hurd sh...@broadcom.com

Add support for the UART device present in Broadcom TruManage capable NetXtreme 
chips (ie: 5761m 5762, and 5725).

This implementation has a hidden transmit FIFO, so running in single-byte 
interrupt mode results in too many interrupts.  The UART_CAP_HFIFO capability 
was added to track this.  It continues to reload the THR as long as the THRE 
and TSRE bits are set in the LSR up to a specified limit (1024 is used here).

Signed-off-by: Stephen Hurd sh...@broadcom.com

---

Patch against linux-2.7 from ftp.kernel.org downloaded Dec-11-2012.

I don't know anybody here off hand who does Linux work nor am I in a position 
to configure the Exchange server.  If this still isn't acceptable, I guess I 
could try emailing this patch around internally and hope it lands with someone 
has the appropriate magic available.


-- Stephen Hurd

diff -uprN linux-3.7.orig/drivers/tty/serial/8250/8250.c 
linux-3.7/drivers/tty/serial/8250/8250.c
--- linux-3.7.orig/drivers/tty/serial/8250/8250.c   2012-12-10 
19:30:57.0 -0800
+++ linux-3.7/drivers/tty/serial/8250/8250.c2012-12-11 15:56:40.686343959 
-0800
@@ -290,6 +290,12 @@ static const struct serial8250_config ua
  UART_FCR_R_TRIG_00 | UART_FCR_T_TRIG_00,
.flags  = UART_CAP_FIFO,
},
+   [PORT_BRCM_TRUMANAGE] = {
+   .name   = TruManage,
+   .fifo_size  = 1,
+   .tx_loadsz  = 1024,
+   .flags  = UART_CAP_HFIFO,
+   },
[PORT_8250_CIR] = {
.name   = CIR port
}
@@ -1441,6 +1447,11 @@ void serial8250_tx_chars(struct uart_825
port-icount.tx++;
if (uart_circ_empty(xmit))
break;
+   if (up-capabilities  UART_CAP_HFIFO) {
+   if ((serial_port_in(port, UART_LSR)  BOTH_EMPTY)
+   != BOTH_EMPTY)
+   break;
+   }
} while (--count  0);
 
if (uart_circ_chars_pending(xmit)  WAKEUP_CHARS)
diff -uprN linux-3.7.orig/drivers/tty/serial/8250/8250.h 
linux-3.7/drivers/tty/serial/8250/8250.h
--- linux-3.7.orig/drivers/tty/serial/8250/8250.h   2012-12-10 
19:30:57.0 -0800
+++ linux-3.7/drivers/tty/serial/8250/8250.h2012-12-11 14:57:48.641613676 
-0800
@@ -40,6 +40,7 @@ struct serial8250_config {
 #define UART_CAP_AFE   (1  11)   /* MCR-based hw flow control */
 #define UART_CAP_UUE   (1  12)   /* UART needs IER bit 6 set (Xscale) */
 #define UART_CAP_RTOIE (1  13)   /* UART needs IER bit 4 set (Xscale, 
Tegra) */
+#define UART_CAP_HFIFO (1  14)   /* UART has a hidden FIFO */
 
 #define UART_BUG_QUOT  (1  0)/* UART has buggy quot LSB */
 #define UART_BUG_TXEN  (1  1)/* UART has buggy TX IIR status */
diff -uprN linux-3.7.orig/drivers/tty/serial/8250/8250_pci.c 
linux-3.7/drivers/tty/serial/8250/8250_pci.c
--- linux-3.7.orig/drivers/tty/serial/8250/8250_pci.c   2012-12-10 
19:30:57.0 -0800
+++ linux-3.7/drivers/tty/serial/8250/8250_pci.c2012-12-11 
15:58:10.958340077 -0800
@@ -1085,6 +1085,17 @@ pci_omegapci_setup(struct serial_private
return setup_port(priv, port, 2, idx * 8, 0);
 }
 
+static int
+pci_brcm_trumanage_setup(struct serial_private *priv,
+ const struct pciserial_board *board,
+ struct uart_port *port, int idx)
+{
+   int ret = pci_default_setup(priv, board, port, idx);
+   port-type = PORT_BRCM_TRUMANAGE;
+   port-flags = (port-flags | UPF_FIXED_PORT | UPF_FIXED_TYPE);
+   return ret;
+}
+
 static int skip_tx_en_setup(struct serial_private *priv,
const struct pciserial_board *board,
struct uart_8250_port *port, int idx)
@@ -1213,6 +1224,7 @@ pci_wch_ch353_setup(struct serial_privat
 #define PCI_VENDOR_ID_AGESTAR  0x5372
 #define PCI_DEVICE_ID_AGESTAR_9375 0x6872
 #define PCI_VENDOR_ID_ASIX 0x9710
+#define PCI_DEVICE_ID_BROADCOM_TRUMANAGE 0x160a
 
 /* Unknown vendors/cards - this should not be in linux/pci_ids.h */
 #define PCI_SUBDEVICE_ID_UNKNOWN_0x15840x1584
@@ -1788,6 +1800,17 @@ static struct pci_serial_quirk pci_seria
.setup  = pci_asix_setup,
},
/*
+* Broadcom TruManage (NetXtreme)
+*/
+   {
+   .vendor = PCI_VENDOR_ID_BROADCOM,
+   .device = PCI_DEVICE_ID_BROADCOM_TRUMANAGE,
+   .subvendor  = PCI_ANY_ID,
+   .subdevice  = PCI_ANY_ID,
+   .setup  = pci_brcm_trumanage_setup,
+   },
+
+   /*
 * Default match everything terminator entry
 */
{
@@ -1975,6 +1998,7 @@ enum pci_board_num_t {
pbn_ce4100_1_115200,
pbn_omegapci,
pbn_NETMOS9900_2s_115200