* [PATCH v3 0/2] pm80xx updates
@ 2022-04-08 8:05 Ajish Koshy
2022-04-08 8:05 ` [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63 Ajish Koshy
2022-04-08 8:05 ` [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues Ajish Koshy
0 siblings, 2 replies; 8+ messages in thread
From: Ajish Koshy @ 2022-04-08 8:05 UTC (permalink / raw)
To: linux-scsi
Cc: Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal, john.garry,
Jinpu Wang
This patchset includes bugfixes for pm80xx driver
Changes from v2 to v3:
- For upper interrupt vector patch
- Removed 'mask' and 'vec' variables
- For upper inbound outbound queues patch
- Added a space before '*/'
Changes from v1 to v2:
- For upper interrupt vectors patch
- Removed unrequired casts u32
- Removed '& 0xFFFFFFFF' operation
- Removed 'vec_u' variable
- Added 'Fixes' tag.
- For upper inbound outbound queues patch
- Removed brackets
- Removed comments about msleep
- Added 'Fixes' tag.
Ajish Koshy (2):
scsi: pm80xx: mask and unmask upper interrupt vectors 32-63
scsi: pm80xx: enable upper inbound, outbound queues
drivers/scsi/pm8001/pm80xx_hwi.c | 36 +++++++++++++++++++++++---------
1 file changed, 26 insertions(+), 10 deletions(-)
--
2.31.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63
2022-04-08 8:05 [PATCH v3 0/2] pm80xx updates Ajish Koshy
@ 2022-04-08 8:05 ` Ajish Koshy
2022-04-08 8:06 ` Jinpu Wang
2022-04-08 8:23 ` John Garry
2022-04-08 8:05 ` [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues Ajish Koshy
1 sibling, 2 replies; 8+ messages in thread
From: Ajish Koshy @ 2022-04-08 8:05 UTC (permalink / raw)
To: linux-scsi
Cc: Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal, john.garry,
Jinpu Wang
When upper inbound and outbound queues 32-63 are enabled, we see upper
vectors 32-63 in interrupt service routine. We need corresponding
registers to handle masking and unmasking of these upper interrupts.
To achieve this, we use registers MSGU_ODMR_U(0x34) to mask and
MSGU_ODMR_CLR_U(0x3C) to unmask the interrupts. In these registers bit
0-31 represents interrupt vectors 32-63.
Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
---
drivers/scsi/pm8001/pm80xx_hwi.c | 30 ++++++++++++++++++++----------
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index 9bb31f66db85..cdb31679f419 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -1727,10 +1727,14 @@ static void
pm80xx_chip_interrupt_enable(struct pm8001_hba_info *pm8001_ha, u8 vec)
{
#ifdef PM8001_USE_MSIX
- u32 mask;
- mask = (u32)(1 << vec);
-
- pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, (u32)(mask & 0xFFFFFFFF));
+ if (vec < 32) {
+ /* vectors 0 - 31 */
+ pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, 1U << vec);
+ } else {
+ /* vectors 32 - 63 */
+ pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR_U,
+ 1U << (vec - 32));
+ }
return;
#endif
pm80xx_chip_intx_interrupt_enable(pm8001_ha);
@@ -1746,12 +1750,18 @@ static void
pm80xx_chip_interrupt_disable(struct pm8001_hba_info *pm8001_ha, u8 vec)
{
#ifdef PM8001_USE_MSIX
- u32 mask;
- if (vec == 0xFF)
- mask = 0xFFFFFFFF;
- else
- mask = (u32)(1 << vec);
- pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, (u32)(mask & 0xFFFFFFFF));
+ if (vec == 0xFF) {
+ /* disable all vectors 0-31, 32-63 */
+ pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, 0xFFFFFFFF);
+ pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_U, 0xFFFFFFFF);
+ } else if (vec < 32) {
+ /* vectors 0 - 31 */
+ pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, 1U << vec);
+ } else {
+ /* vectors 32 - 63 */
+ pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_U,
+ 1U << (vec - 32));
+ }
return;
#endif
pm80xx_chip_intx_interrupt_disable(pm8001_ha);
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues
2022-04-08 8:05 [PATCH v3 0/2] pm80xx updates Ajish Koshy
2022-04-08 8:05 ` [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63 Ajish Koshy
@ 2022-04-08 8:05 ` Ajish Koshy
2022-04-08 8:07 ` Jinpu Wang
2022-04-08 8:19 ` John Garry
1 sibling, 2 replies; 8+ messages in thread
From: Ajish Koshy @ 2022-04-08 8:05 UTC (permalink / raw)
To: linux-scsi
Cc: Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal, john.garry,
Jinpu Wang
Executing driver on servers with more than 32 CPUs were faced with command
timeouts. This is because we were not geting completions for commands
submitted on IQ32 - IQ63.
Set E64Q bit to enable upper inbound and outbound queues 32 to 63 in the
MPI main configuration table.
Added 500ms delay after successful MPI initialization as mentioned in
controller datasheet.
Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
---
drivers/scsi/pm8001/pm80xx_hwi.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index cdb31679f419..71b6cc4b9420 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -766,6 +766,10 @@ static void init_default_table_values(struct pm8001_hba_info *pm8001_ha)
pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity = 0x01;
pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt = 0x01;
+ /* Enable higher IQs and OQs, 32 to 63, bit 16 */
+ if (pm8001_ha->max_q_num > 32)
+ pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt |=
+ 1 << 16;
/* Disable end to end CRC checking */
pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump = (0x1 << 16);
@@ -1027,6 +1031,8 @@ static int mpi_init_check(struct pm8001_hba_info *pm8001_ha)
if (0x0000 != gst_len_mpistate)
return -EBUSY;
+ msleep(500);
+
return 0;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63
2022-04-08 8:05 ` [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63 Ajish Koshy
@ 2022-04-08 8:06 ` Jinpu Wang
2022-04-08 8:23 ` John Garry
1 sibling, 0 replies; 8+ messages in thread
From: Jinpu Wang @ 2022-04-08 8:06 UTC (permalink / raw)
To: Ajish Koshy
Cc: linux-scsi, Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal,
john.garry, Jinpu Wang
On Fri, Apr 8, 2022 at 10:05 AM Ajish Koshy <Ajish.Koshy@microchip.com> wrote:
>
> When upper inbound and outbound queues 32-63 are enabled, we see upper
> vectors 32-63 in interrupt service routine. We need corresponding
> registers to handle masking and unmasking of these upper interrupts.
>
> To achieve this, we use registers MSGU_ODMR_U(0x34) to mask and
> MSGU_ODMR_CLR_U(0x3C) to unmask the interrupts. In these registers bit
> 0-31 represents interrupt vectors 32-63.
>
> Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
> Signed-off-by: Viswas G <Viswas.G@microchip.com>
> Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
Acked-by: Jack Wang <jinpu.wang@ionos.com>
> ---
> drivers/scsi/pm8001/pm80xx_hwi.c | 30 ++++++++++++++++++++----------
> 1 file changed, 20 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index 9bb31f66db85..cdb31679f419 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -1727,10 +1727,14 @@ static void
> pm80xx_chip_interrupt_enable(struct pm8001_hba_info *pm8001_ha, u8 vec)
> {
> #ifdef PM8001_USE_MSIX
> - u32 mask;
> - mask = (u32)(1 << vec);
> -
> - pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, (u32)(mask & 0xFFFFFFFF));
> + if (vec < 32) {
> + /* vectors 0 - 31 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, 1U << vec);
> + } else {
> + /* vectors 32 - 63 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR_U,
> + 1U << (vec - 32));
> + }
> return;
> #endif
> pm80xx_chip_intx_interrupt_enable(pm8001_ha);
> @@ -1746,12 +1750,18 @@ static void
> pm80xx_chip_interrupt_disable(struct pm8001_hba_info *pm8001_ha, u8 vec)
> {
> #ifdef PM8001_USE_MSIX
> - u32 mask;
> - if (vec == 0xFF)
> - mask = 0xFFFFFFFF;
> - else
> - mask = (u32)(1 << vec);
> - pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, (u32)(mask & 0xFFFFFFFF));
> + if (vec == 0xFF) {
> + /* disable all vectors 0-31, 32-63 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, 0xFFFFFFFF);
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_U, 0xFFFFFFFF);
> + } else if (vec < 32) {
> + /* vectors 0 - 31 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, 1U << vec);
> + } else {
> + /* vectors 32 - 63 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_U,
> + 1U << (vec - 32));
> + }
> return;
> #endif
> pm80xx_chip_intx_interrupt_disable(pm8001_ha);
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues
2022-04-08 8:05 ` [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues Ajish Koshy
@ 2022-04-08 8:07 ` Jinpu Wang
2022-04-08 8:19 ` John Garry
1 sibling, 0 replies; 8+ messages in thread
From: Jinpu Wang @ 2022-04-08 8:07 UTC (permalink / raw)
To: Ajish Koshy
Cc: linux-scsi, Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal,
john.garry, Jinpu Wang
On Fri, Apr 8, 2022 at 10:05 AM Ajish Koshy <Ajish.Koshy@microchip.com> wrote:
>
> Executing driver on servers with more than 32 CPUs were faced with command
> timeouts. This is because we were not geting completions for commands
> submitted on IQ32 - IQ63.
>
> Set E64Q bit to enable upper inbound and outbound queues 32 to 63 in the
> MPI main configuration table.
>
> Added 500ms delay after successful MPI initialization as mentioned in
> controller datasheet.
>
> Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
> Signed-off-by: Viswas G <Viswas.G@microchip.com>
> Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: Jack Wang <jinpu.wang@ionos.com>
> ---
> drivers/scsi/pm8001/pm80xx_hwi.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index cdb31679f419..71b6cc4b9420 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -766,6 +766,10 @@ static void init_default_table_values(struct pm8001_hba_info *pm8001_ha)
> pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity = 0x01;
> pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt = 0x01;
>
> + /* Enable higher IQs and OQs, 32 to 63, bit 16 */
> + if (pm8001_ha->max_q_num > 32)
> + pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt |=
> + 1 << 16;
> /* Disable end to end CRC checking */
> pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump = (0x1 << 16);
>
> @@ -1027,6 +1031,8 @@ static int mpi_init_check(struct pm8001_hba_info *pm8001_ha)
> if (0x0000 != gst_len_mpistate)
> return -EBUSY;
>
> + msleep(500);
> +
> return 0;
> }
>
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues
2022-04-08 8:05 ` [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues Ajish Koshy
2022-04-08 8:07 ` Jinpu Wang
@ 2022-04-08 8:19 ` John Garry
2022-04-08 8:31 ` Ajish.Koshy
1 sibling, 1 reply; 8+ messages in thread
From: John Garry @ 2022-04-08 8:19 UTC (permalink / raw)
To: Ajish Koshy, linux-scsi
Cc: Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal, Jinpu Wang
On 08/04/2022 09:05, Ajish Koshy wrote:
> Executing driver on servers with more than 32 CPUs were faced with command
> timeouts. This is because we were not geting completions for commands
> submitted on IQ32 - IQ63.
>
> Set E64Q bit to enable upper inbound and outbound queues 32 to 63 in the
> MPI main configuration table.
>
> Added 500ms delay after successful MPI initialization as mentioned in
> controller datasheet.
>
> Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
> Signed-off-by: Viswas G <Viswas.G@microchip.com>
> Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
> Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
> ---
> drivers/scsi/pm8001/pm80xx_hwi.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index cdb31679f419..71b6cc4b9420 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -766,6 +766,10 @@ static void init_default_table_values(struct pm8001_hba_info *pm8001_ha)
> pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity = 0x01;
> pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt = 0x01;
>
> + /* Enable higher IQs and OQs, 32 to 63, bit 16 */
> + if (pm8001_ha->max_q_num > 32)
> + pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt |=
> + 1 << 16;
> /* Disable end to end CRC checking */
> pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump = (0x1 << 16);
>
> @@ -1027,6 +1031,8 @@ static int mpi_init_check(struct pm8001_hba_info *pm8001_ha)
> if (0x0000 != gst_len_mpistate)
> return -EBUSY;
>
> + msleep(500);
Personally I think you should mention where this 500ms value comes from
(the datasheet), as it is not arbitrary
The change looks ok apart from that
> +
> return 0;
> }
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63
2022-04-08 8:05 ` [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63 Ajish Koshy
2022-04-08 8:06 ` Jinpu Wang
@ 2022-04-08 8:23 ` John Garry
1 sibling, 0 replies; 8+ messages in thread
From: John Garry @ 2022-04-08 8:23 UTC (permalink / raw)
To: Ajish Koshy, linux-scsi
Cc: Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal, Jinpu Wang
On 08/04/2022 09:05, Ajish Koshy wrote:
> When upper inbound and outbound queues 32-63 are enabled, we see upper
> vectors 32-63 in interrupt service routine. We need corresponding
> registers to handle masking and unmasking of these upper interrupts.
>
> To achieve this, we use registers MSGU_ODMR_U(0x34) to mask and
> MSGU_ODMR_CLR_U(0x3C) to unmask the interrupts. In these registers bit
> 0-31 represents interrupt vectors 32-63.
>
> Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
> Signed-off-by: Viswas G <Viswas.G@microchip.com>
> Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
Regardless of nitpick:
Reviewed-by: John Garry <john.garry@huawei.com>
> ---
> drivers/scsi/pm8001/pm80xx_hwi.c | 30 ++++++++++++++++++++----------
> 1 file changed, 20 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
> index 9bb31f66db85..cdb31679f419 100644
> --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> @@ -1727,10 +1727,14 @@ static void
> pm80xx_chip_interrupt_enable(struct pm8001_hba_info *pm8001_ha, u8 vec)
comment on current code: using u8 for vec seems dubious
> {
> #ifdef PM8001_USE_MSIX
> - u32 mask;
> - mask = (u32)(1 << vec);
> -
> - pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, (u32)(mask & 0xFFFFFFFF));
> + if (vec < 32) {
> + /* vectors 0 - 31 */
nit: I doubt the use of these sort of comments. I mean, a check for vec
< 32 makes it pretty obvious
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR, 1U << vec);
> + } else {
> + /* vectors 32 - 63 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_CLR_U,
> + 1U << (vec - 32));
> + }
> return;
> #endif
> pm80xx_chip_intx_interrupt_enable(pm8001_ha);
> @@ -1746,12 +1750,18 @@ static void
> pm80xx_chip_interrupt_disable(struct pm8001_hba_info *pm8001_ha, u8 vec)
> {
> #ifdef PM8001_USE_MSIX
> - u32 mask;
> - if (vec == 0xFF)
> - mask = 0xFFFFFFFF;
> - else
> - mask = (u32)(1 << vec);
> - pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, (u32)(mask & 0xFFFFFFFF));
> + if (vec == 0xFF) {
> + /* disable all vectors 0-31, 32-63 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, 0xFFFFFFFF);
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_U, 0xFFFFFFFF);
> + } else if (vec < 32) {
> + /* vectors 0 - 31 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR, 1U << vec);
> + } else {
> + /* vectors 32 - 63 */
> + pm8001_cw32(pm8001_ha, 0, MSGU_ODMR_U,
> + 1U << (vec - 32));
> + }
> return;
> #endif
> pm80xx_chip_intx_interrupt_disable(pm8001_ha);
^ permalink raw reply [flat|nested] 8+ messages in thread
* RE: [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues
2022-04-08 8:19 ` John Garry
@ 2022-04-08 8:31 ` Ajish.Koshy
0 siblings, 0 replies; 8+ messages in thread
From: Ajish.Koshy @ 2022-04-08 8:31 UTC (permalink / raw)
To: john.garry, linux-scsi
Cc: Vasanthalakshmi.Tharmarajan, Viswas.G, damien.lemoal, jinpu.wang
Thanks John for your comments here.
Will do it in v4.
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the
> content is safe
>
> On 08/04/2022 09:05, Ajish Koshy wrote:
> > Executing driver on servers with more than 32 CPUs were faced with
> > command timeouts. This is because we were not geting completions for
> > commands submitted on IQ32 - IQ63.
> >
> > Set E64Q bit to enable upper inbound and outbound queues 32 to 63 in
> > the MPI main configuration table.
> >
> > Added 500ms delay after successful MPI initialization as mentioned in
> > controller datasheet.
> >
> > Signed-off-by: Ajish Koshy <Ajish.Koshy@microchip.com>
> > Signed-off-by: Viswas G <Viswas.G@microchip.com>
> > Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported
> > queues")
> > Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
> > ---
> > drivers/scsi/pm8001/pm80xx_hwi.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c
> > b/drivers/scsi/pm8001/pm80xx_hwi.c
> > index cdb31679f419..71b6cc4b9420 100644
> > --- a/drivers/scsi/pm8001/pm80xx_hwi.c
> > +++ b/drivers/scsi/pm8001/pm80xx_hwi.c
> > @@ -766,6 +766,10 @@ static void init_default_table_values(struct
> pm8001_hba_info *pm8001_ha)
> > pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity =
> 0x01;
> > pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt = 0x01;
> >
> > + /* Enable higher IQs and OQs, 32 to 63, bit 16 */
> > + if (pm8001_ha->max_q_num > 32)
> > + pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt |=
> > + 1 << 16;
> > /* Disable end to end CRC checking */
> > pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump = (0x1 << 16);
> >
> > @@ -1027,6 +1031,8 @@ static int mpi_init_check(struct
> pm8001_hba_info *pm8001_ha)
> > if (0x0000 != gst_len_mpistate)
> > return -EBUSY;
> >
> > + msleep(500);
>
> Personally I think you should mention where this 500ms value comes from
> (the datasheet), as it is not arbitrary
OK.
>
> The change looks ok apart from that
>
> > +
> > return 0;
> > }
> >
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2022-04-08 8:32 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-08 8:05 [PATCH v3 0/2] pm80xx updates Ajish Koshy
2022-04-08 8:05 ` [PATCH v3 1/2] scsi: pm80xx: mask and unmask upper interrupt vectors 32-63 Ajish Koshy
2022-04-08 8:06 ` Jinpu Wang
2022-04-08 8:23 ` John Garry
2022-04-08 8:05 ` [PATCH v3 2/2] scsi: pm80xx: enable upper inbound, outbound queues Ajish Koshy
2022-04-08 8:07 ` Jinpu Wang
2022-04-08 8:19 ` John Garry
2022-04-08 8:31 ` Ajish.Koshy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox