lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 21 Apr 2022 14:55:58 +0300 (EEST) From: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com> To: Ricardo Martinez <ricardo.martinez@...ux.intel.com> cc: Netdev <netdev@...r.kernel.org>, linux-wireless@...r.kernel.org, kuba@...nel.org, davem@...emloft.net, johannes@...solutions.net, ryazanov.s.a@...il.com, loic.poulain@...aro.org, m.chetan.kumar@...el.com, chandrashekar.devegowda@...el.com, linuxwwan@...el.com, chiranjeevi.rapolu@...ux.intel.com, haijun.liu@...iatek.com, amir.hanania@...el.com, Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, dinesh.sharma@...el.com, eliot.lee@...el.com, moises.veleta@...el.com, pierre-louis.bossart@...el.com, muralidharan.sethuraman@...el.com, Soumya.Prakash.Mishra@...el.com, sreehari.kancharla@...el.com, madhusmita.sahu@...el.com Subject: Re: [PATCH net-next v6 02/13] net: wwan: t7xx: Add control DMA interface On Thu, 7 Apr 2022, Ricardo Martinez wrote: > From: Haijun Liu <haijun.liu@...iatek.com> > > Cross Layer DMA (CLDMA) Hardware interface (HIF) enables the control > path of Host-Modem data transfers. CLDMA HIF layer provides a common > interface to the Port Layer. > > CLDMA manages 8 independent RX/TX physical channels with data flow > control in HW queues. CLDMA uses ring buffers of General Packet > Descriptors (GPD) for TX/RX. GPDs can represent multiple or single > data buffers (DB). > > CLDMA HIF initializes GPD rings, registers ISR handlers for CLDMA > interrupts, and initializes CLDMA HW registers. > > CLDMA TX flow: > 1. Port Layer write > 2. Get DB address > 3. Configure GPD > 4. Triggering processing via HW register write > > CLDMA RX flow: > 1. CLDMA HW sends a RX "done" to host > 2. Driver starts thread to safely read GPD > 3. DB is sent to Port layer > 4. Create a new buffer for GPD ring > > Note: This patch does not enable compilation since it has dependencies > such as t7xx_pcie_mac_clear_int()/t7xx_pcie_mac_set_int() and > struct t7xx_pci_dev which are added by the core patch. > > Signed-off-by: Haijun Liu <haijun.liu@...iatek.com> > Signed-off-by: Chandrashekar Devegowda <chandrashekar.devegowda@...el.com> > Co-developed-by: Ricardo Martinez <ricardo.martinez@...ux.intel.com> > Signed-off-by: Ricardo Martinez <ricardo.martinez@...ux.intel.com> > > >From a WWAN framework perspective: > Reviewed-by: Loic Poulain <loic.poulain@...aro.org> > > Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com> > +struct cldma_tgpd { > + u8 gpd_flags; > + u8 not_used1; > + u8 not_used2; > + u8 debug_id; > + __le32 next_gpd_ptr_h; > + __le32 next_gpd_ptr_l; > + __le32 data_buff_bd_ptr_h; > + __le32 data_buff_bd_ptr_l; > + __le16 data_buff_len; > + __le16 not_used3; > +}; > + > +struct cldma_rgpd { > + u8 gpd_flags; > + u8 not_used1; > + __le16 data_allow_len; > + __le32 next_gpd_ptr_h; > + __le32 next_gpd_ptr_l; > + __le32 data_buff_bd_ptr_h; > + __le32 data_buff_bd_ptr_l; > + __le16 data_buff_len; > + u8 not_used2; > + u8 debug_id; > +}; A small additional thing... If you put next_gpd_ptr_h, next_gpd_ptr_l, data_buff_bd_ptr_h, and data_buff_bd_ptr_l into another struct inside these structs, t7xx_cldma_tgpd_set_data_ptr() and friends don't require duplicated versions for tgpd and rgpd. -- i.
Powered by blists - more mailing lists