On Thu, Nov 26, 2020 at 04:29:02PM +0100, Loic Poulain wrote: > Hardware channels have a feature called burst mode that allows to > queue transfer ring element(s) (TRE) to a channel without ringing > the device doorbell. In that mode, the device is polling the channel > context for new elements. This reduces the frequency of host initiated > doorbells and increase throughput. > > Create a new dedicated macro for hardware channels with burst enabled. > We might need to move these macros to mhi.h at some point... > Signed-off-by: Loic Poulain <loic.poulain@xxxxxxxxxx> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> Thanks, Mani > --- > drivers/bus/mhi/pci_generic.c | 34 ++++++++++++++++++++++++++++++++-- > 1 file changed, 32 insertions(+), 2 deletions(-) > > diff --git a/drivers/bus/mhi/pci_generic.c b/drivers/bus/mhi/pci_generic.c > index 4363676..6b6e5bf 100644 > --- a/drivers/bus/mhi/pci_generic.c > +++ b/drivers/bus/mhi/pci_generic.c > @@ -78,6 +78,36 @@ struct mhi_pci_dev_info { > .offload_channel = false, \ > } > > +#define MHI_CHANNEL_CONFIG_HW_UL(ch_num, ch_name, el_count, ev_ring) \ > + { \ > + .num = ch_num, \ > + .name = ch_name, \ > + .num_elements = el_count, \ > + .event_ring = ev_ring, \ > + .dir = DMA_TO_DEVICE, \ > + .ee_mask = BIT(MHI_EE_AMSS), \ > + .pollcfg = 0, \ > + .doorbell = MHI_DB_BRST_ENABLE, \ > + .lpm_notify = false, \ > + .offload_channel = false, \ > + .doorbell_mode_switch = true, \ > + } \ > + > +#define MHI_CHANNEL_CONFIG_HW_DL(ch_num, ch_name, el_count, ev_ring) \ > + { \ > + .num = ch_num, \ > + .name = ch_name, \ > + .num_elements = el_count, \ > + .event_ring = ev_ring, \ > + .dir = DMA_FROM_DEVICE, \ > + .ee_mask = BIT(MHI_EE_AMSS), \ > + .pollcfg = 0, \ > + .doorbell = MHI_DB_BRST_ENABLE, \ > + .lpm_notify = false, \ > + .offload_channel = false, \ > + .doorbell_mode_switch = true, \ > + } > + > #define MHI_EVENT_CONFIG_DATA(ev_ring) \ > { \ > .num_elements = 128, \ > @@ -112,8 +142,8 @@ static const struct mhi_channel_config modem_qcom_v1_mhi_channels[] = { > MHI_CHANNEL_CONFIG_DL(15, "QMI", 4, 0), > MHI_CHANNEL_CONFIG_UL(20, "IPCR", 8, 0), > MHI_CHANNEL_CONFIG_DL(21, "IPCR", 8, 0), > - MHI_CHANNEL_CONFIG_UL(100, "IP_HW0", 128, 1), > - MHI_CHANNEL_CONFIG_DL(101, "IP_HW0", 128, 2), > + MHI_CHANNEL_CONFIG_HW_UL(100, "IP_HW0", 128, 1), > + MHI_CHANNEL_CONFIG_HW_DL(101, "IP_HW0", 128, 2), > }; > > static const struct mhi_event_config modem_qcom_v1_mhi_events[] = { > -- > 2.7.4 >