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> >