Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Chris Snook

Jay Cliburn wrote:

On Tue, 22 Jan 2008 04:56:11 -0500
Jeff Garzik <[EMAIL PROTECTED]> wrote:


[EMAIL PROTECTED] wrote:

From: Jay Cliburn <[EMAIL PROTECTED]>

Update initialization parameters to match the current vendor driver
version 1.2.40.2.


[...]

ACK without any better knowledge...  but is any addition insight 
available at all?


No, sorry Jeff.  I simply took the vendor's current driver and matched
his initialization settings.  I can only assume he discovered these
values through lab testing.

For this and the other "conform to vendor driver" patches in this set, I
thought it important to have the in-tree driver match the vendor driver
as closely as possible.  The primary motivations are (1) my belief that
he's in a better position to test the NIC, and (2) to be able to go to
him for assistance occasionally and not be rejected because of
significant differences between his and our drivers.


I don't think we should be doing this without justification.  From all the atl1 
and atl2 code I've looked at, I've gotten the impression that their driver 
development processes are extremely ad-hoc.  There is code in the Atheros 
version of atl2 that cannot *possibly* apply to that hardware and was just 
copied and pasted from atl1, just as much of atl1 was copied and pasted from 
e1000.  The fact that various versions have different magic numbers may simply 
mean they copied and pasted from different irrelevant and incorrect sources.


Our contacts at Atheros seem to be very good electrical engineers, so when they 
tell us that a certain setting should be changed to match particular properties 
of the hardware, I trust them.  They are not, however, experienced and 
disciplined kernel developers, so absent such justification I think we should 
stick with what we have, which has been improved and reviewed by people who 
*are* experienced and disciplined kernel developers.


We have at least as much to teach Atheros about writing kernel code as they have 
to teach us about their hardware.


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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Jay Cliburn
On Tue, 22 Jan 2008 04:56:11 -0500
Jeff Garzik <[EMAIL PROTECTED]> wrote:

> [EMAIL PROTECTED] wrote:
> > From: Jay Cliburn <[EMAIL PROTECTED]>
> > 
> > Update initialization parameters to match the current vendor driver
> > version 1.2.40.2.

[...]

> ACK without any better knowledge...  but is any addition insight 
> available at all?

No, sorry Jeff.  I simply took the vendor's current driver and matched
his initialization settings.  I can only assume he discovered these
values through lab testing.

For this and the other "conform to vendor driver" patches in this set, I
thought it important to have the in-tree driver match the vendor driver
as closely as possible.  The primary motivations are (1) my belief that
he's in a better position to test the NIC, and (2) to be able to go to
him for assistance occasionally and not be rejected because of
significant differences between his and our drivers.

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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Jeff Garzik

Jay Cliburn wrote:

On Tue, 22 Jan 2008 04:56:11 -0500
Jeff Garzik <[EMAIL PROTECTED]> wrote:


[EMAIL PROTECTED] wrote:

From: Jay Cliburn <[EMAIL PROTECTED]>

Update initialization parameters to match the current vendor driver
version 1.2.40.2.


[...]

ACK without any better knowledge...  but is any addition insight 
available at all?


No, sorry Jeff.  I simply took the vendor's current driver and matched
his initialization settings.  I can only assume he discovered these
values through lab testing.

For this and the other "conform to vendor driver" patches in this set, I
thought it important to have the in-tree driver match the vendor driver
as closely as possible.  The primary motivations are (1) my belief that
he's in a better position to test the NIC, and (2) to be able to go to
him for assistance occasionally and not be rejected because of
significant differences between his and our drivers.


Since these changes are not simply moving code around, we really do need 
full explanations for them, and to understand their need.


Blindly copying code from an exterior driver is pointless, and no way at 
all to run an engineering process.


If the driver is not going to get the review and attention necessary, 
bug fixes and feedback attended-to, then there's not much point in 
having this driver in the kernel at all.


You will only lead yourself to frustration, if you set up a system where 
changes only flow one way.  That's not how Linux development is done at all.


