[PATCH v1] Bluetooth: btmtk: Add MT7928 support

Chris Lu (陸稚泓) Chris.Lu at mediatek.com
Tue Jun 16 18:53:36 PDT 2026


Hi Pauli,

On Tue, 2026-06-16 at 17:38 +0300, Pauli Virtanen wrote:
> 
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Hi,
> 
> ti, 2026-06-16 kello 11:01 +0800, Chris Lu kirjoitti:
> > Add support for MT7928 (device ID 0x7935) which requires additional
> > firmware (CBMCU firmware) loading before Bluetooth firmware.
> > 
> > Implement two-phase CBMCU firmware download: Phase 1 loads
> > section with type 0x5 containing global descriptor,
> > section maps and signature data; Phase 2 loads remaining
> > firmware sections. Add retry mechanism for concurrent download
> > protection.
> > 
> > After CBMCU firmware loads successfully, the driver continues
> > to load corresponding BT firmware based on device ID through
> > fallthrough to case 0x7922/0x7925.
> > 
> > Signed-off-by: Chris Lu <chris.lu at mediatek.com>
> > ---
> [clip]
> > diff --git a/drivers/bluetooth/btmtk.h b/drivers/bluetooth/btmtk.h
> > index c83c24897c95..6d3bf6b74a1d 100644
> > --- a/drivers/bluetooth/btmtk.h
> > +++ b/drivers/bluetooth/btmtk.h
> > @@ -9,6 +9,8 @@
> >  #define FIRMWARE_MT7961             
> > "mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin"
> >  #define FIRMWARE_MT7925             
> > "mediatek/mt7925/BT_RAM_CODE_MT7925_1_1_hdr.bin"
> >  #define FIRMWARE_MT7927             
> > "mediatek/mt7927/BT_RAM_CODE_MT6639_2_1_hdr.bin"
> > +#define FIRMWARE_MT7928             
> > "mediatek/mt7928/BT_RAM_CODE_MT7935_1_1_hdr.bin"
> > +#define FIRMWARE_MT7928_CBMCU       
> > "mediatek/mt7928/CBMCU_CODE_MT7935_1_1.bin"
> 
> Are these firmware names correct?
> 
> The above names for MT7928 say MT79**35** not MT7928?

The naming is intentional,
MT7928 is the external/marketing name, while MT7935 is MediaTek's
internal codename for same chip. The firmware filename follows and
generate with internal codename. Windows PC paired with MT7928 also
follows this rule.

> 
> > 
> >  #define HCI_EV_WMT 0xe4
> >  #define HCI_WMT_MAX_EVENT_SIZE               64
> > @@ -54,6 +56,7 @@ enum {
> >       BTMTK_WMT_RST = 0x7,
> >       BTMTK_WMT_REGISTER = 0x8,
> >       BTMTK_WMT_SEMAPHORE = 0x17,
> > +     BTMTK_WMT_CBMCU_DWNLD = 0x58,
> >  };
> > 
> >  enum {
> 
> --
> Pauli Virtanen

Chris Lu



More information about the Linux-mediatek mailing list