brintos

brintos / linux-shallow public Read only

0
0
Text · 9.3 KiB · 52b9f5e Raw
282 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * device_id.h -- PCMCIA driver matching helpers4 *5 * (C) 2003 - 2004	David Woodhouse6 * (C) 2003 - 2004	Dominik Brodowski7 */8 9#ifndef _LINUX_PCMCIA_DEVICE_ID_H10#define _LINUX_PCMCIA_DEVICE_ID_H11 12#ifdef __KERNEL__13 14#define PCMCIA_DEVICE_MANF_CARD(manf, card) { \15	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \16			PCMCIA_DEV_ID_MATCH_CARD_ID, \17	.manf_id = (manf), \18	.card_id = (card), }19 20#define PCMCIA_DEVICE_FUNC_ID(func) { \21	.match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \22	.func_id = (func), }23 24#define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \25	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \26	.prod_id = { (v1), NULL, NULL, NULL }, \27	.prod_id_hash = { (vh1), 0, 0, 0 }, }28 29#define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \30	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \31	.prod_id = { NULL, (v2), NULL, NULL },  \32	.prod_id_hash = { 0, (vh2), 0, 0 }, }33 34#define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \35	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \36	.prod_id = { NULL, NULL, (v3), NULL },  \37	.prod_id_hash = { 0, 0, (vh3), 0 }, }38 39#define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \40	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \41			PCMCIA_DEV_ID_MATCH_PROD_ID2, \42	.prod_id = { (v1), (v2), NULL, NULL }, \43	.prod_id_hash = { (vh1), (vh2), 0, 0 }, }44 45#define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \46	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \47			PCMCIA_DEV_ID_MATCH_PROD_ID3, \48	.prod_id = { (v1), NULL, (v3), NULL }, \49	.prod_id_hash = { (vh1), 0, (vh3), 0 }, }50 51#define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \52	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \53			PCMCIA_DEV_ID_MATCH_PROD_ID4, \54	.prod_id = { (v1), NULL, NULL, (v4) }, \55	.prod_id_hash = { (vh1), 0, 0, (vh4) }, }56 57#define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \58	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \59			PCMCIA_DEV_ID_MATCH_PROD_ID2| \60			PCMCIA_DEV_ID_MATCH_PROD_ID3, \61	.prod_id = { (v1), (v2), (v3), NULL },\62	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }63 64#define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \65	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \66			PCMCIA_DEV_ID_MATCH_PROD_ID2| \67			PCMCIA_DEV_ID_MATCH_PROD_ID4, \68	.prod_id = { (v1), (v2), NULL, (v4) }, \69	.prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }70 71#define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \72	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \73			PCMCIA_DEV_ID_MATCH_PROD_ID3| \74			PCMCIA_DEV_ID_MATCH_PROD_ID4, \75	.prod_id = { (v1), NULL, (v3), (v4) }, \76	.prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }77 78#define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \79	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \80			PCMCIA_DEV_ID_MATCH_PROD_ID2| \81			PCMCIA_DEV_ID_MATCH_PROD_ID3| \82			PCMCIA_DEV_ID_MATCH_PROD_ID4, \83	.prod_id = { (v1), (v2), (v3), (v4) }, \84	.prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }85 86#define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \87	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \88			PCMCIA_DEV_ID_MATCH_CARD_ID| \89			PCMCIA_DEV_ID_MATCH_PROD_ID1, \90	.manf_id = (manf), \91	.card_id = (card), \92	.prod_id = { (v1), NULL, NULL, NULL }, \93	.prod_id_hash = { (vh1), 0, 0, 0 }, }94 95#define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \96	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \97			PCMCIA_DEV_ID_MATCH_CARD_ID| \98			PCMCIA_DEV_ID_MATCH_PROD_ID3, \99	.manf_id = (manf), \100	.card_id = (card), \101	.prod_id = { NULL, NULL, (v3), NULL }, \102	.prod_id_hash = { 0, 0, (vh3), 0 }, }103 104 105/* multi-function devices */106 107#define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \108	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \109			PCMCIA_DEV_ID_MATCH_CARD_ID| \110			PCMCIA_DEV_ID_MATCH_FUNCTION, \111	.manf_id = (manf), \112	.card_id = (card), \113	.function = (mfc), }114 115#define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \116	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \117			PCMCIA_DEV_ID_MATCH_FUNCTION, \118	.prod_id = { (v1), NULL, NULL, NULL }, \119	.prod_id_hash = { (vh1), 0, 0, 0 }, \120	.function = (mfc), }121 122#define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \123	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \124			PCMCIA_DEV_ID_MATCH_FUNCTION, \125	.prod_id = { NULL, (v2), NULL, NULL },  \126	.prod_id_hash = { 0, (vh2), 0, 0 }, \127	.function = (mfc), }128 129#define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \130	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \131			PCMCIA_DEV_ID_MATCH_PROD_ID2| \132			PCMCIA_DEV_ID_MATCH_FUNCTION, \133	.prod_id = { (v1), (v2), NULL, NULL }, \134	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \135	.function = (mfc), }136 137#define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \138	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \139			PCMCIA_DEV_ID_MATCH_PROD_ID3| \140			PCMCIA_DEV_ID_MATCH_FUNCTION, \141	.prod_id = { (v1), NULL, (v3), NULL }, \142	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \143	.function = (mfc), }144 145#define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \146	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \147			PCMCIA_DEV_ID_MATCH_PROD_ID2| \148			PCMCIA_DEV_ID_MATCH_PROD_ID3| \149			PCMCIA_DEV_ID_MATCH_FUNCTION, \150	.prod_id = { (v1), (v2), (v3), NULL },\151	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \152	.function = (mfc), }153 154/* pseudo multi-function devices */155 156#define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \157	.match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \158			PCMCIA_DEV_ID_MATCH_CARD_ID| \159			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \160	.manf_id = (manf), \161	.card_id = (card), \162	.device_no = (mfc), }163 164#define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \165	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \166			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \167	.prod_id = { (v1), NULL, NULL, NULL }, \168	.prod_id_hash = { (vh1), 0, 0, 0 }, \169	.device_no = (mfc), }170 171#define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \172	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \173			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \174	.prod_id = { NULL, (v2), NULL, NULL },  \175	.prod_id_hash = { 0, (vh2), 0, 0 }, \176	.device_no = (mfc), }177 178#define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \179	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \180			PCMCIA_DEV_ID_MATCH_PROD_ID2| \181			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \182	.prod_id = { (v1), (v2), NULL, NULL }, \183	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \184	.device_no = (mfc), }185 186#define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \187	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \188			PCMCIA_DEV_ID_MATCH_PROD_ID3| \189			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \190	.prod_id = { (v1), NULL, (v3), NULL }, \191	.prod_id_hash = { (vh1), 0, (vh3), 0 }, \192	.device_no = (mfc), }193 194#define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \195	.match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \196			PCMCIA_DEV_ID_MATCH_PROD_ID2| \197			PCMCIA_DEV_ID_MATCH_PROD_ID3| \198			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \199	.prod_id = { (v1), (v2), (v3), NULL },\200	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \201	.device_no = (mfc), }202 203/* cards needing a CIS override */204 205#define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \206	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \207			PCMCIA_DEV_ID_MATCH_MANF_ID| \208			PCMCIA_DEV_ID_MATCH_CARD_ID, \209	.manf_id = (manf), \210	.card_id = (card), \211	.cisfile = (_cisfile)}212 213#define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \214	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \215			PCMCIA_DEV_ID_MATCH_PROD_ID1| \216			PCMCIA_DEV_ID_MATCH_PROD_ID2, \217	.prod_id = { (v1), (v2), NULL, NULL }, \218	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \219	.cisfile = (_cisfile)}220 221#define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \222	.match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \223			PCMCIA_DEV_ID_MATCH_PROD_ID1| \224			PCMCIA_DEV_ID_MATCH_PROD_ID2| \225			PCMCIA_DEV_ID_MATCH_PROD_ID3, \226	.prod_id = { (v1), (v2), (v3), NULL },\227	.prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \228	.cisfile = (_cisfile)}229 230 231#define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \232	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \233			PCMCIA_DEV_ID_MATCH_PROD_ID2, \234	.prod_id = { NULL, (v2), NULL, NULL },  \235	.prod_id_hash = { 0, (vh2), 0, 0 }, \236	.cisfile = (_cisfile)}237 238#define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \239	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \240			PCMCIA_DEV_ID_MATCH_PROD_ID1| \241			PCMCIA_DEV_ID_MATCH_PROD_ID2| \242			PCMCIA_DEV_ID_MATCH_DEVICE_NO, \243	.prod_id = { (v1), (v2), NULL, NULL }, \244	.prod_id_hash = { (vh1), (vh2), 0, 0 },\245	.device_no = (mfc), \246	.cisfile = (_cisfile)}247 248#define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \249	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \250			PCMCIA_DEV_ID_MATCH_MANF_ID| \251			PCMCIA_DEV_ID_MATCH_CARD_ID| \252			PCMCIA_DEV_ID_MATCH_FUNCTION, \253	.manf_id = (manf), \254	.card_id = (card), \255	.function = (mfc), \256	.cisfile = (_cisfile)}257 258#define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \259	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \260			PCMCIA_DEV_ID_MATCH_PROD_ID1| \261			PCMCIA_DEV_ID_MATCH_PROD_ID2| \262			PCMCIA_DEV_ID_MATCH_FUNCTION, \263	.prod_id = { (v1), (v2), NULL, NULL }, \264	.prod_id_hash = { (vh1), (vh2), 0, 0 }, \265	.function = (mfc), \266	.cisfile = (_cisfile)}267 268#define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \269	.match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \270			PCMCIA_DEV_ID_MATCH_PROD_ID4| \271			PCMCIA_DEV_ID_MATCH_FUNCTION, \272	.prod_id = { NULL, NULL, NULL, (v4) }, \273	.prod_id_hash = { 0, 0, 0, (vh4) }, \274	.function = (mfc), \275	.cisfile = (_cisfile)}276 277 278#define PCMCIA_DEVICE_NULL { .match_flags = 0, }279 280#endif /* __KERNEL__ */281#endif /* _LINUX_PCMCIA_DEVICE_ID_H */282