Jeff



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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Jeff Garzik

[EMAIL PROTECTED] wrote:

From: Jay Cliburn <[EMAIL PROTECTED]>

Update initialization parameters to match the current vendor driver
version 1.2.40.2.

Signed-off-by: Jay Cliburn <[EMAIL PROTECTED]>
---
 drivers/net/atlx/atl1.c |   14 +++---
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 262d3ca..695dcbc 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -136,20 +136,20 @@ static int __devinit atl1_sw_init(struct atl1_adapter 
*adapter)
hw->rfd_fetch_gap = 1;
hw->rx_jumbo_th = adapter->rx_buffer_len / 8;
hw->rx_jumbo_lkah = 1;
-   hw->rrd_ret_timer = 16;
-   hw->tpd_burst = 4;
+   hw->rrd_ret_timer = 4;   /* 8 us */
+   hw->tpd_burst = 8;
hw->tpd_fetch_th = 16;
-   hw->txf_burst = 0x100;
+   hw->txf_burst = 0x200;
hw->tx_jumbo_task_th = (hw->max_frame_size + 7) >> 3;
hw->tpd_fetch_gap = 1;
hw->rcb_value = atl1_rcb_64;
hw->dma_ord = atl1_dma_ord_enh;
-   hw->dmar_block = atl1_dma_req_256;
-   hw->dmaw_block = atl1_dma_req_256;
+   hw->dmar_block = atl1_dma_req_1024;
+   hw->dmaw_block = atl1_dma_req_1024;
hw->cmb_rrd = 4;
hw->cmb_tpd = 4;
-   hw->cmb_rx_timer = 1;/* about 2us */
-   hw->cmb_tx_timer = 1;/* about 2us */
+   hw->cmb_rx_timer = 2;/* about 4us */
+   hw->cmb_tx_timer = 256;  /* about 512us */
hw->smb_timer = 10;  /* about 200ms */


ACK without any better knowledge...  but is any addition insight 
available at all?


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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Jeff Garzik

[EMAIL PROTECTED] wrote:

From: Jay Cliburn [EMAIL PROTECTED]

Update initialization parameters to match the current vendor driver
version 1.2.40.2.

Signed-off-by: Jay Cliburn [EMAIL PROTECTED]
---
 drivers/net/atlx/atl1.c |   14 +++---
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 262d3ca..695dcbc 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -136,20 +136,20 @@ static int __devinit atl1_sw_init(struct atl1_adapter 
*adapter)
hw-rfd_fetch_gap = 1;
hw-rx_jumbo_th = adapter-rx_buffer_len / 8;
hw-rx_jumbo_lkah = 1;
-   hw-rrd_ret_timer = 16;
-   hw-tpd_burst = 4;
+   hw-rrd_ret_timer = 4;   /* 8 us */
+   hw-tpd_burst = 8;
hw-tpd_fetch_th = 16;
-   hw-txf_burst = 0x100;
+   hw-txf_burst = 0x200;
hw-tx_jumbo_task_th = (hw-max_frame_size + 7)  3;
hw-tpd_fetch_gap = 1;
hw-rcb_value = atl1_rcb_64;
hw-dma_ord = atl1_dma_ord_enh;
-   hw-dmar_block = atl1_dma_req_256;
-   hw-dmaw_block = atl1_dma_req_256;
+   hw-dmar_block = atl1_dma_req_1024;
+   hw-dmaw_block = atl1_dma_req_1024;
hw-cmb_rrd = 4;
hw-cmb_tpd = 4;
-   hw-cmb_rx_timer = 1;/* about 2us */
-   hw-cmb_tx_timer = 1;/* about 2us */
+   hw-cmb_rx_timer = 2;/* about 4us */
+   hw-cmb_tx_timer = 256;  /* about 512us */
hw-smb_timer = 10;  /* about 200ms */


ACK without any better knowledge...  but is any addition insight 
available at all?


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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Jeff Garzik

Jay Cliburn wrote:

