On Thu, Feb 20, 2025 at 02:45:41PM -0800, Jacob Keller wrote:
> 
> 
> On 2/19/2025 1:37 AM, Michal Swiatkowski wrote:
> > On Tue, Feb 18, 2025 at 04:46:34PM -0800, Jacob Keller wrote:
> >> From: Paul Greenwalt <paul.greenw...@intel.com>
> >>
> >> With E830 Get Tx Topology AQ command (opcode 0x0418) returns an error when
> >> setting the AQ command read flag, and since the get command is a direct
> >> command there is no need to set the read flag.
> >>
> >> Fix this by only setting read flag on set command.
> > 
> > Why it isn't true for other hw? I mean, why not:
> > if (set)
> >     RD_FLAG
> > else 
> >     NOT_RD_FLAG
> > Other hw needs RD flag in case of get too?
> > 
> 
> From what I understand, we didn't anticipate this flow changing. E810
> and E822 hardware require FLAG_RD for both get and set, while E825-C and
> E830 expect FLAG_RD only for set, but not for get.
> 

Thanks for explanation. Seems resonable from driver perspective and not
so reasonable from firmware, but maybe this difference is somehow
important.

Thanks,
Michal

> >>
> > 
> > Don't you need fixes tag?
> 
> You're correct. I'll add it in v2
> 
> >> Signed-off-by: Paul Greenwalt <paul.greenw...@intel.com>
> >> Signed-off-by: Jacob Keller <jacob.e.kel...@intel.com>
> >> ---
> >>  drivers/net/ethernet/intel/ice/ice_ddp.c | 10 +++++-----
> >>  1 file changed, 5 insertions(+), 5 deletions(-)
> >>
> >> diff --git a/drivers/net/ethernet/intel/ice/ice_ddp.c 
> >> b/drivers/net/ethernet/intel/ice/ice_ddp.c
> >> index 
> >> 03988be03729b76e96188864896527060c8c4d5b..49bd49ab3ccf36c990144894e887341459377a2d
> >>  100644
> >> --- a/drivers/net/ethernet/intel/ice/ice_ddp.c
> >> +++ b/drivers/net/ethernet/intel/ice/ice_ddp.c
> >> @@ -2345,15 +2345,15 @@ ice_get_set_tx_topo(struct ice_hw *hw, u8 *buf, 
> >> u16 buf_size,
> >>                    cmd->set_flags |= ICE_AQC_TX_TOPO_FLAGS_SRC_RAM |
> >>                                      ICE_AQC_TX_TOPO_FLAGS_LOAD_NEW;
> >>  
> >> -          if (ice_is_e825c(hw))
> >> -                  desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> >> +          desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> >>    } else {
> >>            ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_tx_topo);
> >>            cmd->get_flags = ICE_AQC_TX_TOPO_GET_RAM;
> >> -  }
> >>  
> >> -  if (!ice_is_e825c(hw))
> >> -          desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> >> +          if (hw->mac_type != ICE_MAC_GENERIC_3K_E825 &&
> >> +              hw->mac_type != ICE_MAC_E830)
> >> +                  desc.flags |= cpu_to_le16(ICE_AQ_FLAG_RD);
> >> +  }
> >>  
> >>    status = ice_aq_send_cmd(hw, &desc, buf, buf_size, cd);
> >>    if (status)
> >>
> > 
> > In general looks fine, only one question.
> > 
> > Thanks,
> > Michal
> 
> Thanks for the review, I'll send a v2 with this cleaned up and include a
> fixes tag.
> 
> > 
> >> ---
> >> base-commit: f5da7c45188eea71394bf445655cae2df88a7788
> >> change-id: 20250218-jk-e830-ddp-loading-fix-9efdbdfc270a
> >>
> >> Best regards,
> >> -- 
> >> Jacob Keller <jacob.e.kel...@intel.com>
> 

Reply via email to