On Tue, 22 Jan 2008 04:56:11 -0500
Jeff Garzik [EMAIL PROTECTED] wrote:


[EMAIL PROTECTED] wrote:

From: Jay Cliburn [EMAIL PROTECTED]

Update initialization parameters to match the current vendor driver
version 1.2.40.2.


[...]

ACK without any better knowledge...  but is any addition insight 
available at all?


No, sorry Jeff.  I simply took the vendor's current driver and matched
his initialization settings.  I can only assume he discovered these
values through lab testing.

For this and the other conform to vendor driver patches in this set, I
thought it important to have the in-tree driver match the vendor driver
as closely as possible.  The primary motivations are (1) my belief that
he's in a better position to test the NIC, and (2) to be able to go to
him for assistance occasionally and not be rejected because of
significant differences between his and our drivers.


Since these changes are not simply moving code around, we really do need 
full explanations for them, and to understand their need.


Blindly copying code from an exterior driver is pointless, and no way at 
all to run an engineering process.


If the driver is not going to get the review and attention necessary, 
bug fixes and feedback attended-to, then there's not much point in 
having this driver in the kernel at all.


You will only lead yourself to frustration, if you set up a system where 
changes only flow one way.  That's not how Linux development is done at all.


Jeff



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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Jay Cliburn
On Tue, 22 Jan 2008 04:56:11 -0500
Jeff Garzik [EMAIL PROTECTED] wrote:

 [EMAIL PROTECTED] wrote:
  From: Jay Cliburn [EMAIL PROTECTED]
  
  Update initialization parameters to match the current vendor driver
  version 1.2.40.2.

[...]

 ACK without any better knowledge...  but is any addition insight 
 available at all?

No, sorry Jeff.  I simply took the vendor's current driver and matched
his initialization settings.  I can only assume he discovered these
values through lab testing.

For this and the other conform to vendor driver patches in this set, I
thought it important to have the in-tree driver match the vendor driver
as closely as possible.  The primary motivations are (1) my belief that
he's in a better position to test the NIC, and (2) to be able to go to
him for assistance occasionally and not be rejected because of
significant differences between his and our drivers.

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


Re: [PATCH 06/26] atl1: update initialization parameters

2008-01-22 Thread Chris Snook

Jay Cliburn wrote:

On Tue, 22 Jan 2008 04:56:11 -0500
Jeff Garzik [EMAIL PROTECTED] wrote:


[EMAIL PROTECTED] wrote:

From: Jay Cliburn [EMAIL PROTECTED]

Update initialization parameters to match the current vendor driver
version 1.2.40.2.


[...]

ACK without any better knowledge...  but is any addition insight 
available at all?


No, sorry Jeff.  I simply took the vendor's current driver and matched
his initialization settings.  I can only assume he discovered these
values through lab testing.

For this and the other conform to vendor driver patches in this set, I
thought it important to have the in-tree driver match the vendor driver
as closely as possible.  The primary motivations are (1) my belief that
he's in a better position to test the NIC, and (2) to be able to go to
him for assistance occasionally and not be rejected because of
significant differences between his and our drivers.


I don't think we should be doing this without justification.  From all the atl1 
and atl2 code I've looked at, I've gotten the impression that their driver 
development processes are extremely ad-hoc.  There is code in the Atheros 
version of atl2 that cannot *possibly* apply to that hardware and was just 
copied and pasted from atl1, just as much of atl1 was copied and pasted from 
e1000.  The fact that various versions have different magic numbers may simply 
mean they copied and pasted from different irrelevant and incorrect sources.


Our contacts at Atheros seem to be very good electrical engineers, so when they 
tell us that a certain setting should be changed to match particular properties 
of the hardware, I trust them.  They are not, however, experienced and 
disciplined kernel developers, so absent such justification I think we should 
stick with what we have, which has been improved and reviewed by people who 
*are* experienced and disciplined kernel developers.


We have at least as much to teach Atheros about writing kernel code as they have 
to teach us about their hardware.


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


[PATCH 06/26] atl1: update initialization parameters

2007-12-31 Thread jacliburn
From: Jay Cliburn <[EMAIL PROTECTED]>

Update initialization parameters to match the current vendor driver
version 1.2.40.2.

Signed-off-by: Jay Cliburn <[EMAIL PROTECTED]>
---
 drivers/net/atlx/atl1.c |   14 +++---
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 262d3ca..695dcbc 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -136,20 +136,20 @@ static int __devinit atl1_sw_init(struct atl1_adapter 
*adapter)
hw->rfd_fetch_gap = 1;
hw->rx_jumbo_th = adapter->rx_buffer_len / 8;
hw->rx_jumbo_lkah = 1;
-   hw->rrd_ret_timer = 16;
-   hw->tpd_burst = 4;
+   hw->rrd_ret_timer = 4;  /* 8 us */
+   hw->tpd_burst = 8;
hw->tpd_fetch_th = 16;
-   hw->txf_burst = 0x100;
+   hw->txf_burst = 0x200;
hw->tx_jumbo_task_th = (hw->max_frame_size + 7) >> 3;
hw->tpd_fetch_gap = 1;
hw->rcb_value = atl1_rcb_64;
hw->dma_ord = atl1_dma_ord_enh;
-   hw->dmar_block = atl1_dma_req_256;
-   hw->dmaw_block = atl1_dma_req_256;
+   hw->dmar_block = atl1_dma_req_1024;
+   hw->dmaw_block = atl1_dma_req_1024;
hw->cmb_rrd = 4;
hw->cmb_tpd = 4;
-   hw->cmb_rx_timer = 1;   /* about 2us */
-   hw->cmb_tx_timer = 1;   /* about 2us */
+   hw->cmb_rx_timer = 2;   /* about 4us */
+   hw->cmb_tx_timer = 256; /* about 512us */
hw->smb_timer = 10; /* about 200ms */
 
spin_lock_init(>lock);
-- 
1.5.3.3

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


[PATCH 06/26] atl1: update initialization parameters

2007-12-31 Thread jacliburn
From: Jay Cliburn [EMAIL PROTECTED]

Update initialization parameters to match the current vendor driver
version 1.2.40.2.

Signed-off-by: Jay Cliburn [EMAIL PROTECTED]
---
 drivers/net/atlx/atl1.c |   14 +++---
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index 262d3ca..695dcbc 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -136,20 +136,20 @@ static int __devinit atl1_sw_init(struct atl1_adapter 
*adapter)
hw-rfd_fetch_gap = 1;
hw-rx_jumbo_th = adapter-rx_buffer_len / 8;
hw-rx_jumbo_lkah = 1;
-   hw-rrd_ret_timer = 16;
-   hw-tpd_burst = 4;
+   hw-rrd_ret_timer = 4;  /* 8 us */
+   hw-tpd_burst = 8;
hw-tpd_fetch_th = 16;
-   hw-txf_burst = 0x100;
+   hw-txf_burst = 0x200;
hw-tx_jumbo_task_th = (hw-max_frame_size + 7)  3;
hw-tpd_fetch_gap = 1;
hw-rcb_value = atl1_rcb_64;
hw-dma_ord = atl1_dma_ord_enh;
-   hw-dmar_block = atl1_dma_req_256;
-   hw-dmaw_block = atl1_dma_req_256;
+   hw-dmar_block = atl1_dma_req_1024;
+   hw-dmaw_block = atl1_dma_req_1024;
hw-cmb_rrd = 4;
hw-cmb_tpd = 4;
-   hw-cmb_rx_timer = 1;   /* about 2us */
-   hw-cmb_tx_timer = 1;   /* about 2us */
+   hw-cmb_rx_timer = 2;   /* about 4us */
+   hw-cmb_tx_timer = 256; /* about 512us */
hw-smb_timer = 10; /* about 200ms */
 
spin_lock_init(adapter-lock);
-- 
1.5.3.3

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